L1正則、L2正則、Batch Normalization、Dropout爲什麼能夠防止過擬合呢?

最近面試,被問到Batch Normalization爲什麼能夠防止過擬合,爲什麼能夠加快收斂速度,一時間沒有答上來(失敗啊…).現在簡單記錄下幾種深度學習中常用的防止過擬合的技巧,以及爲什麼能有防止過擬合作用.

L1正則:增加了參數矩陣的稀疏表達(參數矩陣中一部分參數爲0),可以進行特徵選擇,通過保留重要的特徵,捨棄不重要特徵,達到防止過擬合效果.

L2正則:將參數矩陣(y=wx+b,w就是矩陣參數)中的數變的比較小,這樣自變量(網絡輸入)變化時候(訓練數據變爲測試數據時候),因變量(網絡輸出)收到的影響會小,達到防止過擬合效果.

Batch Normalization(防止過擬合):在訓練中,BN的使用使得一個mini-batch中的所有樣本都被關聯在了一起,因此網絡不會從某一個訓練樣本中生成確定的結果。就是一個batch數據中每張圖片對應的輸出都受到一個batch所有數據影響,這樣相當於一個間接的數據增強,達到防止過擬合作用.
Batch Normalization(加速收斂速度):BN在訓練時候,會把每一層的Feature值約束到均值爲0,方差爲1,這樣每一層的數據分佈都會一樣,在二維等值線上的表現就是圓形,能加快梯度下降法的收斂速度,而且,數據被約束到均值爲0 ,方差爲1,相當於把數據從飽和區約束到了非飽和區,這樣求得的梯度值會更大,加速收斂,也避免了梯度消失和梯度爆炸問題.

dropout:防止參數過分依賴訓練數據,增加參數對數據集的泛化能力.
這裏可以記下這段話:比如,我們常在影視作品中看到這樣的場景,仇人相見分外眼紅,一人(A)發狠地說,“你化成灰,我都認識你(B)!”這裏並不是說B真的“化成灰”了,而是說,雖然時過境遷,物是人非,當事人B外表也變了很多(對於識別人A來說,B在其大腦中的信息存儲是殘缺的),但沒有關係,只要B的部分核心特徵還在,那A還是能夠把B認得清清楚楚、真真切切!人類的大腦還是真的厲害啊!
也就是說隨機丟掉網絡的一部分,相當於每次都有一個新的殘缺網絡,每個殘缺網絡都學到不同的局部特徵,多個殘缺網絡就能充分學到數據的局部特徵,這樣,測試數據不論怎麼變,只要有局部特徵(就是上面一段話中的化成灰),網絡就能起作用(我都認識你),這樣比總要比僅在單個健全網絡上進行特徵學習,其泛化能力來得更加健壯.

總結:4種方法都能防止過擬合,但是防止過擬合的原理不太一樣.

參考:https://blog.csdn.net/qq_29462849/article/details/83068421

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