正则化

正则化 (Regularization)

1. 什么是正则化?

在机器学习和深度学习中,正则化 (Regularization) 是一系列用于防止模型过拟合 (Overfitting) 的技术。

核心目标:让模型在训练集上表现不错的同时,在测试集(即未见过的数据)上也能有很好的表现(即提高泛化能力)。

通俗理解

  • 考试时(训练),如果你死记硬背(过拟合),遇到新题型(测试)就挂了。
  • 正则化就是强迫你理解规律,而不是死记硬背,这样遇到新题型也能举一反三。

从数学角度看,正则化通常是在损失函数 $J(\theta)$ 后面加上一个惩罚项 (Penalty Term):

$$ J_{regularized}(\theta) = J_{original}(\theta) + \lambda \cdot R(\theta) $$
  • $J_{original}(\theta)$:原始损失(如 MSE、Cross Entropy),负责让模型预测准确。
  • $R(\theta)$:正则化项,负责限制模型的复杂度。
  • $\lambda$:正则化系数(超参数),控制惩罚的力度。

2. 常见的正则化方法

2.1 L1 正则化 (Lasso)

在损失函数中加入权重的绝对值之和

$$ R(\theta) = \sum |w_i| $$
  • 效果:倾向于产生稀疏解(Sparse Solution),即让许多权重 $w_i$ 变为 0。
  • 作用
    • 特征选择:自动去掉不重要的特征(权重变0)。
    • 模型压缩:参数变少,模型更轻量。
  • 直观解释:L1 的等高线是菱形,与损失函数的等高线相切时,容易切在坐标轴上(即某些维度为0)。

2.2 L2 正则化 (Ridge / Weight Decay)

在损失函数中加入权重的平方和

$$ R(\theta) = \sum w_i^2 $$
  • 效果:倾向于让权重 $w_i$ 变得很小,但不会完全为 0。
  • 作用
    • 防止某个特征权重过大而主导模型,使模型对输入的变化不那么敏感(更平滑)。
    • 在深度学习中通常被称为权重衰减 (Weight Decay)
  • 直观解释:L2 的等高线是圆形,与损失函数的等高线相切时,通常不会切在坐标轴上,而是让整体数值变小。

2.3 Dropout (随机失活)

在训练过程中,随机地将一部分神经元的输出置为 0。

  • 训练时:以概率 $p$ 丢弃神经元。
  • 测试时:所有神经元都工作,但输出需要乘以 $(1-p)$ (或者在训练时除以 $(1-p)$ 进行缩放,称为 Inverted Dropout)。
  • 原理
    • 集成学习:每次训练的都是一个不同的子网络,最终模型相当于无数子网络的集成 (Ensemble)。
    • 打破共适应 (Co-adaptation):强迫神经元独立提取特征,不能依赖其他特定神经元的存在。

2.4 Early Stopping (早停)

在训练过程中,监控验证集 (Validation Set) 的误差。

  • 当训练集误差还在下降,但验证集误差开始上升时,说明开始过拟合了。
  • 此时立即停止训练,并保存验证集误差最低时的模型参数。
  • 优点:简单有效,不需要修改模型结构。

2.5 数据增强 (Data Augmentation)

通过对训练数据进行变换,人为地增加数据量和多样性。

  • 图像领域:旋转、翻转、裁剪、缩放、调整亮度/对比度、加噪声等。
  • NLP领域:同义词替换、回译(翻译过去再翻译回来)、随机插入/删除词等。
  • 原理:让模型见到更多样的数据,学习到不变性 (Invariance),从而很难死记硬背。

2.6 Batch Normalization (BN)

虽然 BN 主要用于加速收敛和解决梯度问题,但它也具有轻微的正则化效果

  • 原因:BN 在计算均值和方差时依赖于当前的 Mini-batch,这给每个样本的特征引入了一些随机噪声(因为同一个样本在不同 Batch 里,归一化的均值方差不同)。这种噪声有助于防止过拟合。
  • 注意:使用 BN 时,Dropout 的使用率通常可以降低甚至不用。

3. 为什么需要正则化?(Bias-Variance Tradeoff)

机器学习的核心难题是平衡偏差 (Bias)方差 (Variance)

  • 高偏差 (High Bias):模型太简单(欠拟合),连训练集都学不会。
  • 高方差 (High Variance):模型太复杂(过拟合),训练集满分,测试集零分。

正则化的作用就是降低方差。 它通过限制模型的复杂度(奥卡姆剃刀原则:如无必要,勿增实体),让模型关注数据的主要规律,忽略次要的噪声。

4. 总结

方法核心机制特点
L1惩罚权重绝对值产生稀疏权重,用于特征选择
L2惩罚权重平方限制权重大小,防止过分依赖单一特征
Dropout随机关掉神经元模拟集成学习,打破神经元依赖
Early Stopping监控验证集误差最简单直接的防止过拟合手段
Data Augmentation增加数据多样性从根源(数据)上解决过拟合

5. 归一化 vs 正则化 (Normalization vs Regularization)

这是一个非常容易混淆的概念,因为它们在某些情况下会有重叠(比如 BatchNorm 也有正则化效果)。

5.1 核心区别

维度归一化 (Normalization)正则化 (Regularization)
核心目标让模型更好训练 (Optimization)让模型更好泛化 (Generalization)
主要作用解决梯度消失/爆炸,加速收敛,让损失表面更平滑防止过拟合,让模型在未知数据上表现更好
操作对象数据/特征 (改变数据的分布/尺度)损失函数/结构 (增加惩罚项或改变网络结构)
典型方法BatchNorm, LayerNorm, Min-Max ScalingL1/L2, Dropout, Early Stopping
训练/推理训练和推理通常都需要 (且要保持一致)通常只在训练时生效 (如 Dropout)

5.2 相互关系

  1. 互补关系:在现代深度学习中,通常同时使用

    • 用 Normalization (如 BN/LN) 来保证模型能训练起来,收敛得快。
    • 用 Regularization (如 Weight Decay/Dropout) 来保证训练出来的模型不过拟合。
  2. 你中有我

    • BatchNorm 的正则化副作用:BN 在训练时使用 Mini-batch 的统计量,这引入了随机噪声。这种噪声在某种程度上起到了正则化的作用(类似 Dropout)。因此,使用了 BN 的网络通常可以减少 Dropout 的使用甚至不用。
    • Spectral Norm (谱归一化):这是一种特殊的归一化,通过限制权重矩阵的谱范数(归一化权重)来实现 Lipschitz 连续性约束。它本质上是一种对权重的归一化,但其目的是为了稳定训练(特别是 GAN)和限制模型复杂度,所以它既是归一化也是一种强力的正则化。

5.3 一句话总结

  • 归一化修路:把坑坑洼洼的路修平整,让车(优化器)跑得更快更稳。
  • 正则化限速/考驾照:限制车手的行为,防止他因为开得太猛(过拟合)而翻车。