l1 相比于 l2 为什么容易获得稀疏解?

google遍了。。还是没太看懂。请教下。
关注者
1,561
被浏览
498,091

35 个回答

假设损失函数 L 与某个参数 x 的关系如图所示:

我应该把图像整体往上平移一下的,否则损失函数出现负值容易让人迷惑

则最优的 x 在绿点处,x 非零。

现在施加 L2 regularization,新的损失函数(L + Cx^2)如图中蓝线所示:

最优的 x 在黄点处,x 的绝对值减小了,但依然非零。

而如果施加 L1 regularization,则新的损失函数(L + C|x|)如图中粉线所示:

最优的 x 就变成了 0。这里利用的就是绝对值函数的尖峰。

两种 regularization 能不能把最优的 x 变成 0,取决于原先的损失函数在 0 点处的导数。

如果本来导数不为 0,那么施加 L2 regularization 后导数依然不为 0,最优的 x 也不会变成 0。

而施加 L1 regularization 时,只要 regularization 项的系数 C 大于原先损失函数在 0 点处的导数的绝对值,x = 0 就会变成一个极小值点。

上面只分析了一个参数 x。事实上 L1 regularization 会使得许多参数的最优值变成 0,这样模型就稀疏了。

感谢 @十方 @十余 写的答案,我又看了台大林轩田老师的人工智能基石课中对normalization的讲解,我大致理解了下,然后写了文档做简单总结,希望对大家有帮助