神經網絡解決過擬合的方法

總結

  • simpler model structure
  • regularization
  • data augmentation
  • dropout
  • Bootstrap/Bagging
  • ensemble
  • early stopping
  • utilize invariance
  • Bayesian

定義

過擬合(overfitting)是指在模型參數擬合過程中的問題,由於訓練數據包含抽樣誤差,訓練時,複雜的模型將抽樣誤差也考慮在內,將抽樣誤差也進行了很好的擬合。

具體表現就是模型在訓練集上效果好,在測試集上效果差。模型泛化能力弱

爲什麼要解決過擬合?

  1. 擬合的模型一般是用來預測未知的結果,過擬合雖然在訓練集上效果好,但是在實際使用時(測試集)效果差。
  2. 機器學習算法爲了滿足儘可能複雜的任務,其模型的擬合能力一般遠遠高於問題複雜度,也就是說,機器學習算法有【擬合出正確規則的前提下,進一步擬合噪聲】的能力。

解決方法:

  • 獲取更多的數據

這是解決過擬合的最好的方式,只要給足夠多的數據,讓模型儘可能的看到例外的情況。

  1. 從數據源頭獲取,比如比賽的數據集爲貓狗的分類,那麼我自己再多拍一點貓狗的圖片加到原有的數據集中。但是比較費時費力。也不知道要多少數據纔是足夠的,但是越多越好了。
  2. 根據當前數據集估計數據分佈參數,使用該分佈產生更過數據,例如 gan 網絡。但是該估計分佈的時候,也會將抽樣誤差帶入其中。
  3. 數據增強(Data Augmentation):比如圖像的旋轉,伸縮,顏色明暗度的調整,添加高斯噪音等。
  • 選擇模型

造成過擬合的主要原因是:數據過少+模型複雜。通過降低模型的複雜度,使用合適的複雜度的模型防止過擬合問題。如果能夠通過數學建模確定模型複雜度是最好的了,但是深度學習像個黑盒子一樣,具有一定的不可解釋性。

  1. 網絡結構:減少網絡層次,神經元個數,比如添加dropout技術。現在模型的複雜度,
  2. 訓練時間:採用 early stopping 技術。

    preview

  3.  限制權重:權重衰減 weight_decay,正則化 regularization(比如L2正則)。
  4. 增加噪聲 Noise:(1)在輸入中添加噪聲
  • 模型融合:訓練多個模型,取平均或者是加權平均。
  1. bagging
  2. boosting
  • 貝葉斯方法

綜上: 

參考:

  1. 深度學習系列(11):神經網絡防止過擬合的方法
  2. 機器學習中用來防止過擬合的方法有哪些?

 

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