参考博客:
a、https://www.cnblogs.com/lliuye/p/9354972.html
b、https://vimsky.com/article/969.html
c、https://blog.csdn.net/b876144622/article/details/81276818
总结:
1. 为什么要使用正则化
对于博客a的复述:
我们先回顾一下房价预测的例子。以下是使用多项式回归来拟合房价预测的数据:
可以看出,左图拟合较为合适,而右图过拟合。如果想要解决右图中的过拟合问题,需要能够使得 的参数 尽量满足 。
但是如何使得呢?博客a中解释的是添加正则项,并通过调大正则项稀疏λ,是由于调大了λ,从而使正则项中的某些θ趋于0,我觉得没有说到本质。
我的理解:
要使得参数,其实就是要使得θ的取值在一个范围之内,而不是-∞到+∞,如果不对θ的取值范围做限制,那么可能θ3、θ4的取值会很大,因为这两个参数分量的值大了,才能对原始数据更好的拟合,相应的,当拟合曲线对原始数据拟合的很好的时候,相应的θ3、θ4的值肯定会很大。
此时,人们便想到了对θ的取值范围做一个约束,一般讲参数记为符号w,也就是控制w的取值范围,而控制w的取值范围的方式可以想到的就是圆、球、平面、立方体等等,举例:
w1和w2的取值控制在正方形区域内:
w1和w2的取值控制在圆形区域内:
用方程来标识的话分别为:w1^2+w2^2<=F和|w1|+|w2|<=F
用线性回归的代价函数来举例(经验误差):
,这是未加正则项的。
添加正则项之后(结构误差):
,这是添加了正则项的。
正则项怎么与经验误差融合起来构建出结构误差呢?
答案是带有约束条件的优化问题:
优化目标是:最小,约束条件是:w1^2+w2^2-F<=0(L2正则)或|w1|+|w2|-F<=0(L1正则),使用拉格朗日函数将优化目标和约束条件联系起来,约束条件的参数就是惩罚项的系数λ,至于F,不会对优化的结果有影响,所以可以忽略。
2. L1正则化与L2正则化
由1得到的正则项的来源,可以通过图、数学推倒两种方式观察L1正则和L2正则的特点。
图的方式的阐述:
2.1图的方式:
对于L1正则,还是老图:
其中椭圆的形状是结构风险函数的等势线,假定中间紫色的椭圆是最小值时w1和w2的取值。先看外层的红色的等势线:
,最内侧的矩形与红色的等势线相切,有一个交点,那么该点就是:|w1|+|w2|=F,且在w1、w2也有取值(假如为P),那么结构风险的值就是F+P(假定λ=1)。假如我们把内侧的矩形扩张(即扩大F),那么矩形就变成了中间的矩形,它与红色等势线也有交点,注意在此时是新的w1和w2,F值是增大的,而的值却不变依然是P,因此F+P的总体是增大的,通过观察矩形与等势线相交的图形,想象矩形与某条等势线由相交变为相切的过程(其实就是矩形缩小的过程),也会发现相切的点趋向于某个坐标轴(示图中是w2的坐标轴),也就是趋向于使某个参数的取值(比如说w2)变大,而某个参数的取值(比如说w1)变小且趋向于0(一个意思)。这里面就隐含了L1的特性:特征选择、特征稀疏。
对于L2正则,依然老图:
,可以看到黑色圆与等势线的相切点很难坐落于某一个坐标轴上,并且基本上参数的取值都比较接近,这也是L2正则比较平滑的特性。
数学公式方式的阐述:
参考博客:https://vimsky.com/article/969.html
对于L1、L2正则:
对于L1正则,可以看式子①、②、③,它们是参数的更新过程,可以看到参数θ在更新的时候,每次都会减少或者增加λ,因为λ是不变的,所以很快参数就变为了0.
而对于L2正则,可以看到式子④、⑤、⑥,它们也是参数的更新过程,可以看到参数θ在更新的时候,每次都会减少或者增加λθ,由于θ是在变化的,而λ的绝对值是小于1的,所以θ会平滑的接近到0,但是不会等于0,这就是L2正则的平滑作用。
另外可以参考博客:
https://blog.csdn.net/b876144622/article/details/81276818
3、L1为什么比L2更加稀疏?
参考博客:
https://blog.csdn.net/b876144622/article/details/81276818
假设只有一个参数为ww,损失函数为L(w)L(w),分别加上L1正则项和L2正则项后有:
有了优化目标函数之后,对其进行优化,则参数w肯定在变化,在w的每个取值之处都有对应的损失函数值,但我们要找的是损失函数的最小值(也就是极值)。任何w的取值都有可能使损失函数成为极小值。
L2正则下,代价函数的优化:
L1正则下,代价函数的优化:
我们知道,函数取得极值的情况就是在变量取值的某一点,左右导数异号,回看一下我自己拍的图片中:公式②和公式⑤,脑补一下w的变化(由大到小,或者由小到大)。
当w在某一时刻成为0的时候,L2正则下,w的导数为:
L1正则下,w的导数为:
,
对比这两个正则下的结果,发现L1正则下,在w=0处,导数有个剧烈的变化,那么导数的符号很可能会异号,那么w=0这一点就很有可能是极值点,而我们优化目标函数的方向就是求极值点,那么在求得极值的时候,L1正则下参数处于0的概率比L2正则下参数处于0的概率要大,那就是L1的结果比L2的结果更容易稀疏。