权重衰减
方法
权重衰减等价于 L2 范数正则化(regularization)。正则化通过为模型损失函数添加惩罚项使学出的模型参数值较小,是应对过拟合的常用手段。
L2 范数正则化(regularization)
L2 范数正则化在模型原损失函数基础上添加 L2 范数惩罚项,从而得到训练所需要最小化的函数。 L2 范数惩罚项指的是模型权重参数每个元素的平方和与一个正的常数的乘积。以线性回归中的线性回归损失函数为例
ℓ(w1,w2,b)=1n∑i=1n12(x(i)1w1+x(i)2w2+b−y(i))2
其中 w1,w2 是权重参数, b 是偏差参数,样本 i 的输入为 x(i)1,x(
过拟合和欠拟合是机器学习中常见的两种问题,它们反映了模型在训练集和测试集上的表现差异。过拟合是指模型在训练数据上表现极好,但在未见过的数据(如测试集)上表现差,这是因为模型过于复杂,过度学习了训练数据中的噪声和细节。欠拟合则相反,模型无法捕捉到训练数据中的关键模式,导致在训练集和测试集上的表现都不理想,通常是因为模型过于简单或训练不足。
为了解决过拟合问题,正则化是一种有效的策略。正则化通过对模型的损失函数添加惩罚项来限制模型的复杂度。L2范数正则化是其中一种常见方法,它在原始损失函数的基础上添加了权重参数的平方和。以线性回归为例,原来的损失函数是所有样本误差平方的平均,而L2正则化则是加上了权重向量w的L2范数(w1^2 + w2^2 + ...)乘以一个正的超参数λ。这样,当λ增大时,模型会倾向于学习较小的权重,以减少正则化项的贡献,从而避免过拟合。
权重衰减是L2正则化的另一种说法。在梯度下降过程中,L2正则化会导致权重参数在更新时先乘以一个小于1的系数,然后再减去梯度,这个系数就是1 - ηλ/|B|,其中η是学习率,λ是正则化强度,|B|是小批量样本的数量。这种机制使得权重在每次迭代后都趋向于减小,从而抑制模型复杂度,防止过拟合。
在实际应用中,PyTorch等深度学习框架提供了便捷的方式来实现正则化。例如,可以通过`torch.optim.SGD`的`weight_decay`参数来设置权重衰减,对模型的权重参数进行正则化,而偏差参数通常不进行正则化,因为它们在训练初期通常比较稳定,对模型的复杂度影响较小。
除了L2正则化,丢弃法(Dropout)也是预防过拟合的有效手段,尤其是在深度神经网络中。丢弃法随机关闭一部分神经元,使得在训练过程中模型不能过分依赖任何特定的神经元,提高了模型的泛化能力。在计算隐藏层的输出时,每个神经元以概率p被丢弃,未被丢弃的神经元的输出则被放大1/(1-p)。这样,模型在训练时被迫学习到多个不同的子模型,这些子模型在测试时结合起来,可以提供更好的泛化性能。
过拟合和欠拟合是机器学习中必须面对的问题。通过使用正则化(如L2范数正则化)和丢弃法等技术,我们可以控制模型的复杂度,平衡模型的训练和泛化能力,以达到更好的预测效果。在实际应用中,选择合适的正则化策略和超参数调整是优化模型性能的关键步骤。