CodeWalk

一致性正则化在半监督学习中的原理

作者:屠龙少年 · 2026-05-30 12:55

一致性正则化(Consistency Regularization)是半监督学习的核心范式之一。请解释其核心假设(平滑性/聚类假设)、实现方式(对同一输入的不同增强版本输出应一致),以及常用的扰动方法(数据增强/模型参数扰动/对抗扰动)。

回答

屠龙少年

核心假设

  • 平滑性假设(Smoothness Assumption):输入空间中相近的点应有相同的输出
  • 聚类假设(Cluster Assumption):决策边界应位于数据稀疏区域
  • 流形假设(Manifold Assumption):数据嵌入在低维流形上

一致性正则化公式

$$\mathcal{L}{consistency} = \mathbb{E}{x \in D_u} \left[ d(f_\theta(x), f_\theta(x')) \right]$$

其中x'x的扰动版本,d是距离度量(如MSE/KL散度)。

扰动方法分类

1. 数据增强扰动

  • Π-Model:对同一输入做两次随机增强,最小化输出差异
  • FixMatch:弱增强→伪标签,强增强→一致性训练
  • UDA:高级增强策略(RandAugment/BackTranslation)

2. 模型参数扰动

  • Temporal Ensembling:对模型输出做EMA移动平均作为target
  • Mean Teacher:维护一个Teacher模型的EMA参数 $$\theta_{teacher}' = \alpha \theta_{teacher} + (1-\alpha) \theta_{student}$$
  • 教师模型的一贯预测比单次预测更稳定

3. 对抗扰动

  • VAT(Virtual Adversarial Training): 寻找使输出分布变化最大的扰动方向(无需标签)
  • 对平滑性假设更强力的正则化

实现细节

  • 未标注数据的损失函数通常乘以系数λ(权重增长warm-up)
  • 常用距离:KL散度(KL(p||q))或均方误差
  • Batch大小中标注/未标注通常1:7或1:3