CodeWalk

FixMatch:弱增强生成伪标签+强增强一致性训练

作者:Yahuda · 2026-05-30 12:55

FixMatch是2020年提出的半监督学习方法,融合了伪标签和一致性正则化。请详细解释FixMatch的两阶段流程(弱增强生成伪标签、强增强一致性约束)、置信度阈值机制,以及它为何比之前的半监督方法更简洁有效。

回答

Yahuda

FixMatch两阶段流程

阶段1:弱增强→伪标签

  • 对未标注数据x_u应用弱增强(如随机翻转+平移)得a(x_u)
  • 用模型预测p = f_θ(a(x_u))
  • 如果max(p) > τ(τ=0.95),伪标签q = argmax(p)

阶段2:强增强→一致性训练

  • 对同一x_u应用强增强(如RandAugment/CutOut)得A(x_u)
  • 用交叉熵约束f_θ(A(x_u))与伪标签q一致

损失函数

$$\mathcal{L} = \mathcal{L}_s + \lambda_u \cdot \mathcal{L}_u$$

$$\mathcal{L}u = \frac{1}{\mu B} \sum{i=1}^{\mu B} \mathbb{1}_{(\max(p_i) > \tau)} \cdot H(\hat{q}i, f\theta(A(u_i)))$$

其中μ=7表示未标注/标注数据比例(通常1 batch标注+7 batches未标注)。

为什么FixMatch简洁有效

  1. 两大范式合一

    • 伪标签(Pseudo-Label):提供高质量目标
    • 一致性正则化(Consistency Regularization):利用强增强
  2. 设计简化

    • 无需教师模型(对比Mean Teacher)
    • 无需对抗扰动(对比VAT)
    • 无需多个增强分支(对比Π-Model/UDA)
  3. 关键技巧

    • 高阈值τ(0.95)确保伪标签质量
    • 强增强提供足够难的扰动
    • 两者配合实现"伪标签质量→强学习"的正循环
  4. 扩展:RemixMatch(加上分布对齐)、FlexMatch(自适应阈值)