1. 程式人生 > >27. 減少方差的方法 翻譯自 吳恩達新書-Machine Learning Yearning

27. 減少方差的方法 翻譯自 吳恩達新書-Machine Learning Yearning

如果你的學習演算法的方差很高,你可能需要嘗試下⾯的方法:、

  • 增加更多的訓練資料:只要你可以拿到更多資料,並且有足夠強計算能力,這是最簡單可靠的處理方差的方法。
  • 使用正則化(L2正則化,L1正則化,dropout):這個方法可以減少方差,但是會增加偏差。
  • 提早停止(基於開發集的錯誤率,提前停止梯度下降):這個方法可以降低方差但是會增加偏差。提早停止的做法和正則化方法行為上有所類似,所以⼀些人也會把這種方法歸入正則化方法。
  • 特徵選擇時減少輸入特徵的數量/型別:這種方法可以會對方差問題有幫助,但是同時可能增加偏差。輕微的減少特徵的數量(比如,從1000個減到900個)可能不會對偏差造成較大的影響。但是⼤幅度的減少特徵數量(比如從1000個減到100個,10倍的縮減)很可能對偏差造成嚴重的影響,因為這樣會導致有用的特徵大大減少。在現代的深度學習中,當資料很豐富時,⼀般不會採用特徵選擇的方法,而是儘可能地讓演算法獲取所有的特徵,並且讓演算法自己選出⼀些來用。但是當你的訓練樣本集很小時,特徵選擇會非常有用。
  • 減少模型規模(比如神經元/層的數量):要小心使用這個方法。這個方法可以降低方差但是很大可能增加偏差。因此,我不推薦使用這個方法來處理方差問題。

增加正則化通常會提升分類器的效能。減少模型的規模的優點在於可以降低計算開銷,進而提升訓練模型的速度。如果加速模型訓練很有用,那麼你當然可以考慮降低模型規模。但是如果你的目標是減少方差,而不關心計算開銷,那就考慮使用正則化的方法。

這裡還有兩個附加的策略,與25章處理偏差問題的方法相同:

  • 基於誤差分析修改輸入特徵:如果說你的誤差分析告訴你要建立更多的特徵來幫助演算法減少某⼀特定種類的錯誤。這些新的特徵應該在偏差和方差方面都可以幫助你。理論上來說,增加更多的特徵會相應增加方差;如果你遇到這種情況,就使用正則化,來抑制方差的增⻓即可。
  • 修改模型架構(比如神經網路架構):使得你的模型更加適合於你的問題,這個方法會對偏差和方差都造成影響。