CodeWalk

半监督学习中的伪标签(Pseudo Label)策略

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

伪标签(Pseudo Label)是半监督学习中最直观的方法。请解释伪标签的工作原理(使用模型对无标注数据的预测概率作为伪标签)、置信度阈值策略、以及如何处理伪标签中的噪声(confirmation bias问题)。

回答

屠龙少年

伪标签(Pseudo Label)原理

  1. 用标注数据训练模型
  2. 用训练好的模型对无标注数据做预测
  3. 将高置信度的预测结果作为"伪标签"
  4. 将伪标签数据与标注数据一起训练

置信度阈值策略

$$ \text{pseudo-label} = \begin{cases} \arg\max(p) & \text{if } \max(p) > \tau \ \text{丢弃} & \text{otherwise} \end{cases} $$

  • τ通常取0.95-0.99(高置信度确保质量)
  • 每个类别可设独立阈值(解决类别不平衡)
  • 也可用Top-K策略(对每个类别取Top K个样本)

Confirmation Bias(确认偏差)问题

模型用自己的错误预测训练自己,导致错误被强化。

缓解策略

  1. 锐化(Sharpening)

    • 对预测分布做温度缩放:p_i = softmax(z_i / T)
    • T<1时分布更尖锐(低熵),但保留不确定性
  2. 弱增强→强增强一致性(FixMatch思路):

    • 用弱增强图像生成伪标签
    • 用强增强图像做一致性训练
  3. 逐步增加伪标签量

    • 初始使用极少伪标签,随训练逐步增加(curriculum learning)
  4. 不确定性加权

    • 对伪标签损失根据置信度加权,低置信度样本损失贡献小
  5. 混合训练

    • 标注数据和伪标签数据用不同学习率
    • 伪标签数据的学习率通常更低