文章目录
论文链接:https://arxiv.org/pdf/1904.12848v2.pdf
代码链接:https://github.com/google-research/uda
摘要
在标记数据稀缺的情况下,半监督学习在改进深度学习模型方面表现出了很大的潜力。在最近的方法中,常见的是对大量未标记数据进行一致性训练,以约束模型预测对输入噪声保持不变。在本文中,作者建议在半监督学习环境中将数据增强应用于未标记的数据,使用的方法称为“无监督数据增强”(Unsupervised Data Augmentation, UDA),使模型预测在未标记样本和扩充的未标记样本之间保持一致。
与以前使用诸如高斯噪声或压降噪声之类的随机噪声的方法不同,UDA利用了由最新数据生成的更难、更逼真的噪声增强方法(如RandAugment和back translation)代替简单的去噪操作。即使标记数据集非常小,这个不同也使得它在六个语言任务和三个视觉任务有了实质性改进。 例如,在仅带有20个标记样本的IMDb文本分类数据集上,UDA的错误率达到4.20,胜过了在25,000个标记样本上训练的最新模型。 在标准的半监督学习基准CIFAR-10和SVHN上,UDA的性能优于所有以前的方法,在只有4,000个样本的CIFAR-10上实现了2.7%的错误率;在仅有250个示例的SVHN上实现了2.85%的错误率,几乎与大一到两个数量级的全带标签训练的模型性能相同。UDA在大型数据集(如ImageNet)上也能很好地作用。 当使用10%的标记数据集进行训练时,UDA将top-1 / top-5的准确性从55.1 / 77.3%提高到68.7 / 88.5%。 对于具有130万额外未标记数据的完整ImageNet数据集,UDA进一步将性能从78.3 / 94.4%提升至79.0 / 94.5%
创新点
- 我们显示在监督学习中优秀的数据增强方法也适用于半监督学习的一致性训练中。
- UDA可以媲美甚至超越监督学习的效果。而这些监督学习却使用了比UDA多很多的标注数据。无论是在视觉任务还是语言任务上。UDA只需使用很少的标注数据。
- 提出了一种称为TSA的训练技术,当未标记数据远多于标记数据时,该技术可以有效地防止过拟合
- 开发了一种方法,使得UDA甚至可以应用于标记和未标记数据不匹配的分布。
UDA介绍
符号说明:
半监督学习的最新工作是利用未标记的样本来增强模型的平滑性。 这些工作的一般形式可以概括如下:
- 给定输入x,通过注入一个小的噪声来计算给定x的输出分布 p θ ( y ∣ x ) p_{\theta}(y \mid x) pθ(y∣x)和一个有噪声的版本 p θ ( y ∣ x , ϵ ) p_{\theta}(y \mid x, \epsilon) pθ(y∣x,ϵ)。 噪声可以应用于x或隐藏层,也可以用于更改计算过程。
- 最小化两个预测分布 D ( p θ ( y ∣ x ) ∥ p θ ( y ∣ x , ϵ ) ) \mathcal{D}\left(p_{\theta}(y \mid x) \| p_{\theta}(y \mid x, \epsilon)\right) D(pθ(y∣x)∥pθ(y∣x,ϵ))之间的散度度量。
此过程使模型对噪声不敏感,因此就输入(或隐藏)空间的变化而言更平滑。在本文中,作者对现有的平滑性/一致性执行工作进行了简单的改动,并扩展了使用数据增强作为扰动。 作者建议使用针对不同任务的最新数据增强作为一种特殊形式的扰动,并针对未标记的样本优化相同的平滑度或一致性。 具体来说,建议使用一组在各种监督设置下验证的丰富的最新数据增强,在未标记的示例上注入噪声并优化相同的一致性训练目标。当与标记的示例联合训练时,我们使用权重因子λ平衡有监督交叉熵和无监督一致性训练损失,UDA训练流程如下图所示:
具体的公式为:
其中:
q
(
x
^
∣
x
)
q(\hat{x} \mid x)
q(x^∣x)数据增强转换,
θ
~
\tilde{\theta}
θ~是当前参数
θ
{\theta}
θ的固定副本,指梯度并不通过
θ
{\theta}
θ传播;加号前表示正常的交叉熵
通过最小化一致性损失,UDA允许标签信息从有标签样本传播到无标签样本。 对于大多数实验,作者将λ设置为1,并对受监督的数据和无监督的数据使用不同的batch。 结果发现,对于某些数据集,在无监督的数据上使用较大的batch会带来更好的性能。
一些训练技巧
1.训练信号退火(Training Signal Annealing, TSA)
由于获取未标记的数据比标记的数据容易得多,因此在实践中,经常遇到这样一种情况,即未标记的数据量和标记的数据量之间存在很大的差距。为了使UDA能够利用尽可能多的未标记数据,通常需要足够大的模型,但是较大的模型可能会很容易导致数量有限的标记数据过拟合。为此,作者引入了一种称为训练信号退火(TSA)的新训练技术。
TSA的主要思想是,随着模型在越来越多的未标记数据上进行训练,逐渐释放标记样本的训练信号。具体来说,对于每个训练步骤t,将阈值设置为1/K≤ηt≤1,其中K为类别数。 当标记样本的正确类别
p
θ
(
y
∗
∣
x
)
p_{\theta}\left(y^{*} \mid x\right)
pθ(y∗∣x)的概率高于阈值ηt时,就从损失函数中删除该样本,仅对小批量中的其他标记样本进行训练。 给定一小批带有标记的数据B,模型的目标如下:
其中I( )是指标函数,Z 是归一化因子。 阈值ηt充当上限,以防止模型对模型已经确定的样本进行过度训练。 当在训练过程中将ηt从1 / K逐渐退火到1时,该模型只是缓慢接受标记样本的监督,从而大大缓解了过拟合问题。
2.增强预测(Sharpening Predictions)
在问题很困难且标记样本数量非常少的情况下,基于未标记样本和增强的未标记样本的预测分布在各个类别上往往过于平坦。 因此,来自KL散度的无监督训练信号相对较弱,因此受到受监督部分的支配。作者发现增强未标记样本上产生的预测分布很有帮助,并可采用三种技术: Confidence-based masking、Entropy minimization、Softmax temperature controlling。实际上,作者发现结合使用Confidence-based masking和Softmax temperature controlling在标记数据量非常少时最有效,而熵最小化在标记数据量相对较大的情况下效果很好。
3.领域相关数据过滤
理想情况下,希望使用域外未标记的数据,因为通常它们更容易收集,但是域外数据的类分布通常与域内数据的类分布不匹配。因此,使用域外的未标记数据会损害性能。 为了获得与手头任务领域相关的数据,作者采用了一种常见的技术来检测域外数据——使用在域内数据上训练的基线模型来推断大型域外数据集中的数据标签,并挑选出该模型最有信心的样本(在类之间平均分布)。 具体来说,就是对于每个类别,根据属于该类别的分类概率对所有域外样本进行排序,然后选择概率最高的样本。
实验
实验设置: 按照标准的半监督学习设置,将UDA与先前在CIFAR-10和SVHN进行了比较,采用WideResNet-28-2作为我们的基准模型。 我们将UDA与Pseudo-Label(基于自训练的算法),虚拟对抗训练(VAT,对输入生成对抗性高斯扰动的算法)在Π-Model、Mean Teach、MixMatch上进行了比较。
与现有的半监督学习方法的比较。对比如图5所示。UDA以明显的优势胜过现有所有方法,包括MixMatch并行模型。例如,对于250个样本,UDA在CIFAR-10上的错误率是8.41,在SVHN上是2.85,而MixMatch在CIFAR-10上的错误率是11.08,在SVHN上是3.78。有趣的是,当未使用AutoAugment时,UDA可以匹配在完全监督的数据上训练的模型的性能。
首先,如表6所示,如果将通过AutoAugment在SVHN上找到的增强策略应用于CIFAR-10(由Switched Augment表示),错误率将从5.10增加到5.59,这证明了目标性数据增强的有效性。此外,如果我们去除Augment并仅使用Cutout,那么错误率将增加到6.42。最后,如果仅使用简单的裁剪和翻转作为增强,则错误率将增加到16.17。在SVHN上,不同增强方法的效果相似。
结论
本文证明了数据增强和半监督学习是紧密相连的。UDA使用高度针对性的数据增强来生成各种逼真的扰动,并使模型相对于这些扰动保持平稳。 本文还提出了TSA技术,当有很多未标记的数据时,该技术可以有效地防止UDA过度拟合监督的数据。 对于文本任务,UDA可以与表示学习(例如BERT)很好地结合在一起,并且在小数据集上非常有效。对于图像任务,UDA在性能指标较高的半监督学习设置中将错误率降低了30%以上。
主要对图像任务进行了说明