美文网首页
浅谈L1和L2正则

浅谈L1和L2正则

作者: rcoon | 来源:发表于2019-11-08 15:14 被阅读0次

1.正则化的作用

在机器学习中,训练模型的目标是不仅要在训练集上表现良好,还要在测试集上表现好,我们称之为泛化。实际过程中可能都会遇到模型在训练上表现差,也就是所谓的欠拟合。也会出现在训练上表现良好,在测试上表现差,即:过拟合。而要在这两者之间寻找平衡,一个常用的方法就是正则化。
正则化的思想:在目标函数中引入额外的信息来惩罚过大的权重参数
我们假设要训练的目标函数为J(θ),那么在优化时候不是直接优化J(θ),而是优化J(θ)+λR(W),λ成为正则化系数,λR(W)称为正则项,λ越大表示正则化惩罚越大,通常只对权重做正则惩罚,不对偏置做惩罚

2. L1正则和L2正则

定义:

L1正则:权值向量w中各个元素的绝对值之和,通常表示为 ||𝑤|| 1,对于模型参数w的L1正则化公式为:
R(w)=\textstyle\sum_{j=1}^m||w_j||_1
L2正则:权值向量w中各个元素的平方和然后再求平方根,通常表示为 ||𝑤|| 2,对于模型参数w的L2正则化公式为:
R(w)=\textstyle\sum_{j=1}^m||w_j||_2

L1正则(特征选择,稀疏矩阵)

L1正则:相比L2更容易产生系数矩阵,所以在机器学习中更多被用于特征选择机制,对于回归模型,使用L1正则化的模型建叫做Lasso回归

推导:

假设样本是一维的,目标函数L(w),
加入L1正则后,就变为
J(\theta) =L(w)+\lambda|w|
加入L2正则后,就变为
J(\theta) =L(w)+\lambda \sqrt {w^2}
设L(w)在w=0处的导数为d0
那么引入L1正则后导数变为:
\nabla L(w)|_{w=0^+}=d_0+\lambda
\nabla L(w)|_{w=0^-}=d_0-\lambda
那么引入L2正则后导数变为:
\nabla L(w)|_{w=0}=d_0+\lambda *|w|=d_0
从上面结果来看,引入L2正则后,目标函数在0处导数依然是d0,引入L1正则后目标函数在0处有一个突变,若d0+λ和d0−λ异号,则在0处会是一个极小值点,优化时候很可能优化到该极小值点上,即w=0处。那么通过L1正则就很容易某个维度的特征系数为0,那么从整个模型来看,这个维度的特征对整体影响不是很大,再选择特征时就可以舍弃。而从矩阵来看,生成一些零元素,那么非零元素就会相对变得更少,以此达到稀疏矩阵的效果。
而在实际调优过程中,我们可以通过缩放λ这个正超参数来控制L1权重衰减的强度从而达到控制特征规模及矩阵的稀疏特性

L1范数约束

再假设现在是二维的数据,那么对于L1正则,我们可以设定|w|<1,则|w1|+|w2|<1,那么对于梯度下降法,求解Jθ的过程可以画出等值线,同时L1正则化的函数也可以在w1w2的二维平面上画出来。如下图:


L1正则化

从图中可以看到Jθ和L1图形相交的地方就是最优解,由于L1的图形在二维情况下有四个突出的角,多维会更多,那么与Jθ相交的概率,而在这些点上,总有权值为0的特征,这里也能分析出为什么L1正则化可以产生稀疏模型,进而可以用于特征选择。同时将w限制在这个L1图形里面,也就是形成了模型的约束区域。

L2正则与过拟合

L2正则化的模型叫做Ridge回归(岭回归)

推导

以线性回归为例:
损失函数为:J(w)=\frac{1}{2m}\textstyle\sum_{i=1}^m(h_wx^i-y^i)
迭代公式为:w_j=w -α \frac{1}{m} \textstyle\sum_{i=1}^m(h_wx^i-y^i)x_j^i
添加L2正则之后,迭代公式变为$$w_j=w( 1-α\frac{\lambda}{m})-α \frac{1}{m} \textstyle\sum_{i=1}^m(h_wx^i-y^i)x_j^i
可以看到,与未添加L2正则相比,每一次迭代,若w>0,权重w都要先乘以一个小于1的因子,从而导致w不断减小,若w<0,w就会不断增大,整体就是让|w|不断减小,使得模型的参数取得尽可能小的值

L2范数约束

和L1范数约束同理,我们假设现在是二维,设定|w|2<1,则
w_1^2+w_2^2<1
同样可以画出他们在二维平面的图形

L2正则
二维平面下L2正则化的函数图形是个圆,与方形相比,被磨去了棱角,使得两个图形相交时,各个w的值几乎不会是0,同时也将w的权值约束在L2这个圆形里面。形成L2约束区域,这个区域可以通过正则化系数来控制其范围,当增大系数时,这个约束区域会减小,减小系数时,约束区域会扩大

总结

L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择,一定程度上,L1也可以防止过拟合
L2正则化可以防止模型过拟合(overfitting)
在实际模型调整中,我们都希望权值尽可能小,然后构造出一个所有权值都比较小的模型,因为一般认为参数值小的模型比较简单,能适应不同的数据集,也在一定程度上避免了过拟合现象。可以设想一下对于一个线性回归方程,若参数很大,那么只要数据偏移一点点,就会对结果造成很大的影响;但如果参数足够小,数据偏移得多一点也不会对结果造成什么影响,专业一点的说法是『抗扰动能力强』
通常正则化项前添加一个系数,由用户指定
有些情况下L1和L2也是可以同时使用的

相关文章

网友评论

      本文标题:浅谈L1和L2正则

      本文链接:https://www.haomeiwen.com/subject/dntwbctx.html