概述
神经网络模型里面,如果少部分参数的绝对值相对其他值过大,就会造成模型过度依赖于某些特征(由这些较大值所代表),从而更容易产生过拟合问题。因而,我们有必要针对权重设置一种衰减措施,避免其与大多数参数的绝对值产生较大的偏差,即权重衰减。
权重衰减通过向损失函数添加一个惩罚项,促使模型选择较小的权重值。这个惩罚项通常是权重的 L2 范数的平方与一个权重衰减系数的乘积。因此,权重衰减可以减小权重的绝对值,但更重要的是,它可以防止模型过度依赖于某些特征,减小模型的复杂度,提高泛化能力。
举例说明
假设我们有一个简单的线性回归模型,其中只有一个特征和一个输出:
y ^ = w x + b \hat{y} = wx + b y^=wx+b
其中, y ^ \hat{y} y^ 是模型的预测输出, x x x 是输入特征, w w w 是权重, b b b 是偏置。
我们的损失函数为均方误差(MSE):
MSE = 1 N ∑ i = 1 N ( y ^ i − y i ) 2 \text{MSE} = \frac{1}{N} \sum_{i=1}^{N} (\hat{y}_i - y_i)^2 MSE=N1i=1∑N(y^i−yi)2
其中, N N N 是样本数量, y i y_i yi 是第 i i i 个样本的真实标签。
现在,我们想要在训练模型时使用权重衰减来控制模型的复杂度。我们可以将损失函数修改为:
MSE + λ ( w 2 + b 2 ) \text{MSE} + \lambda \left( w^2 + b^2 \right) MSE+λ(w2+b2)
其中, λ \lambda λ 是权重衰减率。
在梯度下降的过程中,我们的梯度更新规则变为:
w
←
w
−
α
(
∂
MSE
∂
w
+
2
λ
w
)
w \leftarrow w - \alpha \left( \frac{\partial \text{MSE}}{\partial w} + 2 \lambda w \right)
w←w−α(∂w∂MSE+2λw)
b
←
b
−
α
(
∂
MSE
∂
b
+
2
λ
b
)
b \leftarrow b - \alpha \left( \frac{\partial \text{MSE}}{\partial b} + 2 \lambda b \right)
b←b−α(∂b∂MSE+2λb)
其中, α \alpha α 是学习率。
这样,通过加入权重衰减项,模型在更新权重时会更倾向于选择较小的权重值,从而减小模型的复杂度,防止过拟合的发生。
这就是权重衰减在简单线性回归问题中的作用。