筆記|李宏毅老師機器學習課程,視頻16DNN訓練的Tips
《學習筆記》專欄·第19篇
文 | MLer
1192字 | 4分鐘閱讀
【數(shù)據(jù)科學與人工智能】開通了機器學習群,大家可以相互學習和交流。請掃描下方二維碼,備注:姓名-ML,添加我為好友,誠邀你入群,一起進步。
感謝李宏毅老師的分享,他的課程幫助我更好地學習、理解和應用機器學習。李老師的網(wǎng)站:
http://speech.ee.ntu.edu.tw/~tlkagk/index.html。
這個學習筆記是根據(jù)李老師2017年秋季機器學習課程的視頻和講義做的記錄和總結。因為這個視頻是在Youtube上面,有些朋友可能無法觀看,我把它搬運下來放在云盤上面,大家點擊閱讀原文,就可以直接在手機隨時隨地觀看了。再次,感謝李老師的付出和貢獻。
這門課,共有36個視頻,每個視頻播放的時間不一。我按著視頻播放的順序,觀看,聆聽和學習,并結合講義,做學習筆記。我做學習筆記目的有三:
1 幫助自己學習和理解機器學習
2 記錄機器學習的重要知識、方法、原理和思想
3 為傳播機器學習做點事情
視頻16:DNN訓練的Tips
一、深度學習的Recipe
李老師說,我們按著深度學習構建三步驟,獲得神經(jīng)網(wǎng)絡結構和模型后,首先,需要做訓練集上的性能分析,即對于訓練集,模型的效果如何;在效果滿足要求的前提,接下來需要做測試集上的性能分析,即對于測試集,模型的效果又如何。李老師說明了為什么要這么做,實際上,我們基于訓練集來訓練一個深度學習模型時,它是一個極其復雜的過程,對模型性能的影響會有諸多因素,比方說,模型的結構,優(yōu)化的方法,局部最優(yōu)問題,梯度衰減等問題。因此,對于已經(jīng)學習到的深度學習模型,我們是有必要驗證模型在訓練集上面的性能。具體流程,如下圖所示:

二、模型在訓練集性能不好的問題
出現(xiàn)這個問題時,我們要從模型的結構和尋找最佳函數(shù)的方法入手,做改善。
模型的結構這塊,李老師重點介紹激活函數(shù)這塊;尋找最佳函數(shù)方法這塊,李老師介紹了一些經(jīng)典優(yōu)化算法。一些內容,如下圖所示:
1 ReLU激活函數(shù)

2 RMSProp方法(自適應學習速率)

3 Adam方法 = RMSProp + Momentum

三、模型在測試集性能不好的問題
李老師,介紹了三種方法,一是Early Stopping方法,二是正則化技術,三是Dropout方法。如下圖所示:

1 Early Stopping方法與超參數(shù)Epochs的關系
我們需要找最佳的Epochs,它是讓驗證集(帶有Lable的數(shù)據(jù)集)的Loss最小時對應的輪回數(shù)目。

2 正則化技術
正則化技術的目的,就是讓我們學習的函數(shù)更加平滑。

3 Dropout技術
通過對訓練集的神經(jīng)元進行概率性的抽樣來參與訓練,如下圖所示:

李老師關于Dropout的理解,可以看作一個終極的Ensemble。
總結:
訓練DNN模型時,需要在訓練集和測試集上面做性能分析。
訓練集性能不好的問題,可以從激活函數(shù)、優(yōu)化方法入手,思考如何改善。
測試集性能不好的問題,可以從Early Stopping、正則化技術和Dropout入手,做改善。
訓練DNN的Tips,更詳細內容,請點擊閱讀原文,觀看視頻。
朋友們,在學習中有什么問題或者想法,請加入機器學習群,大家一起討論,共同進步。
每周一書
3數(shù)據(jù)科學導論:Python語言實現(xiàn)
課程視頻點擊
↓↓↓
