L2正则化(L2 Regularization)

本文介绍L1和L2正则化方法在机器学习中的应用,通过引入惩罚项来简化模型,防止过拟合。L2正则化使模型参数趋于平滑,而L1正则化则能实现特征选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

正则化其实就是给目标函数增加一个惩罚项,使得模型更倾向于使用更加简单的模型,防止过拟合。


1. L 2 L_2 L2正则化项的导出

正则化是机器学习中一个防止过拟合的一个重要手段通常,过拟合一个显著地表现是能够很好地拟合当前数据,但是泛化能力不强。首先假设模型学到了多项式:

H 10 : w 0 0 + w 1 x 1 + ⋯ + w 10 x 10 H_{10}:w_0^0+w_1x^1+\cdots+w_{10}x^{10} H10w00+w1x1++w10x10

H 10 ≡ { w ∈ R 10 + 1 } H_{10}\equiv\{ w\in R^{10+1}\} H10{wR10+1}但实际的模型可能并没有那么复杂,这个只是在训练数据上表现的结果可能会比较好。所用的特征过多,样本较少时就很容易陷入过拟合。那么我们就需要把它转化成为更为简单的模型。假如我们令 w 3 = w 4 = ⋯ = w 10 = 0 w_3=w_4=\cdots=w_{10}=0 w3=w4==w10=0那么上述的多项式就可已变成一个二次的多项式。其中, E r r ( w ) Err(w) Err(w)为损失函数。
H 2 ≡ { min ⁡ w ∈ R 10 + 1    E r r ( w ) ,   s . t . w 3 = w 4 = ⋯ = w 10 = 0 } H_2\equiv\{ \min\limits_{w\in R^{10+1}}\ \ Err(w),\ s.t. w_3=w_4=\cdots=w_{10}=0\} H2{wR10+1min  Err(w), s.t.w3=w4==w10=0}
但因为我们并不能保证每次都选择前几个特征所以我们可以更加宽松一点:
H 2 ≡ { min ⁡ w ∈ R 10 + 1    E r r ( w ) ,   s . t . ∑ q = 0 10 [ w q ≠ 0 ] ≤ 3 } H_2\equiv\{ \min\limits_{w\in R^{10+1}}\ \ Err(w),\ s.t.\sum_{q=0}^{10}[w_q\neq0]\leq3\} H2{wR10+1min  Err(w), s.t.q=010[wq=0]3} [ w q ≠ 0 ] [w_q\neq0] [wq=0]表示当 w q ≠ 0 w_q\neq0 wq=0是为1,即要求模型最多为二次项表达式。这个式子比 H 2 H_2 H2更加灵活,应为他只要求有三个不为零而并没有要求哪三个。但是很遗憾上述式子是一个NP-hard的问题。于是我们就想能不能改成一个凸函数,进一步改写:
H ( C ) ≡ { min ⁡ w ∈ R 10 + 1    E r r ( w ) ,   s . t . ∑ q = 0 10 w q 2 ≤ C } H{(C)}\equiv\{ \min\limits_{w\in R^{10+1}}\ \ Err(w),\ s.t.\sum_{q=0}^{10}w_q^2\leq C\} H(C){wR10+1min  Err(w), s.t.q=010wq2C}
这个式子可以包含 H 2 ′ H_2^{'} H2,但不等价。实际上,当 C C C趋向于无穷大时,约束条件基本形如空设,于是就等价于 H 10 H_{10} H10。于是由拉格朗日乘子法有:
min ⁡ w ∈ R 10 + 1    E r r ( w ) + λ ( ∑ q = 0 10 w q 2 − C ) , λ > 0 \min\limits_{w\in R^{10+1}}\ \ Err(w)+\lambda( \sum_{q=0}^{10}w_q^2- C),\lambda>0 wR10+1min  Err(w)+λ(q=010wq2C)λ>0
由于优化的是 w w w的函数,所以和 C C C没有关系,再把相加写成向量乘积的形式,并从 R 10 + 1 R^{10+1} R10+1拓展到 R Q R^{Q} RQ最终我们就有了:
min ⁡ w ∈ R Q    E r r ( w ) + λ w T w \min\limits_{w\in R^{Q}}\ \ Err(w)+\lambda w^Tw wRQmin  Err(w)+λwTw
后面的那一项就是我们通常所说的 L 2 L_2 L2正则化项, L 1 L_1 L1正则化用 L 1 L_1 L1范数替换后面的即可。

PS:
L2 norm在回归问题中称作岭回归(Ridge Regression)或权值衰减(Weight-decay)
L1 norm称作LASSO(Least Absolute Shrinkage and Selection Operator)

2. L 1 L_1 L1正则化项和 L 2 L_2 L2正则化项

L 1 L_1 L1正则化项和 L 2 L_2 L2正则化项都有助于降低过拟合的风险,但是 L 1 L_1 L1正则化项更适合作稀疏化,即得到更少的 w w w为非零的解。
正则化其实就是给目标函数增加一个惩罚项,使得模型更倾向于使用低维的模型,以防止过拟合。

一种贝叶斯角度理解正则,加了先验知识就相当于一种正则,可以做到防止过拟合(如我们抛硬币十次但只有一次正面,加了先验知识之后,如果使用贝叶斯估计的话,参数估计的结果会朝着先验的方向矫正,具体具体可参考Parameter estimation for text analysis. Gregor Heinrich.): L 1 L_1 L1正则化项为先验为拉普拉斯分布, L 2 L_2 L2正则化项先验为高斯分布,将其分别取对数之后分别留下了绝对值项和平方项。领关于L1的稀疏性以及其它的一些问题,可参考问题:l1 相比于 l2 为什么容易获得稀疏解?

特征选择通常有三种方法,即过滤式选择(Filter)、包裹式选择(Wrapper)和嵌入式选择(Embedded),本文提到的L1正则化和L2正则化是属于第三种,即在模型训练的时候同时做特征选择。

如有纰漏,欢迎指正。

参考资料:

  1. 周志华《机器学习》ch. 11.4
  2. 林轩田. 机器学习基石课程 Lecture 14
### L1正则化与L2正则化的区别及应用场景 #### 一、数学定义与作用机制 L1正则化和L2正则化都是通过在损失函数中添加惩罚项来防止模型过拟合的技术。L1正则化使用权值参数的绝对值作为惩罚项[^1],而L2正则化使用权值参数的平方作为惩罚项[^1]。这种差异导致了两种正则化方法在优化过程中对权值更新的不同影响。 - **下降速度**:L1正则化在接近零时具有更快的下降速度,这使得它更容易将某些权值直接缩减为零。相比之下,L2正则化的下降速度较慢,即使权值接近零,也不会将其完全置零。 #### 二、稀疏性与权重分布 L1正则化倾向于生成稀疏的权重向量,即许多权值会被精确地缩减为零[^2]。这种特性使其非常适合于特征选择任务,因为可以自动剔除无关或冗余的特征[^4]。而L2正则化则倾向于生成分散的权重向量,其中所有权值都不为零但数值较小[^2]。因此,L2正则化更适合处理共线性问题,因为它能够平等地分配权值给相关特征[^4]。 #### 三、几何解释 从几何空间的角度来看,L1正则化约束区域是一个菱形,其顶点位于坐标轴上,这意味着最优解更可能出现在这些顶点处,从而导致稀疏性。相反,L2正则化约束区域是一个圆形,没有明显的“角”或“顶点”,因此最优解不太可能落在坐标轴上,导致权重分布更加均匀。 #### 四、应用场景 - **L1正则化**:适用于需要进行特征选择的场景,尤其是当数据集中存在大量无关特征时。例如,在文本分类任务中,词汇表可能非常庞大,L1正则化可以帮助识别出最重要的关键词。 - **L2正则化**:适用于处理共线性问题或当特征之间存在较强相关性时[^4]。例如,在图像识别任务中,像素值之间可能存在高度相关性,L2正则化有助于稳定模型训练并减少过拟合。 ```python # PyTorch实现L2正则化(Weight Decay) import torch import torch.nn as nn import torch.optim as optim model = nn.Linear(10, 1) criterion = nn.MSELoss() optimizer = optim.SGD(model.parameters(), lr=0.01, weight_decay=0.01) # L1正则化可以通过手动添加L1惩罚项实现 def l1_regularization(model, lambda_l1): l1_norm = sum(p.abs().sum() for p in model.parameters()) return lambda_l1 * l1_norm # 在训练过程中加入L1正则化 lambda_l1 = 0.01 loss = criterion(output, target) + l1_regularization(model, lambda_l1) ``` #### 五、总结 L1正则化通过产生稀疏的权重向量来实现特征选择,而L2正则化通过平滑权重分布来处理共线性问题。两者各有优劣,具体选择取决于任务需求和数据特性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值