半监督学习之伪标签(pseudo label,entropy minimization,self-training)

1.什么是伪标签

伪标签方法是一种同时从未标记数据和标记数据中学习的监督范式。将具有最大预测概率的类作为伪标签。形式化后等价于熵正则化(Entropy Regularization)或熵最小化(Entropy Minimization).

根据半监督学习的假设,决策边界应该尽可能通过数据较为稀疏的区域,即低密度区域,从而避免把密集的样本数据点分到决策边界的两侧,也就是说模型需要对未标记数据做出低熵预测,即熵最小化。伪标签方法是有利于熵最小化的,即伪标签的目标其实就是熵最小化。

Loss function分为真实标签部分和伪标签部分,伪标签部分的权重使用a(t)来进行调节,如果a(t)特别小,那么伪标签将不会起到作用。
半监督学习之伪标签(pseudo label,entropy minimization,self-training)_第1张图片
其中a(t)是一个确定性模拟退火过程,有助于在优化过程中避免较差的局部极小值,使未标记数据的伪标签尽可能地与真实标签相似。
半监督学习之伪标签(pseudo label,entropy minimization,self-training)_第2张图片

2.伪标签为何有效

  1. 分类边界应位于低密度区域
    半监督学习的目标是利用未标记数据提高泛化性能。聚类假设(Cluster Assumption)提出决策边界应位于低密度区域,以提高泛化性能。由于嵌入惩罚项后,一个数据样本的相邻点与该样本有相似的激活,因此在高密度区域的数据样本更有可能具有相同的标签。
    使用相同假设的还有Semi-Supervised Embedding和Manifold Tangent Classifier
  2. 熵最小化
    熵正则化or熵最小化是一种在最大后验估计框架下从未标记数据中获益的方法。
    类概率的条件熵可以用来度量类重叠。通过最小化未标记数据的熵,可以减少类概率分布的重叠,类概率分布的重叠减少,决策边界数据点的密度降低,也就是说,有利于类之间的低密度分离,而这是半监督学习的普遍假设前提。
    后验分布的最大化估计:
    在这里插入图片描述
    通过最大化标记数据的条件对数似然(第一项)和最小化未标记数据的熵(第二项),我们可以得到使用未标记数据的更好的泛化性能。

3.伪标签有什么效果

通过上面的分析可知,伪标签可以减少类重叠,所以直观来说,加入伪标签后,类边界会更清晰,学习到的类应该更紧凑。pseudo-label论文中用在MNIST上的embedding的t-sne可视化清晰的展示了伪标签的效果。(b)图中的类边界明显要更清晰一些,重叠更少。
半监督学习之伪标签(pseudo label,entropy minimization,self-training)_第3张图片
半监督学习之伪标签(pseudo label,entropy minimization,self-training)_第4张图片

4.伪标签何时无效

  • 错误的伪标签引入过多噪声,误导模型的学习。
  • 过于自信的伪标签,没有带来新的信息,模型一直学习已知的知识,导致过拟合。

5.伪标签如何使用

5.1 如何选取伪标签与如何进行未标注–基于不确定性感知的伪标签选择

5.1.1 In defense of pseudo-labeling: An uncertainty-aware pseudo-label selection framework for semi-supervised learning(UPS,2021 ICLR)

伪标签选取

  • 基本思路:置信度高的伪标签不一定是正确的,置信度低的伪标签基本上就是错误的;伪标签的质量与模型的校准误差(也就是模型的预测能力)有很大关系,所以需要考虑预测的不确定性。

  • 基于以上,选择伪标签预测的子集,选择置信度很高的作为正例(伪标签样本,将伪标签当成真标签进行训练),选择置信度很低的作为负例。
    半监督学习之伪标签(pseudo label,entropy minimization,self-training)_第5张图片
    r_p和r_n之间是可以留有margin的,也就是说使用这两个阈值去尽量保证高置信度的确实是对的,不确定的、低置信度的部分确实是错的。

  • 如果有正例,那么就用cross entropy(CE)去进行训练,与传统的伪标签用法一致。如果没有正例,那么就使用负例,用NCE(Negative cross entropy)去训练,推广到多类就是BCE。
    半监督学习之伪标签(pseudo label,entropy minimization,self-training)_第6张图片
    基于不确定性的伪标签选取
    直觉上,我们觉得网络的校准误差可以解释为不确定性,即模型预测越不准,模型的不确定性越大。然后作者做了一个有意思的实验,就是去验证是否网络的校准误差和模型的预测不确定性有直接的关系。
    半监督学习之伪标签(pseudo label,entropy minimization,self-training)_第7张图片
    从图(a)来看,预测不确定性增加的时候,模型校准误差也在增加,所以两者之间是关联的。(b)和(c)比较了在不同的伪标签选取方法下,伪标签的准确率,即使基于不确定性的伪标签选取数量要少一些,还是表现出很大的优势。
    所以,作者提出了基于不确定性的伪标签选择。在前文提出的选择方法上加上一个不确定性的条件,进一步保证了伪标签正例和负例选择的准确性。该伪标签选择方法也是最终在本文提出的UPS框架中使用的伪标签选择方法。
    半监督学习之伪标签(pseudo label,entropy minimization,self-training)_第8张图片

5.1.2 UST

UST在self-training的框架下使用伪标签,self-training的过程可以展开为一个teacher-student的训练模式。teacher模型负责选择和标注伪标签,student模型在伪标签扩充后的labeled set上进行学习。
伪标签的选择和标注是依赖于teacher model的,从课程学习的角度来说,课程学习希望模型先学习简单的样本,再学习复杂的样本。这时候就涉及到”简单性“的度量。”简单性“显然是一个不容易评估的性质,我们不能只看模型的置信度、模型的损失,不确定性也需要被考虑在内。

作者在文中提到self-training(伪标签模式下)的训练问题。一方面是high confidence的伪标签样本可能不会带来更多的信息增益,另一方面是hard sample,模型很容易给出错误的预测,那么就很难依靠伪标签从这些hard sample中学习到有用的知识。

Intuitively, if the teacher model already predicts some samples with high confidence, then there is
little to gain with self-training if we focus only on these samples. On the other hand, hard examples
for which the teacher model has less confidence are hard to rely on for self-training as these could
be noisy or too difficult to learn from.

所以我们应该去区分hard sample和simple sample。simple sample是可以通过伪标签进行学习的。作者提出使用贝叶斯深度学习的方法来进行不确定性估计,以不确定性衡量样本的简单性。

1.伪标签如何打
基本思路:每个样本经过带有随机dropout的模型T次,每一次都相当于由一个不同参数的sub-model进行处理,T个模型进行投票,选择票数最多的预测结果作为pseudo-label。
在这里插入图片描述
2.样本选取
使用BALD的方法选择样本使模型参数的信息增益最大
使用MC Dropout对信息增益进行估计:
在这里插入图片描述
信息增益越大,则teacher model对该样本越困惑,不确定性越大
那么按1-B和B排序,分别可以依次得到easy样本和hard样本。
具体选择方法是根据1-B和B分别计算选取概率,如下:
在这里插入图片描述
3.训练目标:
在进行样本选取时,使用模型后验的期望对不确定性进行了估计,还有模型后验的方差没有使用到。作者对模型后验的方差进行推导,方差由两部分组成,一部分是模型的不确定性,另一部分是模型的噪声。
半监督学习之伪标签(pseudo label,entropy minimization,self-training)_第9张图片
student模型训练时,应该去更关心模型有信心的样本,也就是低方差的样本,所以对于unlabeled这部分的训练目标应为:
在这里插入图片描述
这个训练目标保证了对于确定性大的(低方差)、且标记错误的样本,学生模型受到的惩罚更大。

5.2 如何减弱伪标签中噪声的影响–基于对比机制的方法

Self-tuning for data-efficient deep learning, ICML,2021
Self-tuning提出了使用伪标签组对比机制减弱噪声标签的影响。具有相同预测结果的样本作为正样本,不同预测结果的作为负样本。
半监督学习之伪标签(pseudo label,entropy minimization,self-training)_第10张图片

为什么PGC机制就可以提高对错误的伪标签的容忍度呢?我们认为,这是因为PGC采用了具有竞争机制的softmax函数,同一伪标签下的正样本会互相竞争。如果正样本的伪标签是错误的,这些伪标签的样本也会在竞争中落败,因为那些具有正确伪标签的正例样本的表征与查询样本的表征更相似。这样的话,模型在训练过程中会更多地受到正确的伪标签的影响,而不是像交叉熵损失函数那样直接地受到错误的伪标签的误导。
作者:游凯超
链接:https://zhuanlan.zhihu.com/p/393342161
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

5.3 如何让伪标签训练模式下的模型更健壮–基于噪声注入的方法

Self-training with Noisy Student improves ImageNet classification
在student模型中添加噪声训练一个比teacher模型更健壮更强大的模型
模型结构图和算法流程如下
半监督学习之伪标签(pseudo label,entropy minimization,self-training)_第11张图片
半监督学习之伪标签(pseudo label,entropy minimization,self-training)_第12张图片

6. 何时使用伪标签

SSL的主要方法有consistency regularization和pseudo label(entropy regularization)。
需要注意的是,consistency regularization需要数据增强,主要通过模型在对输入微小扰动下输出不变性来提高模型性能,所以两种方法是正交的,可以放在一起使用。
简单来说的话,

  • 对于图像任务的话,数据增强的代价较小,增强后的数据可靠性更高,那么也就有一些将consistency regularization和entropy regularization结合起来的工作,也就是Match系列,包括:MixMatch\FixMatch。
  • 对于文本任务的话,数据增强容易带来语义漂移,所以仅使用伪标签方法,可能更高效。
    相比consistency regularization来说,伪标签是个使用范围更广、代价更小的方法。
  • 再者,如果数据增强带来的效益并不大,则也可以使用伪标签方法。

写在最后

  • 使用伪标签确实能够在监督训练之后给模型带来几个百分点的性能提升。我在小样本场景下,使用小增量(百个以内)的伪标签进行自训练,往往能够在五轮内为模型带来性能提升,在网上看到讨论说,常常在1-2轮后(大增量,千级)能够得到提升,之后就可能会带来性能降低。
  • UST使用贝叶斯不确定性估计的方法,需要较大的性能开销,主要是时间上会比一般训练久,因为如果T设置太小,比如说5和10(原代码中设置的是30)的时候,效果就已经不太好了,标签往往预测的是错的。
  • 使用对比机制消除伪标签的影响,其实我有一些存疑,在小样本的实验中,这种对比机制让我的模型更容易过拟合了。从t-sne可视化上来看,对比机制让类内间距更小,类间间距更大,可是hard样本也一起被带跑到错误的类中了,当然也有可能是我使用对比机制的姿势不对。

引用

  1. Lee D H. Pseudo-label: The simple and efficient semi-supervised learning method for deep neural networks[C]//Workshop on challenges in representation learning, ICML. 2013, 3(2): 896.
  2. Rizve M N, Duarte K, Rawat Y S, et al. In Defense of Pseudo-Labeling: An Uncertainty-Aware Pseudo-label Selection Framework for Semi-Supervised Learning[C]//International Conference on Learning Representations. 2021.
  3. Mukherjee S, Awadallah A. Uncertainty-aware self-training for few-shot text classification[J]. Advances in Neural Information Processing Systems, 2020, 33.
  4. Wang X, Gao J, Long M, et al. Self-tuning for data-efficient deep learning[C]//International Conference on Machine Learning. PMLR, 2021: 10738-10748.
  5. Qizhe Xie, Minh-Thang Luong, Eduard H. Hovy, Quoc V. Le:
    Self-Training With Noisy Student Improves ImageNet Classification. CVPR 2020: 10684-10695

初次写作,请多包涵。
感谢阅读时间~欢迎交流和批评指正!

你可能感兴趣的:(半监督学习,深度学习)