正则化

在损失函数后面加一项惩罚,让权重不能太大——相当于"答案越长扣分越多",迫使模型只保留真正有用的规律,防止过拟合。

核心公式

📖 符号说明

符号含义说明取值范围
原始损失预测值与标签的差距[0, +∞)
惩罚力度控制正则化强度的超参数(0, +∞)
权重平方和所有权重的平方之和,衡量模型复杂度[0, +∞)

前置知识

直觉理解

考试有一条新规则:答案越长扣分越多。这逼你只写核心要点,不堆无关细节。

正则化做的就是这件事:在损失函数后面加一项"惩罚",让模型的权重不能太大。权重大意味着模型在"用力记住"某些细节——正则化让这种行为付出代价。

数学表达

在原始损失后面加上权重的平方和:

Lnew=L+λw2L_{new} = L + \lambda \sum w^2Lnew=L+λw2
  • LLL:原来的损失(预测和标签的差距)
  • w2\sum w^2w2:所有权重的平方和(衡量"答案有多长")
  • λ\lambdaλ:惩罚力度(λ\lambdaλ 越大,越不允许"长答案")

为什么有效

模型如果想让某个权重变得很大(相当于写了一段很长的答案来"记住"某条数据),就会被惩罚分拖累。模型被迫让权重保持较小——只保留真正有用的规律,放弃死记硬背的部分。

λ\lambdaλ 的选择是一个平衡:太小没效果,太大模型又学不到东西(欠拟合)。

代码中的实现

PyTorch 中只需一个参数:optimizer = SGD(params, lr=0.01, weight_decay=0.01)weight_decay 就是公式中的 λ\lambdaλ