学习笔记-L1与L2正则化
当模型过拟合时,我们常常使用正则化去减轻模型的复杂度。它主要在损失函数后添加正则项去约束模型。
L1与L2正则化
L1 norm :,表示参数的范式。
L2 norm :, 表示参数的范式。
-
相同点
都会使参数变小,减轻模型过拟合 -
不同点
- L1会使部分参数变为0,使得参数稀疏。类似于特征选择,将不重要的特征变为0。一般用于输入特征之间具有相关性。
- L2会使参数变小,使得参数矩阵变得平滑。小的参数可以抵抗更强的噪音,假设,令=0.5。当噪音得到来得时候,现在由0.5产生的噪音为1,如果等于0.1时,那么产生的噪音为0.2,比1小的多,所以小的参数可以抵抗噪音。
L1使参数为0的原因
假设参数矩阵是二维的,即, 正则化相当于定义了一个矩形的解空间,正则化定义了圆形的解空间。可以从图中看到,正则化解空间棱角分明,更容易在在坐标轴处与目标函数的等高线相切。可以想象在高维的参数矩阵中,棱角会密密麻麻,在棱角处总会产生一个或多个。所以含有L1正则化项的目标函数的最优解中,有很多参数的值都为0,即得到稀疏模型。
L2使参数变小的原因
假设损失函数为均方差损失函数,表示模型,表示模型参数,为计算简单,只使用样本进行损失函数的计算。
使用梯度下降法对参数更新
- 求导
- 更新参数
加入L2正则后
使用梯度下降法对参数更新
- 求导
- 更新参数
比较两者的参数更新函数,可以看到加入正则化后,等号右边的多乘了一项小于0的数,所以会越来越小
L1和L2参数的选择
- 根据经验选择
- 使用交叉验证的方式选择
L1正则化的问题
岭回归与Lasso回归
岭回归
Ridge回归:又叫岭回归。在线性回归的损失函数上加正则化,其公式入下:
使用梯度下降法求参数时,参数利用下方公式进行更新,为学习率
岭回归的代价函数仍然是一个凸函数,因此可以利用梯度等于0的方式求得全局最优解(正规方程)。换句话说,使用最小二乘法更新参数时,可以直接求出的解析解(解的具体函数形式,从解的表达式中就可以算出任何对应值)
上述正规方程与一般线性回归的正规方程相比,多了一项,其中表示单位矩阵。假如是一个奇异矩阵(不满秩),添加这一项后可以保证该项可逆。由于单位矩阵的形状是对角线上为1其他地方都为0,看起来像一条山岭,因此而得名。
Lasso回归
Lasso回归:在线性回归的损失函数上加正则化,公式如下:
由于正则化可以使参数矩阵稀疏,达到特征选择的效果。但同时也带来了Lasso损失函数不是连续可导的,原因是当我们对损失函数求导时,是个分段函数,需要考虑当,与这三种情况。通常使用坐标下降法来对求得Lasso的参数。
-
与梯度下降的不同
坐标下降法的思想是在所有坐标中选取一个坐标作为下降的方向,固定其他坐标。然后进行迭代的操作。与梯度下降法不同,梯度下降法是根据当前梯度的负方向下降,而坐标下降是沿着坐标的方向下降。 -
坐标下降的数学依据
来自参考文献3 -
计算流程
a
c
我们得到当的时候,w的参数就更新为0
elastic net
根据上文我们知道正则化具有特征选择的功能,但是当多个特征具有很强的相关性时,它是否能选择出最好的特征呢?这显示是不能的。
举例说明一下:假设特征可以分为两组t1(x1,x3,x5),t2(x2,x4)。当选取特征x1与x2时,模型效果最好,但是正则是随机选则的特征,有可能是x3,x4,也有可能是其他。
解决这个问题的方法是同时使用正则和正则。
- 优点
- grouped selection
-
结合了L1和L2正则化的优点,从下图中可以看到,Elastic Net的解空间综合了L1和L2的特点
d
- 在具有多个特征,并且特征之间具有一定关联的数据中比较有用
参考文献
1.《统计学习方法》第二版 李航
- https://blog.csdn.net/vincent2610/article/details/53408088
- https://cloud.tencent.com/developer/article/1456966
- https://www.cnblogs.com/pinard/p/6018889.html (强烈推荐)
- https://www.cnblogs.com/Belter/p/8536939.html (推荐)
心声:刚开始写博客真的好难啊!感觉自己写的既不清楚了又没条理。再接再厉!