深度學習(九)過擬合和欠擬合


過擬合和欠擬合是在網絡訓練中常常碰到的問題

  • 過擬合(overfit):訓練誤差小,但是對於測試集上的誤差很大。可能模型過於復雜,訓練中只”記住”了訓練樣本,然而其泛化誤差卻很高。
  • 欠擬合(underfit):訓練誤差很大,無法找到合適的函數描述數據集

下面介紹這兩種情況下常用的一些trick方法

  1. 如何防止過擬合

  過擬合的原因基本是特征維度太多,模型過復雜,參數太多,訓練數據太少,噪聲過多等,導致擬合的函數在訓練集上效果好而測試集效果差。從它出現的原因出發,我們可以考慮的方法有以下幾種:

    • 數據增強Data Augmentation & 增加噪聲數據,將源數據數量變多
    • 使用合適的網絡模型,減少網絡的層數、神經元個數等均可以限制網絡的擬合能力
    • Dropout(把網絡某層的輸出節點隨機丟棄掉一部分,從而創造新的樣本)

    • weight正則化 (就是在損失函數中增加范L1范數/L2范數,而weight decay是正則化的系數)

        i. L1范數 所有參數的絕對值之合

          L1范數可以使得某些參數為0,也就實現特征稀疏,也可認為是特征選擇

        ii. L2范數 所有參數的平方和再求平方根

          L2范數使得參數較小且接近於0,參數越小,模型就越小,就越不容易出現過擬合

        L1趨向於產生少量特征,而其他特征都為0,而L2趨向於選擇更多特征,這些特征趨向於0

    • 提前終止(early stopping)過擬合出現之前停止模型的學習過程

  2. 如何防止欠擬合

  模型沒有很好捕捉到數據特征,不能很好的擬合數據

    • 添加更多特征
    • 減少正則化參數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM