過擬合本質上是訓練數據與真實數據之間的分布不一致導致的。理論上過擬合必然存在無法根除,只能緩解,因為你的訓練集數據是有限的,無法完全代表現實世界中的繁多複雜情況。

過擬合形成的原因大致可以分為數據和演算法兩個方面:

1. 數據層面:

- 訓練數據的分布和真實數據分布之間存在差異

- 訓練數據量級太小

2. 演算法層面:

- 學習器或演算法的複雜度遠遠高於訓練數據,此時演算法會學到訓練數據本身的一些特性而不是一般規律;

- 損失函數的設計不符合面臨的問題

所以針對不同的過擬合形成的原因,我們也需要運用不同的方法來解決。

1. 優化數據集:

- 收集更多的分布更合理的優質數據集,這是最有效最根本但也最難做到的辦法,畢竟人工標註的數據集成本太高;

- 對已有數據集進行合理的數據增廣,例如圖像翻轉、平移、縮放、裁剪、亮度調整、拉伸、形變等等,但是不同的問題可能不一定適用所有的方法,應當結合對業務的理解和實際情況;

2. 優化學習器和演算法:

- 選擇合適的模型和演算法;

- 在訓練過程中進行合理的正則化,目的是為了制約模型和演算法的複雜度,即包括L1、L2、dropout等等;

- 當模型在驗證集上的表現開始下降的時候,停止訓練,即early stopping

- 集成學習,訓練多個模型,以每個模型的平均輸出作為結果。;

- 選擇和設計適合問題的損失函數;

回到題目,為何有了early stopping還需要L1,L2,dropout?

天下沒有免費的午餐!

沒有一種方法可以包治百病,通常需要不同的療法雙拳出擊!

L1、L2通常是加入loss function的正則項,它們起到的作用是抑制loss function的複雜度。

dropout則是在神經網路的訓練中,隨機使得部分神經元失活,從而減小神經網路的複雜度。

early stopping和以上的方法都不一樣,沒有減少任何複雜度,只是減少了訓練迭代的輪次。

用個不恰當的比喻,女神沖你笑了————&>女神喜歡你,這就是一個過擬合的過程(過度理解笑的含義)。

L1、L2、dropout就是給你一巴掌讓你清醒清醒,而early stopping就是直接不讓你見女神了。

總而言之,L1、L2、dropout、early stopping都是緩解過擬合的方法,雖然不能完全根除,但是每個方法都有自己的一些用處和提升,並沒有非此即彼的關係。


謝邀。

吳恩達在其深度學習系列網課的機器學習策略(ML Strategy)一課中,已經給出了答案。

結構化機器學習項目 - 網易雲課堂?

mooc.study.163.com圖標

我在這裡可以簡單解釋一下,若想真正理解還是推薦題主去刷一下這節課

吳恩達認為,任何作用在你的機器學習項目上的「策略」都應該保持「正交化」。所謂「正交化」,就是保持互相獨立,互不影響,共同作用

要理解正交化,可以聯想一下駕駛汽車。「方向盤」和「油門」就是兩個正交化的「策略」,方向盤負責控制汽車向左向右,油門負責汽車前進。二者互相獨立,互不影響,但在其共同作用下,汽車可以實現各方向上的移動。

在我們訓練一個機器學習項目時,一般都會經歷如下的四個階段:

階段一:Fit training set well on the loss function.

優化該階段可以採用的策略有:Bigger network, change optimizer...

階段二:Fit the dev set well.

優化該階段可以採用的策略有:Regularization, Bigger training set...

階段三:Fit the test set well.

優化該階段可以採用的策略有:Bigger dev set...

階段四:Performs well in the real world.

優化該階段可以採用的策略有:Change loss function, Change dev set...

這些策略都是正交化的,作用於不同的階段。

像是L1、L2、Dropout 這類 Regularization 方法,正是只作用於階段二的正交化策略。

而像「Early Stopping」這個方法,是同時影響階段一和階段二。即,若你使用了 Early Stopping,成功 fit dev set well 了,但代價是阻止了階段一的 fit training set well。就好像是你操控方向盤讓汽車右轉,但同時造成了汽車前進,這是違背我們的「正交化」原則的。

而使用 L1、L2、Dropout 這類 Regularization 方法,你可以放心大膽地先 fit training set well(即,不去影響階段一),在階段二再起作用。


個人感覺L1、L2和dropout是從數學原理上就能解釋防止過擬合的

早停是從經驗上制定的規則,而且要基於驗證集和訓練集的概率分布不一樣的假設,如果一樣實際就失去了防止過擬合的能力。


Early stopping是訓練數據集迭代收斂之前停止迭代來防止過擬合,比較直觀;

L1和L2規範化是權重衰減(weight decay),懲罰大的權重;

Dropout是隨機地刪除網路中一般隱藏的神經元,並且讓輸入層和輸出層的神經元保持不變;

每種方法都是不相同的,個人感覺第一種方法僅僅判斷validation data的準確率是否上升,通過這個來判斷是否過擬合,有點主觀;後兩者,都是對神經網路進行健壯性加強,讓神經網路自己來調節權重防止過擬合,比較客觀。


因為L1 L2等正則化方法的功能和性質並不相同,計算學習理論給出了證明。如樣本量、輸入數據稀疏性表現、概率約束強度、模型的表達能力等因素對不同正則化方法產生的影響是不同的,例如L1正則化通常意味著更理想的泛化誤差上界,但同時更難訓練。而對稀疏數據,例如One-hot編碼的分類離散數據,L1正則化被證明不能給出理想上界,並不適合。

所以我們需要不同的防止過擬合的方式,因為對於具體的場景,並沒有一個通用的萬能方法。需要我們來分析、選擇合適的方式。


單純就題主的問題回答。

過擬合的根本原因從統計機器學習的角度來說是訓練集和測試集的分布差異導致的。

它的存在是不可消除的,只能用各種手段來減弱。

為什麼還要l1,l2,dropout?因為這些手段可以增強泛化性,進一步減輕過擬合。


我覺得可以這樣理解,加入了這些防止過擬合的方法包括data augmentation 等,可以使得模型訓練更多的epoch才到達需要early stop的節點,讓模型可以更充分的擬合數據,提升擬合能力。如果不加這些抑制過擬合的方法,在模型的擬合能力較差的時候就發生了過擬合現象而停止訓練,精度會較低。


推薦閱讀:
相关文章