Contents
運用最新潮的程式庫如 Tensorflow、Theano、Keras、PyTorch、CNTK、MXNet 建構深度學習系統。 在 AWS 上使用 GPU 更快速地訓練。
從這 11.5 小時的課程,你會學到
- 應用動量反向傳遞做神經網路的訓練
- 應用 AdaGrad、RMSprop 和 Adam 等自適應學習速率程續來反向傳遞做神經網路的訓練
- 了解 Theano 的基本建構區塊 ( building blocks )
- 在 Theano 建一個神經網路
- 了解 TensorFlow 的基本建構區塊 ( building blocks )
- 使用 TensorFlow 建一個神經網路
- 建構一個在 MNIST 資料集上表現良好的神經網路
- 了解完全梯度下降、分批梯度下降和隨機梯度下降之間的差異
- 了解並實施 Theano 和 TensorFlow 中的輟學正規化 ( dropout regularization)
- 理解並實現 Theano 和 Tensorflow 的批量標準化 ( batch normalization )
- 用 Keras 寫一個神經網路
- 用 PyTorch 寫一個神經網路
- 用 CNTK 寫一個神經網路
- 用 MXNet 寫一個神經網路
要求
- 已用過 Python、Numpy 和 Matplotlib 。 需安裝 Theano 和TensorFlow。
- 如果你還不知道梯度下降 ( gradient descent )、反向傳遞 ( backprop ) 和 softmax,請參閱我以前的課程,使用 Python 實作深度學習,然後返回到此課程。
課程說明
這門課程接續我的第一門課程 使用 Python 實作深度學習。 在這門課你已經知道如何在 Python中建構人工神經網路,且你有一個可以用於 TensorFlow 的即插即用腳本。 神經網絡是機器學習的重要組成部分之一,它們始終是 Kaggle 大賽的最大競爭者。 如果你想提高你在神經網路和深度學習的技能,這是為你設計的課程。
你已經了解了反向傳遞,但是還有很多未解的問題。 像如何修改它以提高訓練速度? 在本課程中,你將學習批量處理和隨機梯度下降,這是兩種常用的技術,可以讓你在每次迭代時僅對一小部分資料進行訓練,大大加快了訓練時間。
你還將了解到動量(momentum),這可能有助於帶你越過當地最低標準,防止你太過保守而阻礙了學習速度。 你還將學習 AdaGrad、RMSprop 和 Adam 等自適應學習速率技術,這些技術也可以幫助加快你的訓練速度。
因為你已經了解了神經網路的基礎知識,所以我們將討論更多的現代技術,比如輟學正規化 (dropout regularization ) 和批量正常化 ( batch normalization ),我們將在 TensorFlow 和 Theano 中實現這些技術。 課程會不斷更新,更高級的正規化技術將在近期推出。
在我上個課程中,我只是想給你搶先看看 TensorFlow。 在本課程中,我們將從基礎知識入手,以便你真正了解發生了什麼事情 – 什麼是 TensorFlow 變數和表達式,以及如何使用這些建構區塊創建神經網路? 我們也要去看一個更久前就已存在的一個程式庫,因深度學習而非常受歡迎 – Theano。 借助這個程式庫,我們還將檢查基本的建構區塊 – 變數、表達式和函數 – 以便你可以放心地在 Theano 建構神經網路。
Theano 是當今所有現代深度學習程式庫 ( libraries ) 的前身。 今天,我們有幾乎太多的選擇。 Keras、PyTorch、CNTK(微軟)、MXNet(亞馬遜/ Apache)等。在這個課程中,我們涵蓋了所有這些! 選擇你最喜歡的那個。
由於 TensorFlow 和 Theano 的主要優勢之一就是能夠使用 GPU 加速訓練,因此我將向你展示如何在 AWS 上設置 GPU 實例,並比較 CPU 與 GPU 的速度,以訓練深度神經網路。
所有這些額外的速度,我們將看看一個真正的資料集 – 著名 MNIST 資料集( 手寫數字圖像),並與各種基准進行比較。 這是資料集研究人員首先想問的問題,“這個東西有用嗎?
這些圖像是深度學習歷史的重要組成部分,今天仍然用於測試。 每個深度學習專家都應該好好地了解他們。
本課程著重於 “如何建立和理解”,而不僅僅是“如何使用”。任何人都可以在讀完一些文件後15分鐘內學會使用API。 這不是 “記住事實”,而是通過實驗 “親眼見證”。 它會教你如何視覺化模型內部發生的事情。 如果你不僅僅是想膚淺地懂點機器學習模型,這個課程是給你的。
📣註:
本課程的所有程式碼可以從我的 github下載:/ lazyprogrammer / machine_learning_examples
在目錄:ann_class2
確保你總用 “ git pull”,這樣你才會拿到最新的版本!
📣硬性先決條件/假定你有的知識:
- 微積分
- 線性代數
- 機率
- Python 程式設計:if / else、loops、lists、dicts、sets
- Numpy 程式設計:矩陣和向量操作、載入一個CSV檔
- 神經網路和反向傳遞
📣提示 ( 幫助你完成此課程 ):
- 以 2x 速度看本課程 ( 如果你的英文夠好的話 )
- 請手寫做筆記。 這會大大增加你吸收知識的能力。
- 寫下方程式。如果你沒有這麼做,我保證你會覺得課程都在胡言亂語。
- 在討論版儘量問問題。越多越好!
- 意識到大多數的練習會花你幾天或幾星期完成。
- 請自己寫程式,千萬部要只看我寫程式什麼都沒做。
修課順序
- 查看講座 “ What order should I take your courses in?” (可在我的任何課程的附錄中找到,或請參考先修課)
目標受眾
- 希望深化機器學習知識的學生和專業人員
- 希望了解更多深度學習的資料科學家
- 已經知道反向傳遞和梯度下降,並希望通過隨機批量訓練、動量和自適應學習速率程續(如RMSprop) 更進一步的資料科學家
- 如果你還不知道什麼是反向傳遞或 softmax ,請先學習 使用 Python 實作深度學習,然後返回到此課程。
講師簡介
Lazy Programmer Inc. 資料科學家和大數據工程師
我是一名資料科學家,大數據工程師和全端軟體工程師。
關於我的碩士論文,我使用機器學習的 brain-computer 介面。這些幫助語言障礙和行動不變的人與他/她們的家人和照顧者溝通。
我曾在網路廣告和數位媒體作為資料科學家和大數據工程師,圍繞所述的數據構建各種高流量的 web服務。我曾經使用Hadoop / Pig / MapReduce 建立了新的大數據管道。我建立了機器學習模型來預測點擊率,使用線性回歸建立新聞推薦系統,Bayesian Bandits和collaborative filtering,並使用A / B測試驗證結果。
我教過資料科學,統計學,機器學習,演算法,微積分,電腦圖學和哥倫比亞大學,紐約大學,亨伯學院和新學校的學生的物理學。
多個企業已經從我的 Web 程式設計專業知識中受益。我做所有的後端(伺服器),前端(HTML / JS / CSS)和操作/部署工作。我使用的一些技術是:Python,Ruby / Rails,PHP,Bootstrap,jQuery(Javascript),Backbone和Angular。對於儲存/資料庫,我使用MySQL,Postgres,Redis,MongoDB等。
英文字幕:有
- 想要了解如何將英文字幕自動翻譯成中文? 請參考這篇 How-To
- 點選這個✨優惠連結( 特價 NT370 起)✨ 非 IT 認證的課程用 NT390 起的優惠連結 可能拿到更好的價格喔, 試試看! | Udemy 永久擁有課程 ( 在電腦瀏覽器登入,點選“優惠連結”後再回想要的課程介紹中點選“報名參加課程”即可取得 )
- Udemy 現在越來越多課程有中文字幕,請參考 Soft & Share 中文線上課程
- 手機上點選優惠連結看到的價格比電腦上看到的貴
- $代表當地貨幣, 如在台灣為 NT
- 點選”報名參加課程”有可能因瀏覽器 cookies 轉久一點或回報錯誤而無法連上,請稍等刷新或重新點選就會出現
報名參加課程

也許你會有興趣
- Python 程式設計學習地圖
- ★英語學習地圖 – 練好英文是最大的學習槓桿
- 如何找工作學習地圖 – 找工作不要靠運氣!
發表迴響