对于L1和L2正则化的理解

ⅰ亾dé卋堺 提交于 2019-12-18 03:01:35

首先我们先说明下L1和L2正则化的公式。

L1正则化公式:
C=C0+λnww C=C_{0}+\frac{\lambda}{n} \sum_{w}|w|
L2正则化公式:
C=C0+λ2nww2 C=C_{0}+\frac{\lambda}{2 n} \sum_{w} w^{2}

C0代表原始的代价函数

首先先说一下他们的相同点,就是都可以防止过拟合。那么什么是过拟合呢?我们先用一张图来简单描述下。
在这里插入图片描述
上面这张图就很很好的展现了数据呈现过拟合的例子,为了学习到每一个数据的分布,最终形成的拟合函数的波动非常大。在某些很小的区间里,函数值的变化很剧烈。这就意味着函数在某些小区间里的导数值(绝对值)非常大,由于自变量值可大可小,所以只有系数足够大,才能保证导数值很大。
而正则化是通过约束参数的范数使其不要太大,所以可以在一定程度上减少过拟合情况

L1正则化

先看下L1正则化是如何解决这个问题的。
C=C0+λnww C=C_{0}+\frac{\lambda}{n} \sum_{w}|w|
首先我们对L1公式参数进行求导:
Cw=C0w+λnsgn(w) \frac{\partial C}{\partial w}=\frac{\partial C_{0}}{\partial w}+\frac{\lambda}{n} \operatorname{sgn}(w)
上式中sgn(w)表示w的符号。那么权重w的更新规则为:
ww=wηλnsgn(w)ηC0w w \rightarrow w^{\prime}=w-\frac{\eta \lambda}{n} \operatorname{sgn}(w)-\eta \frac{\partial C_{0}}{\partial w}
比原始的更新规则多出了ηλnsgn(w)\frac{\eta \lambda}{n} \operatorname{sgn}(w)这一项。当w为正时,更新后的w变小。当w为负时,更新后的w变大——因此它的效果就是让w往0靠近,使网络中的权重尽可能为0,也就相当于减小了网络复杂度(减小了参数的波动),防止过拟合。

当我们只考虑二维的情况下,即只有两个权值w1w_{1}w2w_{2}.此时我们可以将L1正则化和损失函数
在二维平面上画下来。

我们设J0J_{0}是损失函数,LL为L1正则化函数。图中等值线是J0J_{0}的等值线,黑色方形是LL函数的图形。在图中,当 J0J_{0}等值线与LL图形首次相交的地方就是最优解。上图中J0J_{0}LL的一个顶点处相交,这个顶点就是最优解。注意到这个顶点的值是(w1,w2)=(0,w),可以直观想象,因为LL函数有很多『突出的角』(二维情况下四个,多维情况下更多),J0J_0与这些角接触的机率会远大于与LL其它部位接触的机率,所以在这些角上,会有很多权值等于0,这就是为什么L1正则化可以产生稀疏模型,进而可以用于特征选择

而正则化前面的系数λ/n{\lambda}/{n},可以控制LL图形的大小。λ/n{\lambda}/{n}越小,LL的图形越大(上图中的黑色方框);λ/n{\lambda}/{n}越大,LL的图形就越小,可以小到黑色方框只超出原点范围一点点,这是最优点的值(w1,w2)=(0,w)中的ww可以取到很小的值。

L2正则化

那么L2正则化是如何解决这个问题的。
C=C0+λ2nww2 C=C_{0}+\frac{\lambda}{2 n} \sum_{w} w^{2}
先对L2进行参数求导:
在这里插入图片描述
可以发现L2正则化项对b的更新没有影响,但是对于w的更新有影响:
wwηC0wηλnw=(1ηλn)wηC0w \begin{aligned} w & \rightarrow w-\eta \frac{\partial C_{0}}{\partial w}-\frac{\eta \lambda}{n} w \\ &=\left(1-\frac{\eta \lambda}{n}\right) w-\eta \frac{\partial C_{0}}{\partial w} \end{aligned}

在不使用L2正则化时,求导结果中w前系数为1,现在w前面系数为 1−ηλ/n ,因为η、λ、n都是正的,所以 (1ηλn)\left(1-\frac{\eta \lambda}{n}\right)小于1,它的效果是减小ww,这也就是权重衰减(weight decay)的由来。

也是从图像来解释下。

二维平面下L2L2正则化的函数图形是个圆,与方形相比,被磨去了棱角。因此J0J_0LL相交时使得w1w_{1}w2w_2 等于零的机率小了许多,这就是为什么L2正则化不具有稀疏性的原因

L1正则化和L2正则化的区别

相同点上面已经说过了,都可以用于缓解过拟合。

不同点:

  • L1可以让一部分特征的系数缩小到0,从而间接实现特征选择。所以L1适用于特征之间有关联的情况。
  • L2让所有特征的系数都缩小,但是不会减为0,它会使优化求解稳定快速。所以L2适用于特征之间没有关联的情况

参考文献

1.机器学习中正则化项L1和L2的直观理解
2.L1和L2正则化区别
3.正则化为什么可以防止过拟合

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!