1.什么是過擬合?
過擬合(overfitting)是指在模型參數擬合過程中的問題,由於訓練數據包含抽樣誤差,訓練時,復雜的模型將抽樣誤差也考慮在內,將抽樣誤差也進行了很好的擬合。
具體表現就是最終模型在訓練集上效果好;在測試集上效果差。模型泛化能力弱。
2、產生過擬合根本原因:
(1)觀察值與真實值存在偏差
訓練樣本的獲取,本身就是一種 抽樣。抽樣操作就會存在誤差, 也就是你的訓練樣本 取值 X, X = x(真值) + u(隨機誤差),機器學習的 優化函數 多為 min Cost函數,自然就是盡可能的擬合 X,而不是真實的x,所以 就稱為過擬合了,實際上是學習到了真實規律以外的 隨機誤差。舉個例子說,你想做人臉識別,人臉里有背景吧,要是你這批人臉背景A都相似,學出來的模型,見到背景A,就會認為是人臉。這個背景A就是你樣本引入的誤差。
(2)訓練數據不足,數據太少,導致無法描述問題的真實分布
舉個例子,投硬幣問題 是一個 二項分布,但是如果 你碰巧投了10次,都是正面。那么你根據這個數據學習,是無法揭示這個規律的,根據統計學的大數定律(通俗地說,這個定理就是,在試驗不變的條件下,重復試驗多次,隨機事件的頻率近似於它的概率),當樣本多了,這個真實規律是必然出現的。
為什么說 數據量大了以后 就能防止過擬合,數據量大了,
問題2,不再存在,
問題1,在求解的時候因為數據量大了, 求解min Cost函數時候, 模型為了求解到最小值過程中,需要兼顧真實數據擬合 和 隨機誤差擬合,所有樣本的真實分布是相同的(都是人臉),而隨機誤差會一定程度上抵消(背景),
另外:維度災難與過擬合請移步:https://www.cnblogs.com/CJT-blog/p/10422923.html
(3)數據有噪聲(類似(1))
我們可以理解地簡單些:有噪音時,更復雜的模型會盡量去覆蓋噪音點,即對數據過擬合。這樣,即使訓練誤差Ein 很小(接近於零),由於沒有描繪真實的數據趨勢,Eout 反而會更大。
即噪音嚴重誤導了我們的假設。還有一種情況,如果數據是由我們不知道的某個非常非常復雜的模型產生的,實際上有限的數據很難去“代表”這個復雜模型曲線。我們采用不恰當的假設去盡量擬合這些數據,效果一樣會很差,因為部分數據對於我們不恰當的復雜假設就像是“噪音”,誤導我們進行過擬合。
如下面的例子,假設數據是由50次冪的曲線產生的(下圖右邊),與其通過10次冪的假設曲線去擬合它們,還不如采用簡單的2次冪曲線來描繪它的趨勢。
(4)訓練模型過度,導致模型非常復雜
有點像原因(3),模型強大到連噪聲都學會了。
3、抑制過擬合的幾種方法
(1)數據處理:清洗數據、減少特征維度、類別平衡;
1、清洗數據:糾正錯誤的label,或者刪除錯誤數據
2、降維:
維數約減(移步:https://www.cnblogs.com/CJT-blog/p/10253853.html)
特征選擇(移步:https://www.cnblogs.com/CJT-blog/p/10286574.html)
3、類別平衡:
請移步:https://www.cnblogs.com/CJT-blog/p/10223157.html
(2)輔助分類節點(auxiliary classifiers)
在Google Inception V1中,采用了輔助分類節點的策略,即將中間某一層的輸出用作分類,並按一個較小的權重加到最終的分類結果中,這樣相當於做了模型的融合,同時給網絡增加了反向傳播的梯度信號,提供了額外的正則化的思想.
(3)正則化:
獲取更多數據:從數據源獲得更多數據,或數據增強;
L2、L1、BN層等;
使用合適的模型(減少網絡的層數、神經元個數等,限制權重過大),限制網絡的擬合能力,避免模型過於復雜;
增加噪聲:輸入時+權重上(高斯初始化);
多種模型結合:集成學習的思想;
Dropout:隨機從網絡中去掉一部分隱神經元;
限制訓練時間、次數,及早停止
········
詳細請移步:https://www.cnblogs.com/CJT-blog/p/10424060.html
4、欠擬合
現象:訓練的模型在訓練集上面的表現很差,在驗證集上面的表現也很差。
原因:模型發生欠擬合的最本質原因是“訓練的模型太簡單,最通用的特征模型都沒有學習到”;
措施:
方案1:做特征工程,添加更多的特征項。即提供的特征不能表示出那個需要的函數;
方案2:減少正則化參數。即使得模型復雜一些;
方案3:使用更深或者更寬的模型。
方案4:使用集成方法。融合幾個具有差異的弱模型,使其成為一個強模型;
參考資料:
https://www.cnblogs.com/eilearn/p/9203186.html
https://blog.csdn.net/u012457308/article/details/79577340
https://blog.csdn.net/taoyanqi8932/article/details/71101699
https://blog.csdn.net/liuy9803/article/details/81611402
https://blog.csdn.net/chen645096127/article/details/78990928