本文内容受到了知乎相关问题的启发,本人做了一些整理和补充。

l1l_1l2l_2约束

将损失函数L(w)L(w)看作参数ww的函数,则l1l_1约束的形式是:
(1)L=L(w)+λw1L = L(w) + \lambda\left\Vert w\right\Vert_1 \tag{1}
l2l_2约束的形式是:
(2)L=L(w)+12λw22L = L(w) +\frac{1}{2} \lambda\left\Vert w\right\Vert_2^2 \tag{2}

解释一

设不添加约束时,L(w)L(w)的图像如下图所示,使用梯度下降法找到的最优解是途中的绿色点。

l1约束比l2约束更容易获得稀疏解
添加式(2)所示的l2l_2约束之后,新的导数为:
(3)L=L(w)+λw(L(0)+L(0)w+o(w))+λw=L(0)+λw+o(w)\begin{aligned} L' &= L'(w) + \lambda w\\ &\approx (L(0) + L'(0)w + o(w))' + \lambda w\\ & = L'(0) + \lambda w + o'(w) \end{aligned} \tag{3}
如上图所示,原本的w=0w=0点不是最优解,说明L(0)L'(0)不等于0,那么式(3)中当w=0w=0时,新的导数与不加约束时的导数值是一样的,仍然不为0,说明添加l2l_2约束之后,不能把最优解拉到w=0w=0的位置。如下图所示,添加约束之后的曲线变为蓝线,最优解变成了黄色点,ww绝对值减少了,但是不为0

l1约束比l2约束更容易获得稀疏解

添加式(1)所示的l1l_1约束之后,在ww无限逼近于0的位置,导数如下:
(4){L=L(w)+λ(L(0)+L(0)w+o(w))+λ=L(0)+λ+o(w),w>0L=L(w)λ(L(0)+L(0)w+o(w))λ=L(0)λ+o(w),w<0\left\{\begin{aligned} L' &= L'(w) + \lambda \approx (L(0) + L'(0)w + o(w))' + \lambda = L'(0) + \lambda + o'(w), && w>0\\ L' &= L'(w) - \lambda \approx (L(0) + L'(0)w + o(w))' - \lambda = L'(0) - \lambda + o'(w), && w<0\\ \end{aligned}\right. \tag{4}

可知,只要L(0)+λ>0L'(0)+\lambda>0并且L(0)λ<0L'(0)-\lambda<0,也即:
λ>L(0)\lambda > |L'(0)|
就可以使得w=0w=0LL的一个极小值点,也就有可能是最优解。

如下图所示,添加约束之后的曲线是粉色线,最优解是红色点。

l1约束比l2约束更容易获得稀疏解

解释二

如下图所示,原问题是红色直线,L1L_1约束的曲线是蓝色方框,l2l_2约束的曲线是浅蓝色圆。

添加约束之后,新问题的最优解就是两条曲线相切的点。

可以发现,l1l_1约束时,解会出现在端点处,得到了稀疏解。

l2l_2约束时,圆与直线的切点是新的最优解,不是稀疏解。
l1约束比l2约束更容易获得稀疏解

解释三

l1约束比l2约束更容易获得稀疏解

参考链接如下:

l1 相比于 l2 为什么容易获得稀疏解? - 王赟 Maigo的回答 - 知乎
https://www.zhihu.com/question/37096933/answer/70426653

l1 相比于 l2 为什么容易获得稀疏解? - MadFrog的回答 - 知乎
https://www.zhihu.com/question/37096933/answer/70938890

l1 相比于 l2 为什么容易获得稀疏解? - 曹荣禹的回答 - 知乎
https://www.zhihu.com/question/37096933/answer/475278057

相关文章: