为什么L1稀疏L2平滑?

时间:2021-08-28 09:50:41

两种解释————————————

1、从L1和L2的来源看

当你想从一个手头的数据集中学习出一套规则时,贝叶斯学派认为仅仅使用这些数据是不够的,还需要加入先验知识。如果你在损失函数中使用了L1正则项,那么其实质就是加入了拉普拉斯先验分布,即认为数据是符合拉普拉斯分布的;如果你使用了L2正则项,那么就是加入了高斯先验分布,即认为数据是符合高斯分布的。一般由于推导和计算方便,会对分布函数取对数,然后再去优化。最终的结果是,由于你的模型参数考虑了数据先验,学习出来的规则就更加接近实际。
我们对高斯分布很熟悉,但是对拉普拉斯分布可能比较陌生,拉普拉斯密度函数的图形和表达式分别如下所示:
为什么L1稀疏L2平滑?
为什么L1稀疏L2平滑?


我们如果对拉普拉斯密度函数取对数,剩下的是一个一次项|x-u|,这就是L1范式;我们如果对高斯密度函数取对数剩下的就是一个二次项(x-u)^2,这就是L2范式。比较高斯分布的密度函数图像和拉普拉斯分布的密度函数图像,我们很容易看到,当x趋于正无穷和负无穷时,前者是逼近于0的,后者是等于0的。

2、从具体的计算求导角度来看
为什么L1稀疏L2平滑?

两种正则项能不能把最优的x变成0,取决于原先的损失函数在0点处的导数。如果本来导数不为0,那么施加L2正则项

后导数依然不为0,最优的x也不会变成0。而施加L1正则项时,只要系数C大于原损失函数在0点处的导数的绝对值,

x=0就会变成一个极小值点。这是因为,L1正则化的损失函数在极值处(尖点)是不可导的,也就是说该点两边的导数

异号,也即f'(0)-C和f'(0)+C异号,故C大于f'(0)时,x=0就会变成一个极小值点。

3、更直接的看二者的区别:

为什么L1稀疏L2平滑?

我们可以看到,L2正则化的损失函数在参数更新时,参数是按固定的比例减少的(一塔与拉姆达的乘积接近于0,图

中标识有误),也就是说,假如w很大,则每次更新会减少较大的值;假如w较小,则每次减少较小的值。因此,L2正

则化曲线较平滑。再看L1正则化:

为什么L1稀疏L2平滑?

从图中可以看出,参数是按固定的量减少的(即一塔与拉姆达之积),如果w是正的,则减少一个固定量;如果w是负

的,则加上一个固定量。因此,如果w本来比较小的话,那么就很容易会被更新为0。