[機器學習]正則化項L1和L2的學習與理解

一,正則化(Regularization)

機器學習中幾乎都可以看到損失函數後面會添加一個額外項,常用的額外項一般有兩種,一般英文稱作 1\ell_1-normell2ell_2-norm,中文稱作 L1正則化L2正則化,或者 L1範數L2範數

L1正則化和L2正則化可以看做是損失函數的懲罰項。所謂『懲罰』是指對損失函數中的某些參數做一些限制。對於線性迴歸模型,使用L1正則化的模型建叫做Lasso迴歸,使用L2正則化的模型叫做Ridge迴歸(嶺迴歸)。下圖是Python中Lasso迴歸的損失函數,式中加號後面一項αw1\alpha||w||_1即爲L1正則化項。
在這裏插入圖片描述
下圖是Python中**Ridge迴歸(嶺迴歸)**的損失函數,式中加號後面一項αw22\alpha||w||_2^2 即爲L2正則化項。
在這裏插入圖片描述
一般迴歸分析中www表示特徵的係數,從上式可以看到正則化項是對係數做了處理(限制)。L1正則化和L2正則化的說明如下

  • L1正則化是指權值向量www中各個元素的絕對值之和,通常表示爲w1||w||_1
  • L2正則化是指權值向量www中各個元素的平方和然後再求平方根(可以看到Ridge迴歸的L2正則化項有平方符號),通常表示爲w2||w||_2
    一般都會在正則化項之前添加一個係數,Python的機器學習包sklearn中用α\alpha表示,一些文章也用λ\lambda表示。這個係數需要用戶指定。
    **那添加L1和L2正則化有什麼用?**下面是L1正則化和L2正則化的作用,這些表述可以在很多文章中找到。
  • L1正則化可以產生稀疏權值矩陣,即產生一個稀疏模型,可以用於特徵選擇
  • L2正則化可以防止模型過擬合(overfitting);一定程度上,L1也可以防止過擬合

稀疏模型與特徵選擇的關係

上面提到L1正則化有助於生成一個稀疏權值矩陣,進而可以用於特徵選擇。爲什麼要生成一個稀疏矩陣?

稀疏矩陣指的是很多元素爲0,只有少數元素是非零值的矩陣,即得到的線性迴歸模型的大部分系數都是0. 通常機器學習中特徵數量很多,例如文本處理時,如果將一個詞組(term)作爲一個特徵,那麼特徵數量會達到上萬個(bigram)。在預測或分類時,那麼多特徵顯然難以選擇,但是如果代入這些特徵得到的模型是一個稀疏模型,表示只有少數特徵對這個模型有貢獻,絕大部分特徵是沒有貢獻的,或者貢獻微小(因爲它們前面的係數是0或者是很小的值,即使去掉對模型也沒有什麼影響),此時我們就可以只關注係數是非零值的特徵。這就是稀疏模型與特徵選擇的關係

二, L1和L2正則化的直觀理解

這部分內容將解釋爲什麼L1正則化可以產生稀疏模型(L1是怎麼讓係數等於零的),以及爲什麼L2正則化可以防止過擬合

正則化和特徵選擇的關係

假設有如下帶L1正則化的損失函數
J=J0+aww(1) J = J_0 +a\sum_w|w| \tag{1}
其中J0J_0 是原始的損失函數,加號後面的一項是L1正則化項,α\alpha是正則化係數。注意到L1正則化是權值的絕對值之和,J是帶有絕對值符號的函數,因此J是不完全可微的。機器學習的任務就是要通過一些方法(比如梯度下降)求出損失函數的最小值。當我們在原始損失函數J0J_0後添加L1正則化項時,相當於對J0J_0 做了一個約束。令L=awwL=a\sum_w|w|, 則J=J0+LJ=J_0+L, 此時我們的任務變成在L約束下求出J0J_0 取最小值的解。考慮二維的情況,即只有兩個權值w1w^1w2w^2, 此時L=w1+w2L=∣w^1∣+∣w^2∣。對於梯度下降法,求解J0J_0 的過程可以畫出等值線,同時L1正則化的函數L也可以在w1w2w^1w^2 的二維平面上畫出來。如下圖:

在這裏插入圖片描述
圖1 L1正則化
圖中等值線是J0J_0的等值線,黑色方形是L函數的圖形。L=w1+w2L=∣w^1∣+∣w^2∣,這個函數畫出來就是一個方框(可以自己動手畫一下)。
在圖中,當J0J_0等值線與L圖形首次相交的地方就是最優解,上圖中J0J_0與L在L的一個頂點處相交,這個頂點就是最優解。注意到這個頂點的值是(w1,w2)=(0,w)(w^1,w^2)=(0,w)。可以直觀想象,因爲L函數有很多『突出的角』(二維情況下四個,多維情況下更多),J0J_0與這些角接觸的機率會遠大於與L其它部位接觸的機率(這是很直覺的想象,突出的角比直線的邊離等值線更近寫),而在這些角上,會有很多權值等於0(因爲角就在座標軸上),這就是爲什麼L1正則化可以產生稀疏模型,進而可以用於特徵選擇。

而正則化前面的係數α\alpha,可以控制L圖形的大小。α\alpha越小,L的圖形越大(上圖中的黑色方框);α越大,L的圖形就越小,可以小到黑色方框只超出原點範圍一點點,這是最優點的值(w1,w2)=(0,w)(w^1,w^2)=(0,w)中的ww可以取到很小的值。

類似地,假設有如下帶L2正則化的損失函數:
J=J0+aww2(2) J = J_0 +a\sum_w|w|^2 \tag{2}

同樣可以畫出他們在二維平面上的圖形,如下:
在這裏插入圖片描述
圖2 L2正則化
二維平面下L2正則化的函數圖形是個圓(絕對值的平方和,是個圓),與方形相比,被磨去了棱角。因此J0J_0與L相交時使得w1w^1w2w^2 等於零的機率小了許多(這個也是一個很直觀的想象),這就是爲什麼L2正則化不具有稀疏性的原因,因爲不太可能出現多數w都爲0的情況。

三,梯度角度分析

L1正則化

L1正則化的損失函數爲:
在這裏插入圖片描述
上式可知,當w大於0時,更新的參數w變小;當w小於0時,更新的參數w變大;所以,L1正則化容易使參數變爲0,即特徵稀疏化。

L2正則化

L2正則化的損失函數爲:
在這裏插入圖片描述
由上式可知,正則化的更新參數相比於未含正則項的更新參數多了
在這裏插入圖片描述
項,當w趨向於0時,參數減小的非常緩慢,因此L2正則化使參數減小到很小的範圍,但不爲0。

參考資料
[1] https://blog.csdn.net/jinping_shi/article/details/52433975
[2] https://blog.csdn.net/zouxy09/article/details/24971995
[3] https://www.cnblogs.com/wuliytTaotao/p/10837533.html
[4] https://blog.csdn.net/dpengwang/article/details/88355744

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