1.6. 现代深度半监督学习方法
深度学习时代的半监督学习以三种核心技术为基础:一致性正则化、熵正则化 和**数据增强**。这些方法通常组合使用,在各类基准上取得了显著效果。
1.6.1. 一致性正则化
1.6.1.1. 核心思想
一致性正则化源于平滑性假设:对无标签样本施加小的扰动,其预测应保持不变。
其中 \(\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 的伪标签)
其中:
\(\tau\) 是置信度阈值
\(\hat{y}_i\) 是基于弱增强预测的伪标签
\(\tilde{x}_i\) 是强增强版本
小技巧
FixMatch 的核心设计是仅在模型对弱增强版本**高度自信**(\(\max(p) > \tau\))时 才将伪标签用于一致性训练。这一机制有效防止了错误累积。
1.6.2. 熵正则化
熵正则化通过最小化预测的熵来鼓励模型做出"自信"的预测。
高熵 (不自信) 低熵 (自信)
[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:
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 方法的共同框架
其中 \(\lambda(t)\) 是时间相关的权重函数:
常见退火策略:
- 线性上升:λ(t) = t / T_max × λ_max
- 高斯预热:λ(t) = exp[-5(1 - t/T_max)²] × λ_max
- 阈值触发:当验证集性能超过某个阈值后启用
λ(t) 防止早期网络预测完全随机时引入噪声。