本文内容受到了知乎相关问题的启发,本人做了一些整理和补充。
l1和
l2约束
将损失函数
L(w)看作参数
w的函数,则
l1约束的形式是:
L=L(w)+λ∥w∥1(1)
l2约束的形式是:
L=L(w)+21λ∥w∥22(2)
解释一
设不添加约束时,
L(w)的图像如下图所示,使用梯度下降法找到的最优解是途中的绿色点。
添加式(2)所示的
l2约束之后,新的导数为:
L′=L′(w)+λw≈(L(0)+L′(0)w+o(w))′+λw=L′(0)+λw+o′(w)(3)
如上图所示,原本的
w=0点不是最优解,说明
L′(0)不等于0,那么式(3)中当
w=0时,新的导数与不加约束时的导数值是一样的,仍然不为0,说明添加
l2约束之后,不能把最优解拉到
w=0的位置。如下图所示,添加约束之后的曲线变为蓝线,最优解变成了黄色点,
w的绝对值减少了,但是不为0。
添加式(1)所示的
l1约束之后,在
w无限逼近于0的位置,导数如下:
{L′L′=L′(w)+λ≈(L(0)+L′(0)w+o(w))′+λ=L′(0)+λ+o′(w),=L′(w)−λ≈(L(0)+L′(0)w+o(w))′−λ=L′(0)−λ+o′(w),w>0w<0(4)
可知,只要
L′(0)+λ>0并且
L′(0)−λ<0,也即:
λ>∣L′(0)∣
就可以使得
w=0是
L的一个极小值点,也就有可能是最优解。
如下图所示,添加约束之后的曲线是粉色线,最优解是红色点。
解释二
如下图所示,原问题是红色直线,
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