1.正则化背景
虽然我们不断追求更好的模型泛化力,但是因为未知数据无法预测,所以又期望模型可以充分利用训练数据,避免欠拟合。
这就要求在增加模型复杂度、提高在可观测数据上的性能表现得同时,又需要兼顾模型的泛化力,防止过拟合。
为了平衡这两难的选择,提出了正则化。
2.正则化定义
由此可以总结出,正则化的概念:
在模型中改善过拟合,降低结构风险,提高模型的泛化能力的添加项。
直译应该是:规则化
3.正则化的属性
本质(what):约束(限制)要优化的参数。
目的(why):防止过拟合!
方法(how):在原模型优化目标的基础上,增加对参数的惩罚项。
常见方法(how):L1范数正则化,L2范数正则化。
那么,上面提到的L1范数,L2范数正则化由什么不同呢?下面我们一起来看看
4.范数和Li范数
4.1什么是范数?
假设 x 是一个向量,它的Lp范数定义:
4.2为什么要加范数?
在目标函数后面添加一个系数的“惩罚项”,是正则化的常用方式,为了防止系数过大从而让模型变得复杂。
在加了正则化项之后的目标函数为:
即:目标函数(评价函数)= 误差函数(损失函数) + 正则化项
λ 被称为正则化系数,用于控制正则化程度。λ 越大,这个限制越强。
4.3什么是L1,L2范数?(怎么使用范数?)
L1正则化时,对应惩罚项为 L1 范数 :
L2正则化时,对应惩罚项为 L2 范数:
从上式可以看出,L1正则化通过让原目标函数加上了所有特征系数绝对值的和来实现正则化,而L2 正则化通过让原目标函数加上了所有特征系数的平方和来实现正则化。
两者都是通过加上一个和项来限制参数大小,那么两者由什么区别呢?
4.4L1,L2范数的区别?
结论:L1正则化更适用于特征选择,而L2正则化更适用于防止模型过拟合。
推导:
让我们从梯度下降的角度入手,探究两者的区别。
对于L1范数,添加了惩罚项的模型函数为:
每次更新 w1 时
若w1为正数,则每次更新会减去一个常数;
若w1为负数,则每次更新会加上一个常数,
所以很容易产生特征的系数为 0 的情况,特征系数为 0 表示该特征不会对结果有任何影响,
因此L1正则化会让特征变得稀疏,起到特征选择的作用。
对于L2范数,添加了惩罚项的模型函数为:
每次更新 w1 时
从上式可以看出每次更新时,会对特征系数进行一个比例缩放而不是像L1 正则化减去一个固定值,这会让系数趋向变小而不会变为 0。因此L2正则化会让模型变得更简单,防止过拟合,而不会起到特征选择的作用。
以上就是 L1, L2正则化的作用以及区别。
什么?太抽象?
4.4L1,L2范数对比?(可视化)
那么,直观在二维坐标系中的体现就是:
图中的椭圆是损失函数的变化曲线,左边的图为 L1 正则化,右图为 L2 正则化。
对于 L1 正则化而言,在图中表示一个菱形区域。
对于 L2 正则化而言,在图中表示一个圆形区域。
不同的维度系数一般都是不一样的,因此常见的损失函数图像是一个椭圆形。
调整参数λ 的值,椭圆形和菱形的交接处很大可能性会落在坐标轴附近。λ 越大,菱形和圆形越小,求得的模型参数越小。;实际使用的特征维度是高维的,正常情况下就是在某些维度上不会交于坐标轴上,在某些维度上交于坐标轴或坐标轴附近,所以才有稀疏解;
与L2正则化相比,L1正则化更容易得到稀疏解,而不是一定会得到稀疏解,毕竟还是有特例的(比如恰好椭圆与坐标原点相交)。
**L2正则化更加常用。**L2 正则化的约束边界光滑且可导,便于采用梯度下降法,而L1正则化不可导,只能采用坐标轴下降法或最小角回归法,计算量大。而且,L1 正则化的效果并不会比 L2 正则化好