
入門 | 吳恩達Deeplearning.ai 全部課程學習心得分享
本文作者,加拿大國家銀行首席分析師 Ryan Shrott 完成了迄今為止(2017 年 10 月 25 日)吳恩達在 Coursera 上發布的所有深度學習課程,并為我們提供了課程解讀。
目前 Coursera 上可用的課程中,有三門課非常值得關注:
1. 神經網絡與深度學習(Neural Networks and Deep Learning)
2. 改進深度神經網絡:調整超參數、正則化與優化(Improving Deep Neural Networks: Hyperparamater tuning, Regularization and Optimization)
3. 結構化機器學習項目(Structuring Machine Learning Projects)
我發現這三門課非常重要,在其中,我們可以從吳恩達教授那里獲得很多有用的知識。吳恩達在教學語言上做得很好,解釋概念清晰明了。例如,吳恩達明確指出監督學習并沒有超出多維曲線擬合過程的范疇,而對于這種方法的其他理解方式,如對人類神經系統的模擬,實際上并不嚴謹。
學習這些課程的基礎知識要求不多,只要求你事先掌握一些線性代數,以及 Python 基礎編程知識。在我看來,你也需要了解向量計算來理解優化過程的內在知識。但如果你不關心內部運作方式,并只希望了解高級層面上的內容,盡管跳過微積分的部分。
第 1 課:為什么深度學習如此熱門?
現在人類產生的 90% 數據是在最近 2 年內被收集的。深度神經網絡(DNN)能夠利用體量巨大的數據。因此,DNN 超越了較小的網絡和傳統學習算法。
規模是如何推動 DNN 性能的
此外,算法上的創新也使得 DNN 的訓練速度變得更快。例如,從 Sigmoid 激活函數改為 RELU 激活函數對梯度下降等任務的優化過程產生了巨大影響。這些算法的改進使得研究人員可以更快地遍歷靈感→ 代碼→ 經驗的開發循環,從而帶來更多的創新。
深度學習開發循環
第 2 課:深度學習中的向量化
在開始這門課之前,我并不知道神經網絡可以在沒有任何明確循環語句的情況下被實現(除了層之間的)。吳恩達點明了 Python 中向量化編程設計的重要性。課程附帶的作業引導你進行向量化的編程,同時這些方法也可以很快遷移到你自己的項目中。
第 3 課:深入了解 DNN
前幾門課實際上在引導你使用 NumPy 從頭開始實現前向和反向傳播。通過這種方法,我更加深入了解了高級深度學習框架(如 TensorFlow 和 Keras)的工作原理。吳恩達解釋了計算圖背后的想法,從而讓我們了解了 TensorFlow 如何實現「神奇優化」的。
第 4 課:為什么需要深度?
在這一節中,吳恩達深入解釋了 DNN 的層概念。例如,對于面部識別系統,他向我們解釋了先處理的層是用于處理面部邊界的,其后的層用于將這些邊界識別為面部組件(如鼻子、眼睛、嘴等),再其后的層會將這些組件整合到一起識別人的身份。他還解釋了電路理論(circuit theory)的思想——存在一個函數,需要來自隱藏單元指數式的數字來適應淺網絡的數據??梢酝ㄟ^添加有限數量的附加層來簡化指數問題。
第 5 課:處理偏差和方差的工具
吳恩達解釋了研究者識別和處理偏差方差相關問題的步驟。下圖詮釋了一種解決這些問題的系統性方法。
解決偏差和方差問題的方法
他還解決了偏差和方差之間的「權衡」(tradeoff)。他認為在現在這個深度學習的時代,我們擁有獨立解決每個問題的工具,使權衡不再存在。
第 6 課:正則化
為什么向成本函數添加懲罰項會降低方差?在上這門課之前我的理解是它使權重矩陣接近于零,從而產生一個更「線性」的函數。吳恩達給出了另外一種和 tanh 激活函數相關的解釋,即較小的權重矩陣生成較小的輸出,使得輸出圍繞在 tanh 函數線性區域的中心。
tanh 激活函數
他還給出了 dropout 的有趣解釋。之前我認為 dropout 在每次迭代中消滅隨機神經元,就像越小的網絡線性程度就越強一樣。但是吳恩達的解釋是從單個神經元的角度來看待生命(life)。
單個神經元的角度
由于 dropout 隨機消滅連接,這促使神經元向父系神經元中更加均勻地擴展權重。通過擴展權重,它可以減少權重的 L2 范數(squared norm)。他還解釋了 dropout 是 L2 正則化的自適應形式,兩種方法效果相近。
第 7 課:歸一化為何有效?
吳恩達展示了為什么歸一化可以通過繪制等高線圖的方式加速優化步驟。他詳細講解了在歸一化和非歸一化等高線圖上進行梯度下降所需要的迭代次數變化,即相同優化算法沒經過歸一化操作會需要更多的迭代數。
第 8 課:初始化的重要性
吳恩達表示不使用參數初始化可能導致梯度消失或爆炸。他展示了多個步驟來解決這些問題?;驹瓌t是確保每一層的權重矩陣的方差都近似為 1。他還討論了 tanh 激活函數的 Xavier 初始化。
第 9 課:為什么使用小批量梯度下降?
吳恩達使用等高線圖解釋了使用小批量和大批量訓練之間的權衡?;驹瓌t是較大的批量每次迭代會變慢,較小的批量可以加快迭代過程,但是無法保證同樣的收斂效果。最佳方法就是在二者之間進行權衡,使得訓練過程比一次性處理整個數據集要快,又能利用向量化技術的優勢。
第 10 課:高級優化技術的直觀理解
吳恩達解釋了合適使用動量(momentum)和 RMSprop 等技術限制梯度下降逼近極小值的路徑。他還用球滾下山的例子生動地解釋了這一過程。他把這些方法結合起來來解釋著名的 Adam 優化。
第 11 課:基本的 TensorFlow 后端理解
吳恩達不僅解釋了如何使用 TensorFlow 實現神經網絡,同時還講解了在優化過程中出現的后端進程。有一個家庭作業就是鼓勵我們使用 TensorFlow 實現 dropout 和 L2 正則化,這加強了我對后端過程的理解。
第 12 課:正交化
吳恩達還討論了機器學習策略中正則化的重要性。其基本思想是,我們希望實現并控制影響算法性能的因素,即一次只控制一個影響性能的因素。例如為了解決偏差問題,我們可以使用更大的網絡或更魯棒的優化技術,我們希望這些控制只影響偏差而不會影響其它如泛化等問題。缺少正交化控制的案例是過早停止了算法的最優化過程,因為這樣會同時影響模型的偏差和方差。
第 13 課:單數值評估度量的重要性
吳恩達強調了選擇單數值評估度量(single number evaluation metric)的重要性,它可以允許我們評估算法。如果目標改變,我們應該在模型開發過程中僅更改評估度量。吳恩達給我們講解了一個使用貓分類應用識別色情圖片的案例。
第 14 課:測試和開發集的分布
通常我們會假設測試集與開發集(dev sets)的分布相同,這就確保了我們在迭代過程中朝向正確的目標優化。這同樣意味著如果你決定糾正測試集中錯誤的標注數據,那么你需要在開發集中糾正錯誤標注的數據。
第 15 課:處理不同的訓練和測試/開發分布
吳恩達介紹了為什么我們對訓練和測試/開發集沒有相同的分布這一問題感興趣。因為我們希望根據實際關心的樣本來計算評估度量。例如我們可能希望使用和訓練問題無關的的樣本進行訓練,但我們并不希望算法使用這些樣本進行評估,這就令我們的算法可以在更多的數據上進行訓練。經驗上,這種方法可以在許多案例上產生非常好的效果。缺點是可能我們的訓練和測試/開發集有不同的分布,這個問題的通常解決辦法是,可以留出一小部分訓練集,并確定訓練集的泛化性能。然后我們可以比較這些誤差率與實際的開發誤差,并計算一個「數據誤匹配」的度量標準。吳恩達還解釋了解決這些數據誤匹配問題的方法,例如人工數據合成。
第 16 課:訓練集/開發集/測試集大小
在深度學習時代,訓練集/開發集/測試集的分隔方法也發生了巨大的改變。之前,我只知道較普遍的 60/20/20 分隔。吳恩達強調,對于一個非常大的數據集,應該使用 98/1/1 甚至 99/0.5/0.5 的分隔。這是因為開發集合測試集只要足夠大能保證模型處于團隊設定的置信區間即可。如果你使用 1 千萬個訓練樣本,那么 10 萬樣本(即數據集的 1%)就足夠保證開發集和/或測試集的置信區間了。
第 17 課:近似貝葉斯最優誤差
吳恩達解釋了在某些應用中人類級別的性能如何作為貝葉斯誤差的替代。例如,在視覺和聽覺識別任務中,人類級別的誤差通常很接近貝葉斯誤差,可以用于量化模型中可避免的偏差。如果沒有諸如貝葉斯誤差這樣的基準測試,理解網絡中的方差和可避免的偏差問題是很困難的。
第 18 課:誤差分析
吳恩達介紹了一種能顯著提高算法性能的有效性的誤差分析技術?;鞠敕ㄊ鞘止俗㈠e誤分類的樣本,集中精力處理對錯誤分類數據影響最大的誤差。
貓識別 App 誤差分析
例如,在貓識別中吳恩達認為模糊的圖像最容易導致誤差。這種敏感性分析可以令人看到在降低總體誤差的過程中,你花費的精力到底有多值得。還有一種可能是,修復模糊圖像是很費力的任務,而其它的誤差更容易理解和修復。敏感性分析和近似操作都將作為決策過程的因素。
第 19 課:什么時候使用遷移學習?
遷移學習允許將一個模型的知識遷移到另一個。例如,你可以將一個貓識別 app 中的圖像識別知識遷移到放射診斷中去。實現遷移學習需要用更多的數據重訓練網絡的最后幾個層,以用于相似的應用領域。其思想基礎是網絡的低層的隱藏單元擁有更加廣闊的應用范圍,即對具體的任務類型不敏感??傊?,當任務之間擁有相同的輸入特征,并且需要學習的任務擁有比需要訓練的任務多得多的數據的時候,遷移學習是可行的。
第 20 課:什么時候使用多任務學習?
多任務學習迫使單個神經網絡同時學習多個任務(和每一個任務都配置單獨的神經網絡相反)。吳恩達解釋道,當任務集合通過共享低級特征獲得學習增益,以及每一個任務的數據量規模相似的時候,這種方法能工作得很好。
第 21 課:什么時候用端到端的深度學習?
端到端的深度學習需要多層處理并將它們組合到單個神經網絡中,這使得數據能在沒有人工設計步驟引進偏差的前提下自主進行優化過程。另一方面,這個方法需要非常多的數據,有可能排除潛在的手工設計成分。
結論
吳恩達的深度學習課程使我對深度學習模型的開發過程有了基本的直觀理解,以上我解釋過的課程只不過是這個課程中展示資料的一部分。即使完成了課程你也還不能稱為深度學習專家,而我唯一的不滿是課程的作業布置太簡單了。順便提一句,寫這篇文章并沒有得到 deeplearning.ai 的批準。
數據分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
CDA數據分析師證書考試體系(更新于2025年05月22日)
2025-05-26解碼數據基因:從數字敏感度到邏輯思維 每當看到超市貨架上商品的排列變化,你是否會聯想到背后的銷售數據波動?三年前在零售行 ...
2025-05-23在本文中,我們將探討 AI 為何能夠加速數據分析、如何在每個步驟中實現數據分析自動化以及使用哪些工具。 數據分析中的AI是什么 ...
2025-05-20當數據遇見人生:我的第一個分析項目 記得三年前接手第一個數據分析項目時,我面對Excel里密密麻麻的銷售數據手足無措。那些跳動 ...
2025-05-20在數字化運營的時代,企業每天都在產生海量數據:用戶點擊行為、商品銷售記錄、廣告投放反饋…… 這些數據就像散落的拼圖,而相 ...
2025-05-19在當今數字化營銷時代,小紅書作為國內領先的社交電商平臺,其銷售數據蘊含著巨大的商業價值。通過對小紅書銷售數據的深入分析, ...
2025-05-16Excel作為最常用的數據分析工具,有沒有什么工具可以幫助我們快速地使用excel表格,只要輕松幾步甚至輸入幾項指令就能搞定呢? ...
2025-05-15數據,如同無形的燃料,驅動著現代社會的運轉。從全球互聯網用戶每天產生的2.5億TB數據,到制造業的傳感器、金融交易 ...
2025-05-15大數據是什么_數據分析師培訓 其實,現在的大數據指的并不僅僅是海量數據,更準確而言是對大數據分析的方法。傳統的數 ...
2025-05-14CDA持證人簡介: 萬木,CDA L1持證人,某電商中廠BI工程師 ,5年數據經驗1年BI內訓師,高級數據分析師,擁有豐富的行業經驗。 ...
2025-05-13CDA持證人簡介: 王明月 ,CDA 數據分析師二級持證人,2年數據產品工作經驗,管理學博士在讀。 學習入口:https://edu.cda.cn/g ...
2025-05-12CDA持證人簡介: 楊貞璽 ,CDA一級持證人,鄭州大學情報學碩士研究生,某上市公司數據分析師。 學習入口:https://edu.cda.cn/g ...
2025-05-09CDA持證人簡介 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度、美團、阿里等 ...
2025-05-07相信很多做數據分析的小伙伴,都接到過一些高階的數據分析需求,實現的過程需要用到一些數據獲取,數據清洗轉換,建模方法等,這 ...
2025-05-06以下的文章內容來源于劉靜老師的專欄,如果您想閱讀專欄《10大業務分析模型突破業務瓶頸》,點擊下方鏈接 https://edu.cda.cn/g ...
2025-04-30CDA持證人簡介: 邱立峰 CDA 數據分析師二級持證人,數字化轉型專家,數據治理專家,高級數據分析師,擁有豐富的行業經驗。 ...
2025-04-29CDA持證人簡介: 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度,美團,阿里等 ...
2025-04-28CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-27數據分析在當今信息時代發揮著重要作用。單因素方差分析(One-Way ANOVA)是一種關鍵的統計方法,用于比較三個或更多獨立樣本組 ...
2025-04-25CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-25