L1相较于L2的稀疏性

时间:2023-01-01 09:50:55

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曲线如下图:
L1相较于L2的稀疏性
可以发现极小值是在图中的绿色点处, w=0 处并不是最优解。

在分别加了L1正则项和L2正则项后,他们的曲线图如下:
L1相较于L2的稀疏性
其中蓝色的是加了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 处就是一个极小值点。