受干扰的学生

2020-09-01  本文已影响0人  Valar_Morghulis

https://github.com/google-research/noisystudent

https://github.com/tensorflow/tpu/tree/master/models/official/efficientnet

半监督学习,用于ImageNet分类

https://arxiv.org/abs/1911.04252v4

Cityscapes第一名、第二名:分层多尺度注意力、天真的学生,都很大程度地参考了这篇论文

https://www.fmi.com.cn/index.php?m=content&c=index&a=show&catid=9&id=634066

摘要:我们提出了NoisyStudent训练方法,这是一种即使带标注数据很丰富的情况下也能带来性能提升的半监督学习方法。在ImageNet上,NoisyStudent达到88.4%的top-1准确率,比之前的SOTA模型(需要3.5B的弱标注Instagram图像)高出2个百分点。在鲁棒性测试集上,它将ImageNet-A的top-1准确率从61.0%提升至83.7%,将ImageNet-C的mean corruption error从45.7%减小至28.3%,将ImageNet-P的mean flip rate从27.8减小至12.2。

NoisyStudent扩展了自训练和蒸馏的想法,在蒸馏中使用至少相等或更大的学生模型,在学生模型训练阶段添加噪声。在ImageNet上,我们首先在有标注数据上训练一个EfficientNet模型,然后将它作为教师模型在300M无标注图像上生成伪标注。然后在有标注数据和伪标注数据的混合数据,训练一个更大的EfficientNet作为学生模型。这一过程迭代几次,每个新的学生模型作为下一轮的老师模型。在学生模型的训练过程中,我们添加噪声如drop out,随机深度,数据增扩如RandAugment,使得学生模型的泛化能力优于老师模型。

模型在https://github.com/tensorflow/tpu/tree/master/models/official/efficientnet

代码在https://github.com/google-research/noisystudent

1. 引言

近年来深度学习在图像识别领域取得显著成功[45,80,75,30,83]。然而最先进的视觉模型仍然依赖于有大量带标注的有监督学习。

本文使用未标注图像来提升最先进模型的准确度,并证明,准确度的提升会对鲁棒性(对分布以外的数据的泛化能力)有过大的影响。为此,我们使用了一个更大规模的未标注的图像数据集,其中很大一部分数据是不属于ImageNet的训练集的分布的,也就是说,它们不属于ImageNet的任何类别。我们用NoisyStudent方法训练我们的模型,这是一种半监督学习的方法,主要分3步:(1)在带标注图像上训练一个老师模型,(2)用老师模型在未标注图像上生成伪标注,(3)在真标注数据和伪标注数据的混合数据上训练学生模型。这个过程迭代几次,将学生模型作为下一轮的老师模型,在未标注的图像上重新标注下,并训练新的学生模型。

NoisyStudent训练用两种方式来提升自训练和蒸馏的性能。第一,学生模型容量比老师模型大,或者至少等于老师模型,这样学生模型可以更好地从更大的数据集中学习。第二,学生模型训练阶段,会添加噪声,这样迫使学生模型从伪标签中学得更努力/更困难(learn harder)。我们使用的噪声有,给数据加噪声,如RandAugment[18],给模型加噪声,如dropout[76],随机深度[37]。

使用NoisyStudent训练,使用300M未标注的数据,我们将EfficientNet在ImageNet上的top-1准确度提升至88.4%。比先前的最先进模型高2个百分点,先前的最先进模型需要3.5B的弱标注Instagram图像数据。我们的方法不仅在ImageNet的标准测试集上带来提升,在大幅提高了在更难测试集上的分类鲁棒性:在ImageNetA[32]的top-1准确率从61.0%提升至83.7%,在ImageNetC[31]的mCE(mean corruption error)从45.7缩减至28.3,在ImageNetP[31]的mFR(mean flip rate)从27.8缩减至12.2。我们的主要结果如表1所示。

表1

2. NoisyStudent训练

算法1概述了NoisyStudent训练过程。算法的输入既有带标注图像,也有未标注图像。我们用带标注的数据来训练老师模型,使用标准的交叉熵损失。然后用老师模型在未标注的图像上生成伪标注。伪标注可以是soft的(连续分布),也可以是hard的(one-hot分布)。然后训练学生模型,损失函数是真标注数据和伪标注数据的组合交叉熵损失。最后,迭代这个过程,把学生模型作为新一轮的老师模型,生成新的伪标注,训练新的学生模型。算法如图1所示。

算法1    NoisyStudent训练过程概述:

输入:带标注的图像\left\{ ( x_{1} ,y_{1} ),( x_{2} ,y_{2} ),...( x_{n} ,y_{n} ) \right\}以及未标注图像\left\{ \tilde{x } _{1},\tilde{x } _{2},...\tilde{x } _{m} \right\}

步骤1:训练老师模型\theta _{\ast }^t,最小化在有标注图像上的交叉熵损失:

\frac{1}{n} \sum_{i=1}^{n}l( y_{i} ,f^{noised}( x_{i} ,\theta ^t) )

步骤2:使用老师模型对未标注数据生成soft或者hard伪标注,注意,这一步对模型和数据都没有添加噪声

\tilde{y}_{i} =f(\tilde{x} _{i} ,\theta _{\ast }^t ),\forall i=1,...m

步骤3:训练一个更大或者至少同等容量的学生模型\theta _{\ast }^s,损失函数是真标注数据和伪标注数据的组合交叉熵损失,注意,学生模型是添加噪声的

\frac{1}{n} \sum_{i=1}^{n}l( y_{i} ,f^{noised}( x_{i} ,\theta ^s) ) +\frac{1}{m} \sum_{i=1}^{m}l( \tilde{y} _{i} ,f^{noised}( \tilde{x} _{i} ,\theta ^s) )

步骤4:迭代训练,将学生模型作为新的老师模型,回到步骤2。

图1:NoisyStudent训练的示意图。所有的示意图片来自ImageNet。

该算法是自训练的一种改进版本,属于半监督学习(例如[71],[96])和蒸馏[33]。我们方法和先前工作的联系个更多讨论在第5节。

我们的关键改进在于给学生模型增加噪声,并且学生模型大于等于老师模型。这使得我们的方法不同于知识蒸馏[33],知识蒸馏通常不使用噪声,而且学生模型比老师模型更小,以获得更快的速度。我们的方法可以看做知识蒸馏的扩展版本,通过给学生模型足够的拟合能力,以及在噪声方面更困难的设置,使学生模型比老师模型更好。

给学生加噪声    当学生模型在训练地和老师模型一致的时候,它被故意地噪声干扰;而当它产生伪标注的时候,它不会被噪声干扰。在我们的实验中,我们使用两种噪声:对输入数据加噪声和对模型加噪声。对于输入数据噪声,我们使用RandAugment[18]的数据增强。对于模型噪声,我们使用dropout[76]和随机深度[37]。

当应用到未标注数据上时,噪声有个重要的好处,即迫使对标注数据和未标注数据的决策函数的不变性(invariances)。第一,在NoisyStudent训练中,数据增强是一种重要的加噪声方法,因为它迫使学生模型在不同的增强版本的图像上的预测是一致的,这类似于UDA[91]。具体地说,在我们的方法中,老师模型对干净的数据(即未加噪声的数据)生成伪标注,而学生模型以增强的数据为输入来重现这些标注。例如,学生模型必须确保图像在平移后它的类别不会改变。当使用dropout和随机深度函数来作为噪声时,老师模型在推理阶段(即生成伪标注时)就像一个集成的模型,而学生模型就像一个单一模型。换言之,学生模型被迫使模仿更强大的集成模型。4.1节我们对噪声的影响进行了消冗研究。

其它技术    NoisyStudent还有一个额外的技巧:数据过滤和平衡,类似于[91,93]。具体地说,我们将老师模型的置信度低的图像过滤掉,因为它们通常是域外图像(out-of-domains),为了确保未标注的图像的分布和训练集的分布匹配,我们还需要平衡未标注图像的每个类别的数量。因为在ImageNet的有标注图像中,所有类别的数量是相近的。对于数量不够的类别,我们就复制图像;对数量过多的类别,我们就选取置信度最高的那些图像。

最后,我们强调我们的伪标注可以是软的也可以是硬的,在我们都实验中,软的和硬的都能起作用。特别是软的,对于域外未标注图像,效果会稍好些。因此,在下文中,为了保持一致性,除非另有说明,我们用软的伪标注来报告结果。

与现有的SSL方法的比较    除了自训练以外,半监督学习[12,103]的另一类重要工作是基于一致性训练[5,64,47,84,56,91,8]和伪标注[48,39,73,1]。虽然它们的结果是promising的,但是在我们的初步实验中,基于一致性正则化和伪标注的方法在ImageNet上的效果更差。这些方法不像我们用真标注数据训练的老师模型产生伪标注,这些方法没有专门的老师模型,而是用正在训练的模型来产生伪标注。训练的早期阶段,模型准确度低、熵高,因此一致性训练会正则化模型,导致高熵预测,使模型难以达到好的准确度。一个常见解决办法是将熵最小化、将置信度低的样本滤掉,或者加强一致性损失。然而,加强一致性损失、滤掉低置信度的样本、熵最小化会引入额外的超参数,使得在大规模的情况下很难使用。在ImageNet上,自训练或者老师-学生网络的方案会更适合。因为在ImageNet上我们可以训练一个好的老师模型。

3 实验

本节首先介绍我们是实验细节。然后展示我们方法的结果,并与最先进的模型的结果对比。最后,我们展示我们的模型在鲁棒测试集及对抗攻击测试(例如ImageNet-A,C,P)上取得的惊人的性能提升。

3.1 实验细节

带标注数据集    我们在ImageNet ILSVRC挑战赛任务上进行实验,其被认为是计算机视觉中最重要基准数据集之一,而且其改进也迁移到其它数据集中[44,66]。

未标注数据集    我们从JFT数据集[33,15]中获得未标注数据。该数据有大概300M图像。尽管该数据集有标注,但是我们无视标注,将图像视为无标注数据。我们从该数据集中滤除掉和ImageNet验证集有重叠的图片(见[58])。

然后在这个数据集上进行数据过滤和平衡。首先,我们用在ImageNet上训练的EfficientNet-B0[83]来预测JFT数据集的图像的标签,保留标签置信度高于0.3的图片。对于每个类别,我们选择130K张最高置信度图像。最后,如果某个类别的图片数少于130K张,我们随机复制一些该类别的图片。这样每个类别都可以有130K张图像。因此,我们用以训练学生模型的图像总数是130M(包含重复图像)。在130M张图像中,有80M是独一无二的。因为我们的方法对这些超参数很鲁棒,所以没有对这些超参数广泛地调整。

为了比较公平,我们还在公共数据集YFCC100[85]上进行了实验,实验结果在附录A.4。

框架    我们使用EfficientNet[83]作为baseline,因为在很多的数据下,其由较好的模型容量。在我们的实验中,我们还进一步放大了EfficientNetB7,得到EfficientNet-L2。EfficientNet-L2比EfficientNet-B7更宽更深,但使用的分辨率更低,这样它就能用更多的参数来拟合大量的未标注图像。因为模型更大,EfficientNet-L2的训练时间大约是EfficientNet-B7的5倍。有关EfficientNet-L2的更多信息,请参阅附录A.1中的表8。

训练细节    对于有标注图像,默认的批量大小是2048,内存不够时再减小。我们发现,批量大小设置为512、1024和2048,可以获得相同的性能。我们根据带标注图像的批量大小来确定训练的步数和学习率安排。具体地,对于比EfficientNet-B4还大的学生网络(包括EfficientNet-L2),训练350epochs;对于小的学生网络,训练700个epochs。批量大小是2048的话,初始学习率是0.128,在epochs总数为350的情况下,每2.4个epoch学习率衰减0.97;在epochs总数为700的情况下,每4.8个epoch学习率衰减0.97。

对于未标注图像,我们使用更大的批量大小,尤其是对于大模型,这样就可以充分利用大量的未标注图像。将有标注图像和未标注图像拼接在一起,计算平均交叉熵损失。我们使用最近提出的方法来修正训练集-测试集的分辨率差异[86]。对于Efficient-L2,首先用小分辨率正常训练350epochs。然后在未标注数据上用大分辨率微调1.5个epoch。和[86]相似,我们在微调过程中固定浅层的权值。

我们的最大模型,EfficientNet-L2,是在Cloud TPU v3 Pod上训练6天,其是2048核,无标注数据的批量大小是有标注的14倍。

噪声    我们使用随机深度[37],dropout[76]和RandAugment[18]来给学生模型加噪声。EfficientNet-B7和L2的加噪声的超参数是相同的。特别的,我们将最后一层的随机深度的生存概率设置为0.8,其它层遵循线性衰减规则。将dropout用在最后一层,dropout rate设为0.5。对于RandAugment,我们使用2个随机操作,幅值设为27。

迭代训练    我们实验中最好的模型是将学生作为新老师迭代3次的结果。我们首先在ImageNet上训练了一个EfficientNet-B7作为老师模型,然后以B7为老师,训练了一个EfficientNet-L2模型,未标注数据的批量大小是真标注数据的批量大小的14倍。然后,以EfficientNet-L2模型为老师,训练一个新的EfficientNet-L2模型。最后,我们再迭代一次,未标注数据的批量大小是真标注数据的28倍。3次迭代的细节在4.2节。

3.2 ImageNet结果

我们首先报告了ImageNet2012ILSVRC挑战赛上的验证集准确度,这在文献[45,80,30,83]中是常见的(另见[66])。如表2所示,使用NoisyStudent训练方式达到88.4%的top-1准确度,显著优于EfficientNet报告的最佳准确率85.0%。3.4个百分点的提升来自于模型的扩大(+0.5%)和NoisyStudent训练(+2.9%)。换言之,NoisyStudent训练带来的性能提升比改变网络结构要大得多。

此外,NoisyStudent训练的性能要优于最先进模型FixRes ResNeXt-101 WSL[55,86],该模型需要3.5B带标注的Instagram图像。相比之下,我们的方法只需要300M无标注图像,这更容易收集些。我们模型的参数量大约比FixRes ResNeXt-101 WSL小两倍。

模型大小研究:NoisyStudent训练EfficientNet B0-B7,不迭代训练    除了提高最先进的性能以外,我们还实验研究了NoisyStudent训练是否能提升其它的EfficientNet模型。先前的实验中,迭代训练用来优化提升EfficientNet-L2的准确度,但是在很多实验中很难用迭代训练,所以这里我们跳过它。我们实验研究了从EfficientNet B0到EfficientNet B7的不同大小版本,而且在每个实验中,老师网络和学生网络同样大。对所有EfficientNet baseline,我们都使用了RandAugment,这样baseline模型就更强些。对于EfficientNet B0,未标注数据的批量大小和真标注数据的批量大小相同。对于EfficientNet B1到B7,未标注数据的批量大小是真标注数据的批量大小的3倍。如图2所示,NoisyStudent训练对EfficientNet各个版本都能提升大约0.8%。总的来说,和先前工作相比,用NoisyStudent训练的EfficientNet在模型大小和准确度上有更好的平衡。实验结果也表明,即使没有迭代训练,NoisyStudent训练也能提升视觉模型。

图2    对不同大小的网络,NoisyStudent训练都能带来提升。这里老师网络和学生网络同等大小;没有执行迭代训练。

3.3 ImageNet -A,-C,-P的鲁棒性结果

我们将最优模型,也就是在标准测试集上达到88.4%的那个,在3个鲁棒测试集上测试,分别是ImageNet-A,ImageNet-C和ImageNet-P。

ImageNet-C和ImageNet-P测试集包含的图像是一些常规的损坏和抖动,例如模糊、雾化、旋转和缩放。ImageNet-A测试集包含的是最先进模型也表现较差的难图片。这些测试集被视为是鲁棒性基准测试集,因为它们要么很难(例如ImageNet-A),要么和训练集有更大差异(例如ImageNet-C和ImageNet-P)。

对于ImageNet-C和ImageNet-P,我们评估的模型有训练尺寸224×224和299×299两个版本。我们根据训练尺寸来调整测试图像尺寸。如表3、4和5所示,和之前的最先进模型(ResNeXt-101 WSL[55,59],使用了3.5B的弱标注图像)相比,NoisyStudent训练在鲁棒测试集上有显著的提升。它将ImageNet-A的top-1准确度从61.0%提高到83.7%。它将ImageNet-C的平均损坏误差(mCE)从45.7降低到28.3。在ImageNet-P上,如果我们使用224×224的尺寸(直接对对比),它将平均翻转率下降至14.2;如果我们使用299×299的尺寸,它将平均翻转率下降至12.2。在ImageNet-C和ImageNet-P上的鲁棒性显著提升令人惊讶,因为我们的模型没有刻意地针对鲁棒性进行优化。

表3 在ImageNet-A上的鲁棒性测试结果 表4 在ImageNet-C上的鲁棒性测试结果。mCE是不同损坏的加权平均误差率,越低模型就越好,以AlexNet的误差率为基线。   表5 在ImageNet-P上的鲁棒性测试结果。ImageNet-P的图像是用一些列的抖动来生成的。mFR表示在抖动下,模型翻转预测的概率,越低模型就越好,以AlexNet为基线。

定性分析    为了直观在这3个鲁棒性测试集上的显著提升,图3展示了一些在标准模型上预测错误,而在NoisyStudent训练模型上预测正确的例子。

(a) ImageNet-A (b) ImageNet-C   (c) ImageNet- P  

图3 在鲁棒测试集ImageNet-A、C和P中选取的图像。ImageNet-C中的图像经过人工的、训练集所没有的处理,也即常规损坏。ImageNet-P中的图像经过不同程度的抖动。在ImageNet-A、C上,NoisyStudent训练的EfficientNet的top-1预测是正确的(黑色加粗体显示)。没有NoisyStudent训练的EfficientNet的top-1预测是错误的(红色显示)。在ImageNet-P上,没有用NoisyStudent训练的EfficientNet会频繁地将预测翻转。

图3a所示是来自ImageNet-A的图像及我们模型的预测结果。使用NoisyStudent训练的模型可以成功预测这些很难的图像标签。例如,没有NoisyStudent训练的模型预测第2行左侧的图像为牛蛙,这可能是水上的黑色荷叶造成的。NoisyStudent训练的模型可正确预测其为蜻蜓。第一行左侧的图像,没有NoisyStudent训练的模型忽视了图中的海狮,将航标看错成灯塔,NoisyStudent训练的模型可正确识别出海狮。

图3b所示是来自ImageNet-C的图像及对应的模型预测。可以看出,在图像经过雪化、运动模型和雾化等严重损坏和扰动下,我们的模型仍预测正确,而没有NoisyStudent训练的模型会受到损坏和扰动很大的影响。最有趣的是第一行右侧,图像中的秋千连人都几乎无法识别,而NoisyStudent训练的模型仍能做出正确的预测。

图3c所示是来自ImageNet-P的图像及对应的模型预测。可以看到,当图像受到不同的扰动时,NoisyStudent训练的模型可以做出正确且一致的预测,而没有NoisyStudent训练的模型则会频繁地将预测翻转。

3.4 对抗攻击下鲁棒性结果

测试了在常规的损坏和扰动下模型的鲁棒性后,我们还测试了模型在对抗扰动下的性能。我么评估了我们的EfficientNet-L2在使用和没有使用NoisyStudent训练的模型在FGSM攻击下的性能。攻击是对输入图像执行一个梯度下降的步骤,每个像素的更新设置为\epsilon [25]。如图4所示,使用NoisyStudent训练的模型能显著地提高准确性,即使我们没有刻意针对对抗攻击进行鲁棒性优化。在更强的攻击下,使用PGD迭代10次[54],将\epsilon 设为16,NoisyStudent训练将EfficientNet-L2的准确度从1.1%提升至4.4%。

图4

注意,对抗攻击下鲁棒性结果和先前的工作没有直接可比性,因为我们使用了800×800的大输入分辨率,并且对抗性弱点(adversarial vulnerability)可随着输入维度的变化而变化[22,25,24,74]。

4 消冗研究

本节研究噪声和迭代训练的重要性,并总结我们方法其它组成部分的消冗研究。

4.1 自训练中噪声的重要性

由于我们使用由老师模型产生的软伪标签,当学生模型被训练至和老师模型完全相同时,未标注数据的交叉熵为0,训练信号会消失。因此,一个自然而然的问题是,为什么使用软伪标签的学生模型可以胜过老师模型。如前所述,我们假设对学生模型加噪声是有必要的,那么学生模型就不仅仅是学习老师模型的知识。我们研究了2种情况下噪声的重要性:未标注数据的数量不同、老师模型的准确度不同。在两种情况下,我们在训练学生模型时,逐步地去除未标注数据上的数据增强、随机深度和dropout,而在真标注数据上,保留数据增强、随机深度和dropout。这样,我们就可以将未标注数据上噪声的影响从真标注数据上防止过拟合措施的影响中分离出来。此外,我们比较使用加噪声的老师模型和未加噪声的老师模型,以研究在生成伪标签时是否有必要禁用噪声。

如表6所示,随机深度、dropout和数据增强等噪声在使学生模型比老师模型表现得更好方面起着重要作用。去除噪声后,性能持续下降。然而,在使用130M未标注图像的情况下,与有监督学习的基线相比,不使用噪声,性能仍然从84.0%提升至84.3%。我们假设这种改善归因于SGD,因为它在训练过程中引入了随机性。

表6 噪声消冗研究。我们以EfficientNet-B5作为教师模型,研究了两种不同情况下的准确度:不同数量的未标注数据、不同的数据增强方式。在使用1.3M未标注数据的实验中,我们在老师模型和学生模型上使用的都是标准的数据增强方式,例如随机翻转、旋转。在使用130M未标注数据的实验中,我们使用RandAugment。Aug和SD分别表示数据增强和随机深度。我们去除了未标注图像的噪声,同时保留了真标注图像的噪声。这里,不使用迭代训练,并且将未标注数据的批量大小设置为与真标注数据的批量大小相同,以节省训练时间。

你可能会反驳说,噪声带来的提升是通过防止对未标注数据上的伪标签的过拟合来实现。我们验证了当我们使用130M未标记图像时情况并非如此,因为该模型不会从训练损失中过度拟合未标记数据集。我们注意到,去除噪声会导致真标注数据的训练损失降低很多,而对未标注数据的训练损失则降低很小。这可能是因为大规模的未标注数据集是很难过拟合的。

最后,对生成伪标签的老师模型加噪声会导致准确度更低,这说明建立一个强大的、不加噪声的老师模型的重要性。

4.2 对迭代训练的研究

本节展示迭代训练的详细效果。如3.1节所述,首先在真标注数据上训练一个EfficientNet-B7模型,然后用它作为教师来训练一个EfficientNet-L2学生模型。然后,迭代此过程,把新的学生模型作为下一轮的老师模型。

如表7所示,在相同的超参数下,模型性能在第一次迭代时提高到87.6%,在第二次迭代中提高到88.1%(除了使用性能更好的教师模型)。结果表明,迭代训练对生成越来越好的模型方面是有效的。最后一次迭代中,我们将未标注数据的批量大小和真标注数据的批量大小的比例调到更大,使最终性能提高(boost)到88.4%。

表7 迭代训练能提高准确度,表中Batch Size Ratio表示未标注数据的批量大小和真标注数据的批量大小的比例

4.3 其它的消冗研究的汇总

我们也研究了NoisyStudent训练中不同设计的重要性,希望能为读者提供实用的指导。我们在附录A.2中进行了8项研究,研究结果汇总如下:

发现1:老师模型更大、性能更强,结果就更好。

发现2:要使结果更好,大量的未标注数据是必要的。

发现3:某些情况下,对于域外数据,软伪标签比硬伪标签更有效。

发现4:大的学生网络对于让学生学习更强的模型很重要。

发现5:数据平衡对小模型很有用。

发现6:对标注数据和未标注数据的联合训练的效果要好于先在未标注数据上预训练再在真标注数据上微调。

发现7:将未标注数据的批量大小和真标注数据的批量大小的比例调大,可使模型在未标注数据上训练得更长,以获得更高的准确度。

发现8:从头训练学生模型有时比用老师模型初始化学生模型要好,而且,即使用老师模型初始化学生模型,学生模型也需要训练很长时间才能表现得好。

5 相关工作

自训练    我们的工作基于自训练(例如[71,96,68,67])。自训练首先使用带标签的数据来训练一个好的教师模型,然后使用教师模型对未标记的数据进行标记,最后使用标记数据和未标记数据共同训练学生模型。在典型的师生框架下的自训练中,没有默认地对学生加噪声,或者没有充分理解和证明噪声的作用。我们与以往工作的主要区别在于,我们认识到噪声的重要性,并积极地加噪声,使学生变得更好。

自训练之前被用来将ResNet-50的top-1准确度从76.4%提高到81.2%[93],这个结果与最先进模型相比仍有很大差距。Yalniz[93]在ImageNet-A、C、P的鲁棒性方面也没有像我们那样取得显著的改进。他们的方案是,先只训练真标注数据,再在未标注数据上微调,微调完记为最终模型。NoisyStudent训练中,我们将这两个步骤合为一个步骤,因为这样算法更简单,在我们的实验中性能也更好。

数据蒸馏[63],使用不同的变换将一张图像的预测组合(ensemble)起来,以加强老师模型,这刚好和我们对学生模型的削弱是相反的。Parthasarathi[61]通过对未标注数据的知识蒸馏,建立了一个方便部署的小而快的语音识别模型。因为没有加噪声,而且学生网络也很小,因此很难让学生表现得比老师更好。[69]中的域适应工作也是和我们的工作是相关的,不过有太多是对视频的模型优化,例如预测使用视频中的哪一帧。[101]将多个老师模型的预测组合(emsemble)起来,比我们的方法的成本更高。

联合训练[9]将特征划分为2个不相交的部分,并使用带标注数据用两个模型训练两个特征集。它的噪声来源于特征划分,这样两个模型在未标注数据上的噪声并不总是一致的。我们对学生加噪声也能使老师模型和学生模型做不同的预测,而且相比特征划分,我们的方法更适用于ImageNet。

自训练/联合训练被证明能很好地用于其它各种任务,包括利用噪声数据[87]、语义分割[4]、文本分类[40,78]。还原翻译和自训练已经为机器翻译领域带来显著改进[72,20,28,14,90,29]。

半监督学习    除了自训练,半监督学习的另一项重要工作是基于一致性训练[5,64,47,84,56,52,62,13,16,60,2,49,88,91,8,98,46,7]。它们迫使在对输入、隐藏层或模型参数加噪声的情况下,模型预测不变。如第2节所述,一致性正则化在ImageNet上效果较差,因为一致性正则化使用正在训练的模型生成伪标签。训练早期阶段,一致性正则化会迫使模型生成高熵预测,这会导致结果较差。

基于伪标签的工作[48,39,73,1]与自训练相似,但是也存在一致性训练遇到的问题,因为它们也是用正在训练的模型来生成伪标签,而不是用已经收敛的、高准确度的模型来生成伪标签。最后,半监督学习的框架还包括基于图的方法[102,89,94,42],利用潜在变量作为目标变量的方法[41,53,95]和基于低密度分离的方法[26,70,19],这些方法可能对我们的方法提供补充的好处。

知识蒸馏    我们的方法因为对软标注的使用,所以和知识蒸馏[10,3,33,21,6]也相关。知识蒸馏的主要用途是使学生模型更小来压缩模型。我们的方法和知识蒸馏的主要区别在于,知识蒸馏不考虑未标注数据, 也不以提升学生模型准确度为目的。

鲁棒性    许多研究表明,视觉模型缺乏鲁棒性,例如[82,31,66,27]。近年来,解决鲁棒性不足已成为机器学习和计算机视觉领域的一个重要研究方向。我们的研究表明,使用未标注的数据提高了准确性和通用鲁棒性。我们的研究也表明,使用未标注数据可以提升对抗鲁棒性,这和[11,77,57,97]的结论也是一致的。我们和这些工作的主要区别在于,它们直接对在未标记数据上的对抗鲁棒性进行了优化,而我们的工作中,我们没有刻意直接针对鲁棒性进行优化,也能大大提升鲁棒性。

6 结论

以往的弱监督学习的研究需要大量的弱标注数据来改善现有的ImageNet模型。我们使用未标注图像可以显著提高最先进ImageNet模型的准确度和鲁棒性。我们发现,自训练是一种简单有效的能利用大规模未标注数据的方法。我们通过给学生模型加噪声来改进它,因此命名为NoisyStudent,以学习超越老师的知识。

实验表明,用NoisyStudent训练的EfficientNet可达到88.4%的准确度,比不使用NoisyStudent训练提高2.9%。我们的模型也是最先进模型,比之前的使用超级多弱标注数据的方法[55,86]提高了2%。

我们工作的一个重要贡献是证明NoisyStudent训练可以提高视觉模型的鲁棒性。实验表明我们的模型在ImageNet-A、-C、-P上的性能都有很大的提升。

附录

A.2 消冗研究

研究1:老师模型的容量    这里我们研究更大更强的老师模型是否结果就更好。我们使用我们的最佳模型——也就是NoisyStudent训练的EfficientNet-L2,top-1准确度为88.4%——来教学生模型,学生模型的大小是从EfficientNet-B0到EfficientNet-B7。本实验中,我们在未标注数据上使用标准的数据增强方法而不是RandAugment,使学生模型的容量更大。此设置原则类似于未标注数据的蒸馏。

比较结果如表9所示。使用NoisyStudent训练的EfficientNet-L2作为教师模型比使用相同的网络作为教师模型,会有0.5%至1.6%的提升。例如,我们可训练一个中等大小的EfficientNet-B4,其参数比ResNet-50少,准确度为85.3%。因此,用更大更强的老师模型,可以有更好的结果。

表9:使用我们的准确度为88.4%的最佳模型作为老师模型(在表中表示为Noisy Student Training (X, L2))比使用相同的网络作为老师模型(表示为 Noisy Student Training (X))带来更多的提升。

研究2:未标注数据的数量

研究3:软伪标签和硬伪标签在域外数据上的对比

研究4:学生模型的容量    我们研究不同容量的学生模型的结果。老师模型,我们选择为用真标注数据训练的EfficientNet-B0、B2和B4以及用NoisyStudent的EfficientNet-B7。我们对比了当学生网络与老师网络相等或更大时的结果。结果见表11。对于同一位老师,学生网络更大则性能更强,这说明,大的学生网络对于使学生学习更强的模型非常重要。

表11 使用更大的学生模型可以获得更好的表现。学生模型被训练为350个epoch,而不是700,没有迭代训练。准确度为86.9%的B7老师模型是用B7多次迭代地NoisyStudent训练的。学生模型B7和L2的对比并不完全公平,因为我们在训练L2的时候未标注数据的批量大小是有标注数据的批量大小的3倍,这没有我们在训练B7时候的批量大小设置好,我们在训练B7的时候,未标注数据的批量大小是有标注数据的批量大小的7倍。(更大信息见研究7)

研究5:数据平衡

研究6:联合训练

研究7:未标注数据批量大小与有标注数据批量大小的比例    因为未标注数据有130M,有标注数据有1.3M,如果两者批量大小设置为相同,每次训练未标注数据训练1个epoch,有标注数据会训练100个epoch。理想情况下,我们希望通过将未标注数据的批量大小调得更大,使模型在未标注数据上训练更多的epoch,这样就在未标注数据上拟合得更好。因此我们研究未标注数据批量大小和有标注数据批量大小的比例。

本实验中,我们使用了一个中等大小的EfficientNet-B4和一个更大的网络EfficientNet-L2。我们将老师网络和学生网络设置为同等大小。如表14所示,更大的比例使得更大的网络EfficientNet-L2有提升,而对较小的网络EfficientNet-B4则没有。因此,结论是将未标注数据批量大小与有标注数据批量大小的比例调大,可显著提高大网络的性能。

表14 

实验

A、 1。体系结构详图

EfficientNet-L2的体系结构规范如表8所示。我们还将EfficientNet-B7列为参考。在训练时间内,通过楔子将宽度和分辨率扩展到c2的增加系数,并通过楔子将深度缩放到c的增加因子。EfficientNet-L2的训练时间是EfficientNet-B7训练时间的5倍左右。

A、 2。消融研究

在本节中,我们将全面研究我们方法的各个组成部分。由于迭代训练导致训练时间较长,因此我们在没有迭代训练的情况下进行消融治疗。为了进一步节省培训时间,我们从研究4开始,将小型车型的培训时间从700缩短到350。从研究2开始,对于小于EfficientNet-B7的模型,我们还将未标记的批次大小设置为与标记的批次大小相同。

研究#1:教师模范的能力。在这里,我们研究使用一个更大更好的教师模式是否会带来更好的结果。我们使用EfficientNet-L2的最佳模型噪声学生培训,达到88.4%的最高精度,用于教授尺寸从EfficientNet-B0到EfficientNet-B7的学生模型。在本实验中,我们使用标准增量式而非随机增量式来增加学生模型的容量。此设置原则上类似于未标记数据的蒸馏。

比较如表9所示。教师使用噪音学习训练(EfficientNet-L2)时,与教师使用相同的模式,在改善结果的基础上,再提高0.5%至1.6%。例如,我们可以训练出一个中型模型EfficientNet-B4,它的参数比ResNet-50少,精度为85.3%。因此,使用一个大的教师模式与better-terperformance可以得到更好的结果。

研究2:未标记数据大小。接下来,我们进行实验来了解使用不同数量的未标记数据的效果。我们从130M未标记图像开始,逐步减少未标记集合。为了简单起见,我们尝试从未标记的集合中均匀地采样图像来使用整个数据,尽管以最高置信度拍摄图像可能会获得更好的结果。我们使用EfficientNet-B4作为教师和学生。

从表10可以看出,当我们将数据减少到整个数据的116时,性能保持不变,5这相当于复制后的810万张图像。当我们进一步降低性能时,性能会下降。因此,使用大量未标记的数据可以获得更好的性能。

研究3:域外数据的硬伪标签与软伪标签。与以前的研究不同,在半监督学习中使用。,

CIFAR-10图像作为一个小的CIFAR-10训练集的未标记数据),为了改进ImageNet,必须使用域外的未标记数据。这里我们比较了域外数据的硬伪标签和软伪标签。由于教师模型对图像的置信度可以很好地判断图像是否是域外图像,因此我们将高置信度图像视为域内图像,将低置信度图像视为域外图像。我们在每个置信区间[0:0;0:1];[0:1;0:2]; ;[0:9;1:0]中对1.3M图像进行采样。

图5:软伪标签导致低可信度数据(域外数据)的更好性能。每一个点在预呈现一个嘈杂的学生训练模型用1.3米的ImageNet标记图像和1.3米未标记的图像进行训练,置信分数在[p;p+0:1]中。

我们使用EfficientNet-B0作为教师模型和学生模型,并将噪声训练与软伪标签和硬伪标签进行了比较。结果如图5所示,观察结果如下:(1)软伪标签和硬伪标签都能显著改善域内未标记图像,即高置信度图像。(2) 对于域外未标记的图像,硬伪标签会损害性能,而软伪标签会导致健壮的性能。

请注意,我们还注意到,使用硬伪标签可以获得良好的结果,或稍好的结果,当雇用一个较大的教师。因此,软伪标签还是硬伪标签工作得更好可能需要根据具体情况来确定。

研究4:

学生模型的能力。然后,我们研究了不同能力的学生模型的效果。对于教师模型,我们使用基于标签数据训练的EfficientNet-B0、B2和B4以及使用噪声训练的EfficientNet-B7训练我们。我们使用相同尺寸或更大尺寸的学生模型进行比较。比较结果见表11。对于同一位老师,使用更大的学生模型可以持续获得更好的表现,这表明使用大学生模型对于让学生学习更强大的模型非常重要。

研究5:数据平衡。在这里,我们研究了保持未标记数据在类别间保持平衡的必要性。作为比较,我们使用置信度高于0.3的所有未标记数据。我们在Ta-ble12中以EfficientNet-B0到B3作为主干模型给出了结果。使用数据平衡可以提高小型型号EfficientNet-B0和B1的性能。有趣的是,对于更大的模型,如EfficientNet-B2和B3,差距变得更小,这表明更强大的模型可以有效地从不平衡的数据中学习。为了使嘈杂的学生培训对所有型号都有效,我们默认使用数据平衡。

研究6:联合训练。

在我们的算法中,我们使用标签图像和伪标签图像联合训练模型。在这里,我们还将与Yalnizet al使用的另一种方法进行比较。[93],它首先对伪标记图像预处理模型,然后对标记图像进行微调。对于微调,我们用不同的步骤进行实验,并取得最佳结果。比较结果见表13。

很明显,联合训练的表现明显优于训练前+微调。注意,仅对伪标记图像进行预训练比仅对标记数据进行监督学习的精度要低得多,这表明未标记数据的分布与标记数据的分布有很大不同。在这种情况下,联合培训会产生一个更适合这两种数据类型的解决方案。

研究#7:未标记批次大小与带标签批次大小的比率。

由于我们使用130M的未标记图像和1.3M的标记图像,如果未标记数据和标记数据的批量大小相同,则每次对100个时代的标记数据进行训练时,只对未标记数据进行一个历元的训练。理想的情况下,我们还希望模型能够通过使用更大的未标记批处理大小来训练更多时期的未标记数据,以便它能够更好地适应未标记的数据。因此,我们研究未标记批次大小与标记批次大小比率的重要性。

在本研究中,我们尝试了一个中型模型EfficientNet-B4以及一个更大的模型EfficientNet-L2。我们使用和老师和学生一样大小的模型。如表14所示,较大模型效率tnet-L2适用于较大比率,而较小模型效率tnet-B4则适用不。用较大的未标记批次大小与标记批次大小之间的比率,可显著提高大型模型的性能。

研究8:

热启动学生模型。

最后,有人可能想知道,当学生模型可以用一个聚合的教师模型初始化时,我们是否应该从头开始训练它。在这个消融过程中,我们首先在ImageNet上训练一个EfficientNet-B0模型,并用它初始化学生模型。我们改变训练学生的时代数,并使用相同的指数衰减学习率时间表。训练以不同的学习速率开始,因此在所有实验中,学习率衰减到相同的值。如表15所示,当训练历元从350减少到70时,精度显著下降;当训练历元减少到280或140时,精度略有下降。因此还需要培养大量的学生。

此外,我们还观察到,用教师初始化的学生有时会陷入局部最优。例如,当我们使用EfficientNet-B7作为教师时,由教师初始化的学生模型在训练中途达到86.4%的准确率,但在训练210个周期时仍然停留在那里,而从零开始训练的模型达到86.9%的准确率。因此,虽然我们可以通过热凝视节省训练时间,但我们从头开始训练我们的模型,以确保最佳性能。

A、 3。结果具有不同的体系结构和数据集

ResNet-50的结果。

为了研究其他建筑是否能从嘈杂的学生训练中获益,我们用ResNet-50进行了实验[30]。我们使用完整的Im-ageNet作为标记数据,JFT的130M图像作为未标记数据。我们在Im-ageNet上训练了一个ResNet-50模型,并将其作为我们的教师模型。我们使用振幅设置为9的Randaugment作为噪波。

结果见表16。在基线模型的基础上,噪声训练提高了1.3%,表明噪声训练对除效率网络之外的其他结构是有效的。

SVHN的结果。

我们也在一个较小的数据集SVHN上评估了有噪声的学生训练。我们使用73K图像的核心集作为训练集和验证集。使用包含531K图像的额外集合作为未标记集合。我们使用EfficientNet-B0,将第二块和第三块的步长设置为1,这样当输入图像大小为32x32时,最终的特征映射为4x4。

如表17所示,嘈杂的学生训练将基线准确率从98.1%提高到98.6%,输出结果与之前使用Wide-ResNet-28-10的Ran-dAugment取得的最新成果形成对比。

A、 4。YFC100M结果

由于JFT不是一个公共数据集,所以我们还使用公共的未标记数据集YFCC100M[85],这样搜索者就可以对我们的结果进行公平的比较。与第3.2节中的设置类似,我们在没有迭代训练的情况下使用不同的ent模型大小进行实验。我们对老师和学生都使用相同的模式。我们在使用JFT和YFCC100M时也使用相同的超参数,与JFT的情况类似,我们首先从Ima-geNet验证集过滤图像。然后我们根据B0的预测过滤低置信度图像,并根据前1个预测类只保留每个类的前130K个图像。由于大多数类没有足够的图像,因此结果集有34M个图像。然后我们平衡数据集,并将其增加到1.3亿张图像。作为比较,在数据平衡阶段之前,JFT有81M张图像。

如表18所示,使用YFCC100M进行的高噪音学生培训也有显著改善,尽管使用JFT可以获得更好的性能。性能差异可能是由于数据集大小的差异造成的。

A、 5。稳健性基准的详细信息

韵律学。

为了完整起见,我们简要描述了健壮性基准ImageNet-A、ImageNet-C和ImageNet-P中使用的度量。

ImageNet-A。

在ImageNet-A包含的200个类上,对前1和前5个精度进行了测量。从200个类到原始Ima geNet类的映射可以在线获得

ImageNet-C。

mCE(mean corruption error)是以AlexNet的错误率为基线,对不同腐蚀情况下的错误率进行加权平均。通过AlexNet的错误率将分数标准化,从而使不同难度的更正产生相似的量表分数。有关mCE和AlexNet的错误率的详细信息,请参考[31]。top-1准确度是所有腐蚀和所有严重程度的平均前1准确度。先前方法的前1个精度是根据每次损坏报告的损坏错误来计算的。

ImageNet-P。

翻转概率是模型改变不同概率的前1位预测的概率。mFR(mean flip rate)是不同扰动下翻转概率的加权平均值,AlexNet的翻转概率作为基线。有关mFR和AlexNet翻转概率的详细信息,请参考[31]。本文报告的最高精度是ImageNet-P中包含的所有图像的平均精度

关于在ImageNet-C和ImageNet-P中使用randegment。

由于有噪声的学生训练对ImageNet-C和ImageNet-P有显著的改善,因此我们简要讨论随机增强对鲁棒性结果的影响。首先,请注意,我们的监督基线效率net-L2也使用randumpment。与表4和表5所示的监督基线相比,嘈杂的学生培训有显著改善。

第二,randaugment和ImageNet-C,P之间的转换重叠很小。为了完整起见,我们列出了randegment中的转换以及ImageNet-C和ImageNet-P中的损坏和扰动:

随机增强变换:autocontract、equalize、Invert、Rotate、Posterize、Solarize、Color、contrast、Brightness、Sharpness、ShearX、ShearY、Trans lateX和TranslateY。

ImageNet-C中的损坏:高斯噪声、散粒噪声、脉冲噪声、散焦模糊、磨砂玻璃模糊、运动模糊、缩放模糊、雪、霜、雾、亮度、对比度、弹性、像素化、JPEG。

ImageNet-P中的扰动:高斯噪声、快照噪声、运动模糊、缩放模糊、雪、亮度、平移、旋转、倾斜、缩放。RandAugment和ImageNet-C之间的主要重叠是对比度、亮度和清晰度。其中,增强对比度和亮度也用于ResNeXt-101wsl[55]和使用初始预处理的视觉模型[34,80]。RandAugment和ImageNet-P之间的重叠包括亮度、平移和旋转

上一篇 下一篇

猜你喜欢

热点阅读