©PaperWeekly 原创 · 作者|张一帆
学校|华南理工大学本科生
研究方向|CV,Causality
本文梳理了 Self-training 的最新进展,涉及 4 篇比较有意思的论文。
What is self-training?
Self-training 是最简单的半监督方法之一,其主要思想是找到一种方法,用未标记的数据集来扩充已标记的数据集。算法流程如下:
1. 首先,利用已标记的数据来训练一个好的模型,然后使用这个模型对未标记的数据进行标记。
2. 然后,进行伪标签的生成,因为我们知道,已训练好的模型对未标记数据的所有预测都不可能都是好的,因此对于经典的 Self-training,通常是使用分数阈值(confidence score)过滤部分预测,以选择出未标记数据的预测标签的一个子集。
3. 其次,将生成的伪标签与原始的标记数据相结合,并在合并后数据上进行联合训练。
4. 整个过程可以重复 n 次,直到达到收敛。
Self-training 最大的问题在就在于伪标签非常的 noisy,会使得模型朝着错误的方向发展。以下文章大多数都是为了解决这个问题。
ICCV 2019
论文标题:
Confidence Regularized Self-Training
论文链接:
https://arxiv.org/abs/1908.09822
代码链接:
https://github.com/yzou2/CRST
这篇文章通过对模型进行正则化,迫使输出的 vector 不那么 sharp(参考 label smooth 的作用),从而减轻使用软伪标签学习的伪标签不正确或模糊所带来的误导效果。
Main Contribution
该文的大致流程可见下图:
方法一:在打标签的过程中添加 label regularization (LR),增加 pesudo label 的熵,类似于 label smooth 的作用。
方法二:在网络重新训练的过程中添加 model regularization (MR),增加网络输出概率的熵。
作者提出了多项正则化手段,其目的在于增加 pesudo label 的熵。通过求解 KKT 条件,作者还解出了在该条件下模型的输出概率。可以看出是本质上都是熵增正则化项或者类似于熵增正则化项。
作者在后面通过实验论证为什么置信正则化平滑(Confidence regularization smooths)有效,两种正则化均能够使(被模型预测为正的正样本的 confidence/置信度,换句话说就是伪标签与真实标签相同时,伪标签对应类的概率值)略微降低,同时能够使(被模型预测为正的负样本的 confidence/置信度,换句话说就是伪标签与真实标签不同时,伪标签对应类的概率值)明显降低,实验结果可见下图:
NeurlPS 2020
论文标题:
Uncertainty-aware Self-training for Text Classification with Few Labels
论文链接:
https://arxiv.org/pdf/2006.15315.pdf
这篇文章利用不确定性增强伪标签的可信度,减少 noisy 带来的影响。
3.1 Main Contribution
使用贝叶斯不一致主动学习(Bayesian Active Learning by Disagreement, BALD)的思想评估样本标签的不确定性,凭借不确定性选择用于 re-train 模型的伪标签样本。
3.2 Background-Bayesian neural network(BNN)
给定网络参数 ,贝叶斯推断是想要找一个后验分布:
即 NN,这个积分显然是 intractable,因此就有很多工作用到了随即正则化的工具(dropout)来构建易于处理的分布族中 ,它可以替代难以计算的真实模型后验。
如果我们使用不同的 dropout 采样 个 masked model