天天看點

對于L1和L2正則化的了解

首先我們先說明下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和L2正則化的了解

上面這張圖就很很好的展現了資料呈現過拟合的例子,為了學習到每一個資料的分布,最終形成的拟合函數的波動非常大。在某些很小的區間裡,函數值的變化很劇烈。這就意味着函數在某些小區間裡的導數值(絕對值)非常大,由于自變量值可大可小,是以隻有系數足夠大,才能保證導數值很大。

而正則化是通過限制參數的範數使其不要太大,是以可以在一定程度上減少過拟合情況。

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正則化和損失函數

在二維平面上畫下來。

對于L1和L2正則化的了解

我們設 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進行參數求導:

對于L1和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)的由來。

也是從圖像來解釋下。

對于L1和L2正則化的了解

二維平面下 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.正則化為什麼可以防止過拟合

繼續閱讀