防止過擬合以及解決過擬合

2021-09-01 10:18:13 字數 2053 閱讀 1603

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

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

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

文中還提到:「反之,如果背後的模型是一條直線,那麼根據該模型生成一堆近似構成直線的點的概率就大得多了。」 這裡的表述有問題,既然已經把模型看成是直線了,那麼根據直線模型生成一堆近似構成直線的點的概率是接近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。矩陣分解中經常會用到。

過擬合以及如何防止過擬合

過擬合即模型在訓練過程中對模型引數進行擬合的過程中,由於訓練資料集存在抽樣誤差 雜訊 複雜的模型在訓練的過程中會將抽樣誤差也一同進行擬合。這就導致訓練好的模型在訓練集上的表現很好,在測試集上的表現很差的原因。導致過擬合的主要原因有兩個 資料量太少和模型過於複雜 因為機器學習演算法在擬合出正確的規則後...

SVM防止過擬合

過擬合 overfitting 表現為在訓練資料上模型的 很準,在未知資料上 很差。過擬合主要是因為訓練資料中的異常點,這些點嚴重偏離正常位置。我們知道,決定svm最優分類超平面的恰恰是那些佔少數的支援向量,如果支援向量中碰巧存在異常點,那麼我們傻傻地讓svm去擬合這樣的資料,最後的超平面就不是最優...

dropout防止過擬合

l1 l2正則化是通過修改代價函式來實現的,而dropout則是通過修改神經網路本身來實現的,它是在訓練網路時用的一種技巧 trike 它的流程如下 假設我們要訓練上圖這個網路,在訓練開始時,我們隨機地 刪除 一半的隱層單元,視它們為不存在,得到如下的網路 保持輸入輸出層不變,按照bp演算法更新上圖...