過擬合以及解決辦法

2021-06-23 08:10:24 字數 2064 閱讀 3266

過擬合:為了得到一致假設而使假設變得過度複雜稱為過擬合「乙個過配的模型試圖連誤差(噪音)都去解釋(而實際上噪音又是不需要解釋的),導致泛化能力比較差,顯然就過猶不及了。」 這句話很好的詮釋了過擬合產生的原因,但我認為這只是一部分原因,另乙個原因是模型本身並不能很好地解釋(匹配)資料,也就是說觀測到的資料並不是由該模型產生的。

「統計學家說:我們讓資料自己說話。言下之意就是要摒棄先驗概率。而貝葉斯支持者則說:資料會有各種各樣的偏差,而乙個靠譜的先驗概率則可以對這些隨機噪音做到健壯。事實證明貝葉斯派勝利了,勝利的關鍵在於所謂先驗概率其實也是經驗統計的結果。」 事實上貝葉斯本身就是乙個基於統計的模型……

然而,文中以樹後的箱子為例,闡述似然也有選擇簡單模型的傾向。我對此有疑義。似然是選擇與觀測最匹配的結果。根據當前的觀測結果,顯然乙個箱子的模型是最符合觀測的,也就是說,如果樹兩邊的箱子高矮不一,顏色不同,那麼兩個箱子的模型就是最匹配的。因此,似然只是選擇與觀測最匹配的模型,而並沒有選擇簡單模型的傾向。否則,就不會有那麼嚴重的過擬合現象發生。

文中還提到:「反之,如果背後的模型是一條直線,那麼根據該模型生成一堆近似構成直線的點的概率就大得多了。」 這裡的表述有問題,既然已經把模型看成是直線了,那麼根據直線模型生成一堆近似構成直線的點的概率是接近1的。同理,我們既然已經認為可以用n-1階模型去擬合,那麼根據n-1階模型生成的n個點當然就是符合n-1階模型的,而不需要她去符合直線。 那麼問題究竟應該怎樣描述呢? 根據作者的意思問題應該這樣來描述,乙個多項式在平面上隨機生成的一堆 n 個點偏偏恰好近似構成一條直線的概率很小很小,然而一條直線在平面上隨機生成的一堆n個點(考慮隨機誤差)能擬合成乙個n-1階曲線的概率是1(一定能用乙個n-1階多項式來擬合)。換句話說,曲線上(n-1階多項式)隨機生成的點能被擬合成直線的概率接近於0,而直線上隨機生成的點能被擬合成曲線的概率接近1。因此,若一堆點即能用直線去擬合,也能用n-1階多項式擬合(必然),那麼,他屬於直線模型的概率更大。

二. 過擬合的產生

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

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

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

三.過度擬合解決方法

1.權值衰減. 

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

2.適當的stopping criterion

3.驗證資料

乙個最成功的方法是在訓練資料外再為演算法提供一套驗證資料,應該使用在驗證集合上產生最小誤差的迭代次數,不是總能明顯地確定驗證集合何時達到最小誤差.typically 30% of training patterns;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*,然後計算這些迭代次數的均值,作為最終需要的迭代次數。

5. 減少特徵

人工選擇,預留一些特徵

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

6. 正則化

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

**:

過擬合的通俗理解以及解決辦法

好比你想學習追妹子。先找你表妹問喜歡什麼,表妹說她喜歡乾淨帥氣的男生,還說她喜歡周杰倫,喜歡火鍋,喜歡酸菜魚,合計一百條規矩。你規規矩矩地按照要求學習,終於符合表妹的一切要求,0 error,訓練完成,超級自信準備出去試試追個妹子。可是換了個妹子,發現學到的似乎沒想象中有用。第二個妹子只要你乾淨帥氣...

過擬合 欠擬合及其解決辦法

1.什麼是過擬合?過擬合 overfitting 是指在模型引數擬合過程中的問題,由於訓練資料報含抽樣誤差,訓練時,複雜的模型將抽樣誤差也考慮在內,將抽樣誤差也進行了很好的擬合。具體表現就是最終模型在訓練集上效果好 在測試集上效果差。模型泛化能力弱。2 產生過擬合根本原因 1 觀察值與真實值存在偏差...

過擬合問題及解決辦法

原文 1 什麼是過擬合?一般提及到過擬合就是說在訓練集上模型表現很好,但是在測試集上效果很差,即模型的泛化能力不行。過擬合是模型訓練過程中引數擬合的問題,由於訓練資料本身有取樣誤差,擬合模型引數時這些取樣誤差都擬合進去就會帶來所謂的過擬合問題。2 機器學習中為什麼會容易出現過擬合?傳統的函式擬合問題...