1.6. 现代深度半监督学习方法

深度学习时代的半监督学习以三种核心技术为基础:一致性正则化、熵正则化 和**数据增强**。这些方法通常组合使用,在各类基准上取得了显著效果。

1.6.1. 一致性正则化

1.6.1.1. 核心思想

一致性正则化源于平滑性假设:对无标签样本施加小的扰动,其预测应保持不变。

\[\mathcal{L}_{\text{consist}} = \mathbb{E}_{x \in \mathcal{U}} \, \left[ \| f_\theta(x) - f_\theta(\tilde{x}) \|^2 \right]\]

其中 \(\tilde{x}\) 是对 \(x\) 施加扰动后的版本。

1.6.1.2. 经典方法演进

方法

年度

核心思路

扰动方式

Π-Model

2016

两次前向传播的一致性

Dropout + 数据增强

Temporal Ensembling

2016

EMA 累积预测作为目标

指数移动平均

Mean Teacher

2017

学生-教师模型框架

教师参数 = EMA(学生参数)

UDA

2019

使用强数据增强

RandAugment + BackTranslation

FixMatch

2020

弱增强产生伪标签,强增强执行一致性

弱/强增强组合

1.6.1.3. FixMatch:一个统一框架

输入 x (无标签)
      │
      ├── 弱增强 → 预测 → 伪标签(置信度高才保留)
      │                           │
      └── 强增强 → 预测 ──────────┘
                                 │
                        两者应一致(交叉熵损失)
总损失 = 有标签样本的监督损失
       + λ × 无标签样本的一致性损失

监督损失:  交叉熵(有标签 x, y)
一致性损失: 交叉熵(强增强 x, 弱增强 x 的伪标签)
\[\mathcal{L} = \underbrace{\frac{1}{n} \sum_{i=1}^n H(y_i, f_\theta(x_i))}_{\text{监督损失}} + \lambda \underbrace{\frac{1}{m} \sum_{i=n+1}^{n+m} \mathbb{1}_{(\max(p_i) > \tau)} H(\hat{y}_i, f_\theta(\tilde{x}_i))}_{\text{一致性损失}}\]

其中:

  • \(\tau\) 是置信度阈值

  • \(\hat{y}_i\) 是基于弱增强预测的伪标签

  • \(\tilde{x}_i\) 是强增强版本

小技巧

FixMatch 的核心设计是仅在模型对弱增强版本**高度自信**(\(\max(p) > \tau\))时 才将伪标签用于一致性训练。这一机制有效防止了错误累积。

1.6.2. 熵正则化

熵正则化通过最小化预测的熵来鼓励模型做出"自信"的预测。

\[\mathcal{L}_{\text{entropy}} = -\frac{1}{m} \sum_{i=n+1}^{n+m} \sum_{k=1}^K f_\theta(x_i)_k \, \log f_\theta(x_i)_k\]
高熵 (不自信)              低熵 (自信)
[0.25, 0.25, 0.25, 0.25]  [0.95, 0.02, 0.01, 0.02]
H = -4 × 0.25 log 0.25    H = -(0.95 log 0.95 + 3×0.02 log 0.02)
  = 0.602                    = 0.132

备注

熵正则化相当于在决策边界的**低密度分离假设**上施加软约束—— 要使预测熵小,决策边界必须远离数据点。

1.6.2.1. 虚拟对抗训练(VAT)

VAT 将对抗训练的思想引入 SSL:

\[\mathcal{L}_{\text{VAT}} = \mathbb{E}_{x \in \mathcal{U}} \, \max_{\|\delta\| \leq \epsilon} \text{KL}[f_\theta(x) \| f_\theta(x + \delta)]\]

VAT 寻找最"对抗性"的扰动方向并强制预测一致性, 比随机扰动更强效。

1.6.3. 数据增强在 SSL 中的角色

数据增强在 SSL 中扮演双重角色:

角色

说明

示例

扩充有标签数据

增加训练样本的多样性

翻转、裁剪、颜色抖动

一致性正则化的锚点

定义"哪些变换不影响语义"

RandAugment, CTAugment

重要

SSL 中数据增强编码了关于任务不变性的**先验知识**: 增强后的图像应该保持类别不变。

好的增强策略对 SSL 的成功至关重要。UDA 和 FixMatch 的成功很大程度上归功于**强数据增强**(如 RandAugment)。

1.6.4. 伪标签方法

伪标签(Pseudo-Label)是自训练在深度网络中的现代版本。

核心改进:
1. 使用网络的 softmax 输出作为伪标签
2. 仅对最大概率超过阈值 τ 的样本使用
3. 将伪标签损失与熵正则化结合

η(t) × 无标签损失 + 有标签损失

η(t) 是随训练轮次增长的权重系数(先预热,再增加无标签损失权重)

1.6.5. 对比学习与 SSL

对比学习(Contrastive Learning)的最新进展也被引入 SSL:

1. 无监督预训练阶段:
   使用 SimCLR / MoCo 等对比学习方法
   在大量无标签数据上学习特征表示

2. 微调阶段:
   在少量有标签数据上微调分类器

→ 这种方法在极小标注比例下(每类 1-10 张)效果显著

1.6.6. 深度 SSL 方法的共同框架

\[\mathcal{L}_{\text{total}} = \mathcal{L}_{\text{sup}} + \lambda(t) \cdot \mathcal{L}_{\text{unsup}}\]

其中 \(\lambda(t)\) 是时间相关的权重函数:

常见退火策略:
- 线性上升:λ(t) = t / T_max × λ_max
- 高斯预热:λ(t) = exp[-5(1 - t/T_max)²] × λ_max
- 阈值触发:当验证集性能超过某个阈值后启用

λ(t) 防止早期网络预测完全随机时引入噪声。