正则化(regularization):在优化训练误差之外,额外加入一种约束或偏好,使模型不要为了拟合训练集而学出过于复杂、过于极端、过于脆弱的解。

最常见的形式是:

$$
\min_\theta \ \mathcal{L}_{train}(\theta) + \lambda \Omega(\theta)
$$

其中:

  • $\mathcal{L}_{train}(\theta)$ 是训练损失;
  • $\Omega(\theta)$ 是正则项,用来惩罚某种“不希望出现的模型性质”;
  • $\lambda$ 控制正则化强度;
  • $\theta$ 是模型参数。

例如 L2 正则化:

$$
\min_\theta \ \mathcal{L}_{train}(\theta) + \lambda |\theta|_2^2
$$

模型不仅要拟合训练数据,还要尽量让参数不要太大。


1. 从第一性原理看:机器学习到底在做什么?

机器学习的目标是学到一个能够泛化到未知样本的函数。

理想目标是最小化真实风险:

$$
R(f)=\mathbb{E}{(x,y)\sim P{data}}[\ell(f(x),y)]
$$

也就是在真实数据分布 $P_{data}$ 上的期望损失。

但问题是,我们不知道完整的 $P_{data}$。我们只有有限训练集:

$$
D={(x_i,y_i)}_{i=1}^n
$$

所以训练时只能最小化经验风险:

$$
\hat{R}(f)=\frac{1}{n}\sum_{i=1}^n \ell(f(x_i),y_i)
$$

这就产生了一个根本矛盾:

我们真正想优化的是 $R(f)$,但实际只能优化 $\hat{R}(f)$。

当训练集有限、有噪声、有偏采样时,经验风险最小的模型不一定是真实风险最小的模型。正则化就是为了解决这个错位。


2. 为什么只最小化训练损失会出问题?

假设你有一些训练点,目标是拟合一个函数。理论上,一个足够复杂的模型可以完全穿过所有训练点,包括噪声点。

训练误差可以接近 0:

$$
\hat{R}(f) \approx 0
$$

但这个函数可能在训练点之间剧烈震荡,对新样本表现很差。也就是说:

$$
\hat{R}(f) \ll R(f)
$$

这就是过拟合。

过拟合的根源是:

训练数据只是真实分布的有限采样。模型容量越大,它越可能利用训练集中的偶然模式、噪声、采样偏差,而不是学习稳定规律。

所以我们不能只问:

“这个模型在训练集上错多少?”

还要问:

“这个模型是不是用了过于复杂的方式来降低训练误差?”

正则化就是对第二个问题的回答。


3. 正则化的来历:从病态反问题到统计学习

“regularization” 这个概念最早来自数学中的反问题和病态问题。

一个经典场景是:你想根据观测结果 $y$ 反推出原因 $x$。

例如:

$$
Ax = y
$$

如果 $A$ 很好,直接求解就可以。但很多实际问题中,$A$ 是病态的,也就是微小的观测噪声会导致解剧烈变化。

假设观测里有一点噪声:

$$
y’ = y + \epsilon
$$

如果直接求:

$$
x = A^{-1}y’
$$

那么一个很小的 $\epsilon$ 可能被 $A^{-1}$ 放大,导致得到完全错误的 $x$。

为了解决这个问题,Tikhonov regularization 提出不要只求满足 $Ax \approx y$ 的解,而是求:

$$
\min_x |Ax-y|^2 + \lambda |x|^2
$$

这就是非常经典的 L2 正则化来源。

它的直觉是:

在所有能解释观测数据的解里面,选择一个更稳定、更小、更平滑的解。

后来这个思想被统计学习继承下来。机器学习本质上也是一种反问题:我们根据有限训练样本,反推出一个未知的预测函数。这个问题同样病态,因为能拟合训练集的函数太多了。正则化的作用就是让问题变得更“良定”。


4. 正则化到底在限制什么?

正则化不是简单地让模型变小。更准确地说,它限制的是模型的有效自由度。

模型有两种复杂度:

一种是参数数量上的复杂度。例如一个大模型有几十亿参数。

另一种是函数行为上的复杂度。例如函数是否剧烈震荡、是否对输入扰动极其敏感、是否使用了非常尖锐的决策边界。

正则化主要限制第二种复杂度。

例如 L2 正则化限制参数范数:

$$
\Omega(\theta)=|\theta|_2^2
$$

参数小通常意味着函数变化更平滑,决策边界不那么极端。

L1 正则化限制参数绝对值和:

$$
\Omega(\theta)=|\theta|_1
$$

它会促使很多参数变成 0,因此带来稀疏性。

Dropout 随机丢弃神经元,本质上限制模型不能过度依赖某几个特征。

Data augmentation 通过输入变换要求模型输出保持稳定,本质上约束模型学习变换不变性。

Early stopping 在模型开始记忆训练噪声之前停止训练,本质上也是一种正则化。

所以正则化不一定非要显式写成 $\lambda\Omega(\theta)$。凡是能限制模型过度利用训练集偶然模式的机制,都可以看作正则化。


5. 从偏差-方差角度理解正则化

泛化误差可以粗略分解为三部分:

$$
\text{Error} = \text{Bias}^2 + \text{Variance} + \text{Noise}
$$

其中:

  • Bias 是模型假设太简单导致的系统性错误;
  • Variance 是模型对训练数据变化过于敏感;
  • Noise 是数据本身不可消除的噪声。

过拟合主要对应高方差。模型太灵活,训练集稍微变一点,学出来的函数就完全不同。

正则化的作用是降低方差,但代价是可能增加偏差。

也就是说,正则化是在做 trade-off:

$$
\text{更强正则化} \Rightarrow \text{更低方差,但更高偏差}
$$

$$
\text{更弱正则化} \Rightarrow \text{更低训练误差,但更高过拟合风险}
$$

所以正则化不是越强越好。它的目标是找到训练误差和模型稳定性之间的平衡。


6. 从贝叶斯角度理解正则化

正则化还可以看成是给模型参数加先验。

普通最大似然估计是:

$$
\theta^* = \arg\max_\theta p(D|\theta)
$$

也就是只看参数 $\theta$ 对训练数据 $D$ 的解释能力。

贝叶斯观点会加入先验:

$$
\theta^* = \arg\max_\theta p(D|\theta)p(\theta)
$$

取负对数:

$$
\theta^* = \arg\min_\theta -\log p(D|\theta) - \log p(\theta)
$$

其中:

$$
-\log p(D|\theta)
$$

对应训练损失;

$$
-\log p(\theta)
$$

对应正则项。

例如,如果假设参数服从高斯先验:

$$
p(\theta) \propto \exp(-\alpha |\theta|_2^2)
$$

那么:

$$
-\log p(\theta) = \alpha |\theta|_2^2 + C
$$

这就得到 L2 正则化。

如果假设参数服从 Laplace 先验:

$$
p(\theta) \propto \exp(-\alpha |\theta|_1)
$$

就得到 L1 正则化。

所以正则化的另一种解释是:

在训练数据不足以唯一决定模型时,我们加入先验偏好,选择更符合先验的解。

这个先验可以是“小参数”“稀疏”“平滑”“低秩”“局部一致”“语义结构稳定”等。


7. 从优化角度理解正则化

很多模型的训练目标存在大量等价或近似等价的解。它们在训练集上的 loss 差不多,但泛化能力不同。

正则化可以改变优化 landscape,让优化器更倾向于找到稳定解。

例如 L2 正则化会让参数更新多一个衰减项:

$$
\theta \leftarrow \theta - \eta \left(\nabla_\theta \mathcal{L}_{train} + 2\lambda \theta\right)
$$

也就是:

$$
\theta \leftarrow (1-2\eta\lambda)\theta - \eta \nabla_\theta \mathcal{L}_{train}
$$

这就是 weight decay 的基本形式。

它会持续把参数往 0 拉,避免参数无限变大。

在分类模型中,如果没有正则化,模型可能为了让训练样本的 softmax 置信度接近 1,不断增大 logit scale。训练 loss 继续下降,但决策边界的泛化未必变好。正则化可以抑制这种无意义的置信度膨胀。


8. 深度学习中的正则化为什么更复杂?

传统机器学习里,模型容量相对有限,所以“参数越多越容易过拟合”比较直观。

但深度学习里有一个现象:模型参数数量远大于训练样本数量,却仍然可以泛化。这说明现代深度学习中的正则化不只来自显式正则项,还来自很多隐式机制。

比如:

SGD 本身有隐式正则化。小 batch SGD 的梯度噪声会让模型不容易落入过尖锐的极小值。

网络结构有归纳偏置。CNN 偏向局部平移等变,Transformer 偏向 token 交互和注意力匹配。

数据增强提供不变性约束。比如图像旋转、裁剪、颜色扰动,语音速度扰动、SpecAugment,本质上告诉模型:这些变化不应该改变语义。

BatchNorm / LayerNorm 改变优化动态,也有一定稳定训练和正则化效果。

Contrastive learning 中的 temperature、negative sampling、embedding normalization、queue size、batch composition,也都带有正则化作用。

所以在深度学习中,正则化已经不只是 “loss 后面加一个 $\lambda|\theta|^2$”,而是所有控制模型有效复杂度和泛化行为的机制。


9. 和对比学习的关系:为什么假负样本可能被说成“正则化”?

回到你关心的对比学习。

标准对比学习既要 alignment,也要 uniformity。

alignment 是让正例靠近:

$$
s(x_i, x_i^+) \uparrow
$$

uniformity 是让整体表示不要塌缩到一起,而是在表示空间中分散开:

$$
s(x_i, x_j^-) \downarrow
$$

如果没有 negative 或 uniformity 约束,所有样本可能映射到同一个向量,出现 collapse。

因此,负样本的排斥力本身就是一种正则化:它防止模型只学“所有东西都相似”。

但假负样本的问题在于:它本来不应该被强烈排斥。

所以更准确地说:

  • 真负样本提供必要的 uniformity regularization;
  • hard negative 提供边界正则化;
  • 假负样本如果强惩罚,是噪声;
  • 假负样本如果低权重、软处理、阶段性处理,可能提供局部邻域正则化。

例如两个热词:

“北京大学”

和:

“北京大学深圳研究生院”

它们不是完全相同的目标,但也不是普通负例。如果训练后期轻微保留它们之间的排斥压力,可以防止模型把所有包含“北京大学”的文本和语音完全塌缩到一起。这种压力可以看成一种细粒度判别正则化。

但如果训练早期就强行把它们当普通负例推开,就会破坏基本语义对齐。

这就是为什么我之前说:

假负样本前期主要阻碍收敛,后期在受控条件下可能起正则化作用。

严格地说,起正则化作用的不是“错误标签”本身,而是“对语义近邻施加适度、非破坏性的区分压力”。


10. 正则化的本质总结

正则化来自一个根本事实:

有限训练数据不足以唯一决定一个可靠模型。

因此,我们必须在训练误差之外加入额外偏好。

这些偏好可以是:

  • 参数小;
  • 函数平滑;
  • 表示不塌缩;
  • 决策边界有 margin;
  • 对输入扰动稳定;
  • 对语义近邻不过度自信;
  • 对噪声标签不完全相信;
  • 对训练集偶然模式不过度依赖。

所以正则化的本质是:

在“拟合训练数据”和“保持模型稳定、简单、可泛化”之间加入约束。防止模型把有限样本中的偶然性误认为规律。