防止過擬合的幾種方法

什麼事過擬合?

過擬合(overfitting)是指在模型參數擬合過程中的問題,由於訓練數據包含抽樣誤差,訓練時,複雜的模型將抽樣誤差也考慮在內,將抽樣誤差也進行了很好的擬合。
具體表現就是最終模型在訓練集上效果好;在測試集上效果差。模型泛化能力弱。

1:正則化

1.1 L1 正則

在這裏插入圖片描述

1.2 L2 正則

在這裏插入圖片描述
L1正則與L2正則的思想就是不能夠一味的去減小損失函數,你還得考慮到模型的複雜性,通過限制參數的大小,來限制其產生較爲簡單的模型,這樣就可以降低產生過擬合的風險。

在優化損失函數的時候L1正則化會產生稀疏矩陣,導致一部分w爲0,注意這也是L1正則化的核心思想。產生稀疏矩陣之後,一部分w爲0,一部分不爲0,這樣即可對特徵進行選擇。選擇比較重要、明顯的特徵作爲分類和預測的依據,拋棄那些不重要的特徵。

L2正則化則是趨向於把所有參數w都變得比較小,一般認爲參數w比較小的時候,模型比較簡單。直觀上來說,L2正則化的解都比較小,抗擾動能力強。在求解過程中,L2通常傾向讓權值儘可能小,最後構造一個所有參數都比較小的模型。因爲一般認爲參數值小的模型比較簡單,能適應不同的數據集,也在一定程度上避免了過擬合現象。參數足夠小,數據偏移得多一點也不會對結果造成什麼影響,可以說“抗擾動能力強”。

2:BN

Batch Normalization有兩個功能:

  • 可以加快訓練和收斂速度
  • 可以防止過擬合:BN的使用使得一個mini-batch中的所有樣本都被關聯在了一起,因此網絡不會從某一個訓練樣本中生成確定的結果

3:提前終止

4:增加樣本數量

5:Dropout算法

最直觀的原因其實就是:防止參數過分依賴訓練數據,增加參數對數據集的泛化能力。因爲在實際訓練的時候,每個參數都有可能被隨機的Drop掉,所以參數不會過分的依賴某一個特徵的數據,而且不同參數之間的相互關聯性也大大減弱,這些操作都可以增加泛化能力。在神經網絡進行訓練的時候,讓部分神經元失活,這樣就阻斷了部分神經元之間的協同作用,從而強制要求一個神經元和隨機挑選出的神經元共同進行工作,減輕了部分神經元之間的聯合適應性。

更爲深入的來講,Dropout其實是一種分佈式表示:

分佈式表徵(Distributed Representation),是人工神經網絡研究的一個核心思想。那什麼是分佈式表徵呢?簡單來說,就是當我們表達一個概念時,神經元和概念之間不是一對一對應映射(map)存儲的,它們之間的關係是多對多。具體而言,就是一個概念可以用多個神經元共同定義表達,同時一個神經元也可以參與多個不同概念的表達,只不過所佔的權重不同罷了。

舉例來說,對於“小紅汽車”這個概念,如果用分佈式特徵地表達,那麼就可能是一個神經元代表大小(形狀:小),一個神經元代表顏色(顏色:紅),還有一個神經元代表車的類別(類別:汽車)。只有當這三個神經元同時被激活時,就可以比較準確地描述我們要表達的物體。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章