1.12 改善你的模型表现-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授
| 1.11 超越人的表現 | 回到目錄 | 1.13 總結 |
改善你的模型表現 (Improving your model performance)
你們學過正交化,如何設立開發集和測試集,用人類水平錯誤率來估計貝葉斯錯誤率以及如何估計可避免偏差和方差。我們現在把它們全部組合起來寫成一套指導方針,如何提高學習算法性能的指導方針。
所以我想要讓一個監督學習算法達到實用,基本上希望或者假設你可以完成兩件事情。首先,你的算法對訓練集的擬合很好,這可以看成是你能做到可避免偏差很低。還有第二件事你可以做好的是,在訓練集中做得很好,然后推廣到開發集和測試集也很好,這就是說方差不是太大。
在正交化的精神下,你可以看到這里有第二組旋鈕,可以修正可避免偏差問題,比如訓練更大的網絡或者訓練更久。還有一套獨立的技巧可以用來處理方差問題,比如正則化或者收集更多訓練數據。
總結一下前幾段視頻我們見到的步驟,如果你想提升機器學習系統的性能,我建議你們看看訓練錯誤率和貝葉斯錯誤率估計值之間的距離,讓你知道可避免偏差有多大。換句話說,就是你覺得還能做多好,你對訓練集的優化還有多少空間。然后看看你的開發錯誤率和訓練錯誤率之間的距離,就知道你的方差問題有多大。換句話說,你應該做多少努力讓你的算法表現能夠從訓練集推廣到開發集,算法是沒有在開發集上訓練的。
如果你想用盡一切辦法減少可避免偏差,我建議試試這樣的策略:比如使用規模更大的模型,這樣算法在訓練集上的表現會更好,或者訓練更久。使用更好的優化算法,比如說加入momentum或者RMSprop,或者使用更好的算法,比如Adam。你還可以試試尋找更好的新神經網絡架構,或者說更好的超參數。這些手段包羅萬有,你可以改變激活函數,改變層數或者隱藏單位數,雖然你這么做可能會讓模型規模變大。或者試用其他模型,其他架構,如循環神經網絡和卷積神經網絡。在之后的課程里我們會詳細介紹的,新的神經網絡架構能否更好地擬合你的訓練集,有時也很難預先判斷,但有時換架構可能會得到好得多的結果。
另外當你發現方差是個問題時,你可以試用很多技巧,包括以下這些:你可以收集更多數據,因為收集更多數據去訓練可以幫你更好地推廣到系統看不到的開發集數據。你可以嘗試正則化,包括 L2L2L2 正則化,dropout正則化或者我們在之前課程中提到的數據增強。同時你也可以試用不同的神經網絡架構,超參數搜索,看看能不能幫助你,找到一個更適合你的問題的神經網絡架構。
我想這些偏差、可避免偏差和方差的概念是容易上手,難以精通的。如果你能系統全面地應用本周課程里的概念,你實際上會比很多現有的機器學習團隊更有效率、更系統、更有策略地系統提高機器學習系統的性能。
課程板書
| 1.11 超越人的表現 | 回到目錄 | 1.13 總結 |
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀
總結
以上是生活随笔為你收集整理的1.12 改善你的模型表现-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1.11 超过人的表现-深度学习第三课《
- 下一篇: 1.13 总结-深度学习第三课《结构化机