權重衰減(weight decay), L2正則


正則化方法:防止過擬合,提高泛化能力

避免過擬合的方法有很多:early stopping、數據集擴增(Data augmentation)、正則化(Regularization)包括L1、L2(L2 regularization也叫weight decay),dropout。

 

權重衰減(weight decay)

L2正則化的目的就是為了讓權重衰減到更小的值,在一定程度上減少模型過擬合的問題,所以權重衰減也叫L2正則化。
 

L2正則化與權重衰減系數

L2正則化就是在代價函數后面再加上一個正則化項:

 

 

其中C0代表原始的代價函數,后面那一項就是L2正則化項,它是這樣來的:所有參數w的平方的和,除以訓練集的樣本大小n。λ就是正則項系數,權衡正則項與C0項的比重。另外還有一個系數1/2,1/2 1/211經常會看到,主要是為了后面求導的結果方便,后面那一項求導會產生一個2,與1/2相乘剛好湊整為1。系數λ就是權重衰減系數。

為什么可以對權重進行衰減

我們對加入L2正則化后的代價函數進行推導,先求導:

 

 可以發現L2正則化項對b的更新沒有影響,但是對於w的更新有影響:

 

 

在不使用L2正則化時,求導結果中w前系數為1,現在w前面系數為1-ηλ/n,因為η、λ、n都是正的,所以1-ηλ/n小於1,它的效果是減小w,這也就是權重衰減(weight decay)的由來。當然考慮到后面的導數項,w最終的值可能增大也可能減小。
另外,需要提一下,對於基於mini-batch的隨機梯度下降,w和b更新的公式跟上面給出的有點不同:

 

 對比上面w的更新公式,可以發現后面那一項變了,變成所有導數加和,乘以η再除以m,m是一個mini-batch中樣本的個數。

權重衰減(L2正則化)的作用

作用:權重衰減(L2正則化)可以避免模型過擬合問題。
思考:L2正則化項有讓w變小的效果,但是為什么w變小可以防止過擬合呢?
原理:(1)從模型的復雜度上解釋:更小的權值w,從某種意義上說,表示網絡的復雜度更低,對數據的擬合更好(這個法則也叫做奧卡姆剃刀),而在實際應用中,也驗證了這一點,L2正則化的效果往往好於未經正則化的效果。(2)從數學方面的解釋:過擬合的時候,擬合函數的系數往往非常大,為什么?如下圖所示,過擬合,就是擬合函數需要顧忌每一個點,最終形成的擬合函數波動很大。在某些很小的區間里,函數值的變化很劇烈。這就意味着函數在某些小區間里的導數值(絕對值)非常大,由於自變量值可大可小,所以只有系數足夠大,才能保證導數值很大。而正則化是通過約束參數的范數使其不要太大,所以可以在一定程度上減少過擬合情況。

 

 


原文鏈接:https://blog.csdn.net/program_developer/java/article/details/80867468


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM