L1和L2正则化

1 过拟合问题

过拟合是数据科学领域的一个重要问题,需要处理好过拟合问题才能建立一个健壮和准确的模型。当模型试图很好的拟合训练数据但导致无法泛化到测试数据时,就出现了过拟合。过拟合模型捕捉的更多的是训练数据找的呢细节和噪声,而不是模型的整体趋势。因此,即使特征的细微变化也会极大的改变模型的结果。这就导致过拟合模型在训练数据上表现的很出色,但在测试数据上表现不佳。
为了便于理解,我们模拟模型的训练过程,实际上模型训练的过程就是不断迭代直到找到一个方程 y = f ( x ) y=f(x) y=f(x)来拟合数据集。但是怎么去衡量模型拟合的好坏呢?如下图所示是使用三个方程来拟合一个数据及的结果。
在这里插入图片描述
在这里,我们有一个 2 次多项式拟合和两个不同的 8 次多项式,他们的方程如下:
在这里插入图片描述
由上可知,第一个(“更简单”的函数)很可能会更好地泛化到新数据,而第三个(更复杂的函数)显然会过度拟合训练数据。

2 正则化解释

过拟合的主要原因是模型的复杂性。因此,我们可以通过控制模型的复杂性来防止过拟合,这正是正则化所做的。正则化通过惩罚模型中的较高项来控制模型的复杂性。模型中添加正则项之后,会最小化模型的损失和复杂性。如果我们的权重向量增⻓的太⼤,我们的学习算法可能会更集中于最小化权重正则项。正则化的基本本质是 在损失函数中添加一个惩罚项

以线性回归为例,我们的损失由均方误差 (MSE) 给出:
ℓ ( w t , b t ) = 1 m ∑ i = 1 m ( y i − y ^ i ) 2 \ell\left(\mathbf{w}_{t}, b_{t}\right)=\frac{1}{m} \sum_{i=1}^{m}\left(y_{i}-\hat{y}_{i}\right)^{2} (wt,bt)=m1i=1m(yiy^i)2
我们的目标是最小化这种损失:
min ⁡ ℓ ( w t , b t ) = min ⁡ ∑ i = 1 m ( y i − y ^ i ) 2 \min \ell\left(\mathbf{w}_{t}, b_{t}\right)=\min\sum_{i=1}^{m}\left(y_{i}-\hat{y}_{i}\right)^{2} min(wt,bt)=mini=1m(yiy^i)2
为了防止过拟合,我们希望增加对不太复杂的函数的偏向。 也就是说,给定两个可以很好地拟合我们的数据的函数,我们更喜欢更简单的一个。我们通过添加一个正则化项来做到这一点,通常是 L1 范数或平方 L2 范数:
 L1 正则化:  ∥ w ∥ 1 = ∑ i n ∣ w i ∣ \text { L1 正则化: }\|\mathbf{w}\|_{1}=\sum_{i}^{n}\left|w_{i}\right|  L1 正则化w1=inwi  L2 正则化:  ∥ w ∥ 2 = ∑ i n w i 2 \text { L2 正则化: }\|\mathbf{w}\|^{2}=\sum_{i}^{n} w_{i}^{2}  L2 正则化w2=inwi2

假设将平方 L2 范数添加到损失中并最小化,我们得到岭回归( Ridge regression):
min ⁡ L 2 = min ⁡ ( λ / 2 ∥ w ∥ 2 + ℓ ( w t , b t ) ) \min {L_2}=\min\left(\lambda/2\|\mathbf{w}\|^{2}+\ell\left(\mathbf{w}_{t}, b_{t}\right)\right) minL2=min(λ/2w2+(wt,bt))
其中 λ 是正则化系数,它决定了我们想要多少正则化。λ的取值很重要,如果λ太大,模型会变得太简单并且容易欠拟合。如果λ太小,惩罚项的影响变得忽略不计,模型很容易过拟合。如果λ设置为0,则正则化完全被删除(过拟合高风险)。

那么如何更新我们的参数呢?
对上式求导,可以得到:
∂ ∂ w L 2 = ∂ ∂ w ( ℓ ( w , b ) + λ / 2 ∥ w ∥ 2 ) = ∂ ℓ ( w , b ) ∂ w + λ w \frac{\partial}{\partial \mathbf{w}}{L_2}=\frac{\partial}{\partial \mathbf{w}}\left(\ell(\mathbf{w}, b)+{\lambda}/2\|\mathbf{w}\|^{2}\right)=\frac{\partial \ell(\mathbf{w}, b)}{\partial \mathbf{w}}+\lambda \mathbf{w} wL2=w((w,b)+λ/2w2)=w(w,b)+λw
时间t更新参数,得到:
w t + 1 = w t − η ∂ ∂ w L 2 = ( 1 − η λ ) w t − η ∂ ℓ ( w t , b t ) ∂ w t \mathbf{w}_{t+1}=\mathbf{w}_{t}-\eta\frac{\partial}{\partial \mathbf{w}}{L_2}=(1-\eta \lambda) \mathbf{w}_{t}-\eta \frac{\partial \ell\left(\mathbf{w}_{t}, b_{t}\right)}{\partial \mathbf{w}_{t}} wt+1=wtηwL2=(1ηλ)wtηwt(wt,bt)
其中 η \eta η为学习率,是模型的超参数。通常 η λ < 1 \eta\lambda<1 ηλ<1,在权重更新前就将权重缩小,在深度学习中叫作权重衰退(weight decay)
权重衰退通过 L 2 L2 L2正则项使得模型参数不会过大,从而控制模型复杂度。正则项权重 λ \lambda λ是控制模型复杂度的超参数。

Note: 套索回归(Lasso regression)使用L1正则化,岭回归( Ridge regression)使用L2正则化,弹性网络回归(Elastic net regression)包含了L1和L2两种正则化。因此引入了一个新的超参数 α \alpha α,它管理要包含的每个 L1 或 L2 惩罚的比率。计算公式如下:
E l a s t i c   n e t   p e n a l t y   =   α ∗ L 1   p e n a l t y + ( 1 − α ) ∗ L 2   p e n a l t y Elastic\ net\ penalty\ =\ \alpha\ast L_{1\ penalty}+\left(1-\alpha\right)\ast L_{2\ penalty} Elastic net penalty = αL1 penalty+(1α)L2 penalty

3 不同的正则项的区别?

一般正则项是以下公式的形式:
1 N ∑ i = 1 N ( y i − y ^ i ) 2 + λ ∑ i = 1 M ∣ w i ∣ q \frac{1}{N}\sum_{i=1}^N\left(y_i-\hat{y}_{i}\right)^2+\lambda\sum_{i=1}^M\left|w_i\right|^q N1i=1N(yiy^i)2+λi=1Mwiq
其中M是模型的阶数,q是正则项的阶数。高维度的模型图像表征非常难以理解,那就使用二维模型来理解。这里令M=2,令q=0.5、q=1 、q=2和q=4 有:
在这里插入图片描述
其中横纵坐标分别为 θ 1 \theta_1 θ1 θ 0 \theta_0 θ0,绿色线表示的是等高线的一条,其z轴坐标为 λ ∑ i = 1 M ∣ w i ∣ q \lambda\sum_{i=1}^M\left|w_{i}\right|^{q} λi=1Mwiq
下图展示的为它们的三维图:
在这里插入图片描述
接下来,我们把q=1(右图)和q=2(左图)代价函数(损失函数+正则项)表示如下图所示。
在这里插入图片描述
根据上面的解释我们知道了红色圈代表的是正则项,红圈收缩的过程就是加大惩罚力度的过程。
但蓝色圈代表什么呢?蓝色圈是损失函数,一圈一圈表示他的登高线,他会根据最小二乘或梯度下降从中间的圈不断向外圈走。
所以上图可以简单的理解为:最小化损失函数就是求蓝色圈+红色圈的和的最小值,而这个值通在很多情况下是两个曲面相交的地方。

下面我们以L1和L2正则化来做详细比较:
由下图可知,L1和L2都随着 w 的绝对绝对值的增加而增加。然而,L1以恒定速率增加,而L2呈指数增长。因为我们知道,在进行梯度下降时,我们将根据损失函数的导数更新权重。因此,如果我们在损失函数中包含了正则化,则正则化的导数将决定权重如何更新。
对于L1正则化,斜率是恒定的。这意味着随着 w 变小,更新不会改变,所以我们不断获得相同的“奖励”来使权重更小,从而最终使权重为零。所以L1正则化也称为稀疏正则化,它用于处理主要由零组成的稀疏向量。这说明了L1正则化自带特征选择的功能,这一点十分有用。
对于L2正则化,随着 w 变小,正则项的斜率也会变小,这意味着更新也会变得越来越小。当权重接近 0 时,更新将变得非常小,几乎可以忽略不计,因此权重不太可能变为 0。
在这里插入图片描述
L1正则化和L2正则化在实际应用中的比较:
L1在确实需要稀疏化模型的场景下,才能发挥很好的作用并且效果远胜于L2。在模型特征个数远大于训练样本数的情况下,如果我们事先知道模型的特征中只有少量相关特征(即参数值不为0),并且相关特征的个数少于训练样本数,那么L1的效果远好于L2。然而,需要注意的是,当相关特征数远大于训练样本数时,无论是L1还是L2,都无法取得很好的效果。

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值