← 返回题目列表

什么是正则化?为什么它能防止过拟合?L1 和 L2 有什么区别?

高频 中等 第 17 / 25 题 更新于 2026/09/25
机器学习正则化L1L2过拟合
学习 AI 实战项目

简化版

正则化通过限制可选函数或训练过程来引入先验、控制有效容量,常见做法是在目标中加入参数范数惩罚。大权重与复杂度的关系依赖参数化和特征尺度,正则化也不保证必然改善泛化,强度必须用独立验证选择。L1 常产生稀疏系数,L2 常平滑收缩系数;前者可用于预测层面的特征筛选,但不等于找到了真实因果特征。

详细版

正则化后的损失函数:

总损失 = 原始损失(拟合误差) + λ · 正则项(复杂度惩罚)
                                  ↑
                       λ 越大,惩罚越强,模型越简单
  • L1 正则化(Lasso):正则项 = λ·Σ|wᵢ|(权重绝对值之和)。
  • L2 正则化(Ridge / 权重衰减):正则项 = λ·Σwᵢ²(权重平方和)。
  • 弹性网络(Elastic Net):L1 + L2 结合。

L1 vs L2 对比:

维度L1(Lasso)L2(Ridge / 权重衰减)
惩罚项Σ|w|(绝对值)Σw²(平方)
效果部分权重变恰好 0(稀疏)权重整体变小但不为 0
特征选择能(自动去掉无用特征)不能
解的特点稀疏解平滑解
相关特征行为可能只保留其中部分,选择不稳定倾向共同收缩相关特征
几何直觉菱形约束(顶点在坐标轴,易得 0)圆形约束(不易得 0)

λ(正则化系数)是超参数:λ 太小 → 正则化太弱、仍过拟合;λ 太大 → 惩罚太狠、欠拟合。靠验证集调。

完整版教学

一、过拟合和「大权重」的关系

要理解正则化为什么能防过拟合,先看过拟合时模型是什么样的。

过拟合的模型太复杂,为了精确穿过每一个训练点(包括噪声点),它的拟合曲线会剧烈扭曲、上下震荡。数学上,这种「剧烈扭曲」往往对应着参数(权重)的绝对值变得很大——大的权重让模型对输入的微小变化极其敏感(一点输入变化就导致输出剧烈波动),才能拟合出那些尖锐的、迎合噪声的形状。

在特征尺度固定的某些模型里,限制范数会约束函数变化并降低方差;但参数小不自动等于函数平滑,重新缩放特征或改变网络参数化都会改变参数范数。因此应把 L1/L2 看成具体先验与容量控制手段,而非普遍复杂度真值。

二、正则化的做法:给损失加惩罚项

正则化在原来的损失函数(衡量拟合误差)上,加一个「惩罚模型复杂度」的项:

总损失 = 原始损失 + λ · 正则项
  • 原始损失(如 MSE、交叉熵):让模型拟合训练数据(越小拟合越好)。
  • 正则项:惩罚复杂度(权重越大,这项越大)。
  • λ(正则化系数):控制两者的权衡——λ 越大,越重视「简单」、越不在乎「拟合」。

训练时最小化「总损失」,就变成了在「拟合数据」和「保持简单」之间做权衡——模型不能为了拟合训练数据而无限制地增大权重,因为那会让正则项变大、总损失反而上升。这样就逼模型在拟合得还不错的前提下,尽量保持简单,从而提高泛化。

三、L2 正则化(权重衰减)

L2 正则化的正则项是权重的平方和:

正则项 = λ · Σ wᵢ²

(在神经网络里也叫 权重衰减 Weight Decay。)

效果:惩罚大的权重(平方让大权重的惩罚更重),逼所有权重整体变小、趋向 0 但不等于 0——得到一个权重都比较小、比较平滑的模型。

为什么 L2 通常不产生稀疏解:平方项的梯度是 2w,当 w 接近 0 时惩罚梯度也接近 0,因此它倾向于连续收缩,而不像 L1 的非光滑尖点那样系统性地产生零系数。特殊数据和约束下系数仍可能恰好为 0,所以准确结论是“通常不稀疏”,不是“绝不为 0”。

四、L1 正则化(Lasso)

L1 正则化的正则项是权重的绝对值之和:

正则项 = λ · Σ |wᵢ|

效果:让一部分权重变成恰好 0——产生稀疏解(sparse solution)。

为什么 L1 容易得到恰好 0:绝对值在 0 点不可导,次梯度是一个区间;在坐标下降或 proximal soft-thresholding 中,小系数会被阈值化为 0。只用“恒定梯度把权重推到 0”解释并不严谨,因为跨过 0 涉及非光滑点的优化规则。

L1 的价值之一是稀疏化:权重为 0 的特征在该模型中不参与线性预测。但非零不等于因果重要,强相关特征中 L1 可能任意保留一个,选择会随样本变化;使用前还需合理缩放特征。

五、L1 vs L2 的几何直觉(经典)

一个经典的几何解释,说明为什么 L1 产生稀疏解、L2 不会:

把「最小化损失」看成在参数空间里找最优点,正则化相当于给参数加了一个「约束区域」——参数必须落在这个区域内:

  • L1 的约束区域是「菱形」(|w1| + |w2| ≤ t)——菱形有尖锐的顶点,且顶点正好在坐标轴上。损失的等高线(椭圆)向外扩展,最容易先碰到菱形的顶点,而顶点在坐标轴上意味着某个权重 = 0——所以 L1 容易得到稀疏解。
  • L2 的约束区域是「圆形」(w1² + w2² ≤ t)——圆没有尖角、处处光滑,损失等高线碰到圆的位置通常不在坐标轴上(各权重都非零,只是变小了)——所以 L2 不产生稀疏解。

「菱形有顶点在坐标轴上(易得 0)、圆没有顶点(不易得 0)」是理解 L1/L2 区别的经典画面。

六、λ 的选择与其他正则化手段

λ(正则化系数)是关键超参数,靠验证集调:

  • λ 太小 → 正则化太弱,起不到作用,仍然过拟合。
  • λ 太大 → 惩罚太狠,把模型压得太简单,欠拟合(权重都被压得太小,学不到规律)。
  • 用验证集/交叉验证找到总误差最小的 λ。

除了 L1/L2,广义的「正则化」(任何限制模型复杂度、提高泛化的手段)还包括:

  • 弹性网络(Elastic Net):L1 + L2 结合,兼顾稀疏和平滑。
  • Dropout(神经网络随机丢神经元)、早停(Early Stopping)、数据增强——它们从不同角度限制模型「过度拟合训练数据」,本质都是正则化思想(见「过拟合」专题)。

七、用数字和工程流程校验理解

以 L2 为例,原损失 10、权重平方和 20、λ=0.1 时,总目标为 10+0.1×20=12。若另一组参数把原损失降到 9.5,却让平方和升到 40,总目标为 13.5,优化器反而会选择更平滑的前一组参数。

对象/方案核心机制选择或风险
L1λΣw
L2λΣw²平滑收缩权重,通常不置零
早停/Dropout限制有效拟合能力也是广义正则化

把面试题落到可执行流程:

objective = data loss + λ penalty
λ ↑ -> stronger constraint
train error usually ↑, variance often ↓
用验证集选择 λ

L2 正则与优化器中的 weight decay 在普通 SGD 下可等价,但在 Adam 等自适应优化器中,耦合 L2 与解耦 AdamW 并不相同。

八、常见误区与追问

  • 误区:正则化会让训练损失和测试损失都必然下降。 它通常牺牲部分训练拟合来改善泛化,验证效果是否提升仍需调参确认。
  • 误区:L1 一定能选出真实因果特征。 L1 只按预测目标和数据相关性产生稀疏解,强相关特征下选择还可能不稳定。
  • 追问:为什么 L1 更容易得到零权重? L1 等值线在坐标轴上有尖角,最优点更容易落在某个坐标为零的位置。
  • 追问:偏置项要不要正则化? 许多实现默认不惩罚偏置;是否需要取决于参数化和先验假设。
  • 追问:λ 越大越好吗? 过大会造成高偏差甚至欠拟合,应在独立验证流程中选择。

九、加强记忆

正则化用先验约束有效容量,常见目标是 数据损失 + λ·惩罚,也包括早停、数据增强和 Dropout。L2 平滑收缩权重,普通 SGD 下与相应 weight decay 可等价,但 Adam 中耦合 L2 与 AdamW 不同;L1 的非光滑几何和近端阈值使其容易产生零系数。特征要先缩放,λ 用独立验证选择;稀疏只说明该预测模型的选择,不等于因果重要。记忆锚点:L1 偏稀疏,L2 偏平滑,泛化收益必须实测。