天天看点

对于L1和L2正则化的理解

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

L1正则化公式:

C = C 0 + λ n ∑ w ∣ w ∣ C=C_{0}+\frac{\lambda}{n} \sum_{w}|w| C=C0​+nλ​w∑​∣w∣

L2正则化公式:

C = C 0 + λ 2 n ∑ w w 2 C=C_{0}+\frac{\lambda}{2 n} \sum_{w} w^{2} C=C0​+2nλ​w∑​w2

C0代表原始的代价函数

首先先说一下他们的相同点,就是都可以防止过拟合。那么什么是过拟合呢?我们先用一张图来简单描述下。

对于L1和L2正则化的理解

上面这张图就很很好的展现了数据呈现过拟合的例子,为了学习到每一个数据的分布,最终形成的拟合函数的波动非常大。在某些很小的区间里,函数值的变化很剧烈。这就意味着函数在某些小区间里的导数值(绝对值)非常大,由于自变量值可大可小,所以只有系数足够大,才能保证导数值很大。

而正则化是通过约束参数的范数使其不要太大,所以可以在一定程度上减少过拟合情况。

L1正则化

先看下L1正则化是如何解决这个问题的。

C = C 0 + λ n ∑ w ∣ w ∣ C=C_{0}+\frac{\lambda}{n} \sum_{w}|w| C=C0​+nλ​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) ∂w∂C​=∂w∂C0​​+nλ​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} w→w′=w−nηλ​sgn(w)−η∂w∂C0​​

比原始的更新规则多出了 η λ n sgn ⁡ ( w ) \frac{\eta \lambda}{n} \operatorname{sgn}(w) nηλ​sgn(w)这一项。当w为正时,更新后的w变小。当w为负时,更新后的w变大——因此它的效果就是让w往0靠近,使网络中的权重尽可能为0,也就相当于减小了网络复杂度(减小了参数的波动),防止过拟合。

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

在二维平面上画下来。

对于L1和L2正则化的理解

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

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

L2正则化

那么L2正则化是如何解决这个问题的。

C = C 0 + λ 2 n ∑ w w 2 C=C_{0}+\frac{\lambda}{2 n} \sum_{w} w^{2} C=C0​+2nλ​w∑​w2

先对L2进行参数求导:

对于L1和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} w​→w−η∂w∂C0​​−nηλ​w=(1−nηλ​)w−η∂w∂C0​​​

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

也是从图像来解释下。

对于L1和L2正则化的理解

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

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

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

不同点:

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

参考文献

1.机器学习中正则化项L1和L2的直观理解

2.L1和L2正则化区别

3.正则化为什么可以防止过拟合

继续阅读