基本假设

1. 平滑性假设(Smoothness Assumption)

如果两个样本 x1,x2 相似,则它们的相应输出 y1,y2 也应如此。这意味着如果两个输入相同类,并且属于同一簇,则它们相应的输出需要相近,反之亦成立

2. 聚类假设(Cluster Assumption)

假设输入数据点形成簇,每个簇对应于一个输出类,那么如果点在同一个簇中,则它们可以认为属于同一类。聚类假设也可以被视为低密度分离假设,即:给定的决策边界位于低密度地区。两个假设之间的关系很容易看出。
一个高密度区域,可能会将一个簇分为两个不同的类别,从而产生属于同一聚类的不同类,这违反了聚类假设。在这种情况下,我们可以限制我们的模型在一些小扰动的未标记数据上具有一致的预测,以将其判定边界推到低密度区域

3. 流形假设(Manifold Assumption)

  • 输入空间由多个低维流形组成,所有数据点均位于其上;
  • 位于同一流形上的数据点具有相同标签

方法

1. 协同训练 Co-training

Co-training 是基于分歧的方法,其假设每个数据可以从不同的角度(view)进行分类,不同角度可以训练出不同的分类器,然后用这些从不同角度训练出来的分类器对无标签样本进行分类,再选出认为可信的无标签样本加入训练集中。

由于这些分类器从不同角度训练出来的,可以形成一种互补,而提高分类精度;就如同从不同角度可以更好地理解事物一样。

该方法虽然理论很强,但却有一定的假设条件(事实上半监督学习都是在一定的假设条件下进行的),引用周志华大大《基于分歧的半监督学习》中的描述:

协同训练法要求数据具有两个充分冗余且满足条件独立性的视图:

  1. “充分(Sufficient)” 是指每个视图都包含足够产生最优学习器的信息, 此时对其中任一视图来说,另一个视图则是“冗余(Redundant)” 的;
  2. 对类别标记来说这两个视图条件独立。

这个数据假设就很强力了,既要求数据信息充分还冗余,你还要找到两个独立互补的视图。但是,在一定程度上满足条件的情况下,co-training 的效果也是非常给力。

那么,在半监督深度学习里,co-training 会以什么方式呈现呢?问题的关键自然在于,如何去构建两个(或多个)近似代表充分独立的视图的深度模型,两个比较直观的方法就是:

  • 使用不同的网络架构(据我看过的论文 [1] [2] 中指出,哪怕是对同一个数据集,不同的网络架构学习到的预测分布是不一样的);

  • 使用特殊的训练方法来得到多样化的深度模型。

2. 一致性正则 Consistency Regularization

Consistency Regularization 的主要思想是:对于一个输入,即使受到微小干扰,其预测都应该是一致的

3. 自训练 Self-training

4. 自集成 Self-ensembling

自集成,自己集成自己,仅从字面意思上看,需要融合多个结果,而对于神经网络,一个样本如果多次送入网络,能够产生多个模型预测结果,这些结果可以进行融合;同时在不同的batch训练之后,模型的参数也会发生变化,参数可以进行融合, 因此,self-ensembling的套路在于集成模型预测结果或者模型参数

  • 模型预测结果的融合
  • 模型参数的融合
  • 引入滑动平均来平衡各个阶段的结果

假设提前:对于无标签的样本,综合训练过程的多个预测结果要比仅用模型训练完成最后的预测结果要准确,模型的预测结果的差异,或者说一致性可以作为模型的损失函数的一部分,用于指导模型参数更新

self-ensembling系列模型从π模型开始,衍生出了Temporal Ensembling模型,而Mean Teacher模型又是对Temporal Ensembling模型的改进

参考