Lecture 10:Semi-supervised learning

什么是semi-supervised learning

给定数据${(x^r,\hat{y}^r)}_{r=1}^{R},{(x_u)}_{u=R}^{R+U}$,其中未标记数据远远多于标记数据 $U>>R$

为什么半监督学习有用?
因为未标记数据的分布可能能够给我们一些信息。

生成模型的半监督学习

给定两类$C_1$、$C_2$,要求得到后验概率分布

其中联合概率分布服从高斯分布。未标记数据此时的作用即帮我们重新估计$P(C_1),P(C_2),\mu,\Sigma$

如何做?
先初始化$P(C_1),P(C_2),\mu,\Sigma$,通常可以先用有标记数据进行估计

  1. 计算每个未标记数据的后验概率分布
  2. 以该概率分布更新模型
    不断重复直至拟合

原因:
当我们在做监督学习时,使用最大似然求解:

加上了未标记数据后,同样也要做最大似然:

Low-density Separation

假设不同类别之间有一条明显的分界线,也即存在一个区域,其密度比其他区域小

Self-training

如何做?

  1. 先用有标签数据训练一个模型$f$;
  2. 利用模型对未标记数据进行标记,这些标签称为伪标签(pseudo-label)
  3. 将部分有伪标签的数据放入有标签数据中,重新训练
    重复直到拟合

这种方式和生成模型的区别:该方法使用的是hard label而生成模型使用的是soft label

Entropy-based Regularization

将未标记数据充当正则化的效果,我们希望模型预测标签的概率较为集中,也即熵应该尽可能小。也就是说,未标记数据使得分类边界尽可能划在低密度区域。

Smoothness Assumption

假设:位于稠密数据区域的两个距离很近的样例的类标签相似,通过high density path连接。


x1与x2之间较为稠密,因此x2与x1比x2与x3更为接近。

如何知道x1与x2通过high density path连接?

基于图的方法:

  1. 定义xi与xj之间的相似度$s(x^i,x^j)$
  2. 添加边,有两种选择
    1. k nearest neighbor
    2. e-neighborhood
  3. 边之间的权重通过相似度来衡量。如: $s(x^i,x^j )=exp(−γ‖x^i−x^j‖^2)$

该方法本质即利用有标签数据去影响未标记数据,通过图的传播。但一个问题是如果数据不够多,就可能没办法传播。如:

在建立好图后,如何使用?

  • 定义图的平滑程度,$y$表示标签。$S$越小表示越平滑。

D是邻接矩阵,第ij个元素即xi与xj之间的weight,W是对角矩阵,ii个元素是D的第i行的加和;L称为Graph Laplacian

  • 我们最终在计算Loss的时候要加上这项正则项