1. 程式人生 > >欠擬合、過擬合、偏差、方差

欠擬合、過擬合、偏差、方差

基本概念

  • 偏差:偏差度量了學習演算法的期望預測與真實結果的偏離程度, 即刻畫了學習演算法本身的擬合能力
  • 方差:方差度量了同樣大小的訓練集的變動所導致的學習效能的變化, 即刻畫了資料擾動所造成的影響
  • 欠擬合:模型的經驗誤差大,模型太簡單,在訓練的過程中基本沒學到有價值的內容,說明模型欠擬合。
  • 過擬合:模型學習了太多的訓練樣本的“個性”(經驗誤差小),但是對於未知的樣本泛化能力差(泛化誤差大),說明過擬合。
  • 經驗誤差:模型關於訓練樣本集的平均誤差(也稱經驗風險)。
  • 結構風險:結構風險在經驗風險的基礎上加上表示模型複雜度的正則化項
  • 泛化誤差:模型在新樣本集(測試集)上的平均誤差。
  • 泛化誤差=偏差+方差+噪聲
  • 噪聲:描述了在當前任務上任何學習演算法所能達到的期望泛化誤差的下界,即刻畫了學習問題本身的難度

    偏差和方差

    如果模型是低偏差和低方差,那肯定是最好的一個選擇。但是偏差和方差在一定程度上是矛盾的。如果偏差降低,那方差可能會相應的升高,如果方差降低,那偏差可能相應升高。所以我們是儘量的尋求偏差和方差的一個平衡點。

下圖比較形象的表達偏差和方差的含義。 image

個人理解:偏差太大,說明模型欠擬合;方差太大,說明模型過擬合。

欠擬合和過擬合

學習曲線

通過學習曲線來識別模型是否發生了欠擬合、過擬合

橫軸為訓練樣本數量,縱軸為誤差 image

複雜程曲線

橫軸為模型複雜程度,縱軸為誤差 image 上圖中:模型在點A處,在訓練集以及測試集上同時具有較高的誤差,此時模型的偏差較大,模型欠擬合;模型在點C處,在訓練集上具有較低的誤差,在測試集上具有較高的誤差,此時模型的方差較大,模型過擬合。模型複雜程度控制在點B處為最優。

如何解決欠擬合和過擬合

解決欠擬合

  1. 增加特徵項。
  2. 新增多項式特徵項。
  3. 減小正則化係數。
  4. 增加模型複雜度。

    解決過擬合

    過擬合問題是機器學習和深度學習裡面主要要解決的一個問題。解決過擬合的辦法主要有一下列出的。
  5. 重新做特徵工程。
  6. 增加訓練樣本數量。
  7. 降低模型複雜程度。
  8. 增大正則項係數。
  9. 採用dropout方法。
  10. early stoping。
  11. 減少迭代次數。
  12. 增大學習率。
  13. 新增噪聲資料。
  14. 樹結構中,可以對樹進行剪枝。 以上只是舉一些例子,不同的問題還是需要根據不同的情況分析。

參考文獻: