如何防止我的模型過擬合?這篇文章給出了6大必備方法

點擊上方AI算法與圖像處理”,選擇加"星標"或“置頂

重磅乾貨,第一時間送達

來源:機器之心編譯

正如巴菲特所言:「近似的正確好過精確的錯誤。


在機器學習中,過擬合(overfitting)會使模型的預測性能變差,通常發生在模型過於複雜的情況下,如參數過多等。本文對過擬合及其解決方法進行了歸納闡述。


在機器學習中,如果模型過於專注於特定的訓練數據而錯過了要點,那麼該模型就被認爲是過擬合。該模型提供的答案和正確答案相距甚遠,即準確率降低。這類模型將無關數據中的噪聲視爲信號,對準確率造成負面影響。即使模型經過很好地訓練使損失很小,也無濟於事,它在新數據上的性能仍然很差。欠擬合是指模型未捕獲數據的邏輯。因此,欠擬合模型具備較低的準確率和較高的損失。


如何確定模型是否過擬合?

構建模型時,數據會被分爲 3 類:訓練集、驗證集和測試集。訓練數據用來訓練模型;驗證集用於在每一步測試構建的模型;測試集用於最後評估模型。通常數據以 80:10:10 或 70:20:10 的比率分配。

在構建模型的過程中,在每個 epoch 中使用驗證數據測試當前已構建的模型,得到模型的損失和準確率,以及每個 epoch 的驗證損失和驗證準確率。模型構建完成後,使用測試數據對模型進行測試並得到準確率。如果準確率和驗證準確率存在較大的差異,則說明該模型是過擬合的。

如果驗證集和測試集的損失都很高,那麼就說明該模型是欠擬合的。

如何防止過擬合

交叉驗證

交叉驗證是防止過擬合的好方法。在交叉驗證中,我們生成多個訓練測試劃分(splits)並調整模型。K-折驗證是一種標準的交叉驗證方法,即將數據分成 k 個子集,用其中一個子集進行驗證,其他子集用於訓練算法。

交叉驗證允許調整超參數,性能是所有值的平均值。該方法計算成本較高,但不會浪費太多數據。交叉驗證過程參見下圖:


用更多數據進行訓練

用更多相關數據訓練模型有助於更好地識別信號,避免將噪聲作爲信號。數據增強是增加訓練數據的一種方式,可以通過翻轉(flipping)、平移(translation)、旋轉(rotation)、縮放(scaling)、更改亮度(changing brightness)等方法來實現。

移除特徵

移除特徵能夠降低模型的複雜性,並且在一定程度上避免噪聲,使模型更高效。爲了降低複雜度,我們可以移除層或減少神經元數量,使網絡變小。

早停

對模型進行迭代訓練時,我們可以度量每次迭代的性能。當驗證損失開始增加時,我們應該停止訓練模型,這樣就能阻止過擬合。

下圖展示了停止訓練模型的時機:


正則化

正則化可用於降低模型的複雜性。這是通過懲罰損失函數完成的,可通過 L1 和 L2 兩種方式完成,數學方程式如下:


L1 懲罰的目的是優化權重絕對值的總和。它生成一個簡單且可解釋的模型,且對於異常值是魯棒的。


L2 懲罰權重值的平方和。該模型能夠學習複雜的數據模式,但對於異常值不具備魯棒性。

這兩種正則化方法都有助於解決過擬合問題,讀者可以根據需要選擇使用。

Dropout

Dropout 是一種正則化方法,用於隨機禁用神經網絡單元。它可以在任何隱藏層或輸入層上實現,但不能在輸出層上實現。該方法可以免除對其他神經元的依賴,進而使網絡學習獨立的相關性。該方法能夠降低網絡的密度,如下圖所示:


總結

過擬合是一個需要解決的問題,因爲它會讓我們無法有效地使用現有數據。有時我們也可以在構建模型之前,預估到會出現過擬合的情況。通過查看數據、收集數據的方式、採樣方式,錯誤的假設,錯誤表徵能夠發現過擬合的預兆。爲避免這種情況,請在建模之前先檢查數據。但有時在預處理過程中無法檢測到過擬合,而是在構建模型後才能檢測出來。我們可以使用上述方法解決過擬合問題。

原文鏈接:https://mahithas.medium.com/overfitting-identify-and-resolve-df3e3fdd2860


   
      
      
      
個人微信(如果沒有備註不拉羣!
請註明: 地區+學校/企業+研究方向+暱稱



下載1:何愷明頂會分享


AI算法與圖像處理」公衆號後臺回覆:何愷明,即可下載。總共有6份PDF,涉及 ResNet、Mask RCNN等經典工作的總結分析


下載2:終身受益的編程指南:Google編程風格指南


AI算法與圖像處理」公衆號後臺回覆:c++,即可下載。歷經十年考驗,最權威的編程規範!



 
    
    
    
下載3 CVPR2020

AI算法與圖像處公衆號後臺回覆: CVPR2020 即可下載1467篇CVPR 2020論文


覺得不錯就點亮在看吧



本文分享自微信公衆號 - AI算法與圖像處理(AI_study)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

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