ICLR17 - 用于半监督学习的时序融合《TEMPORAL ENSEMBLING FOR SEMI-SUPERVISED LEARNING》

初识

多模型融合策略通常比单个网络能够获得更好的输出,这种思想也被用于单网络训练中,比如dropout,dropconnect等正则化方法【这类方法可以视为在训练过程只调整网络的特定子集,因此在测试时,整个网络可以被视为这种经过训练的子网络的隐式融合】。

而本文就是将这个想法应用在半监督学习领域(只有部分训练数据有标注)的工作,利用融合后的输出作为伪标签【这比单网络输出的结果更接近真实标签】。并以两种形式分别实现了π模型时序融合模型,不仅提升了半监督的图像分类性能,也提升了全监督分类的性能。

相知

π model

π模型的核心思想是让一张图像经过不同增广得到两张图像,分别送入网络(采用了dropout,因此可以视为不同的子网)得到输出,让两个输出尽可能一致consistent)。其训练流程如下所示, x i x_i xi表示输入图像, y i y_i yi表示真实标签(只有部分 x i x_i xi有标签),其中有标签的图像会计算标准交叉熵loss,其次为两张增广图像通过网络的输出用均方根loss,最后使用一个时间相关函数 w ( t ) w(t) w(t)来加权损失。
在这里插入图片描述
其中, w ( t ) w(t) w(t)的设置至关重要,为一个斜坡上升ramps up的函数【从零开始,缓慢上升】,这意味着前期的训练过程主要由监督损失主导【不然会网络会很快陷入退化解,导致无意义的分类】。

具体设置细节参照原文附录A

Temporal ensembling

基于π模型,作者又进一步提出了时序融合方法,其网络结构如下。可以看到每个样本只需要进行一次图像增强就送入网络,而不像π模型需要送入两个样本,理论上时间效率被提升了一倍。
在这里插入图片描述
为什么只需要一次输入就可以了呢?因为在这个流程中, z ^ i \hat{z}_i z^i就已经是融合后的结果了,其由EMA实现。每个epoch训练完成后,首先通过下式1来更新 Z Z Z,这个式子意味着 Z Z Z包含了之前不同网络输出结果的加权融合,其中α为权重项。此外,为了生成目标 z ^ \hat{z} z^,还要除以因子 1 − α t 1-α^t 1αt以纠正启动偏差【与Adam中原理一致】。
在这里插入图片描述
同样, w ( t ) w(t) w(t)也是一个起始为0,与时间相关的斜坡上升函数。

与π模型相比,时序融合模型的训练更快,效果也更好,但缺点就在于其需要花费额外的空间存储数据,并且引入了一个新的超参数α。

部分实验

下面两张表分别展示了本文提出的两个模型在半监督设置及全监督设置下与SOTA方法的比较,包含了CIFAR-10和SVHN两个数据集。可以看到无论是在半监督和全监督设置下,本文提出来的训练范式都能够带来很大的收益。
在这里插入图片描述

回顾

本文是NVIDIA发表于2017年ICLR会议上的一篇工作,主要是提出了一种解决半监督图像分类任务的方案。其思想非常简单,总结起来就是一致性约束,将同一属性的输入经过变化 or 抖动送入网络得到的输入用loss进行约束,使其趋近一致。这种思想也在很多领域的工作中也得到体现。还有就是EMA,目前回头来看这个trick是真的经典,目前很多自监督学习的方法也用到了这个操作(例如Moco,有时间我会写一个moco系列的论文解读),以一种隐式的方式进行模型融合,稳定提点。

总的来说,这篇文章我很喜欢,是典型的simple and efficient代表性之作(读半监督领域的论文较少,仅代表个人浅见)。

还可以参考这篇博客(https://www.cnblogs.com/wuliytTaotao/p/12825797.html),讲得挺不错的,其中还扩展了Mean Teacher的方法:将EMA操作从每个epoch结束后改为从每个step结束后进行,并且将加权方式由标签换成了模型权重。因此存在两个模型,其中实时更新权重的模型为StudentStudent网络的权重进行EMA加权融合的结果作为Teacher,用Teacher的输出去来进行一致性约束。

猜你喜欢

转载自blog.csdn.net/qq_36560894/article/details/123161982