深度學習中「過擬合」的產生原因和解決方法

2021-10-09 22:27:55 字數 1993 閱讀 7935

過擬合定義:模型在訓練集上的表現很好,但在測試集和新資料上的表現很差。

訓練集上的表現

測試集上的表現

結論不好

不好欠擬合好不好

過擬合好

好適度擬合

訓練資料集太小,過擬合出現的原因:

模型複雜度過高,引數過多

數量資料比較小

訓練集和測試集分布不一致

樣本裡面的雜訊資料干擾過大,導致模型過分記住了雜訊特徵,反而忽略了真實的輸入輸出特徵

訓練集和測試集特徵分布不一樣(如果訓練集和測試集使用了不同型別的資料集會出現這種情況)

1、降低模型複雜度

處理過擬合的第一步就是降低模型複雜度。為了降低複雜度,我們可以簡單地移除層或者減少神經元的數量使得網路規模變小。與此同時,計算神經網路中不同層的輸入和輸出維度也十分重要。雖然移除層的數量或神經網路的規模並無通用的規定,但如果你的神經網路發生了過擬合,就嘗試縮小它的規模。

2、增加更多資料

使用大資料集訓練模型

3、資料增強

使用資料增強可以生成多幅相似影象。這可以幫助我們增加資料集規模從而減少過擬合。因為隨著資料量的增加,模型無法過擬合所有樣本,因此不得不進行泛化。計算機視覺領域通常的做法有:翻轉、平移、旋轉、縮放、改變亮度、新增雜訊等等

4、正則化

在損失函式後面加乙個正則化項,常見的有l1正則化和l2正則化

l1懲罰項的目的是使權重絕對值最小化。公式如下:

$$l(x, y) \equiv \sum_^\left(y_-h_\left(x_\right)\right)^+\lambda \sum_^\left|\theta_\right|$$

l2懲罰項的目的是使權重的平方最小化。公式如下:

$$l(x, y) \equiv \sum_^\left(y_-h_\left(x_\right)\right)^+\lambda \sum_^ \theta_^$$

以下**對兩種正則化方法進行了對比:

l1正則化

l2正則化

1. l1懲罰權重絕對值的總和

1. l2懲罰權重平方和的總和

2. l1生成簡單、可解釋的模型

2. l2正則化能夠學習複雜資料模式

3. l1受極端值影響較小

3. l2受極端值影響較大

如果資料過於複雜以至於無法準確地建模,那麼l2是更好的選擇,因為它能夠學習資料中呈現的內在模式。而當資料足夠簡單,可以精確建模的話,l1更合適。對於我遇到的大多數計算機視覺問題,l2正則化幾乎總是可以給出更好的結果。然而l1不容易受到離群值的影響。所以正確的正則化選項取決於我們想要解決的問題。

5、dropout

dropout 是一種避免神經網路過擬合的正則化技術。像l1和l2這樣的正則化技術通過修改代價函式來減少過擬合。而丟棄法修改神經網路本身。它在訓練的每一次迭代過程中隨機地丟棄神經網路中的神經元。當我們丟棄不同神經元集合的時候,就等同於訓練不同的神經網路。不同的神經網路會以不同的方式發生過擬合,所以丟棄的淨效應將會減少過擬合的發生。

如上圖所示,丟棄法被用於在訓練神經網路的過程中隨機丟棄神經網路中的神經元。這種技術被證明可以減少很多問題的過擬合,這些問題包括影象分類、影象切割、詞嵌入、語義匹配等問題。

6、早停

如上圖所示,在幾次迭代後,即使訓練誤差仍然在減少,但測驗誤差已經開始增加了。

7、重新清洗資料

把明顯異常的資料剔除

8、使用整合學習方法

把多個模型整合在一起,降低單個模型的過擬合風險

深度學習和機器學習中過擬合的判定 原因和解決方法

目錄 一 過擬合的表現以及判定 1 模型過擬合的表現 2 模型過擬合的判定 二 過擬合的原因 三 過擬合的解決方案 1 模型層面 2 資料層面 3 訓練層面 4 其他 最近在做nlp相關任務的時候,訓練神經網路模型的過程中,遇到過模型過擬合的情況,到底怎麼解決過擬合,來提高模型的效能,不是特別的清晰...

過擬合產生的原因和解決方法

1.訓練集的數量級和模型的複雜度不匹配。訓練集的數量級要小於模型的複雜度 2.訓練集和測試集特徵分布不一致 3.樣本裡的噪音資料干擾過大,大到模型過分記住了噪音特徵,反而忽略了真實的輸入輸出間的關係 4.權值學習迭代次數足夠多 overtraining 擬合了訓練資料中的雜訊和訓練樣例中沒有代表性的...

深度學習中的過擬合

這篇 章主要是介紹 下神經 絡中的過擬合問題,並總結 下 前都有哪些有效的 法來緩解過擬合問題。過擬合表現 在深度學習任務中,過擬合最直觀的表現就是,模型在測試集的表現遠遠差於訓練集,也就是模型的泛化效能太差。直觀分析為什麼在測試集上的表現差於訓練集?最簡單的回答,因為模型就是在訓練集上訓練出來的,...