机器学习入门(浅谈L1和L2正则)

1.正则化的作用

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

2. L1正则和L2正则

定义:

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

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

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

推导:

假设样本是一维的,目标函数L(w),
加入L1正则后,就变为
J ( θ ) = L ( w ) + λ ∣ w ∣ J(\theta) =L(w)+\lambda|w| J(θ)=L(w)+λw
加入L2正则后,就变为
J ( θ ) = L ( w ) + λ w 2 J(\theta) =L(w)+\lambda \sqrt {w^2} J(θ)=L(w)+λw2
设L(w)在w=0处的导数为d0
那么引入L1正则后导数变为:
∇ L ( w ) ∣ w = 0 + = d 0 + λ \nabla L(w)|_{w=0^+}=d_0+\lambda L(w)w=0+=d0+λ
∇ L ( w ) ∣ w = 0 − = d 0 − λ \nabla L(w)|_{w=0^-}=d_0-\lambda L(w)w=0=d0λ
那么引入L2正则后导数变为:
∇ L ( w ) ∣ w = 0 = d 0 + λ ∗ ∣ w ∣ = d 0 \nabla L(w)|_{w=0}=d_0+\lambda *|w|=d_0 L(w)w=0=d0+λw=d0
从上面结果来看,引入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 ) = 1 2 m ∑ i = 1 m ( h w x i − y i ) J(w)=\frac{1}{2m}\textstyle\sum_{i=1}^m(h_wx^i-y^i) J(w)=2m1i=1m(hwxiyi)
迭代公式为: w j = w − α 1 m ∑ i = 1 m ( h w x i − y i ) x j i w_j=w -α \frac{1}{m} \textstyle\sum_{i=1}^m(h_wx^i-y^i)x_j^i wj=wαm1i=1m(hwxiyi)xji
添加L2正则之后,迭代公式变为$$ w j = w ( 1 − α λ m ) − α 1 m ∑ i = 1 m ( h w x i − y i ) x j i w_j=w( 1-α\frac{\lambda}{m})-α \frac{1}{m} \textstyle\sum_{i=1}^m(h_wx^i-y^i)x_j^i wj=w(1αmλ)αm1i=1m(hwxiyi)xji
可以看到,与未添加L2正则相比,每一次迭代,若w>0,权重w都要先乘以一个小于1的因子,从而导致w不断减小,若w<0,w就会不断增大,整体就是让|w|不断减小,使得模型的参数取得尽可能小的值

L2范数约束

和L1范数约束同理,我们假设现在是二维,设定|w|2<1,则
w 1 2 + w 2 2 < 1 w_1^2+w_2^2<1 w12+w22<1
同样可以画出他们在二维平面的图形
L2正则
二维平面下L2正则化的函数图形是个圆,与方形相比,被磨去了棱角,使得两个图形相交时,各个w的值几乎不会是0,同时也将w的权值约束在L2这个圆形里面。形成L2约束区域,这个区域可以通过正则化系数来控制其范围,当增大系数时,这个约束区域会减小,减小系数时,约束区域会扩大

总结

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值