AI+X
首发于AI+X

超强半监督学习MixMatch姐妹篇 Unsupervised Data Augmentation

未来的人工智能,必然是半监督学习的天下。深度学习领域在最开始的时候,大家花费了海量的人力财力去标记数据。得益于这些标记数据,深度学习才逐步发展,慢慢到达目前的精度。如果只需要上百个标记数据,再加上百万容易获取的未标记数据,半监督学习就能逼近监督学习的精度,那么会发展出无数的新应用场景。

上一篇博客介绍了超强的半监督学习 MixMatch 算法。之后发现 MixMatch 文章有个姐妹篇,Unsupervised Data Augmentation (UDA), 比 MixMatch 厉害了一点点,是半监督学习的当前最佳(state-of-the-art,简称SOTA)。两个算法真的就像姐妹,既相似又不同。这篇博客解读后者 UDA,希望知道两者是否能强强联合。

文章链接 Unsupervised Data Augmentation 简称 UDA。

先说结果,在 CIFAR10 数据集上,使用4000张标记图片,UDA 将预测误差降低到了 5.27%。对应的 MixMatch 算法,预测误差为 6.24%。MixMatch文章显示使用全部五万张图片,做监督学习,能达到的最低误差是 4.13%。可以看到 MixMatch 和 UDA 都非常接近监督学习能够达到的精度。

注:UDA 文章提到的 AutoAugment 智能数据增广技术,可以使监督学习在CIFAR10数据集上达到测试误差 1.48%。 MixMatch 文章中所给监督学习误差 4.13% 的数据可能过时。

这两篇文章都强调好的数据增广技术能大大提高半监督学习的预测精度。MixMatch 算法除了使用普通的数据增广,还有一个秘诀是 Mixup 增广术。而 UDA 的成功,得益于对特定任务使用定制的数据增广算法。比如,对于图像数据使用智能增广技术 AutoAugment,这种算法使用强化学习搜索增广策略以最小化训练过程中的验证误差(Validation Error)。此方法非常有效,它发现对于街景门牌号数据集(SVHN),最好的增广方法是剪切扭曲以及对背景和数字的单独变色。而对于CIFAR10,最好的增广方法是对颜色的微调,比如亮度调节。想起以前做数据增广,该对图片缩放多少,旋转多大角度,才能达到最好效果,全部靠猜。 AutoAugment 真谓数据增广宝器,生生将 CIFAR10 测试误差从 2.1% 降到了 1.48%。

为何数据增广对半监督学习重要呢?UDA这篇文章做了细致讲解。半监督学习强迫神经网络对增广之后的未标记数据作出自洽预测 (consistency enforcing)。MixMatch 对增广后的未标记数据预测结果使用 L2 Loss, 而 UDA 使用 KL divergence 。两者没有本质不同,可能 L2 loss 提供了更强的约束。这里有一个隐含要求,数据增广不能破坏图片的真实标签。比如一张图片 x 的标签是猫,但在数据增广的时候,刚好截取了没有猫的背景部分生成新的训练数据 x'。此时 x' 的标签与 x 不同。强迫神经网络对 x 和 x' 作出自洽的预测(将两者都预测为猫)毫无意义。UDA 紧抓这一点,使用智能增广技术,AutoAugment,使得数据增广不破坏标签,一举达到半监督学习的当前最强。UDA 比较了几种图像增广技术,发现 AutoAugment 效果最好,但是没有尝试 MixMatch 方法使用的 Mixup 算法。原因可能是 AutoAugment 智能增广在训练的时候并没有加入 Mixup 这个操作,比较好奇如果 AutoAugment 加入 Mixup,是否会在增广以及半监督学习方向达到更好表现。

比较有意思的是,UDA 同时对自然语言处理中的文本分类任务做了测试。使用对自然语言处理定制的TF-IDF关键词替换方案,以及“还原翻译”增广技术,在语言任务上也达到了半监督学习的当前最佳。最令人印象深刻的是,在电影评论分类数据集IMDB上,使用 20 个标记数据,UDA + BERT 微调就将测试误差降低到了 4.2%,低于使用两万五千组数据做监督学习能够达到的最低误差 4.32%。这应该是潘多拉魔盒被揭开的第一个角吧!

文章介绍的另一个技巧是逐步释放训练信号(Training Signal Annealing,简称 TSA)。TSA 的目的是防止对标记数据的过拟合。毕竟在只使用 20 个标记数据的时候,模型可以很快过拟合到训练数据集。TSA 的具体做法是在训练过程中,不计对标记数据预测过于自信的样本。这部分标记数据的误差无法反向传递,从而避免模型进一步过拟合到这些样本。在 CIFAR10 上,TSA 将测试误差从 5.67% 降到了 5.10%,算是比较有用。MixMatch 算法中对标记数据做一次增广,对未标记数据做 K 次增广,并增大未标记数据 Consistency Loss 权重因子,应该是基于同样的考虑 -- 防止模型过拟合到标记数据。

总结

因为在 MixMatch 的介绍中,已经讲解了半监督学习的基本原理,这篇对 UDA 的介绍要轻松的多。UDA 是一篇非常有意思的文章。如果这篇介绍引起了大家的兴趣,还是阅读原文收获比较大。

文章中的观点非常有启发。比如 AutoAugment 在监督学习及半监督学习中的作用。又比如 TSA 算法,是否可以直接应用于监督学习,起到像 Gradient Boost Tree 一样的作用。两篇文章的方法,原则上可以同时使用,只要 AutoAugment 在强化训练的过程中,加入 Mixup 策略。最后,Temporal Ensembling for Semi-Supervised Learning 这篇文章虽然说到对于未标记数据的consistency loss, L2 比 Cross Entropy 或 KL divergence 提供了更加严格的限制,却没有给出定量对比。对比 Cross Entropy Loss, L2 Loss 以及KL divergence,可能是有意思(很多人很好奇)的研究。另外,UDA 在 ImageNet 数据集上做了测试,如果测试 MixMatch 在 ImageNet 这个更大的数据集上的表现,并与 UDA 做一个对比,也会是很多人感兴趣的内容。



参考文献:

Unsupervised Data Augmentationarxiv.org
hahakity:超强半监督学习 MixMatchzhuanlan.zhihu.com图标https://arxiv.org/pdf/1805.09501.pdfarxiv.org
SIGAI:样本增广自动化-AutoAugment论文解读zhuanlan.zhihu.com图标集智学园:GoogleAI新算法:如何增强计算机视觉深度学习的效果zhuanlan.zhihu.com图标灵魂机器:MixMatch 和 UDA比较zhuanlan.zhihu.com图标google-research/udagithub.com图标https://ai.googleblog.com/2019/07/advancing-semi-supervised-learning-with.htmlai.googleblog.com

编辑于 2019-07-13

文章被以下专栏收录

    此专栏会关注AI领域的最新进展,代码复现,交叉学科应用