過擬合(筆記整理)

2021-09-17 03:16:18 字數 1752 閱讀 5388

一、什麼是過擬合?

過擬合(overfitting)是指學習時選擇的模型所包含的引數過多(即模型容量很大),以至於出現這一模型對已知資料**得很好,但對未知資料**得很差的現象。

為了比較好理解,直接上圖:

第乙個圖是欠擬合,一條直線來擬合樣本,樣本分佈比較分散,直線難以擬合全部訓練集樣本,所以模型擬合能力不足,欠擬合。

第二個圖顯示的曲線就很好的擬合樣本分佈情況,雖然並沒有完全的跟這些樣本點重合,但是曲線比較貼近樣本分佈軌跡。

第三張圖是過擬合,曲線很好的擬合了樣本,跟樣本非常重疊,同時樣本中的噪音資料也被擬合,噪音資料影響了模型訓練。

二、過擬合產生的原因:

三、過擬合的危害

四、過擬合的解決辦法

及時止損

就是在驗證誤差開始上公升之前,就把網路的訓練停止了,具體做法是每次在給定的迭代次數k內,把出現比之前驗證誤差更小的引數(模型)記錄下來。如果從上次記錄最小值開始,迭代了k次仍然沒有發現新的更小的驗證誤差,那就認為已經過擬合,把當前驗證誤差最小的模型當做最優模型。

資料集擴增

過擬合是因為模型學習到了訓練集的獨有特性,那麼如果我們的訓練集能夠涵蓋所有樣本空間,那麼它就會學習到樣本特徵空間的普遍特性,而獨特性將不復存在,因為測試集不會超出樣本的特徵空間,所以結果和訓練集應該一致。

資料預處理

清洗資料、減少特徵維度、類別平衡。

正則化方法

正則化方法是指在進行目標函式或代價函式優化時,在目標函式或代價函式後面加上乙個正則項,一般有l1正則與l2正則等。

多種模型結合方法 bagging

bagging亦稱為ensemble(整合方法),這是一種通過結合幾個模型降低泛化誤差的技術。主要想法是通過對訓練資料有放回的取樣來訓練多個模型,然後讓所有模型表決(採用投票多數表決,取所有模型分類結果最多的分類作為結果)測試樣例的輸出。這種方法雖然在準確率和穩定性都會有提高,但是訓練多個模型的計算成本也是非常高的。

dropout(隨機失活)

設我們選取乙個隱層,在每一次梯度迭代中,讓隱層的每乙個單元以一定的概率p失活,這相當於訓練乙個新的子網路。下一次迭代繼續上述過程。dropout的底層思想其實也是把多個模型的結果放到一起,只不過實現方式是在乙個模型內部,而不是像bagging一樣,真正地去訓練多個模型。定性地理解一下,dropout實現的相當於每次迭代都在乙個隨機挑選的特徵子空間進行。而在測試階段,每個神經元都是存在的。權重引數w要乘以p,成為pw。

dropout率該怎麼選擇?

input的dropout概率推薦是0.8(新增雜訊);

hidden layer推薦是0.5(隨機生成的網路結構最多)

缺點:會明顯增加訓練時間,2~3倍。

batchnorm (批量標準化)

五、欠擬合

欠擬合比較好理解就是模型簡單或者說語料集偏少、特徵太多,在訓練集上的準確率不高,同時在測試集上的準確率也不高,這樣如何訓練都無法訓練出有意義的引數,模型也得不到較好的效果,這個優缺點就不說了,基本上欠擬合就選擇合理的模型,合理的特徵,提高訓練集就行。

六、無監督學習裡的「過擬合」?

在聚類演算法中,比如把每個點都過度歸為了乙個類別(極端情況),是否也是一種過擬合?比如k-means中引數選的太大導致據類過於精細的情況是會發生的。。。

過擬合欠擬合

一篇文章,帶你明白什麼是過擬合,欠擬合以及交叉驗證 在本文中也許你會掌握機器學習中最核心的概念 偏差 方差權衡.其主要想法是,你想建立盡可能 準確並且仍能適用於新資料的模型 這是泛化 危險的是,你可以輕鬆的在你制定的資料中建立過度擬合本地噪音的模型,這樣的模型是無用的,並且導致弱泛化能力,因為雜訊是...

過擬合 欠擬合

無論在機器學習還是深度學習建模當中都可能會遇到兩種最常見結果,一種叫過擬合 over fitting 另外一種叫欠擬合 under fitting 所謂過擬合 over fitting 其實就是所建的機器學習模型或者是深度學習模型在訓練樣本中表現得過於優越,導致在驗證資料集以及測試資料集中表現不佳。...

擬合和過擬合

x y example h x 損失函式 j theta 1 2sum h x 欠擬合和過擬合 乙個線性模型 擬合房價曲線 theta theta x 多個項進行擬合 對房價曲線進行擬合 線性擬合 欠擬合 underfitting theta thata x 二次擬合 多次項的擬合 過擬合 over...