Topic: Review of Andrew Ng’s deep learning course
Dosudo deep learning newsletter #4
Editor: Ian Ching
Resources: course link original post Andrew Ng’s webite
Label: Online course
深度學習 (Deep Learning) 已成為2017科技業最頻繁出現的討論關鍵詞之一, 網路上有很多的線上課程介紹這個熱門議題, 每個課程介紹深度學習的方式不盡相同, 如何選擇適當自己的課程切入, 成了忙碌現代科技人的時間規劃課題. 如果讀者看過其中幾堂, 希望能把推導的數學用python實現, 或想了解 Keras 背後的運作模式, 或是動手嘗試大學線上課程作業後希望飛奔到辦公室跟助教請教梯度下降法(gradient decent)的實作細節或如何加速演算法執行效率, Coursera 上 Andrew.Ng 的 Deep Learning Specialization課程是你可以考慮投資時間學習的課程.
Deep Learning Specialization 課程分為五個階段, 目前釋出前三階段. 為英文口語搭配英文字幕教學. 詳情可參考 (https://www.deeplearning.ai/)
- 神經網路和深度學習 (Neural Networks and Deep Learning)
- 改善深層神經網路 (Improving Deep Neural Networks)
- 結構化機器學習項目 (Structuring Machine Learning Projects)
- 卷機神經網路 (Convolution Neural Networks)
- 序列模型(Sequence Models)
第一階段”神經網路和深度學習” 講解神經網路(neural network)架構及關鍵技術梯度下降法, 前向和反向傳導 (forward and backward propagation). 除了簡單的數學推導外, 同時也準備相當分量的篇幅說明python實作細節(如, 向量化vectorization, 廣播broadcasting)及建立深度學習架構符號表示法. 對於深度學習的初學者來說, 學習過程循序漸進地接入python程式撰寫, 降低了不小入門的門檻. 走完第一階段, 讀者可以預期基本的神經網路觀念以及相關python/numpy的使用方法已經形成.
第二階段”改善深層神經網路“說明如何提升算法的正確率以及速度, 因此有比較厚重的數學解釋說明, 此時會發現第一階段的符號表示法可以幫助讀者更容易吸收內容. 第二階段的課程前半段的時間是介紹神經網路正確性調整上常遇到的underfitting / overfitting 問題及解決的基本觀念如正規化(regularization), 標準化(normalization).其中不免會遇到數學的推導, 但配合Andrew的講解, 並不會感覺到太複雜. 後半段的課程說明各種優化演算法(SGD, Momentum, RMPprop, Adam), 批量歸一化(batch norm)及超參數調適(hyperparameter tuning)的細節, 也介紹多類別分類的關鍵softmax 激活函數. 第二階段以簡介TensorFlow架構作為結尾. 完成第二階段帶給讀者神經網路調適的方法細節.
了解神經網路調適的工具後, 第三階段”結構化機器學習項目“介紹如何建立深度學習項目的作業流程, 從定義模型指標開始, 透過錯誤分析設定模型指標調整的優先順序, 並循環執行調整/驗證程序 (idea/code/experiment) 增加模型準確度. 本階段最後介紹三種深度學習架構遷移學習(transfer learning), 多任務學習(multi-task leanrning), 以及端到端學習(end-to-end deep learning), 幫助讀者由問題本身的特性規劃不同的系統架構.
在Deep Learning Specialization前三階段課程中 Andrew.Ng 深入淺出的介紹深度學習重要觀念及其實作應用. 前兩階段著重於實作, 第三階傳著重於項目目標的設定. 除了理論的解釋外, 在課程中也能夠得到相關技術在業界的應用資訊. 此門課程對於剛接觸深度學習領域且有需要了解運作原理的讀者而言是一門推薦的入門課程. 後續本系列課程將會釋出卷機神經網路(CNN), 序列模型(Sequence Models)兩個階段課程, 也期望Andrew 能帶給讀者更多有趣的內容.