首先我們先說明下L1和L2正則化的公式。
L1正則化公式:
C = C 0 + λ n ∑ w ∣ w ∣ C=C_{0}+\frac{\lambda}{n} \sum_{w}|w| C=C0+nλw∑∣w∣
L2正則化公式:
C = C 0 + λ 2 n ∑ w w 2 C=C_{0}+\frac{\lambda}{2 n} \sum_{w} w^{2} C=C0+2nλw∑w2
C0代表原始的代價函數
首先先說一下他們的相同點,就是都可以防止過拟合。那麼什麼是過拟合呢?我們先用一張圖來簡單描述下。
上面這張圖就很很好的展現了資料呈現過拟合的例子,為了學習到每一個資料的分布,最終形成的拟合函數的波動非常大。在某些很小的區間裡,函數值的變化很劇烈。這就意味着函數在某些小區間裡的導數值(絕對值)非常大,由于自變量值可大可小,是以隻有系數足夠大,才能保證導數值很大。
而正則化是通過限制參數的範數使其不要太大,是以可以在一定程度上減少過拟合情況。
L1正則化
先看下L1正則化是如何解決這個問題的。
C = C 0 + λ n ∑ w ∣ w ∣ C=C_{0}+\frac{\lambda}{n} \sum_{w}|w| C=C0+nλw∑∣w∣
首先我們對L1公式參數進行求導:
∂ C ∂ w = ∂ C 0 ∂ w + λ n sgn ( w ) \frac{\partial C}{\partial w}=\frac{\partial C_{0}}{\partial w}+\frac{\lambda}{n} \operatorname{sgn}(w) ∂w∂C=∂w∂C0+nλsgn(w)
上式中sgn(w)表示w的符号。那麼權重w的更新規則為:
w → w ′ = w − η λ n sgn ( w ) − η ∂ C 0 ∂ w w \rightarrow w^{\prime}=w-\frac{\eta \lambda}{n} \operatorname{sgn}(w)-\eta \frac{\partial C_{0}}{\partial w} w→w′=w−nηλsgn(w)−η∂w∂C0
比原始的更新規則多出了 η λ n sgn ( w ) \frac{\eta \lambda}{n} \operatorname{sgn}(w) nηλsgn(w)這一項。當w為正時,更新後的w變小。當w為負時,更新後的w變大——是以它的效果就是讓w往0靠近,使網絡中的權重盡可能為0,也就相當于減小了網絡複雜度(減小了參數的波動),防止過拟合。
當我們隻考慮二維的情況下,即隻有兩個權值 w 1 w_{1} w1和 w 2 w_{2} w2.此時我們可以将L1正則化和損失函數
在二維平面上畫下來。
我們設 J 0 J_{0} J0是損失函數, L L L為L1正則化函數。圖中等值線是 J 0 J_{0} J0的等值線,黑色方形是 L L L函數的圖形。在圖中,當 J 0 J_{0} J0等值線與 L L L圖形首次相交的地方就是最優解。上圖中 J 0 J_{0} J0與 L L L的一個頂點處相交,這個頂點就是最優解。注意到這個頂點的值是(w1,w2)=(0,w),可以直覺想象,因為 L L L函數有很多『突出的角』(二維情況下四個,多元情況下更多), J 0 J_0 J0與這些角接觸的機率會遠大于與 L L L其它部位接觸的機率,是以在這些角上,會有很多權值等于0,這就是為什麼L1正則化可以産生稀疏模型,進而可以用于特征選擇。
而正則化前面的系數 λ / n {\lambda}/{n} λ/n,可以控制 L L L圖形的大小。 λ / n {\lambda}/{n} λ/n越小, L L L的圖形越大(上圖中的黑色方框); λ / n {\lambda}/{n} λ/n越大, L L L的圖形就越小,可以小到黑色方框隻超出原點範圍一點點,這是最優點的值(w1,w2)=(0,w)中的 w w w可以取到很小的值。
L2正則化
那麼L2正則化是如何解決這個問題的。
C = C 0 + λ 2 n ∑ w w 2 C=C_{0}+\frac{\lambda}{2 n} \sum_{w} w^{2} C=C0+2nλw∑w2
先對L2進行參數求導:
可以發現L2正則化項對b的更新沒有影響,但是對于w的更新有影響:
w → w − η ∂ C 0 ∂ w − η λ n w = ( 1 − η λ n ) w − η ∂ C 0 ∂ w \begin{aligned} w & \rightarrow w-\eta \frac{\partial C_{0}}{\partial w}-\frac{\eta \lambda}{n} w \\ &=\left(1-\frac{\eta \lambda}{n}\right) w-\eta \frac{\partial C_{0}}{\partial w} \end{aligned} w→w−η∂w∂C0−nηλw=(1−nηλ)w−η∂w∂C0
在不使用L2正則化時,求導結果中w前系數為1,現在w前面系數為 1−ηλ/n ,因為η、λ、n都是正的,是以 ( 1 − η λ n ) \left(1-\frac{\eta \lambda}{n}\right) (1−nηλ)小于1,它的效果是減小 w w w,這也就是權重衰減(weight decay)的由來。
也是從圖像來解釋下。
二維平面下 L 2 L2 L2正則化的函數圖形是個圓,與方形相比,被磨去了棱角。是以 J 0 J_0 J0與 L L L相交時使得 w 1 w_{1} w1或 w 2 w_2 w2 等于零的機率小了許多,這就是為什麼L2正則化不具有稀疏性的原因。
L1正則化和L2正則化的差別
相同點上面已經說過了,都可以用于緩解過拟合。
不同點:
- L1可以讓一部分特征的系數縮小到0,進而間接實作特征選擇。是以L1适用于特征之間有關聯的情況。
- L2讓所有特征的系數都縮小,但是不會減為0,它會使優化求解穩定快速。是以L2适用于特征之間沒有關聯的情況
參考文獻
1.機器學習中正則化項L1和L2的直覺了解
2.L1和L2正則化差別
3.正則化為什麼可以防止過拟合