過擬合和欠擬合的一些問題

2021-10-07 16:50:58 字數 3033 閱讀 1423

三、產生過擬合原因

四、解決過擬合方法

圖一:欠擬合——模型擬合程度不高,資料距離擬合曲線較遠,或指模型沒有很好地捕捉到資料特徵,不能夠很好地擬合資料。

圖二:正常擬合

圖三:過擬合——模型擬合度好過頭了。

a.根本原因:特徵維度過少,模型過於簡單,導致擬合的函式無法滿足訓練集,誤差較大;

b.解決方法:增加特徵維度,增加訓練資料;

a.根本原因:特徵維度過多,模型假設過於複雜,引數過多,訓練資料過少,雜訊過多,導致擬合的函式完美的**訓練集,但對新資料的測試集**結果差。 過度的擬合了訓練資料,而沒有考慮到泛化能力。

b.解決方法:1)減少特徵維度;2)正則化,降低引數值。

過擬合主要是有兩個原因造成的:資料太少+模型太複雜

1. 獲取更多資料:從資料源頭獲取更多資料;資料增強(data augmentation) ;

2. 使用合適的模型:減少網路的層數、神經元個數等均可以限制網路的擬合能力;

3. dropout;

4. 正則化,在訓練的時候限制權值變大;

5. 限制訓練時間;通過評估測試;

6. 增加雜訊 noise:輸入時+權重上(高斯初始化);

7. 資料清洗(data ckeaning/pruning):將錯誤的label 糾正或者刪除錯誤的資料;

8. 結合多種模型:bagging用不同的模型擬合不同部分的訓練集;boosting只使用簡單的神經網路。

1、觀察值與真實值存在誤差

2、資料太少,無法描述問題真是分布

**3、

正則化是機器學習中最常見的過擬合解決方法,在損失函式中加入正則項來懲罰模型的引數,以此來降低模型的複雜度,常見的新增正則項的正則化技術有l1,l2正則化。

1)l1正則化:

l1正則化是基於l1範數的,且得出的引數是稀疏的。

j =j

0+α∑

w∣w∣

j=j_0+\alpha\sum_|w|

j=j0​+

αw∑​

∣w∣上述公式,j是我們的損失函式,在損失函式優化時,我們要使得損失函式無限小,要滿足這個結果,表示式中的第二項也必須無限小。

2)l2正則化:

原理和l1正則中差不多,但是l2正則化不會獲得稀疏解,只會將對模型貢獻不大的特徵所對應的引數置於無限小的值,以此來忽略該特徵對模型的影響。

j =j

0+α∑

ww2j=j_0+\alpha\sum_w^2

j=j0​+

αw∑​

w2正則化都是在通過控制模型引數的大小來降低模型的複雜度。

是決策樹中一種控制過擬合的方法。

它有預剪枝和後剪枝這兩種,常見的是兩種方法一起使用。

1)預剪枝:通過在訓練過程中控制樹深、葉子節點數、葉子節點中樣本的個數等來控制樹的複雜度;

2)後剪枝:在訓練好樹模型之後,採用交叉驗證的方式進行剪枝以找到最優的樹模型。

它主要是用在神經網路中的,在神經網路的訓練過程中我們會初始化一組較小的權值引數,此時模型的擬合能力較弱,通過迭代訓練來提高模型的擬合能力,隨著迭代次數的增大,部分的權值也會不斷的增大。

如果我們提前終止迭代可以有效的控制權值引數的大小,從而降低模型的複雜度。

權值共享最常見的就是在卷積神經網路中,權值共享的目的旨在減小模型中的引數,同時還能較少計算量。在迴圈神經網路中也用到了權值共享。

是深度學習中的一種避免過擬合的方法(沒辦法,深度學習模型太複雜,容易過擬合),新增雜訊的途徑有很多,可以在輸入資料上新增,增大資料的多樣性,可以在權值上新增雜訊,這種方法類似於l2正則化。

bm演算法是一種非常有用的正則化方法,而且可以讓大型的卷積神經網路快速收斂,同時還能提高分類的準確率,而且可以不需要使用區域性響應歸一化處理,也可以不需要加入dropout。bm演算法會將每一層的輸入值做歸一化處理,並且會重構歸一化處理之後的資料,確保資料的分布不會發生變化。

而且有很多變種,比如layer normalization,在rnn或者transformer中用的比較多。

上面的幾種方法都是操作在乙個模型上 ,通過改變模型的複雜度來控制過擬合。另一種可行的方法是結合多種模型來控制過擬合。

bagging和boosting是機器學習中的整合方法,多個模型的組合可以弱化每個模型中的異常點的影響,保留模型之間的通性,弱化單個模型的特性。

dropout是深度學習中最常用的控制過擬合的方法,主要用在全連線層處。dropout方法是在一定的概率上(通常設定為0.5,原因是此時隨機生成的網路結構最多)隱式的去除網路中的神經元,具體如下圖

dropout控制過擬合的思想和機器學習中的整合方法中的bagging類似,在每個batch更新的網路結構都有所不同,也就相當於在訓練時有很多個不同的子網路,在每次迭代時dropout的神經元都不一樣,因此對於整個模型引數而言,每次都會有一些引數不被訓練到。dropout會導致網路的訓練速度慢2、3倍,而且資料小的時候,dropout的效果並不會太好。

因此只會在大型網路上使用。

過擬合和欠擬合

嘗試不同的模型 既然有一種可靠的方法來測量模型精度,那麼可以嘗試使用其他模型,並檢視哪種模型可以提供最佳 但是對模型有什麼選擇?可以在scikit learn的文件中看到決策樹模型有很多選項 比您長期想要或需要的更多 最重要的選項決定了樹的深度。回想一下這個微課程的第一課,樹的深度是衡量它在進行 之...

欠擬合和過擬合

解決欠擬合問題,可以從以下三個方面入手 1 增加特徵項 在大多數情況下出現過擬合是因為沒有準確把握資料的主要特徵,可以嘗試在模型中加入更多的和原始資料有重要相關性的特徵來尋連搭建的模型,著牙嗎嗯得到的模型可能會有更好的泛化能力。2 構造複雜的多項式 3 減少正則化引數 解決過擬合問題 1 增大訓練的...

過擬合和欠擬合

乙個假設在訓練資料上,能夠獲得比其他假設更好的擬合,但是在訓練資料外的資料集上卻不能很好的擬合資料,此事認為這個模型出現了過擬合現象 模型過於複雜 原因 原始特徵過多,存在一些嘈雜特徵,模型過於複雜是因為模型嘗試去兼顧各個測試資料點 解決辦法 乙個假設在訓練集上不能獲得更好的擬合,但是在訓練資料集以...