[深度學習-知識總結]過擬合以及解決方法

1. 什麼是過擬合?

在這裏插入圖片描述
上圖來自於吳恩達老師機器學習課程,第一張圖是“欠擬合”(underfit),第三圖是過擬合(overfit),第二張圖是正好的狀態。

有圖可以看出來,過擬合就是訓練的模型與數據集匹配的太完美,以至於“過了”。

過擬合的危害是:模型不夠“通用”,也就是說如果將模型應用在新的數據上,得到的效果不好。

舉例說明,如果一個模型在訓練集上的準確率達到99.9%,而將模型應用在測試集時,準確率只有80%,很明顯這是一個過擬合的狀態。

2. 什麼原因導致了過擬合?

數據問題

數據太少了,模型沒有足夠多的意外數據用來使模型更加通用

模型問題

神經網絡模型的複雜度太高了!

以至於模型的複雜程度高於問題的複雜程度!

或者說,複雜模型的擬合能力太強擁有了擬合噪聲的能力

算法問題

模型權重太多
模型的權重分配差異太大
權重的取值太大
權重太多,導致,模型的複雜度太大

而模型的權重分配差異約大,模型越不夠平滑。

想像一個例子,模型a的所有參數都是1,模型b的參數是[1,9999]範圍內隨機取值,暫不考慮準確度問題,前一個模型一定比後一個平滑的多。

關於權重取值大小的問題,先看下圖
在這裏插入圖片描述
無論是圖中的sigmoid函數還是Relu函數,當權重較小時,激活函數工作在線性區,此時神經元的擬合能力較弱

綜上所述,我們得出結論:

  1. 模型權重數量不宜太多
  2. 權重的取值範圍應儘量一致
  3. 權重越小擬合能力越差

3.防止過擬合的方法

  1. 限制網絡結構(Dropout):這個很好理解,減少網絡的層數、神經元個數等均可以限制網絡的擬合能力;
  2. 限制權重 :Weight-decay或正則化regularization,保持較小的權重有利於使模型更加平滑。

其它防止過擬合的方法
– 參數範數懲罰
– 數據增強
– 提前終止
– Bagging等集成方法
– Dropout
– 批正則化

Dropout

Regularization:

請看這篇文章[機器學習]正則化項L1和L2的學習與理解

參考資料

[1] https://zhuanlan.zhihu.com/p/29592806
[2] https://blog.csdn.net/qq1440643730/article/details/103981920

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章