L1相較於L2的稀疏性

L1相較於L2的稀疏性

在機器學習中,常見的正則化項有L1(L=|w| )和L2(L=||w||2 ),並且也經常會看到L1相較於L2有較高的稀疏性,雖然記住了這句話的內容,但總是不理解其具體含義,也不理解爲何又稀疏性,在研究了一番後,有了一些理解,因此分享給大家。
(本文部分內容和圖片引用自:https://www.zhihu.com/question/37096933?sort=created

什麼是稀疏性

相信大家都聽過一個名詞——稀疏矩陣,在矩陣中,若數值爲0的元素數目遠遠多於非0元素的數目時,則稱該矩陣爲稀疏矩陣;與之相反,若非0元素數目佔大多數時,則稱該矩陣爲稠密矩陣.
在矩陣中,如果矩陣元素0的數目非常多,則可以稱之爲稀疏矩陣。同理,L1的稀疏性,指的就是在加了L1正則項後,模型的解w ,有很多分量都是0。

爲何L1相較於L2能夠得到稀疏解

首先,用幾張圖片來大致解釋一下L1的稀疏性。
假設,我們有個Loss函數,L0=f(w) ,其特徵是一維,大致的loss曲線如下圖:
圖1
可以發現極小值是在圖中的綠色點處,w=0 處並不是最優解。

在分別加了L1正則項和L2正則項後,他們的曲線圖如下:
圖2
其中藍色的是加了L2正則項的loss曲線(L2=f(w)+ηw2 ),粉紅色的是加了L1正則項的loss曲線(L1=f(w)+η|w| )。
觀察圖中曲線可以發現,加了L2正則項後,極小值處的解變小了,這說明正則項起到了效果,但是最優解是接近0但不等於0的值,因此不是稀疏解。而加了L1正則項後,極小值的解變爲了0,因此L1相較於L2具有稀疏性。

事實上,兩種正則化能不能把最優的w變成 0,取決於原先的loss函數在 0 點處的導數。如果本來導數不爲 0,那麼施加 L2 後導數依然不爲 0,最優的 w 也不會變成 0。而施加 L1 時,只要 L1 項的係數 η 大於原先loss函數在 0 點處的導數的絕對值,w = 0 就會變成一個極小值點。

那麼爲何只要η 大於loss的導數的絕對值,0就是一個極小值點呢?
下面從理論的角度來分析一下:
對於L1=f(w)+η|w| 也即是L1=L0+η|w| 求導可以得到如下:

L1w=L0w+ηsign(w)=L0w+η,w>0L0wη,w<0

w>0 時,只要L0w+η>0 ,則函數單調遞增,因此在w=0 處最小。
w<0 時,只要L0wη<0 ,則函數單調遞減,因此在w=0 處最小。
故,只要η 大於原先loss函數在 0 點處的導數的絕對值,那麼w=0 處就是一個極小值點。

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