【Optimization】深入解析权重衰减(Weight Decay)的原理及作用

🏷️ bet体育365官网正规 ⏱️ 2025-10-15 11:21:48 👨‍🔧 admin 👁️ 9675 ⚡ 563
【Optimization】深入解析权重衰减(Weight Decay)的原理及作用

在机器学习的征途上,“过拟合”(Overfitting)是我们必须翻越的一座大山。为了训练复杂的模型,让它们具备更好的泛化能力,研究者们开发了多种正则化(Regularization)技术,而 权重衰减(Weight Decay) 正是其中最经典、最有效的工具之一。

本文将对如下问题进行分析以及解答:

权重衰减到底是如何“衰减”权重的?为什么权重变小了,模型就不容易过拟合了?为什么这个强大的工具通常只对权重(weights)下手,而放过了偏置(biases)?

什么是权重衰减?从损失函数说起

权重衰减的本质,是在模型的损失函数(Loss Function)中添加一个额外的惩罚项(Penalty Term)。这个惩罚项会惩罚那些“太大”的权重参数。在绝大多数情况下,权重衰减是L2正则化的代名词。

让我们从数学公式开始。

假设我们有一个原始的损失函数,记为 Lorig(w,b)L_{orig}(\mathbf{w}, b)Lorig​(w,b),它衡量的是模型预测值与真实标签之间的差距。例如,在回归问题中它可能是均方误差(MSE),在分类问题中可能是交叉熵(Cross-Entropy)。

Lorig(w,b)=1N∑i=1Nℓ(yi,y^i(w,b))L_{orig}(\mathbf{w}, b) = \frac{1}{N} \sum_{i=1}^{N} \ell(y_i, \hat{y}_i(\mathbf{w}, b))Lorig​(w,b)=N1​i=1∑N​ℓ(yi​,y^​i​(w,b))

符号说明:

NNN: 训练样本的数量。w\mathbf{w}w: 模型的权重向量(weights)。bbb: 模型的偏置(bias)。yiy_iyi​: 第 iii 个样本的真实标签。y^i\hat{y}_iy^​i​: 模型对第 iii 个样本的预测输出,它是权重 w\mathbf{w}w 和偏置 bbb 的函数。ℓ\ellℓ: 单个样本的损失计算函数。

为了引入权重衰减,我们为这个损失函数增加一个L2正则化项,得到新的总损失函数 Ltotal(w,b)L_{total}(\mathbf{w}, b)Ltotal​(w,b):

Ltotal(w,b)=Lorig(w,b)+λ2∥w∥22L_{total}(\mathbf{w}, b) = L_{orig}(\mathbf{w}, b) + \frac{\lambda}{2} \| \mathbf{w} \|_2^2Ltotal​(w,b)=Lorig​(w,b)+2λ​∥w∥22​

新增符号说明:

λ\lambdaλ (Lambda): 正则化强度超参数,也称为权重衰减系数。它是一个大于0的常数,由我们手动设置。λ\lambdaλ 越大,对大权重的惩罚就越重。∥w∥22\| \mathbf{w} \|_2^2∥w∥22​: 权重向量 w\mathbf{w}w 的L2范数的平方,即所有权重值的平方和。具体展开为:

∥w∥22=∑j=1Mwj2=w12+w22+⋯+wM2

\| \mathbf{w} \|_2^2 = \sum_{j=1}^{M} w_j^2 = w_1^2 + w_2^2 + \dots + w_M^2

∥w∥22​=j=1∑M​wj2​=w12​+w22​+⋯+wM2​

其中 MMM 是权重参数的总数量。

为什么前面要乘以 12\frac{1}{2}21​?

这纯粹是为了数学上的便利。在后续求导时,平方项的指数2会与 12\frac{1}{2}21​ 相互抵消,让梯度表达式更简洁,不影响正则化的本质。

权重衰减如何“衰减”权重?看梯度的变化

模型训练的核心是优化算法,比如最常见的梯度下降(Gradient Descent)。优化的目标是找到一组参数 (w,b)(\mathbf{w}, b)(w,b) 来最小化总损失 LtotalL_{total}Ltotal​。为此,我们需要计算损失函数对参数的梯度。

让我们来看看加入正则化项后,对单个权重 wjw_jwj​ 的梯度发生了什么变化:

∂Ltotal∂wj=∂Lorig∂wj+∂∂wj(λ2∑k=1Mwk2)\frac{\partial L_{total}}{\partial w_j} = \frac{\partial L_{orig}}{\partial w_j} + \frac{\partial}{\partial w_j} \left( \frac{\lambda}{2} \sum_{k=1}^{M} w_k^2 \right)∂wj​∂Ltotal​​=∂wj​∂Lorig​​+∂wj​∂​(2λ​k=1∑M​wk2​)

正则化项的偏导数计算如下:

∂∂wj(λ2(w12+⋯+wj2+⋯+wM2))=λ2⋅2wj=λwj\frac{\partial}{\partial w_j} \left( \frac{\lambda}{2} (w_1^2 + \dots + w_j^2 + \dots + w_M^2) \right) = \frac{\lambda}{2} \cdot 2w_j = \lambda w_j∂wj​∂​(2λ​(w12​+⋯+wj2​+⋯+wM2​))=2λ​⋅2wj​=λwj​

于是,总的梯度变为:

∂Ltotal∂wj=∂Lorig∂wj+λwj\frac{\partial L_{total}}{\partial w_j} = \frac{\partial L_{orig}}{\partial w_j} + \lambda w_j∂wj​∂Ltotal​​=∂wj​∂Lorig​​+λwj​

现在,我们看梯度下降的权重更新规则。设 α\alphaα 为学习率(Learning Rate),权重的更新步骤如下:

wj←wj−α⋅∂Ltotal∂wjw_j \leftarrow w_j - \alpha \cdot \frac{\partial L_{total}}{\partial w_j}wj​←wj​−α⋅∂wj​∂Ltotal​​

将我们推导出的梯度代入:

wj←wj−α(∂Lorig∂wj+λwj)w_j \leftarrow w_j - \alpha \left( \frac{\partial L_{orig}}{\partial w_j} + \lambda w_j \right)wj​←wj​−α(∂wj​∂Lorig​​+λwj​)

整理一下形式:

wj←(1−αλ)wj−α∂Lorig∂wjw_j \leftarrow (1 - \alpha \lambda) w_j - \alpha \frac{\partial L_{orig}}{\partial w_j}wj​←(1−αλ)wj​−α∂wj​∂Lorig​​

这就是“权重衰减”这个名字的由来!

在每次更新时,权重 wjw_jwj​ 都会先乘以一个小于1的系数 (1−αλ)(1 - \alpha \lambda)(1−αλ),这相当于对权重进行了一定比例的“缩放”或“衰减”,使其向零靠近。然后,再像往常一样,减去原始梯度的部分。这个衰减效应会持续累积,迫使优化器寻找一个不仅能最小化原始训练误差,还能保持权重值较小的“妥协”解。

为什么小权重能防止过拟合?

理解了权重衰减的数学原理后,下一个关键问题是:为什么保持权重较小就能帮助模型对抗过拟合?

1. 奥卡姆剃刀:更简单的模型泛化能力更强

一个模型的权重值的大小,在某种程度上反映了其函数的复杂程度。

大权重:意味着模型的函数图像可能非常“陡峭”。输入数据的微小变化,经过大权重的加权后,可能导致输出的剧烈波动。这样的模型有能力去拟合训练数据中几乎所有的点,包括那些由噪声或偶然性造成的点。它学到的是一个极其复杂、曲折的决策边界,这正是过拟合的特征。

小权重:意味着模型的函数相对“平滑”。输入的变化对输出的影响被限制在一个较小的范围内。这样的模型对数据中的噪声不那么敏感,它会试图学习数据背后更宏观、更普适的规律,而不是纠结于局部细节。根据“奥卡姆剃刀”原则(Occam’s Razor),更简单的模型(在这里体现为更平滑的函数)更有可能具有更好的泛化能力。

2. 降低对单一特征的依赖

想象一个场景,模型可以利用多个特征来做出预测。如果没有正则化,模型可能会发现某个特征与训练集标签的关联性极强,于是赋予它一个非常大的权重,而忽略其他特征。如果这个强关联性仅仅是训练集上的巧合,那么模型在测试集上就会表现糟糕。

权重衰减通过惩罚大权重,鼓励模型“雨露均沾”,即利用更多特征,并为每个特征分配一个相对较小的权重。这样,模型就不会过度依赖任何单一的、可能不可靠的特征,从而变得更加鲁棒。

为什么权重衰减通常只作用于Weights,而不作用于Bias?

这是一个非常经典的问题。如果你观察各大深度学习框架的优化器实现,会发现权重衰减默认只应用于权重矩阵,而不应用于偏置向量。原因如下:

参数数量级差异:在一个现代神经网络中,权重的数量通常远超偏置。例如,一个连接两个各有1024个神经元的隐藏层,权重数量为 1024×1024=1,048,5761024 \times 1024 = 1,048,5761024×1024=1,048,576 个,而偏置数量仅为 102410241024 个。对模型复杂度起决定性作用的是百万级的权重,而不是千级的偏置。对偏置进行正则化,收益甚微。

功能定位不同:

权重 (www) 的作用是缩放或调节输入信号的强度。它们决定了模型对输入特征的“敏感度”。限制权重的大小,就是限制模型的复杂度。偏置 (bbb) 的作用是平移激活函数,它独立于输入信号。偏置为模型提供了额外的灵活性,让决策边界可以不经过原点。对偏置进行正则化(即把它也推向0),会不必要地限制这种灵活性,可能导致模型欠拟合。

简而言之,正则化偏置,好比“抓小放大”,既没必要,也可能带来负面影响。因此,标准做法是只对权重进行衰减。

总结

权重衰减(L2正则化)是一种简单而强大的技术,它通过修改损失函数来为大权重施加惩罚。其核心思想通过梯度下降的更新公式体现得淋漓尽致:每次迭代,权重都会朝着零的方向“衰减”一小步。

通过这种机制,我们能够:

保证权重较小:通过在优化过程中不断施加向零的拉力。防止过拟合:通过构建更简单、更平滑的模型,降低其对训练数据噪声的敏感度,从而提升泛化能力。合理应用:通常我们只对权重进行衰减,而放过偏置,以达到最佳的正则化效果。

下次当你在代码中设置 weight_decay 这个超参数时,你将不再只是知其然,更能知其所以然。希望这篇博客能帮助你更深刻地理解它背后的数学之美与工程智慧。

相关资讯

3DMAX 渲染出图的实用指南
bet体育365官网正规

3DMAX 渲染出图的实用指南

📅 10-04 🔧 admin
职场社交APP排名:十大平台助力职业发展
365bet大陆网址

职场社交APP排名:十大平台助力职业发展

📅 08-03 🔧 admin
7.3冰霜天赋法师属性 爆击急速精通哪个重要
365bet大陆网址

7.3冰霜天赋法师属性 爆击急速精通哪个重要

📅 06-27 🔧 admin