機器學習中的L1正則,L2正則的理解

一.在深度學習中,影響整個模型最後效果的我認爲有3個因素:

1.數據的質量,多少.
2.網絡的結構,網絡的深度等.
3.損失函數的設計.

最常用也是最容易想到的損失函數就是L1損失和L2損失.這也是很多深度學習論文的損失函數的基礎項目.
對於L1損失,L2損失,相信很多看過吳恩達機器學習課程的同學都會知道**“正則項”**的概念(L1-norm,L2-norm),在tensorflow中,也有專門的函數接口來幫助添加正則項,說白了,就是損失函數的懲罰項,給損失函數加一些約束,改變原本的最優解分佈.
下面總結下正則項的作用,爲什麼會起作用.

  1. L1-norm,L2-norm的作用:

L1-norm:L1正則化可以產生稀疏權值矩陣,即產生一個稀疏模型,可以用於特徵選擇,一定程度上也可以防止過擬合
L2-norm:L2正則化可以防止模型過擬合(overfitting)
這裏,什麼是稀疏模型,什麼又是特徵選擇,不急,慢慢來一個一個理解,最後再說overfitting.

稀疏模型和特徵選擇:
上面提到L1正則化有助於生成一個稀疏權值矩陣,進而可以用於特徵選擇。爲什麼要生成一個稀疏矩陣?
稀疏矩陣指的是很多元素爲0,只有少數元素是非零值的矩陣,即得到的線性迴歸模型的大部分系數都是0.通常機器學習
中特徵數量很多,例如文本處理時,如果將一個詞組(term)作爲一個特徵,那麼特徵數量會達到上萬個(bigram)。在
預測或分類時,那麼多特徵顯然難以選擇,但是如果代入這些特徵得到的模型是一個稀疏模型,表示只有少數特徵對這個
模型有貢獻,絕大部分特徵是沒有貢獻的,或者貢獻微小(因爲它們前面的係數是0或者是很小的值,即使去掉對模型也
沒有什麼影響),此時我們就可以只關注係數是非零值的特徵。這就是稀疏模型與特徵選擇的關係。
這裏,大家可以再去查下PCA降維分解,PCA分解最後就是選取矩陣中部分重要的特徵向量來表示特徵.

L1-norm怎麼實現的稀疏矩陣?:(爲什麼L1正則化可以產生稀疏模型?(L1是怎麼讓係數等於零的?))
備註:上面三個問題是等價的

假設有如下帶L1正則化的損失函數
在這裏插入圖片描述
其中J0J0​是原始的損失函數,加號後面的一項是L1正則化項,αα是正則化係數。注意到L1正則化是權值的絕對值之和,JJ是帶有絕對值符號的函數,因此JJ是不完全可微的。
機器學習的任務就是要通過一些方法(比如梯度下降)求出損失函數的最小值。當我們在原始損失函數J0J0​後添加L1正則化項時,相當於對J0J0​做了一個約束。令L=α∑w∣w∣L=α∑w​∣w∣,則J=J0+LJ=J0​+L,此時我們的任務變成在LL約束下求出J0J0​取最小值的解(這裏就是改變了最優解的分佈)
考慮二維的情況,即只有兩個權值w1w1和w2w2,此時L=∣w1∣+∣w2∣L=∣w1∣+∣w2∣對於梯度下降法,求解J0J0​的過程可以畫出等值線,同時L1正則化的函數LL也可以在w1w2w1w2的二維平面上畫出來。如下圖:
在這裏插入圖片描述
圖中等值線是J0J0​的等值線,黑色方形是LL函數的圖形。在圖中,當J0J0​等值線與LL圖形首次相交的地方就是最優解。
可以發現,原來沒有L1-norm時候,最優解在等值線的中心,現在在這個黑點這裏,發生了變化,並且這個黑點的值(w1,w2)=(0,w),
可以直觀想象,因爲L函數有很多『突出的角』(二維情況下四個,多維情況下更多),J0等值線與這些角接觸的機率會遠大於與L其它部位接觸的機率,而在這些角上,會有很多權值等於0,這就讓矩陣很多的權重係數是0 ,產生了稀疏矩陣,進而有了上面的說的稀疏模型,然後就可以進行特徵選擇了.
α係數對正則項的影響:
正則化前面的係數α,可以控制L圖形的大小。α越小,L的圖形越大(上圖中的黑色方框);α越大,L的圖形就越小,可以小到黑色方框只超出原點範圍一點點,這是最優點的值(w1,w2)=(0,w)中的w可以取到很小的值。
這樣說還是不好理解,換種說法吧:正則項整體大小不變時,α越小(懲罰越弱),相應的w就越大(w越不受限),圖形就越大(越容易過擬合)。α越大,對原始模型中特徵係數的懲罰作用(降低過擬合作用)越明顯,黑色方框越小,此時纔會使得最優解中的非零值越小,也就是起到了很好的懲罰作用;相反α越小,懲罰作用越不明顯,黑色方框越大,最優解越大.在具體的深度學習中,α的選取是靠調試的,沒有越大越好,也沒有越小越好.

L2-norm是沒有稀疏性的特徵的:
L2正則化的損失函數:

在這裏插入圖片描述
二維平面下L2正則化的函數圖形是個圓,與方形相比,被磨去了棱角。因此J0與L相交時使得w1或w2等於零的機率小了許多,這就是爲什麼L2正則化不具有稀疏性的原因。

L2正則化和過擬合

擬合過程中通常都傾向於讓權值儘可能小,最後構造一個所有參數都比較小的模型。因爲一般認爲參數值小的模型比較簡
單,能適應不同的數據集,也在一定程度上避免了過擬合現象。可以設想一下對於一個線性迴歸方程,若參數很大,那麼
只要數據偏移一點點,就會對結果造成很大的影響;但如果參數足夠小,數據偏移得多一點也不會對結果造成什麼影響,
專業一點的說法是『抗擾動能力強』

至於爲什麼L2-norm可以獲得值最小的參數?記住就行,公式推導可以參見最優化教材.
L2正則化參數選取
λ越大,θj衰減得越快。另一個理解可以參考圖2,λ越大,L2圓的半徑越小,最後求得代價函數最值時各參數也會變得很小。

L1正則化參數選取
通常越大的λλ可以讓代價函數在參數爲0時取到最小值。
在這裏插入圖片描述
雖然λ=0.5可以取最小值,但是λ=2的最優解在0附近,所以,實際中,還是選取λ=2爲正則化參數.

博客參考:https://blog.csdn.net/jinping_shi/article/details/52433975,謝謝作者

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