达叔的正交化(第三课3.2)
搭建機器學習系統的挑戰之一就是可以嘗試和改變的東西太多太多了,如有那么多的參數可以調整。達叔注意到那些效率很高的機器學習專家有個特點,他們思路清晰對于調整什么來達到某個效果,他們非常清楚,這個步驟就稱之為正交化。(就像一臺老式電視的很多按鈕一樣,通過調整某一個旋鈕來達到自己想要的某種效果)
要搭建一個監督學習系統,通常需要調整旋鈕來確保四件事情。首先,應該確保系統在訓練集上得到的結果不錯,所以訓練集上的表現必須通過某種評估達到接受的程度(對于某種評估甚至達到人類水平的表現);然后再訓練集上表現不錯時,就希望系統在驗證集有好的表現;然后,也希望在測試集上有好的表現;最后,希望系統在現實的實際使用中表現令人滿意。
第一種,如果不能很好的擬合訓練集,調試的辦法有:
第二種,如果發現算法對驗證集的擬合效果很差,調試的辦法有:
補充1:
達叔在可避免偏差(Avoidable bias)這一節中再次提到了前兩種情況發生時的解決辦法:
如果說模型的training error和bayes error相差相差較大,表明模型的效果不好,解決辦法有:先聚焦在減小training error上,如用更大的網絡結構,跑久一點梯度下降
如果說模型的training error與bayes error(或者可以近似為人類誤差human error)相差很小,但是training error和val error相差很大,表明方差很大,可以考慮減小方差,具體的方法有:正則化、更大的網絡結構、更多的訓練數據;
可避免偏差:把bayes error和training error之間的差距稱為可避免偏差(Avoidable bias);
補充2:
達叔在第12節改善模型表現這一節中,提出了一個提高算法性能的指導方針,首先提出之前先做兩個基本假設:①在正常情況下,模型能夠在訓練集上表現很好,即可避免偏差很小;②訓練表現很好的模型,在驗證集和測試集上也可以取得很好的效果,即方差很小。
第一,可避免偏差(bayes error和training error之間的差距)。可以嘗試的辦法有:訓練更大的model、訓練更久、用更好的優化算法(如:momentum、RMSprop、Adam等)、尋找更好的新的神經網絡結構、更好的超參數(包括改變激活激活函數、改變層數、隱藏層單元數、)
第二,方差(training error和val error之間的差距)。可以嘗試的方法有:收集更多的數據(可以更好地推廣到系統看不到的驗證集數據)、正則化(如l2、Dropout、data augmentation)、超參數搜索等。
第三種,如果在測試集上的效果不好,調試的方法有:
第四種,如果在測試集上做的很好,但是在現實使用中效果卻一般,解決的辦法有:
具體的細節,達叔會在后面的幾節課里面進行詳細的介紹。
補充:達叔提到,他一般不會使用earlystopping,以為這會同時改變在訓練集和驗證集上的效果,也就是earlystopping沒有那么好的正交化效果。?
總結
以上是生活随笔為你收集整理的达叔的正交化(第三课3.2)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: XML的写入_dom4j添加、删除、修改
- 下一篇: 梦三国2英霸模式貂蝉攻略(玩大流)