過擬合問題以及解決方法

2021-09-30 12:33:29 字數 1457 閱讀 4365

一.所謂過擬合問題

為了得到一致假設而使假設變得過度複雜稱為過擬合。乙個過配的模型試圖連誤差(噪音)都去解釋(而實際上噪音又是不需要解釋的),導致繁華能力較差,顯然過猶不及了。

a model (e.g., network) that is too complex may fit the noise, not just thesignal, leading to overfitting.produces excessive variance in the outputs.過擬合反映的是在學習訓練中,nn對學習樣本達到非常高的逼近精度,但對非學習樣本,如驗證學習效果的樣本的逼近誤差隨著nn的訓練次數而呈現先下降,後反而上公升的奇異現象.

二.過擬合的產生

究其原因,產生過擬合是因為:

1.由於對樣本資料,可能存在隱單元的表示不唯一,即產生的分類的決策面不唯一.隨著學習的進行, bp演算法使權值可能收斂過於複雜的決策面,並至極致.

2.權值學習迭代次數足夠多(overtraining),擬合了訓練資料中的雜訊和訓練樣例中沒有代表性的特徵.

三. 過度擬合解決方法

1.權值衰減. 

它在每次迭代過程中以某個小因子降低每個權值,這等效於修改e的定義,加入乙個與網路權值的總量相應的懲罰項,此方法的動機是保持權值較小,避免weight decay,從而使學習過程向著複雜決策面的反方向偏。

2.適當的stopping criterion

3.驗證資料

乙個最成功的方法是在訓練資料外再為演算法提供一套驗證資料,應該使用在驗證集合上產生最小誤差的迭代次數,不是總能明顯地確定驗證集合何時達到最小誤差.  

typically 30% of trainingpatterns;validation set error is checked each epoch;

stop training if validation error goes up

4.cross-validation with some patterns  

交叉驗證方法在可獲得額外的資料提供驗證集合時工作得很好,但是小訓練集合的過度擬合問題更為嚴重.

k-fold交叉方法:

把訓練樣例分成k份,然後進行k次交叉驗證過程,每次使用不同的乙份作為驗證集合,其餘k-1份合併作為訓練集合.每個樣例會在一次實驗中被用作驗證樣例,在k-1次實驗中被用作訓練樣例;每次實驗中,使用上面討論的交叉驗證過程來決定在驗證集合上取得最佳效能的迭代次數n*,然後計算這些迭代次數的均值;最後,執行一次bp演算法,訓練所有m個例項並迭代n*次.

5. 減少特徵

人工選擇,預留一些特徵

利用演算法選取一些比較好的特徵

6. 正則化

這裡有點疑問,正則化是為了防止過擬合還是為了解決過擬合。對部分無用的feature,定義其parameter(p3,p4)非常大,這樣會導致訓練結果w3,w4非常小,幾乎為0,降低模型複雜度。這裡也有個問題就是lamba很大會導致所有的wi都為0。矩陣分解中經常會用到。

過擬合的解決方法

overfitting就是過擬合,其直觀的表現如下圖所示,隨著訓練過程的進行,模型複雜度增加,在training data上的error漸漸減小,但是在驗證集上的error卻反而漸漸增大 因為訓練出來的網路過擬合了訓練集,對訓練集外的資料卻不work,這稱之為泛化 generalization 效能...

過擬合及解決方法

在機器學習演算法中,我們經常將原始資料集分為三部分 訓練集 training data 驗證集 validation data 測試集 testing data 1.validation data是什麼?它事實上就是用來避免過擬合的。在訓練過程中,我們通經常使用它來確定一些超引數 比方,依據vali...

過擬合及解決方法

過擬合,指的是模型在訓練集上表現的很好,但是在交叉驗證集合測試集上表現一般,也就是說模型對未知樣本的 表現一般,泛化 generalization 能力較差。通俗一點地來說過擬合就是模型把資料學習的太徹底,以至於把雜訊資料的特徵也學習到了。在機器學習演算法中,我們常常將原始資料集分為三部分 trai...