ReMixMatch: Semi-Supervised Learning with Distribution Alignment and Augmentation Anchoring
文章发表于ICLR2020
这篇文章是针对MixMatch的改进,针对如何生成更有效的人工标签,提出了两个技术:Distribution Alignment 和Augmentation anchoring。
首先前情回顾一下半监督学习和MixMatch:
半监督方法的目是充分利用少量的有标数据以及大量的无标数据。
为了充分利用有标数据,通常会对有标数据进行增强
为了充分利用无标数据,会通过一种方法给无标数据打上人工标签,然后就可以像有标数据一样利用起来
MixMatch的主要步骤如下:
1.对有标数据进行增强
2.给无标数据一个人工标签。通过对一个无标数据增强K次并输入模型得到预测结果,对K次结果进行平均并锐化(Sharpen),得到人工标签。值得注意的是,这里的标签并不是one-hot的,而是一个概率分布。
3.将增强后有标数据和K个打上人工标签的无标数据都当做是有标数据,正常进行Mixup操作。
综上,MixMatch是综合一致性正则 和 熵最小正则(smoothness/cluster assumption)的应用。
一致性正则体现在将一个无标数据增强K次后打上同样的label。
熵最小正则体现在给无标数据一个人工标签的过程。
ReMixMatch动机:对MixMatch中人工标签生成过程进行改进。首先认为打标的过程中增强K次的无标数据的模型预测结果之间有分布不一致的问题,因此提出了Distribution Alignment来进行处理。其次是针对是K个增强之后的无标数据都打上同样的Label这个过程也会有问题,因此提出了Augmentation Anchoring来处理。
方法
首先是Distribution Alignment
其次是Augmentation Anchoring
这里补充一句:这其实就是一致性正则的另一种形式,这里的label也还是一个概率分布,因此会存在一些问题(未来有文章解决了)
算法流程如下:
实验结果如下: