加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 欠擬合(Underfit)& 過擬合 (Overfit)
    • 偏差(bias)& 方差(variance)
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

AI模型訓(xùn)練【偏差/方差】與【欠擬合/過擬合】

13小時前
180
閱讀需 7 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

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

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

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

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

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

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

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

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

在這里插入圖片描述

在這里插入圖片描述

偏差(bias)& 方差(variance)

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

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

在這里插入圖片描述

我個人理解它們在機器學(xué)習(xí)里的含義應(yīng)該是這樣:

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

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

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

總的來說,方差衡量模型對于給定數(shù)據(jù)的小波動的敏感度,即模型在訓(xùn)練集和驗證集上的表現(xiàn)波動。

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

在這里插入圖片描述

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

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

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

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

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

在這里插入圖片描述

避免欠擬合/過擬合的技術(shù)!

欠擬合

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

過擬合

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

相關(guān)推薦

電子產(chǎn)業(yè)圖譜