首先我们先说明下L1和L2正则化的公式。
L1正则化公式:
L2正则化公式:
C0代表原始的代价函数
首先先说一下他们的相同点,就是都可以防止过拟合。那么什么是过拟合呢?我们先用一张图来简单描述下。
上面这张图就很很好的展现了数据呈现过拟合的例子,为了学习到每一个数据的分布,最终形成的拟合函数的波动非常大。在某些很小的区间里,函数值的变化很剧烈。这就意味着函数在某些小区间里的导数值(绝对值)非常大,由于自变量值可大可小,所以只有系数足够大,才能保证导数值很大。
而正则化是通过约束参数的范数使其不要太大,所以可以在一定程度上减少过拟合情况。
L1正则化
先看下L1正则化是如何解决这个问题的。
首先我们对L1公式参数进行求导:
上式中sgn(w)表示w的符号。那么权重w的更新规则为:
比原始的更新规则多出了这一项。当w为正时,更新后的w变小。当w为负时,更新后的w变大——因此它的效果就是让w往0靠近,使网络中的权重尽可能为0,也就相当于减小了网络复杂度(减小了参数的波动),防止过拟合。
当我们只考虑二维的情况下,即只有两个权值和.此时我们可以将L1正则化和损失函数
在二维平面上画下来。
我们设是损失函数,为L1正则化函数。图中等值线是的等值线,黑色方形是函数的图形。在图中,当 等值线与图形首次相交的地方就是最优解。上图中与的一个顶点处相交,这个顶点就是最优解。注意到这个顶点的值是(w1,w2)=(0,w),可以直观想象,因为函数有很多『突出的角』(二维情况下四个,多维情况下更多),与这些角接触的机率会远大于与其它部位接触的机率,所以在这些角上,会有很多权值等于0,这就是为什么L1正则化可以产生稀疏模型,进而可以用于特征选择。
而正则化前面的系数,可以控制图形的大小。越小,的图形越大(上图中的黑色方框);越大,的图形就越小,可以小到黑色方框只超出原点范围一点点,这是最优点的值(w1,w2)=(0,w)中的可以取到很小的值。
L2正则化
那么L2正则化是如何解决这个问题的。
先对L2进行参数求导:
可以发现L2正则化项对b的更新没有影响,但是对于w的更新有影响:
在不使用L2正则化时,求导结果中w前系数为1,现在w前面系数为 1−ηλ/n ,因为η、λ、n都是正的,所以 小于1,它的效果是减小,这也就是权重衰减(weight decay)的由来。
也是从图像来解释下。
二维平面下正则化的函数图形是个圆,与方形相比,被磨去了棱角。因此与相交时使得或 等于零的机率小了许多,这就是为什么L2正则化不具有稀疏性的原因。
L1正则化和L2正则化的区别
相同点上面已经说过了,都可以用于缓解过拟合。
不同点:
- L1可以让一部分特征的系数缩小到0,从而间接实现特征选择。所以L1适用于特征之间有关联的情况。
- L2让所有特征的系数都缩小,但是不会减为0,它会使优化求解稳定快速。所以L2适用于特征之间没有关联的情况
参考文献
来源:CSDN
作者:安替-AnTi
链接:https://blog.csdn.net/weixin_35770067/article/details/103578569