一份两百列特征、八百条样本的表格数据,交给 AI 训练,不加约束时训练集准确率 96%,测试集 68%。在损失函数后面加上一项 λ 乘以参数平方和,测试集回到 81%。同一个模型、同一份数据,唯一的改动是多了一个惩罚项。这个项就是正则化项,它管的事只有一件:别让参数为了迁就个别样本而长到失控。
它加的那一项,管的是参数的体积
原来的目标只有经验风险:预测错了就罚。这个目标有个漏洞——只要参数够大,模型可以把每个训练样本的噪声都记住,训练损失一路降到接近零,泛化能力同时崩掉。
正则化项改变了优化的对象:最小化「经验风险 + λ 乘 Ω(w)」。Ω 衡量参数的复杂程度,λ 决定这份复杂要付多少钱。两项互相拉扯,模型被逼着在「拟合得准」和「参数别太大」之间找折中。损失函数那篇讲的是前半截怎么定义,这里补的是后半截。
四种罚法,罚的东西不一样
同样是压复杂度,压的部位和手感差别很大:
| 项 | 惩罚的是什么 | 强度怎么定 | 什么情况下失效 |
|---|---|---|---|
| L2(岭) | 参数平方和,越大的参数罚得越重 | λ 在对数尺度上网格搜,看验证集最低点 | 特征全都真有用时,它只是均匀缩小,收益很小 |
| L1(套索) | 参数绝对值之和,力度与大小无关 | 同上,但对量纲更敏感,通常要先标准化 | 特征高度相关时,随机留一个、把其余压成零 |
| 弹性网 | L1 与 L2 的加权组合 | 两个超参:总强度与混合比例 | 两参一起调,搜索成本翻倍 |
| 早停 | 训练步数,间接限制参数离开起点的距离 | 按验证损失不再下降的轮次定 | 学习率调度不当时,停下来的位置没有意义 |
第三列是这三种罚法真正的区别所在:L1 罚的是「有没有」,L2 罚的是「多大」,早停罚的是「走多远」。选哪个,取决于你相信稀疏性还是相信平滑性。
为什么 L1 会把参数压到 0
从梯度上看更直白。L2 的梯度是 λ 乘参数,参数越接近 0,推力越小,所以它只能无限逼近而到不了 0。L1 的梯度是 λ 乘符号,力度恒定,不管参数多小都用同样的劲往原点推,小到一定程度就被推过 0 并锁在那里。
几何解释也成立:约束区域 L2 是圆,L1 是带尖角的菱形,等高线最先接触的位置多半落在尖角上,而尖角正好在坐标轴上。这就是稀疏性的来源,也是 L1 能兼做特征筛选的原因——被压成零的那几列,等于从模型里删掉了。
强度不是越大越好,λ 该在哪定
λ 从 0 往上调,验证误差通常先降后升,呈一条 U 形。左边是过拟合区,右边是欠拟合区,最低点就是该取的位置。搜索用对数尺度,在 1e-4 到 1e-1 之间取十几个点,比线性扫有效得多,因为有效区间常常只占一个数量级。
有个前置动作不能省:标准化。L1 和 L2 罚的是参数大小,而参数大小取决于特征量纲。一个以元为单位的特征,其系数天然比以万元为单位的同一条特征小一百倍,惩罚对它们并不公平,最后被压到零的可能只是单位小的那一个。
它治的是方差,治不了偏差
把误差拆成偏差、方差、噪声三部分,正则化动的是方差那一项。模型对训练集的微小扰动过于敏感,是方差大的表现,压参数能让它稳下来。如果模型本身就太简单,连训练集都拟合不好,那是偏差问题,加正则只会让它更差。
所以判断该不该加,看的是训练集和验证集的分叉,不是准确率的绝对值。这个诊断方法和过拟合那篇里讲的完全一致:两条曲线分开的位置,才是问题所在。
加了正则还是过拟合,问题多半不在它
第一种情况是特征泄漏了标签。用「是否退款」预测「是否投诉」,两个字段在数据生成时就绑在一起,正则压不住,因为信号是真的强。这类问题只能靠查数据流解决。
第二种是样本太少而任务太难。八百条样本、两百个特征,正则能做的是把模型压到一个保守解,压不出信息量。
第三种在深度学习里很常见:用了自适应优化器,L2 项会被梯度的缩放吃掉,实际衰减强度随参数变化,不再等于你设的那个 λ。这也是解耦权重衰减被提出来的原因。想看更完整的正则手段,可以对照正则化那篇。
第四种是标签噪声太大。噪声占比高到一定程度,任何强度的正则都只是在「记住噪声」和「学不到东西」之间挑一个更不坏的。
它不提高天花板,只让你更接近天花板
正则化不会让模型学到原本学不到的东西。它的作用是把训练集表现和测试集表现之间的落差收窄,让已有的容量用在更普遍的规律上。
这也解释了它在深度学习时代的处境:有用,但重要性在下降。数据量足够大时,过拟合的诱因被稀释,正则的边际收益变小;而在小样本、高维特征的表格任务里,它仍然是性价比最高的一个改动,通常比换模型结构更划算。
顺带一提,早停在数学上可以看作隐式正则——它限制的是参数离开初始点的距离,效果和 L2 有重叠。两者同时用要留意别叠过头,一个 λ 加上一个过早的停止点,很容易一起把模型压成欠拟合。
速查:加正则之前先确认四件事
- 训练集和验证集是否已经分叉,没分叉就别急着加
- 特征是否标准化,量纲不齐时惩罚会偏
- 要稀疏就选 L1,要平滑稳定就选 L2
- λ 在验证集上按对数尺度搜,不要凭经验拍
- 用的是自适应优化器时,确认衰减是否真的生效


