1. 为什么需要正则化:先搞清楚模型在什么情况下被带偏
我第一次认真研究正则化,不是在上课的时候,而是在调一个房价预测模型的时候。训练集上的R²已经刷到0.98,验证集却只有0.71,模型在训练集上几乎背下了每个样本的噪声,换了一批数据就原形毕露。这就是机器学习里最常见的翻车现场——过拟合。
正则化就是专门对付这个问题的。它不是某个花哨的模型,而是加在损失函数后面的一个惩罚项,核心作用就是让模型的权重不要长得太随意,逼着模型学一套更稳定、更简单的规律。对于正在学机器学习的同学来说,正则化几乎是绕不开的考点;对于已经在用sklearn、TensorFlow做项目的人来说,它又是调参和模型融合时最常被拿来救场的工具。
1.1 过拟合不是玄学,它藏在三个地方
我们常用下面这个式子描述一个线性模型的损失:
[
J(w) = \frac{1}{n}\sum_{i=1}^{n} L(y_i, \hat{y}_i) + \lambda R(w)
]
前半部分是模型在训练数据上的损失,后半部分是正则项,(\lambda) 是正则化系数。没有后半部分时,模型优化的唯一目标就是把训练集的损失压到最低。问题是,当模型太灵活、特征太多、数据量又不够的时候,它会想尽一切办法去拟合每一个训练样本,包括样本里那些纯属偶然的噪声点。
我见过不少新手在这个地方栽跟头,总以为“训练误差越低就代表模型越好”。其实过拟合往往就藏在三个信号里:一是训练损失长期低于验证损失,二是在验证集上的表现随着训练轮数先降后升,三是模型权重变得很大、很碎。前两个靠画学习曲线就能看出来,第三个则是正则化要解决的主要问题。
1.2 正则化怎么把模型“拉回来”
你可以把模型训练想象成一次自由创作。没有正则化的时候,模型就像一位完全放飞自我的作家,想怎么写就怎么写,最后确实能写得和训练素材一字不差,但稍微换个话题就彻底懵了。正则化相当于给这位作家定了几条写作规范:别用太生僻的词,别写太长的从句,老老实实把主干意思表达清楚。
放到数学上,正则项 (R(w)) 就是在惩罚那些过于大的权重。假设某个特征在训练集上碰巧和标签有很强的假相关性,模型就会给这个特征配一个大权重,而这个权重在验证集上很可能不成立。正则化提高了得到大权重的代价,让模型只有在证据非常充分的时候才敢用大权重,本质上是在“抑制模型的自由度”。
我们常说的偏差和方差,也可以放到同一个框架里看。正则化系数调大,模型变得更保守,方差降下来了,但偏差会增加,可能学不到足够复杂的关系。系数调小,模型又容易回到过拟合。正则化就是我们在偏差和方差之间拧动的一个旋钮。
提示:做期末复习或者面试准备时,正则化的核心价值用一句话概括就是:以可接受的偏差增加为代价,换取方差的大幅下降,从而提升模型在未知数据上的泛化能力。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 主流正则化家族:L1、L2、弹性网与前人经验
聊正则化,绕不开L1和L2。这两个算是正则化家族里的元老,几乎每一本经典教材都会讲,从周志华老师的《机器学习》,到李航老师的《统计学习方法》,再到吴恩达老师的课程,都会花不少篇幅。它们看起来只是范数符号的差别,实际表现却完全不同。
2.1 L2正则化(权重衰减)的原理与几何直觉
L2正则化也叫权重衰减、岭回归(Ridge Regression),它的正则项是所有参数平方和的一半:
[
R(w) = \frac{1}{2} \sum_{j=1}^{p} w_j^2
]
加上这个惩罚后,权重越大的参数受到的“惩罚”越重,梯度下降时每一步都会让权重往0的方向多收缩一点,所以叫权重衰减。
为什么 L2 能防过拟合?我记得自己在理解这个问题时,最有帮助的其实是几何视角。对于只有两个特征的模型,不带正则项时,损失函数的等高线是一圈一圈的椭圆,椭圆中心是最优解。加上了L2约束后,参数被限制在一个以原点为圆心的圆形区域内。圆形区域和椭圆等高线相切的位置,往往不是椭圆中心,而是偏向原点、权重更小的某个点。这个偏置让模型放弃了在训练集上“极致精准”的那个解,换来了
