1.4. 经典半监督学习方法
本章从统计视角梳理经典半监督学习方法。
1.4.1. 自训练(Self-Training)
自训练是最直观的 SSL 方法,也是最早提出的方法之一。
1.4.1.1. 算法流程
1. 用有标签样本 L 训练初始分类器 f₀
2. 用 f₀ 对无标签样本 U 预测伪标签 (pseudo-label)
3. 选择置信度最高的伪标签样本加入 L
4. 用更新后的 L 重新训练 f₁
5. 重复步骤 2-4 直到收敛或无新样本加入
1.4.1.2. 与 EM 算法的联系
自训练与**期望最大化**(EM)算法有着深刻的理论联系。
步骤 |
自训练 |
EM 算法 |
|---|---|---|
E-step |
用当前分类器预测伪标签 |
计算缺失标签的后验期望 |
M-step |
用伪标签重新训练 |
最大化期望对数似然 |
收敛性 |
经验上收敛,理论保证少 |
理论上收敛到局部最优 |
备注
McLachlan (1975) 首次从理论上分析了自训练方法,证明在特定条件下, 随着无标签样本数 \(m \to \infty\),自训练的期望误差率可以收敛到 完全有标签分类器的水平。
1.4.1.3. 风险
警告
自训练的最大风险是**错误累积**(error accumulation): 早期预测的错误伪标签会强化分类器自身的错误认知,导致性能越迭代越差。
缓解方法: - 仅选择置信度极高的样本 - 使用多个分类器的投票(协同训练) - 引入置信度加权
1.4.2. 生成式模型方法
1.4.2.1. 高斯混合模型(GMM)
生成式方法对联合分布 \(P(x, y)\) 建模。
假设:
P(x | y = k) ~ N(μ_k, Σ_k) // 每个类的高斯分布
P(y = k) = π_k // 类先验
半监督学习:
用 EM 同时估计每个类的均值 μ_k、协方差 Σ_k 和先验 π_k
E-step: 计算每个无标签样本属于每个类的后验概率
M-step: 用加权的最大似然更新参数
1.4.2.2. 线性判别分析(LDA)
LDA 是生成式方法的特例——假设各类的协方差矩阵相同。
无标签数据对 LDA 的帮助可以被精确量化:
当类别分离度好时,无标签数据贡献大
当类别混叠严重时,无标签数据贡献有限
1.4.3. 基于图的 SSL 方法
1.4.3.1. 核心思想
将数据看作图上的节点,边的权重反映样本间的相似性, 标签在图上"传播"。
图构建:
每个样本 = 一个节点
边权重 w_{ij} = exp(-||x_i - x_j||² / 2σ²) // RBF 核
标签传播:
有标签节点已知其标签
无标签节点通过图上随机游走获得标签
1.4.3.2. 标签传播算法
其中:
\(F\) 是标签分布矩阵
\(S\) 是归一化的相似度矩阵
\(Y\) 是初始标签指示矩阵
\(\alpha \in (0, 1)\) 是传播参数
小技巧
基于图的方法在流形假设成立时非常有效,但: - 计算复杂度为 \(O((n+m)^3)\),难以规模化 - 图构建方式(亲和矩阵、核宽 \(\sigma\))对结果高度敏感
1.4.4. 协同训练(Co-Training)
1.4.4.1. 核心思想
如果数据有两个"充分且条件独立"的视角(view),可以在两个视角上交替训练。
数据有两个特征视角:
视角 A → 分类器 f_A
视角 B → 分类器 f_B
迭代过程:
1. 每个分类器对无标签数据预测
2. 各自选取置信度最高的样本
3. 将伪标签样本**共享给对方**作为新增训练数据
4. 重新训练两个分类器
1.4.4.2. 理论保证
备注
协同训练在实际中难以达到理论条件——"充分且条件独立的两个视角"很少天然存在。 但对网页分类等任务(用页面文本 vs. 超链接文本作为两个视角)效果很好。
1.4.5. 半监督 SVM(S3VM)
核心思想:将决策边界推向低密度区域。
其中 \(\tilde{y}_i\) 是对无标签样本的伪标签赋值。
警告
S3VM 的优化问题是**非凸**的(涉及离散的伪标签变量), 通常使用凸松弛或组合搜索方法求解,计算成本较高。