L1为什么具有稀疏性

解释一:
 

假设费用函数 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,这样模型就稀疏了。

解释二:

很多人贴PRML书里的那个图,但是感觉很多人有疑问,原本我要优化的是包含正则项的损失,这两个应该是一起优化的,为什么在图里把它们拆解了,其实PRML书里也说得很明白,我再说得具体点。

首先,我们要优化的是这个问题 \min\limits_w E_D(w) + \lambda E_R(w)

其次, \min\limits_w E_D(w) + \lambda E_R(w)\min\limits_w E_D(w) \\s.t. E_R(w) \leqslant \eta

这个优化问题是等价的,即对一个特定的 \lambda 总存在一个 \eta 使得这两个问题是等价的(这个是优化里的知识)。

最后,下面这个图表达的其实 \min\limits_w E_D(w) \\s.t. E_R(w) \leqslant \eta

这个优化问题,w 的解限制在黄色区域内,同时使得经验损失尽可能小


解答三:直观上来理解一下, 对损失函数施加 L0/L1/L2 范式约束都会使很多参数接近于0. 但是在接近于0的时候约束力度会有差别. 从导数的角度看, L1正则项 在0附近的导数始终为正负1, 参数更新速度不变. L2 在0附近导数接近于0, 参数更新缓慢. 所以 L1 相比 L2 更容易使参数变成0, 也就更稀疏
 

个人最喜欢第二种解释

猜你喜欢

转载自blog.csdn.net/ningyanggege/article/details/84071910