对于L1和L2正则化的理解

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

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

C0代表原始的代价函数

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

L1正则化

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

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

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

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

L2正则化

那么L2正则化是如何解决这个问题的。
C = C 0 + λ 2 n w w 2 C=C_{0}+\frac{\lambda}{2 n} \sum_{w} w^{2}
先对L2进行参数求导:
在这里插入图片描述
可以发现L2正则化项对b的更新没有影响,但是对于w的更新有影响:
w w η C 0 w η λ n w = ( 1 η λ n ) w η C 0 w \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,它的效果是减小 w w ,这也就是权重衰减(weight decay)的由来。

也是从图像来解释下。

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

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

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

不同点:

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

参考文献

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

发布了127 篇原创文章 · 获赞 21 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_35770067/article/details/103578569