• 正文
    • 欠擬合(Underfit)& 過擬合 (Overfit)
    • 偏差(bias)& 方差(variance)
  • 相關推薦
申請入駐 產業(yè)圖譜

AI模型訓練【偏差/方差】與【欠擬合/過擬合】

2024/12/26
2232
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

在我們拿到一個數據集,高高興興準備訓練一個模型時,會遇到欠擬合或過擬合的問題,業(yè)內也喜歡用偏差和方差這兩指標去定義它們,那這些詞什么意思呢?有什么方法能避免/解決 欠擬合和過擬合呢?

這其實是非常非?;A的概念,但是其實即使是業(yè)內人士很難一下子把它們完全講明白,并列出全面的解決方法,本文為你最通俗地解答。

欠擬合(Underfit)& 過擬合 (Overfit)

先解釋一下模型欠擬合和過擬合。假設大家已經知道訓練集,驗證集,測試集這個概念,不清楚的童鞋可以去康康我之前的博客哦 《無廢話的機器學習筆記》

下面兩個圖(來自吳恩達機器學習課的PPT)解釋得其實很清楚。

欠擬合:模型在訓練集上沒有得到足夠好的擬合
過擬合:模型在訓練集上得到過分好的擬合。

過分好有什么壞處呢,就比如訓練集數據里都是白天的熊貓,模型把白天也作為特征學習了(對訓練數據中的每個小細節(jié)都進行了學習,包括噪聲和異常值),那么給一張黑夜的熊貓圖,模型判斷這不是熊貓。所以模型在訓練集上表現完美,一到測試集就拉胯。(訓練集上猛如虎,測試集上很離譜)

下面圖的最靠右情況就是過擬合,這時模型往往變得非常復雜(有高次項,如x三次方和四次方)

在這里插入圖片描述

在這里插入圖片描述

偏差(bias)& 方差(variance)

偏差和方差數學里就是描述數據的特征嘛,大家覺得這有什么需要解釋的,但機器學習里面,我們不是要求出一堆數據的偏差和方差,而是把它們當作一種指標來衡量模型的性能。

很多教程一上來給出這個圖來理解偏差/方差,很直觀,但其實這圖很容易迷惑初學者,比如這里面的藍點,到底是模型基于訓練集還是驗證集的預測,還是都有?如果都有,右下角那個圖,落在紅心附近的藍點如果是基于訓練集,那么這個模型應該是low bias。如果都是訓練集,那么是及說明不了方差的,因為方差是衡量模型在不同集的表現波動,所以有點亂,我自己當時也是理解得模模糊糊。也可能是我理解有誤,歡迎大家留言指教。

在這里插入圖片描述

我個人理解它們在機器學習里的含義應該是這樣:

偏差:訓練集/驗證集數據(模型預測)與紅心(真實結果)的差距。重點在模型對訓練集的損失函數。

(偏差衡量模型的預測結果與真實結果之間的差距,即模型的準確性。高偏差意味著模型的預測結果通常偏離正確值)

方差:模型對訓練集與測試集的性能差別。重點在模型對訓練集和測試集的損失函數之間的差別。若訓練集和測試集的損失函數都很大,也叫低方差。

總的來說,方差衡量模型對于給定數據的小波動的敏感度,即模型在訓練集和驗證集上的表現波動。

下面這圖將 欠擬合/過擬合 與 偏差/方差 的關系解釋得完美。

在這里插入圖片描述

λ是正則化項,它越大模型越被限制,變得越簡單。后面會解釋??偟脕碚f,

欠擬合時,高偏差,低方差,模型較簡單。(因為模型對于訓練集和驗證集誤差都很大,所以低方差;如果模型在訓練集上已經偏差很大,在驗證集上更加離譜,偏差更大,那么這時可以說模型是高方差,不過這種情況極少發(fā)生。)

過擬合時,低偏差,高方差,模型較復雜。

理想的模型應該在偏差和方差之間找到良好的平衡。這就是所謂的偏差-方差權衡(Bias-Variance Tradeoff),追求偏差和方差都比較低!

下面這圖解釋得也不錯,靠左邊就是模型較簡單時,模型對于訓練集和驗證集誤差都很大,所以低方差;靠右邊就是模型較復雜時,低偏差,高方差。

在這里插入圖片描述

避免欠擬合/過擬合的技術!

欠擬合

  1. 增加模型復雜度
  2. 改進數據質量(增加數據量,數據清洗
  3. 特征選擇(選擇更有代表性和信息量的特征)
  4. 增加訓練時間
  5. 減少正則化(減小λ)
  6. 集成學習(結合多個模型的預測來提高整體的性能)

過擬合

  1. 減少模型復雜度
  2. 數據增強(Data Augmentation),對訓練數據進行變換,如旋轉、縮放、裁剪或顏色變化,白天和黑夜的熊貓圖都要有,以增加數據多樣性。
  3. 減少輸入的特征(人為去除一些冗余的特征)
  4. 正則化?。ㄕ`差函數中加入權重的L1或L2范數)(L1/L2正則可以去康康這篇 正則)
  5. 批量歸一化(Batch Normalization):對每一層的輸入進行歸一化處理,穩(wěn)定訓練過程。(減少輸入間變化對模型產生的影響,讓每個隱藏層輸出值均值與方差穩(wěn)定在0和1,后面層的訓練會更加穩(wěn)定)(不過這招對緩解過擬合來說作用比較輕微)
  6. 提前停止(Early Stopping):如上面那圖,在中間就停止,就完美,繼續(xù)訓練,方差會變大。
  7. 集成學習:結合多個模型的預測結果,如通過投票或平均,可以降低過擬合風險
  8. Dropout(在訓練過程中隨機丟棄一部分神經元,防止模型過于依賴訓練數據中的特定樣本)(Dropout可以理解為將集成學習效果通過一個網絡模擬地實現,測試時神經元輸出乘以刪除比例,達到平均/集成的效果)其實Dropout也算正則化的一招,這里分開來講。

相關推薦