導航:首頁 > 解決方法 > 過擬合怎麼解決方法

過擬合怎麼解決方法

發布時間:2022-09-20 05:58:15

❶ 過擬合及解決方案

什麼

過擬合(overfitting)是指在模型參數擬合過程中的問題,由於訓練數據包含 抽樣誤差 ,訓練時,復雜的模型將抽樣誤差也考慮在內,將抽樣誤差也進行了很好的擬合。

具體表現就是最終模型在訓練集上效果好;在測試集上效果差。模型泛化能力弱。

為什麼

為什麼要解決過擬合現象?這是因為我們擬合的模型一般是用來預測未知的結果(不在訓練集內),過擬合雖然在訓練集上效果好,但是在實際使用時(測試集)效果差。同時,在很多問題上,我們無法窮盡所有狀態,不可能將所有情況都包含在訓練集上。所以,必須要解決過擬合問題。

為什麼在機器學習中比較常見?這是因為機器學習演算法為了滿足盡可能復雜的任務,其模型的擬合能力一般遠遠高於問題復雜度,也就是說,機器學習演算法有「擬合出正確規則的前提下,進一步擬合雜訊」的能力。

而傳統的函數擬合問題(如機器人系統辨識),一般都是通過經驗、物理、數學等推導出一個含參模型,模型復雜度確定了,只需要調整個別參數即可。模型「無多餘能力」擬合雜訊。

怎麼

如何防止過擬合:

主要是以下4點

1. 獲取更多數據

這是解決過擬合最有效的方法,只要給足夠多的數據,讓模型「看見」盡可能多的「例外情況」,它就會不斷修正自己,從而得到更好的結果:

如何獲取更多數據,可以有以下幾個方法:

2. 使用合適的模型

前面說了,過擬合主要是有兩個原因造成的:數據太少 + 模型太復雜。所以,我們可以通過使用合適復雜度的模型來防止過擬合問題,讓其足夠擬合真正的規則,同時又不至於擬合太多抽樣誤差。

(PS:如果能通過物理、數學建模,確定模型復雜度,這是最好的方法,這也就是為什麼深度學習這么火的現在,我還堅持說初學者要學掌握傳統的建模方法。)

對於神經網路而言,我們可以從以下四個方面來 限制網路能力

2.1 網路結構 Architecture

這個很好理解,減少網路的層數、神經元個數等均可以限制網路的擬合能力;

2.2 訓練時間 Early stopping

對於每個神經元而言,其激活函數在不同區間的性能是不同的:

當網路權值較小時,神經元的激活函數工作在線性區,此時神經元的擬合能力較弱(類似線性神經元)。

有了上述共識之後,我們就可以解釋為什麼限制訓練時間(early stopping)有用:因為我們在初始化網路的時候一般都是初始為較小的權值。訓練時間越長,部分網路權值可能越大。如果我們在合適時間停止訓練,就可以將網路的能力限制在一定范圍內。

2.3 限制權值 Weight-decay,也叫正則化(regularization)

原理同上,但是這類方法直接將權值的大小加入到 Cost 里,在訓練的時候限制權值變大。以 L2 regularization 為例:

訓練過程需要降低整體的 Cost,這時候,一方面能降低實際輸出與樣本之間的誤差C 0 ,也能降低權值大小。

2.4 增加雜訊 Noise

給網路加雜訊也有很多方法:

2.4.1 在輸入中加雜訊:

雜訊會隨著網路傳播,按照權值的平方放大,並傳播到輸出層,對誤差 Cost 產生影響。推導直接看 Hinton 的 PPT 吧:

在輸入中加高斯雜訊,會在輸出中生成 Sigma_isigma^2_icdot w^2_i 的干擾項。訓練時,減小誤差,同時也會對雜訊產生的干擾項進行懲罰,達到減小權值的平方的目的,達到與 L2 regularization 類似的效果(對比公式)。

2.4.2 在權值上加雜訊

在初始化網路的時候,用 0 均值的高斯分布作為初始化。Alex Graves 的手寫識別 RNN 就是用了這個方法

2.4.3 對網路的響應加雜訊

如在前向傳播過程中,讓默寫神經元的輸出變為 binary 或 random。顯然,這種有點亂來的做法會打亂網路的訓練過程,讓訓練更慢,但據 Hinton 說,在測試集上效果會有顯著提升 (But it does significantly better on the test set!)。

3. 結合多種模型

簡而言之,訓練多個模型,以每個模型的平均輸出作為結果。

從 N 個模型里隨機選擇一個作為輸出的期望誤差 <[t-y_i]^2> ,會比所有模型的平均輸出的誤差 <[t-ar{y}]^2> 大 (我不知道公式里的圓括弧為什麼顯示不了)

大概基於這個原理,就可以有很多方法了:

3.1 Bagging

簡單理解,就是分段函數的概念:用不同的模型擬合不同部分的訓練集。以隨機森林(Rand Forests)為例,就是訓練了一堆互不關聯的決策樹。但由於訓練神經網路本身就需要耗費較多自由,所以一般不單獨使用神經網路做 Bagging。

3.2 Boosting

既然訓練復雜神經網路比較慢,那我們就可以只使用簡單的神經網路(層數、神經元數限制等)。通過訓練一系列簡單的神經網路,加權平均其輸出。

3.3 Dropout

這是一個很高效的方法。

在訓練時, 每次 隨機(如 50% 概率)忽略隱層的某些節點;這樣,我們相當於隨機從 2^H 個模型中采樣選擇模型;同時,由於每個網路只見過一個訓練數據(每次都是隨機的新網路),所以類似 bagging 的做法,這就是我為什麼將它分類到「結合多種模型」中;

此外,而不同模型之間權值共享(共同使用這 H 個神經元的連接權值),相當於一種權值正則方法,實際效果比 L2 regularization 更好。

4. 貝葉斯方法

這部分我還沒有想好怎麼才能講得清楚,為了不誤導初學者,我就先空著,以後如果想清楚了再更新。當然,這也是防止過擬合的一類重要方法。

❷ 如何防止神經網路過擬合,用什麼方法可以防止

1、正則化
2、early stopping
3、貝葉斯優化
你用的庫里一定會有這些東西。

但這個問題不可能從根本上解決。

❸ 過擬合解決辦法之一:權重衰減

用於對付過擬合問題

權重衰減等價於 L2 范數正則化(regularization)

我們知道線性回歸損失函數例如:

將權重參數用向量 w=[w1,w2] 表示,帶有 L2 范數懲罰項的新損失函數為:

其中超參數 λ>0 。當權重參數均為0時,懲罰項最小。當 λ 較大時,懲罰項在損失函數中的比重較大,這通常會使學到的權重參數的元素較接近0。當 λ 設為0時,懲罰項完全不起作用。

上式中 L2 范數平方 展開後得到 。有了 L2 范數懲罰項後,在小批量隨機梯度下降中,權重 w1 和 w2 的迭代方式更改為:

我們以高維線性回歸為例來引入一個過擬合問題,並使用權重衰減來應對過擬合。設數據樣本特徵的維度為p。對於訓練數據集和測試數據集中特徵為x1,x2,…,xp的任一樣本,我們使用如下的線性函數來生成該樣本的標簽:

其中雜訊項 ϵ 服從均值為0、標准差為0.01的正態分布。為了較容易地觀察過擬合,我們考慮高維線性回歸問題,如設維度 p=200 ;同時,我們特意把訓練數據集的樣本數設低,如20。

數據導入

可以看到,過擬合中幾個周期後,訓練誤差急速下降,導致訓練誤差比測試誤差小很多

可以看到,使用權重衰減之後,訓練誤差

❹ 機器學習中用來防止過擬合的方法有哪些

比如用Ensemble類的,例如adaboost那樣,不訓練單個分類而是平均多個弱分類。
類似的方法對深度神經網路而言有Random Dropout,訓練的過程中每次都隨機遮蔽一些神經元(比如用Binomial隨機出1或者0 ,概率為p),保證實際測試的時候,網路的輸出類似於訓練時隨機遮蔽過後的不同的神經網路的平均。就結果而言也可以緩解過擬合。
還有提早終止訓練的。
不過更普遍的方法一般都是歸一化,用L2或者L1來壓制模型本身的復雜度。參考「Structural Risk Minimization」。

❺ 如何解決過擬合問題具體怎麼做

這是一個model selection的問題,一般可採用的方法有兩種:cross-validation和regularization。當然也可以以bayes的角度來看,增加先驗,這種方法一定程度上可以解釋regularization,以及解超參數問題。

❻ 機器學習中用來防止過擬合的方法有哪些

防止過擬合的方法:

1,從模型&數據角度。

獲取更多數據,你的模型可以存儲很多很多的信息,這意味著你輸入模型的訓練數據越多,模型就越不可能發生過擬合。原因是隨著你添加更多數據,模型會無法過擬合所有的數據樣本,被迫產生泛化以取得進步。

收集更多的數據樣本應該是所有數據科學任務的第一步,數據越多會讓模型的准確率更高,這樣也就能降低發生過擬合的概率。

2,數據增強&雜訊數據。

收集更多的數據會比較耗時耗力。如果沒有時間和精力做這個,應該嘗試讓你的數據看起來更多元化一些。利用數據增強的方法可以做到這一點,這樣模型每次處理樣本的時候,都會以不同於前一次的角度看待樣本。這就提高了模型從每個樣本中學習參數的難度。

3,簡化模型

即時你現在手中獲取了所有需要的數據,如果你的模型仍然過擬合訓練數據集,可能是因為模型過於強大。那麼你可以試著降低模型的復雜程度。

4,從訓練過程角度。

大部分情況下,模型會首先學習數據的正確分布,然後在某個時間點上開始對數據過擬合。通過識別模型是從哪些地方開始發生轉變的,那麼就可以在過擬合出現之前停止模型的學習過程。和前面一樣,通過查看隨著時間推移的訓練錯誤,就可以做到這一點。

5,從正則化角度。

正則化是指約束模型的學習以減少過擬合的過程。它可以有多種形式,下面我們看看部分形式。L1和L2正則化 正則化的一個最強大最知名的特性就是能向損失函數增加「懲罰項」(penalty)。

所謂『懲罰』是指對損失函數中的某些參數做一些限制。最常見的懲罰項是L1和L2:L1懲罰項的目的是將權重的絕對值最小化,L2懲罰項的目的是將權重的平方值最小化。

❼ 怎麼解決cnn matlab小樣本過擬合的問題

抑制過擬合的方法通常包括:
(1)減少演算法迭代輪數。
(2)增加L1正則和L2正則。
(3)增加訓練樣本數目。
(4)減少模型的參數個數。

❽ 機器學習 matlab 過擬合 怎麼辦

抑制過擬合的方法通常包括:
(1)減少演算法迭代輪數
(2)增加L1正則和L2正則
(3)增加訓練樣本數目
(4)減少模型的參數個數

❾ 過擬合怎麼辦

解決方法

1)在神經網路模型中,可使用權值衰減的方法,即每次迭代過程中以某個小因子降低每個權值。

2)選取合適的停止訓練標准,使對機器的訓練在合適的程度;

3)保留驗證數據集,對訓練成果進行驗證;

4)獲取額外數據進行交叉驗證;

5)正則化,即在進行目標函數或代價函數優化時,在目標函數或代價函數。
————————————————
版權聲明:本文為CSDN博主「「已注銷」」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/jingbo18/article/details/80609006

❿ 什麼是「過擬合」,如何判斷,常見的原因是什麼

從標準定義來說,過擬合是指,給定一個假設空間H,一個假設h屬於H,如果存在其他的假設h』屬於H,使得在訓練樣例上h的錯誤率比h』小,但在整個實例分布上h』比h的錯誤率小,那麼就說假設h過度擬合訓練數據。判斷方法是,模型在驗證集合上和訓練集合上表現都很好,而在測試集合上變現很差。

常見原因主要是學習過度和樣本特徵不均衡,如果細分,還可以包括(並未能列舉全部原因)。

1、建模樣本選取有誤,樣本標簽錯誤等,導致選取的樣本數據不足以代表預定的分類規則。

2、樣本噪音干擾過大,使得機器將學習了噪音,還認為是特徵,從而擾亂了預設的分類規則。

3、假設的模型無法合理存在,或者說是假設成立的條件實際並不成立。

4、參數太多,模型復雜度過高。

5、對於tree-based模型,如果我們對於其深度與split沒有合理的限制,有可能使節點只包含單純的事件數據(event)或非事件數據(no event),使其雖然可以完美匹配(擬合)訓練數據,但是無法適應其他數據集。

6、對於神經網路模型,權值學習迭代次數太多(Overtraining),BP演算法使權值可能收斂過於復雜的決策面。

解決方法,模型上,神經網路加dropout,batch normalization,基於樹的模型限制深度,加入正則化項等,設置提前終止條件。數據上,增加數據集,對數據集進行增強處理(augmentation)。

閱讀全文

與過擬合怎麼解決方法相關的資料

熱點內容
開挖有哪些方法 瀏覽:301
魚塘塌陷最快的解決方法 瀏覽:444
要如何快速減肥的方法 瀏覽:588
買手機記賬方法 瀏覽:293
座椅模塊電腦針腳確定方法 瀏覽:14
正確取葯方法是 瀏覽:857
多級泵安裝方法 瀏覽:94
黑坑釣黑魚的最佳方法 瀏覽:78
內嵌鈦金條幾字形安裝方法 瀏覽:29
申論教育的手段和方法有哪些 瀏覽:403
音標如何掌握方法 瀏覽:94
瞄怎麼使用方法 瀏覽:903
電信呼叫轉移怎麼設置方法 瀏覽:91
怎樣可以使胸變大的方法視頻 瀏覽:751
三明熱電合金分析儀使用方法 瀏覽:285
常用的矢量數據拼接方法包括 瀏覽:42
長高訓練方法例表 瀏覽:246
除鐵綉用什麼方法 瀏覽:412
蘋果電池百分比在哪裡設置方法 瀏覽:256
森林臻鑽的食用方法 瀏覽:366