1. 程式人生 > >L1正則化

L1正則化

  正則化項本質上是一種先驗資訊,整個最優化問題從貝葉斯觀點來看是一種貝葉斯最大後驗估計,其中正則化項對應後驗估計中的先驗資訊,損失函式對應後驗估計中的似然函式,兩者的乘積即對應貝葉斯最大後驗估計的形式,如果你將這個貝葉斯最大後驗估計的形式取對數,即進行極大似然估計,你就會發現問題立馬變成了損失函式+正則化項的最優化問題形式。

  

  在原始的代價函式後面加上一個L1正則化項,即所有權重w的絕對值的和,乘以λ/n:

 

  比原始的更新規則多出了η * λ * sgn(w)/n這一項。當w為正時,更新後的w變小。當w為負時,更新後的w變大——因此它的效果就是讓w往0靠,使網路中的權重儘可能為0,也就相當於減小了網路複雜度,防止過擬合。當w為0時怎麼辦?當w等於0時,|W|是不可導的,所以我們只能按照原始的未經正則化的方法去更新w,這就相當於去掉η*λ*sgn(w)/n這一項,所以可以規定sgn(0)=0,這樣就把w=0的情況也統一進來了。(在程式設計的時候,令sgn(0)=0,sgn(w>0)=1,sgn(w<0)=-1)