如何理解正则化:在多个可行答案中选择更稳定的方案
在机器学习中训练模型的基本目标是找到一组参数使模型对训练数据的预测尽可能准确。以线性回归为例模型可以写成y^w1x1w2x2b\hat yw_1x_1w_2x_2by^​w1​x1​w2​x2​b其中x1x_1x1​和x2x_2x2​是输入特征w1w_1w1​和w2w_2w2​是模型需要学习的权重bbb是偏置。理想情况下训练数据能够清楚地告诉模型每个特征应该对应多大的权重但现实中的特征经常存在高度相关的问题。例如在预测房价时“房屋建筑面积”和“房间面积总和”实际上描述的是十分接近的信息。通常建筑面积较大的房子房间面积总和也会较大因此在训练数据中可能始终有x1≈x2x_1\approx x_2x1​≈x2​。此时模型很难判断房价上涨究竟应该归因于建筑面积还是归因于房间面积总和。训练数据可能只能确定两个权重的整体效果却无法准确确定每个权重各自应该是多少。假设模型从数据中发现只要满足w1w2≈5w_1w_2\approx5w1​w2​≈5就可以获得较小的训练误差。那么满足这个条件的参数组合就不止一个。例如w1100,w2−95w_1100,w_2-95w1​100,w2​−95可以满足要求w110,w2−5w_110,w_2-5w1​10,w2​−5也可以w15,w20w_15,w_20w1​5,w2​0同样可以而w12.5,w22.5w_12.5,w_22.5w1​2.5,w2​2.5也能得到相近的预测结果。这是因为当x1≈x2x_1\approx x_2x1​≈x2​时模型的预测可以近似写成y^≈(w1w2)x1b\hat y\approx(w_1w_2)x_1by^​≈(w1​w2​)x1​b。换句话说模型在训练数据上主要看到的是两个权重之和而不是每个权重的独立作用。因此只看训练误差这些参数组合可能没有明显区别。它们都能够拟合训练样本但这并不意味着它们在新数据上同样可靠。机器学习真正关心的并不是模型是否记住了训练数据而是模型面对没有见过的数据时能否继续作出准确、稳定的预测。参数w1100,w2−95w_1100,w_2-95w1​100,w2​−95的问题在于它依赖两个较大数值之间的精确抵消。假设某个训练样本满足x11,x21x_11,x_21x1​1,x2​1模型的预测结果就是100×1−95×15100\times1-95\times15100×1−95×15。此时它看起来没有任何问题。但如果新样本中的两个特征不再完全相等例如x11,x20.99x_11,x_20.99x1​1,x2​0.99预测结果就会变成100×1−95×0.995.95100\times1-95\times0.995.95100×1−95×0.995.95。特征只发生了很小的变化预测却出现了较大的波动。相比之下如果使用w12.5,w22.5w_12.5,w_22.5w1​2.5,w2​2.5那么第一个样本的预测结果同样是555第二个样本的预测结果则是2.5×12.5×0.994.9752.5\times12.5\times0.994.9752.5×12.5×0.994.975变化幅度很小。这说明第一组参数虽然能够拟合训练数据却十分敏感第二组参数虽然在训练数据上的表现可能与第一组差不多却对数据中的轻微变化更加稳健。可以把第一组方案想象成两个人拔河一个人向左用力一百另一个人向右用力九十五最后只剩下五的合力。最终结果虽然正确但只要任何一方的力量稍有变化合力就可能明显改变。第二组方案则像两个人朝同一方向各用力二点五不需要精确抵消也就不容易因微小变化而失去平衡。正则化的作用就是帮助模型在这些训练误差相近的答案中作出选择。普通线性回归通常只要求预测误差尽可能小而加入正则化后优化目标还会考虑参数本身是否过大。以常见的 L2 正则化为例模型需要最小化的目标可以表示为总损失训练误差λ(w12w22)总损失训练误差\lambda(w_1^2w_2^2)总损失训练误差λ(w12​w22​)。其中第一部分要求模型拟合训练数据第二部分称为正则项用来惩罚过大的权重λ\lambdaλ则决定这种惩罚有多强。对于w1100,w2−95w_1100,w_2-95w1​100,w2​−95正则项为1002(−95)219025100^2(-95)^2190251002(−95)219025对于w12.5,w22.5w_12.5,w_22.5w1​2.5,w2​2.5正则项只有2.522.5212.52.5^22.5^212.52.522.5212.5。如果两组参数产生的训练误差非常接近那么第二组参数的总损失显然更小因此模型会优先选择第二组。正则化并不是认定所有大参数都是错误的而是在表达一种合理的偏好如果简单、平稳的参数已经能够解释数据就没有必要选择依赖巨大权重相互抵消的复杂方案。这种偏好能够提高模型的泛化能力。训练数据只是现实世界中的有限样本其中不仅包含真正的规律也包含测量误差、随机噪声和偶然关系。如果模型只追求把训练误差降到最低就可能利用这些偶然细节。例如两个特征在训练集中可能几乎完全同步但在未来数据中它们之间的关系可能因房屋结构、统计口径或测量方式而略有改变。没有正则化的模型可能把训练集中的这种高度相关当成永远成立的规律并形成一正一负的巨大权重一旦相关关系发生轻微变化预测就会失准。正则化通过限制权重规模降低模型对某些细节的过度依赖使模型更多地学习稳定、普遍的规律。从偏差与方差的角度看正则化通常会略微增加模型在训练数据上的误差也就是增加一点偏差但它能够显著减少模型因训练样本变化而产生的波动也就是降低方差。只要正则化强度适当这种交换往往能让测试误差更低。正则化的强度由λ\lambdaλ控制。当λ0\lambda0λ0时正则项不起作用模型只追求最小训练误差可能得到非常大的权重当λ\lambdaλ适度增大时大权重受到限制模型通常更加稳定但如果λ\lambdaλ过大模型会为了减小参数而牺牲太多拟合能力甚至把所有权重都压得接近于零造成欠拟合。因此正则化并不是越强越好而是需要通过验证集或交叉验证选择合适的强度。除 L2 正则化外还有 L1 正则化其目标中加入的是权重绝对值之和即λ(∣w1∣∣w2∣)\lambda(|w_1||w_2|)λ(∣w1​∣∣w2​∣)。L2 往往使相关特征共同分担权重让参数整体变小且更加平滑L1 则更容易把某些权重直接压到零因此具有特征选择效果。在两个高度相关的特征之间L2 可能分别保留一部分权重而 L1 可能主要保留其中一个。两种方法的共同思想都是限制模型复杂度但具体产生的参数结构并不相同。使用正则化时还要注意特征尺度。如果建筑面积使用平方米而另一个特征使用平方厘米那么两个特征的数值范围会相差很大相应权重也会因为单位不同而具有完全不同的大小。此时直接惩罚权重可能不公平某个权重较小并不一定说明对应特征不重要也可能只是该特征的数值单位较大。因此在使用 L1 或 L2 正则化之前通常需要对输入特征进行标准化使不同特征具有相近的数值尺度。总的来说正则化可以理解为一种选择原则当多个方案都能较好地拟合训练数据时不盲目选择训练误差最低但参数极端的方案而是偏好参数较小、结构较简单、对扰动不敏感的方案。它牺牲少量训练集上的完美程度换取新数据上的稳定性。用一句话概括正则化不是单纯让模型“少犯错”而是让模型以更加可靠的方式犯更少的错。