1. 程式人生 > >簡析過擬合與欠擬合

簡析過擬合與欠擬合

欠擬合與過擬合問題是機器學習中的經典問題,儘管相關的討論和預防方法非常多,但目前在許多工中仍經常會出現過擬合等問題,還沒有找到一個十分通用、有效的解決方法。不過總體上看,現在人們常用的一些很簡潔的方法基本上能夠較好地解決欠擬合與過擬合問題,總結如下。

欠擬合與過擬合的概念的成因比較簡單,觀點統一,這裡不再介紹。現在常用的判斷方法是從訓練集中隨機選一部分作為一個驗證集,採用K折交叉驗證的方式,用訓練集訓練的同時在驗證集上測試演算法效果。在缺少有效預防欠擬合和過擬合措施的情況下,隨著模型擬合能力的增強,錯誤率在訓練集上逐漸減小,而在驗證集上先減小後增大;當兩者的誤差率都較大時,處於欠擬合狀態(high bias, low variance);當驗證集誤差率達到最低點

時,說明擬合效果最好,由最低點增大時,處與過擬合狀態(high variance, low bias)。下圖的橫座標用擬合函式多項式的階數籠統地表徵模型擬合能力:
這裡寫圖片描述

下面詳細介紹預防解決模型欠擬合與過擬合的常用方法及原理:

欠擬合
因為對於給定資料集,欠擬合的成因大多是模型不夠複雜、擬合函式的能力不夠。
為此可以增加迭代次數繼續訓練、嘗試換用其他演算法、增加模型的引數數量和複雜程度,或者採用Boosting等整合方法。

過擬合
過擬合成因是給定的資料集相對過於簡單,使得模型在擬合函式時過分地考慮了噪聲等不必要的資料間的關聯。或者說相對於給定資料集,模型過於複雜、擬合能力過強。方法如下:

1.資料擴增:
人為增加資料量,可以用重取樣、上取樣、增加隨機噪聲、GAN、影象資料的空間變換(平移旋轉映象)、尺度變換(縮放裁剪)、顏色變換、增加噪聲、改變解析度、對比度、亮度等。其中增加噪聲,可以在原始資料上直接加入隨機噪聲(更接近真實環境),也可以在權重上增加噪聲。

2.直接降低模型複雜度:
即減少模型引數數量。例如:對於LR,減少目標函式的因子數;對於DT,減少樹的深度、剪枝等;對於DNN,減少層數和每層權向量長度。

3.針對神經網路,採用dropout方法:
間接減少引數數量,也相當於進行了資料擴增。弱化了各個引數(特徵)之間的單一聯絡,使起作用的特徵有更多組合,使從而模型不過分依賴某個特徵。

4.提前停止訓練:
也就是減少訓練的迭代次數。從上面的誤差率曲線圖可以看出,理論上能夠找到一個訓練程度,此時驗證集誤差率最低,視為擬合效果最好的點。

5.多模型投票方法:
類似整合學習方法的思想,不同模型可能會從不同角度去擬合,互相之間取長補短,即使單獨使用某個模型已出現過擬合,但綜合起來卻有可能減低過擬合程度,起到正則作用,提高了泛化效果。特別是使用多個非常簡單的模型,更不容易產生過擬合。

以下是一系列常用的正則化方法:

秉承奧卡姆剃刀原理,許多正則化項(懲罰項)的引入,是為了使演算法學習到更簡單的模型,也就是讓最終學習到的引數絕對值變小(即引數長度變短:shrinkage),因為這樣可以讓模型在較小的引數空間中搜尋最優引數,從而簡化了模型。而且若sigmoid作為啟用函式,當引數權值較小時,啟用函式工作線上性區,此時模型的擬合能力較弱,也降低了過擬合的可能性。

從貝葉斯理論角度看,加入正則項相當於引入了一個引數的先驗資訊,即人為給引數的選擇增加了一些規則(先驗),把人們的知識數學化告訴給模型的損失函式,從而縮小了解空間傾向於產生唯一解,使擬合出錯的概率變小,同時解決了逆問題的不適定性(多解問題)。不同的正則化項具有不同先驗分佈,具體介紹如下。

6.L0正則化:
損失函式後面加上在加入L0範數 λ||w||0,也就是權向量中非零引數的個數。
它的特點是可以實現引數的稀疏性,使盡可能多的引數值為0,這與稀疏編碼的思想吻合。但它的缺點是在優化時是NP難問題,很難優化。因此實際任務中更常用L1範數。

7.L1正則化:
損失函式L0後面加上引數(權向量w)的L1範數項:λ||w||1=λi=1n||wi||1 , 其中 n 是權向量 w 的長度(引數數量),λ 是正則化引數,用來調和L0 與正則項,此時損失函式如下:

L=L0+λ||w||1
L1正則項等價於先驗概率服從拉普拉斯分佈;此時若針對線性迴歸就是Lasso Regression。L1範數是L0範數的最優凸近似,比L0範數容易優化,而且也可以很好地實現引數稀疏性,常別稱作“稀疏規則運算元”,因此相對L0正則化更常用。同時L1和L0因為具有使引數稀疏的特點,常用於特徵選擇。

8.L2正則化:
損失函式L0後面加上引數L2範數的平方項:λ2n||w||22=λ2ni=1nwi2  ,其大小由引數weight-decay(權值衰減)調節,此時損失函式如下:

L=L0+λ2n||w||22
其中分母有無n均可,L2正則項等價於先驗概率服從高斯分佈;此時針對線性迴歸就是Ridge Regression,即常說的“嶺迴歸”。與L0,L1不同的是,L2很難使某些引數達到0,它只能使引數接近0。如今在許多問題中,更常用L2正則是因為:一方面我們通常想考慮更多的引數對問題的影響(因此不能讓引數稀疏),另一方面在優化時,L2範數有利於解決condition number: k(A)=||A||||A1||  太大(遠大於1)的情況下(此時存在某些引數,對結果有過大的影響)矩陣求逆很困難的問題,這使得優化求解變得更快更穩定。
現在有些任務中會同時使用L1和L2正則項,用各自的兩個正則化引數去權衡“部分稀疏”與“整體接近0”這一對trade-off問題。
這裡寫圖片描述
上圖可以看出,服從拉普拉斯分佈的L1正則項更傾向於產生稀疏引數,而服從高斯分佈的L2正則項在0處相對比較平滑,在引數絕對值較大處抑制效果更好,使整體資料的分佈更接近0。

9.(針對DNN)batch normalization:即BN,既能夠提高泛化能力,又大大提高訓練速度,現在被廣泛應用在DNN中的啟用層之前。BN的提出最初是針對DNN在訓練過程中會出現資料內部的協方差偏移現象,導致輸出資料分佈發生額外的改變,並隨著層數的增加偏移加劇,使得模型不得不根據輸出分佈的改變重新學習,這又導致訓練速度減慢。
公式如下:
這裡寫圖片描述
具體過程:首先對某層的輸入樣本做白化處理,等價於零均值化處理(均值為0,方差為1),使輸入樣本之間互不相關,且每層的輸入服從相同分佈,克服了內部協方差偏移的影響。採用分批處理資料的方式,減少了計算量。

主要優勢:減小了梯度對引數大小和初始值的依賴,將引數值(特徵)縮放在[0,1]區間(若針對Relu還限制了輸出的範圍),這樣反向傳播時梯度控制在1左右,使網路即使在較高學習率下也不易發生梯度爆炸或彌散(也預防了在使用sigmoid作為啟用函式時訓練容易陷入梯度極小飽和或極大的極端情況)。

相關推薦

欠擬合與過擬合問題是機器學習中的經典問題,儘管相關的討論和預防方法非常多,但目前在許多工中仍經常會出現過擬合等問題,還沒有找到一個十分通用、有效的解決方法。不過總體上看,現在人們常用的一些很簡潔的方法基本上能夠較好地解決欠擬合與過擬合問題,總結如下。 欠擬合與

深度學習---

一、認識過擬合與欠擬合 經典圖示,其中: 圖1:欠擬合表示:模型不能在訓練集上獲得足夠低的訓練誤差,即:沒有學習到; 圖3:過擬合表示:模型的訓練誤差與測試誤差之間差距較大,即:在訓練集上表現好,在測試集和新資料上表現一般,過學習。 二、解決過擬合的方法 深度學習中常見於解

如何解決

下面這張經典的圖展示了欠擬合(第一個)與過擬合(第三個)。 欠擬合 模型在訓練集上學習的不夠好,經驗誤差大,稱為欠擬合。模型訓練完成

模型

機器學習中,經常討論到的一個話題就是泛化能力。泛化能力的強弱決定了模型的好壞,而影響泛化能力的則是模型的擬合問題。 欠擬合 機器學習的目的並不是為了對訓練集的做出正確的預測,而是對沒有在訓練集中出現的資料進行正確的預測。但是對訓練集之外的資料預測的前提是,模型在訓練集上的表現很好

機器學習演算法中的

在機器學習表現不佳的原因要麼是過度擬合或欠擬合數據。 機器學習中的逼近目標函式過程 監督式機器學習通常理解為逼近一個目標函式(f)(f),此函式對映輸入變數(X)到輸出變數(Y). Y=f(X)Y=f(X) 這種特性描述可以用於定義分類和預測問題和機器學習演算法的

怎麼解決

一.過擬合 在訓練資料不夠多時,或者over-training時,經常會導致over-fitting(過擬合)。其直觀的表現如下圖所所示。 隨著訓練過程的進行,模型複雜度,在training data上的error漸漸減小。可是在驗證集上的error卻反而漸漸增大——

筆記(總結)-從到偏差-方差分解

在用機器學習模型解決實際問題時,時刻離不開“擬合”(fitting)一詞,擬合可以看做挖掘樣本集與對應標籤的規律。模型的預測值和樣本的真實標籤之間的差異稱為“誤差”(error),在實際問題中,我們通常在訓練集上訓練模型,由此產生“訓練誤差”(training

出現的原因以及解決方案

非線性 訓練數據 機器學習算法 由於 www. 課程 判斷 自身 深度 在學習李宏毅機器學習的課程中,在第二課中遇到了兩個概念:過擬合(overfitting)和欠擬合(underfitting),老師對於這兩個概念產生的原因以及解決方案沒有提及太多,所以今天就讓我們一起學

【機器學習】正則化

過擬合(over-fitting) 在演算法對模型引數的學習過程中,如果模型過於強大,比如說,樣本空間分佈在一條直線的附近,那麼我們的模型最好是一條直線, h

機器學習:偏差、方差

首先,我們先來理解一下偏差與方差的概念。舉個高中數學裡經常出現的例子,兩個射擊選手在射靶。甲射出的子彈很集中在某個區域,但是都偏離了靶心。我們說他的射擊很穩定,但是不夠準,準確性差。也就是說他的方差小(子彈很集中在某個區域),但是他的偏差大(子彈打中的地方距離靶

[一起面試AI]NO.5正則化是什麼?

Q1 過擬合與欠擬合的區別是什麼,什麼是正則化 欠擬合指的是模型不能夠再訓練集上獲得足夠低的「訓練誤差」,往往由於特徵維度過少,導致擬合的函式無法滿足訓練集,導致誤差較大。 過擬合指的是模型訓練誤差與測試誤差之間差距過大;具體來說就是模型在訓練集上訓練過度,導致泛化能力過差。 「所有為了減少測試誤差的策略統稱

斯坦福大學公開課機器學習: advice for applying machine learning - evaluatin a phpothesis(怎麽評估學習算法得到的假設以及如何防止

class 中一 技術分享 cnblogs 訓練數據 是否 多個 期望 部分 怎樣評價我們的學習算法得到的假設以及如何防止過擬合和欠擬合的問題。 當我們確定學習算法的參數時,我們考慮的是選擇參數來使訓練誤差最小化。有人認為,得到一個很小的訓練誤差一定是一件好事。但其實,僅

判定是否的一種方式

ont man size rom mil 設計 方式 times 需要 train loss 與 test loss 結果分析: train loss 不斷下降,test loss不斷下降,說明網絡仍在學習; train loss 不斷下降,test loss趨於不變,說

能否說出幾種降低風險的方法

出自<百面機器學習>:https://item.jd.com/12401859.html 侵刪 一、降低過擬合風險的方法 增加訓練資料 ​ 首先,我們知道的是,使用更多的訓練資料是解決過擬合問題最有效的手段。因為如果說我們有更多的樣本,也就是有

機器學習中的現象,以及通過正則化的方式解決。

過擬合: 過擬合(over-fitting)是所建的機器學習模型或者是深度學習模型在訓練樣本中表現得過於優越,導致在驗證資料集以及測試資料集中表現不佳的現象。就像上圖中右邊的情況。 過擬合的模型太過具體從而缺少泛化能力,過度的擬合了訓練集中的資料。出現的原因是模型將其中的不重要的變

Bobo老師機器學習筆記第八課-如何防止

問題一、什麼是過擬合和欠擬合? 首先擬合是一個統計學概念,它表示所求函式逼近目標函式的遠近程度。應用的機器學習中,就是我們所求的函式與未知的對映函式之間的相似度。如何求得函式引數與潛在的函式引數越逼近,說明效果越好。  假設我們用上篇部落格中的資料,原始碼可以見上文: 通

Machine Learning-問題

過擬合(訓練樣本自身特點及非一般特性當作重要特性) 模型學習的太好,記住了樣本的非一般特性。個人理解為比如對人的特徵(鼻、耳、嘴等)學習效果良好。假如訓練資料為黃人和黑人的樣本圖片。模型可以在訓練資料表現出色,根據特徵進行分類。此時過擬合就是指訓練過程中記著一些非重要特徵。

機器學習基礎--

過擬合和欠擬合   1)欠擬合:機器學習模型無法得到較低訓練誤差。   2)過擬合:機器學習模型的訓練誤差遠小於其在測試資料集上的誤差。   我們要儘可能同時避免欠擬合和過擬合的出現。雖然有很多因素可能導致這兩種擬合問題,在這裡我們重點討論兩個因素:模型的選擇和

機器學習:什麼是

1. 什麼是欠擬合和過擬合 先看三張圖片,這三張圖片是線性迴歸模型 擬合的函式和訓練集的關係 第一張圖片擬合的函式和訓練集誤差較大,我們稱這種情況為 欠擬合 第二張圖片擬合的函式和訓練集誤差較小,我們稱這種情況為 合適擬合 第三張圖片擬合的函式完美的匹配訓

降低模型“”、“”風險的方法

過擬合:指模型對於訓練資料擬合呈過當的情況,反映到評估指標上,是模型在訓練集上表現很好,但在測試集和新資料上表現較差,在模型訓練過程中,表現為訓練誤差持續下降,同時測試誤差出現持續增長的情況。 欠擬合:指模型對於訓練資料擬合不足的情況,表現為模型在訓練集和測試集表現都不好。 如