Billion-scale semi-supervised learning for image classification
https://arxiv.org/pdf/1905.00546.pdf
https://github.com/facebookresearch/semi-supervised-ImageNet1K-models/
权重在timm中也有:https://hub.fastgit.org/rwightman/pytorch-image-models/blob/master/timm/models/resnet.py
使用以下命令即可调用(前提是可以连github):model = torch.hub.load('facebookresearch/semi-supervised-ImageNet1K-models', 'resnet18_swsl')
https://blog.csdn.net/weixin_39901859/article/details/106887536
十亿尺度半监督学习用于图像分类
本文研究了大卷积网络的半监督学习问题。我们提出了一个基于教师/学生范例的管道,它利用了大量未标记图像(高达10亿)。我们的主要目标是提高给定目标架构(如ResNet-50或ResNext)的性能。我们对我们的方法的成功因素进行了广泛的分析,这导致我们提出了一些建议,用半监督学习产生高精度的图像分类模型。因此,我们的方法为图像、视频和细粒度分类的标准架构带来了重要收益。例如,通过利用10亿张未标记的图像,我们学习的vanilla ResNet-50在ImageNet基准上达到81.2%的top-1精度。
1.引言
最近,利用web级弱监督数据集的图像和视频分类技术在各种问题上取得了最先进的性能,包括图像分类、细粒度识别等。然而,标签形式的弱监督存在许多缺点。由于非可视、缺失和不相关的标签,标签中存在大量固有噪声,这会严重阻碍模型的学习。此外,弱监督网络规模的数据集通常遵循Zipfian或长尾标签分布,只有最显著的标签才有利于良好的性能。最后,这些方法假设目标任务具有大型弱监督数据集,但在许多应用程序中并非如此。
本文探讨了网络规模的半监督深度学习。我们利用数十亿未标记的图像以及相对较小的一组特定于任务的标记数据。据我们所知,神经网络半监督学习在这种规模上还没有被探索过。为了扩展我们的方法,我们提出了图1所示的简单半监督策略:(1)我们对标记数据进行训练,以获得初始教师模型;(2) 对于每个类别/标签,我们使用该教师模型的预测对未标记的图像进行排序,并选取top-K图像构建新的训练数据;(3) 我们使用这些数据来训练学生模型,这通常不同于教师模型:因此我们可以在测试时降低复杂性;(4) 最后,预训练的学生模型在初始标记数据上进行微调,以避免潜在的标记错误。
与大多数弱监督方法相比,我们通过选择每个标签相同数量的图像来避免长尾分布问题。这是可能的,因为对于像“非洲矮人翠鸟”这样的尾巴类鸟类,可能没有足够数量的弱监督/标记的示例,但在未标记的数据集中可能存在大量这种鸟类的未标记图像。使用标签训练的教师模型能够从未标记的数据中识别足够多的图像,从而提高尾部类的召回率。
上述半监督算法的选择受到多种方法的推动,例如自训练、蒸馏或提升。事实上,在教师和学生模型的某些特定设置下,以及在数据类型下,我们的工作归结为这些方法。然而,我们的论文分析了几种变体,例如通过移除教师/学生模型来考虑纯粹的自训练学习过程,或者对推断的标签进行微调,而不是仅对标签集中的标签进行微调。
我们的参考管道培养了一个比学生模型更强大的教师模型。即使在自训练的情况下——当教师和学生模型相同时——未标记数据的绝对规模也能让我们获得显著的收益。我们的分析表明,性能对几个因素很敏感,如排名初始(教师)模型的强度、未标记数据的规模和性质、教师和最终模型之间的关系等。特别是,我们将性能分析为教师和学生模型相对强度的函数。我们还表明,利用搜索中的hashtag或查询作为弱监督信号来收集未标记的数据集可以显著提高性能。
总体而言,本文做出了以下贡献:
•我们在数十亿个未标记的示例中探索了半监督深度学习,并证明了使用教师模型对未标记图像进行排序的简单策略(在标记数据上进行训练)对于学习强大的(学生)网络是有效的。
•我们分析了此类策略产生实质性效益的条件。受先前关于大规模监督学习的研究[32]的启发,我们在表1中总结了这些建议。
•更具体地说,我们提供了各种设计选择的详细分析和解释,如学生和教师CNN模型的强度、未标记数据集的性质、每个标签选择的示例数量等。
•我们在图像和视频的流行分类基准上展示了我们的方法的性能,显著优于最新技术。
•我们的建议也适用于其他任务,即视频分类和细粒度识别。本文的组织结构如下。第2节介绍了相关的工作和术语。第3节介绍了我们的方法。第4节为分类任务提供了广泛的分析和消融研究。第5节对其他任务进行了评估。第6节总结全文。
[if !supportLists]2. [endif]相关工作
在本节中,我们将回顾与我们的方法相关的几个主题和具体工作。由于各篇论文中的术语并不总是一致的,我们澄清了论文中使用的不同概念。
图像分类。
我们的工作主要针对改进图像分类,其性能通常在Imagenet等基准上进行评估[8]。近年来,人们致力于改进神经网络结构。例如,残差连接[16]的引入导致了几个竞争性卷积神经网络[19,20,43],被社区广泛采用。最近,研究了其他方向,以进一步推动最新技术[1]一个建议是学习一个巨大的卷积神经网络,在输入端获取高分辨率图像[21],因为分辨率是分类性能的关键因素[17]。另一项研究[27]学习了具有大型弱标记数据集的高容量convnet,其中以标记的形式提供注释。
迁移学习是一项任务,在这项任务中,一个人重新使用在大型标记语料库上训练的网络来解决数据较少的其他任务。这是机器学习研究的历史路线,参见Pan和Yang的调查[30],了解与此主题相关的不同问题和方法的广泛分类。这种方法通常用于没有足够标签的任务[29],例如细粒度分类或检测(尽管最近的工作[15]表明,在后一种情况下,从头开始学习是可能的)。
另一方面,迁移学习用于评估无监督学习的质量[10]:使用代理任务上的未标记数据训练网络,通过微调目标任务的最后一层来评估主干的质量。迁移的一个特殊案例是few-shot学习任务,在这项任务中,一个人必须用很少的新类别的例子来学习。这一研究领域的典型工作提出了参数预测[4,33]和数据增强[12,14]。
半监督学习。
最近的方法研究了使用额外的未标记数据来改善监管的兴趣。据我们所知,文献中的大多数结果都得到了缓和的结果[27],除了那些对附加数据使用弱标签的结果,这是一种弱监管的形式。
最近的方法[11,35]重新审视了传统的标签传播算法(参见[3,9]了解综述),以利用大型YFCC未标记集合进行few-shot学习。Douze等人[11]在新类别的标记数据数量非常低(1-5)时改进分类,但当更多标记数据可用时,增益消失。此外,该策略还有一个重要的局限性:它需要计算一个连接相邻图像的大型图,该图由一个特殊描述符构造。这类方法通常被称为转换方法:提供了一些标签,目标是将标签扩展到未标记的数据。必须学习分类器以提供样本外扩展[6,23]。
蒸馏最初用于将一个称为教师的大型模型压缩成一个较小的模型。蒸馏过程相当于训练小模型(学生),使其最好地再现教师的输出。学生模型通常比教师模型更小更快。蒸馏可以看作是自训练的一种特殊情况,教师模型对未标记的数据进行预测,推断出的标签用于以监督的方式训练学生。该策略已成功地用于多项任务,如检测[34]。另一方面,回译[37]是翻译性能的关键[26],通过利用(未注)单语数据提供巨大收益。
据我们所知,我们的论文是第一篇证明这一点以及它如何通过利用大量未注数据有效地进行图像分类的论文。
Krizhevsky等人[25]在其开创性论文中证明,数据增强是图像分类性能的关键因素。最近的一些策略通过学习为增强而学习的变换[7,31]或通过合成图像的混合物[45],成功地提高了分类精度。在某种程度上,我们的半监督方法是一种特殊形式的数据增强,即我们从补充的未标记数据集中添加新的实际图像以提高性能。
3.我们的半监督训练渠道
本节介绍我们的参考大规模半监督方法。该算法基于文献中的几个概念。我们通过从广泛的实验研究中收集到的良好实践和新见解来补充它们,以实现成功的学习。然后,我们讨论了与我们的方法有关的几个关键考虑因素,并提供了一些支持我们选择的直觉和动机要素。
3.1. 问题陈述:半监督学习
我们考虑一个多类图像分类任务,其目标是分配给一个给定的输入图像标签。
我们假设我们得到了一个由N个具有相应标签的示例组成的标签集D。特别地,我们将考虑IMANETET ILVRC分类基准,它提供了覆盖1000个类的N=120万个图像的标记训练集。
此外,我们还考虑了大量的U>n未标记图像。注意,U中示例的类分布可能不同于D中的类分布。我们的半监督学习任务通过允许在D上训练模型扩展了原始问题∪ U、 即,利用未标记的数据进行学习。推理和性能评估保持不变,并遵循目标任务的协议。
3.2. 我们的学习渠道
我们的半监督方法包括四个阶段:
(1) 在标记数据D上训练教师模型;
(2) 在未标记数据U上运行训练模型,并为每个标签选择相关示例,以构建新的标记数据集Dˆ;
(3) 在Dˆ上培养新的学生模式;
(4) 在标记的集合D上微调经过训练的学员
该管道类似于现有的蒸馏工程。我们偏离了文献(i)我们如何联合利用未标记和标记的数据;(ii)我们如何构建Dˆ;(iii)我们考虑和针对Imagenet改进的规模。现在我们将更详细地讨论这些阶段。
教师模式训练。
我们在标记的数据集D上训练一个教师模型来标记美国的例子。这种方法的主要优点是推理是高度并行的。因此,我们在很短的时间内在数十亿个示例上执行它,无论是在CPU上还是在GPU上。这一阶段需要一个好的教师模型,因为它负责从U中删除不可靠的示例,以便在不引入大量标记噪音的情况下正确标记足够多的相关示例。
数据选择和标记。
我们的算法利用了理想的特性,即学习能够容忍一定程度的噪声[28]。我们的目标是收集大量图像,同时限制标签噪声。由于大量未标记数据,大部分数据甚至可能不包含I中的任何类。我们建议为每个目标标签从U中选择top-K示例。首先,在U中的每个示例上运行教师模型以获得softmax预测向量。对于每幅图像,我们只保留与P最高分数相关的类别,P是一个参数,说明了我们期望在每幅图像中只出现少量相关类别的事实。选择P>1的原因是很难准确识别表示不足的概念,或者一些概念可能被更突出的共现概念所掩盖。第4节详细分析了该参数的作用。
然后,对于每个类别l,我们根据相应的分类分数对图像进行排序。top–K图像定义了一组Dˆl图像,这些图像从此被视为该类别程新的积极训练示例。在应用softmax进行排名之前,我们还使用原始预测进行了实验,但发现它们的表现更差(见补充资料)。因此,为多类分类问题收集的新图像训练集被定义为
图2显示了使用ResNet-50[16]教师模型对YFCC100M数据集[39]进行5个类别的定性排名结果。正如预期的那样,排名靠前的图像简单干净,没有太多标签噪音。当我们排名下降时,他们逐渐变得不那么明显。引入这样的硬示例对于获得一个好的分类器很重要,但是随着K的增加,引入假阳性的概率变得更高。因此,对K有一个重要的权衡,它强烈依赖于K/M比。第4节对此进行了分析。P、K和M之间也存在微妙的相互作用。如上所述,当集合U不够大时,设置P>1是为尾部类收集足够可靠示例的一种方法。
学生模型训练和微调。
我们利用Dˆ提供的监督训练学生模型。虽然我们的主要兴趣是学习一个比教师更简单的模型,但实际上可以为教师和模型使用相同的架构,正如我们将在本文后面看到的,这是一个实际的兴趣。请注意,尽管我们的分配过程可以将图像分配给Dˆ中的多个类,但我们仍然将该问题视为多类分类,只允许在数据集中复制图像。然后,对经过训练的学生模型进行D微调,并根据测试数据进行评估。Softmax损耗用于预训练和微调。备注:可以使用D和Dˆ中的混合数据进行训练,就像以前的方法一样[34]。然而,这需要寻找依赖于其他参数的最佳混合参数。就我们的大规模训练而言,这是资源密集型的。此外,如我们后面的分析所示,充分利用大规模未标记数据需要采用较长的预训练计划,这在涉及混合时增加了一些复杂性。
我们在D上的微调策略没有这些问题:相反,它需要在初始学习速率上扫描参数以进行微调,这由于较小的数据大小和训练计划而更有效。它还确保使用干净的标签对最终模型进行微调。
3.3. 奖金:弱监督的预训练
我们考虑另一种特殊情况,除了U,D还包括弱监督数据(W)加上相对较小的任务特定数据(V)。先前的工作[27]表明,通过对W进行预训练,然后对V进行微调而获得的教师模型是一个令人信服的选择。通过对教师模型选择的数据进行训练得到的学生模型明显优于直接对弱监督数据进行训练得到的学生模型。如后面的实验所示,这种特殊的设置允许我们获得最先进的结果。
4.图像分类:实验与分析
在ImageNet1K数据集上进行了一系列实验,证明了该方法在图像分类任务中的有效性。这些实验支持表1中提出的主要建议。
4.1. 实验装置
数据集:
以下网络规模的数据集用于涉及未标记数据集U的半监督学习实验。
•YFCC-100M[38]是一个公开的数据集,包含来自Flickr网站的约9000万张图像和相关标签。在删除重复项后,我们将此数据用于大多数实验和烧蚀。
•IG-1B-Targeted:在[27]之后,我们从社交媒体网站收集了1B个带有相关标签的公共图像数据集。我们考虑用与1000个IMANETET-1K类之一关联的1500个标签中的至少一个标记的图像。
除非另有规定,否则我们使用带有1000个类的标准ImageNet作为标记集D。
模型:
对于学生和教师模型,我们使用残差网络[16]、具有d={18,50}的ResNet-d和具有群卷积的残差网络[43]、具有101层和群宽度C={4,8,16,48}的ResNeXt-101 32XCd。此外,我们考虑ReXCEXT-5032×4网络。模型参数的数量如表3所示。训练细节:我们在8台机器的64个GPU上使用同步随机梯度下降(SGD)来训练我们的模型。每个GPU一次处理24个图像,并对每个GPU上的所有卷积层应用批量标准化[22]。在所有实验中,权重衰减参数设置为0.0001。我们按照[13]中提出的线性缩放程序设置学习速率,预热和整体小批量大小为64×24=1536。
对于预训练,我们使用从0.1到0.1/256×1536的预热,其中0.1和256是用于ImageNet训练的标准学习速率和小批量大小。我们在等距步骤中将学习率降低了2倍,这样在整个训练过程中,减少的总次数为13次。为了在ImageNet上进行微调,我们将学习速率设置为0.00025/256×1536,并使用学习速率计划,包括在30个时间段内以0.1的系数进行三次等距缩减。
默认参数。
在本节的其余部分中,“迭代”次数是指我们处理图像的总次数(向前/向后)。除非另有说明,我们默认采用以下参数:我们处理#iter=1B图像进行训练。我们将图像中选择的概念数量限制为P=10,以收集Dˆ每类K=16k图像的简短列表。我们默认的教师模型是Xie等[43]定义的Next-101架构(32x48)。由于我们的主要目标是最大限度地提高学生模型的准确性,因此在大多数实验中,我们采用vanilla ResNet-50学生模型[16],以便与文献中的许多作品进行直接比较。最后,默认情况下,未标记的数据集U为YFCC100M。
4.2. 不同步骤的分析
我们的方法与监督学习。
表2将我们的方法与仅在ImageNet上针对不同型号容量的完全监督训练设置进行了比较。与各种能力目标模型(1.6–2.6%)的监督基线相比,我们的教师模型带来了显著的改进,这支持了表1中的建议。微调的重要性。
由于预训练数据集Dˆ和标记数据集Dˆ的标签相同,我们还比较了在我们方法的最后一个完整微调步骤之前和之后在Dˆ上训练的模型的性能。从表2中我们观察到,在干净标记的数据上微调模型对于实现良好性能至关重要(表1中的第2点)。
学生和教师能力的影响。
在表2中,我们观察到,在ResNeXt-101 32x8模型饱和之前,低容量学生模型的精度显著提高。表3显示了作为教师模型能力函数的准确性。随着我们在ResNeXt-101 32x16之前增加教师模型的强度,ResNet-50学生模型的准确性得到提高。除此之外,由于ImageNet的相对较小,教师的分类精度饱和。因此,进一步增加教师模型的能力对学生模型的表现没有影响。
总之,上述实验表明,我们方法的改进取决于学生和教师模型在原始监督任务上的相对表现(即,仅对标记数据D进行训练)。有趣的是,即使在教师和学生模型都是ResNet-50的情况下,我们也比监督基线提高了约1%。
自训练:
对老师/学生的批量评。我们提出的半监督训练方法的一个特例是教师和学生模型具有相同的架构和能力。换句话说,采样是由目标模型本身执行的,它只在可用的标记数据集上进行训练。在这种情况下,我们的方法简化为一种自训练方法。
表4显示了不同型号的精度(默认设置),以及通过在ImageNet上进行简单训练获得的增益,以供参考。所有型号均受益于自训练。容量较大的模型具有相对较高的精度增益。例如,与ResNet-50的1%相比,ResNeXt101 32x16型号提高了2%。我们还对ResNet-50和ResNeXt-101 32x16机型进行了第二轮自训练,并观察到后续收益分别为0.3%和0.7%。
如前所述,自训练是一项具有挑战性的任务,因为错误会在训练过程中放大。我们的实验表明,通过微调阶段纠正可能的标记噪声,该模型可以通过受益于更大的示例集来改进自身。然而,通过将这些结果与表2中提供的结果进行比较,我们发现我们的教师/学生选择更有效,因为它通常为特定的目标架构提供了更好的准确性。
4.3. 参数研究
未标记集合U的大小。
通过从YFCC100M图像分布中随机采样,创建了许多大小不同的数据集。对每个随机子集按比例调整超参数值K,以便边缘化数据集规模的影响。例如,分别为数据集大小100M、50M和25M设置K=16k、8k和4k的值。半监督模型精度作为未标记数据集大小的函数绘制在图3中。每次数据集大小增加一倍,直到达到25M的数据集大小,都会实现固定精度的提高。但是,随着数据集大小的进一步增大,这种对数线性行为将消失。目标模型可能已达到饱和点,从相同的YFCC图像分布中添加额外的训练样本无助于提高精度。
总的来说,上述实验表明,利用大规模的未标记数据对于良好的性能非常重要(表1建议中的第3点)。
训练前迭代次数。
图4显示了预训练期间处理的图像总数的函数性能。为了确保每种情况下的学习率下降相同的因素,我们将整个训练分成13个等距步骤,并在每一步后将学习率下降2倍。我们观察到,随着处理图像数量的增加,性能不断提高。这表明我们的方法需要更长的训练阶段才能充分发挥作用,如表1中第4点所总结)。作为参考,我们还展示了在ImageNet上以相同迭代次数训练ResNet-50模型的结果。增加训练迭代次数并没有多大帮助,事实上降低了一小部分精度。注意,我们还尝试了将学习率降低3次(系数为0.1),得出了类似的结论。总的来说,我们发现10亿次迭代在获得良好的精度和资源利用率之间提供了令人满意的折衷。
参数K和P。
图5显示了对于ResNet-50和ResNext-101-32x16学生模型,在P=10的情况下改变每个类别选择的图像数量K的效果。对于ResNet50,我们观察到,由于示例的多样性和硬度增加,随着K值增加到8k,性能首先得到改善。它在4k-32k范围内是稳定的,这表明粗扫以找到最佳值是足够的。增加K进一步在Dˆ中引入大量标记噪声,并且精度下降。对于ResNext-101-32x16,也有类似的观察结果,但更高容量的模型可以利用更多的数据。它在每类16k和32k之间实现最佳性能。
对于接近最佳的K值(如16k),性能随P变化不大。高P值允许一个训练示例出现在多个排名列表中,从而为预训练产生更平衡的类别分布,有关分析,请参阅补充材料。我们在所有实验中都将P=10固定,因为当集合大小U不够大时,它允许我们生成几乎平衡的预训练数据集(表1中的第5点)。
4.4. 半弱监督实验
先前的工作[27]表明,与任务语义相关的元信息关联的图像可以提高性能。实现这一点的方法之一是利用与任务相关的搜索查询或hashtag创建一个有噪声的弱监督数据集,并将其用作U。我们基于排名的选择可以被视为一个初步的噪声消除和类平衡过程。
研究:Dˆ选择程序的变体。
为了进一步研究这一点,我们创建了三个不同的800万IG-1B目标数据子集,以训练ResNet-50学生模型:(1)使用我们的排名方法创建平衡排名,每个类别有相同数量的示例(top-8k),(2)不平衡排名也使用我们的排名方法,但每个标签的示例数遵循Zipfian分布,并且,(3)平衡标签使用相关的hashtags随机选择每类8k图像。详情请参阅补充资料。表5显示了在这些数据集上进行训练,然后在ImageNet上进行微调的结果。我们观察到,通过排名进行的基于分类的选择是实现良好性能的关键。注意,利用大量未标记的数据对于每个类获得相似数量的图像是必要的。
使用哈希标记进行预训练。
在弱监督数据上的预训练最近取得了令人印象深刻的成绩。受这些结果的激励,我们跟随Mahajan等人[27]通过对IG-1B目标的预训练和ImageNet上的微调,对ResNext-101 32x48教师模型(85.4%顶级精度)进行训练。由于数据集较大,我们使用K=64k。表6将我们的方法与弱监督方法[27]进行了比较,该方法在IG-1B-TARGET上预训练模型,并将哈希标记作为标签。就大多数模型的最新技术而言,这是一条强有力的基线。我们观察到持续改善0.6%–2.2%,低容量模型受益最大。我们的所有型号都达到了最先进的性能,ResNet50的准确率达到了80.9%。因此,利用弱监督数据对教师模型进行预训练可显著改善结果(表1第6点)。
4.5. 与最新技术的比较
表6将我们的方法与现有架构的最新结果进行了比较,特别是流行的ResNet-50,对此我们有几个比较点。可以看出,与所有只使用标记数据的方法相比,我们的方法提供了很大的改进(>3%)。如上所述,它也显著优于(+0.6–2.5%)最先进的弱监督方法[27]。
5.其他申请
在本节中,受我们在ImageNet数据集上发现的启发,我们将我们的方法应用于两个不同的任务:(1)视频动作分类,(2)使用我们的半监督图像模型改进分类的迁移学习。
5.1. 视频分类实验
我们使用流行的多类动力学视频基准进行了实验,该基准具有∼ 246k训练视频和400个动作标签。模型在20k验证视频上进行评估。与IG-1B-Targeted类似,我们利用359个与动力学标签空间语义相关的哈希标签构建了6500万个视频的IG动力学。详情请参阅补充资料。我们使用基于R(2+1)D-D[40]剪辑的模型,模型深度为18和34,并使用RGB视频帧。
教师是一个片段长度为32的弱监督R(2+1)D-34模型。它通过IG动力学数据集进行预训练,并通过标记动力学视频进行微调。我们从每个视频中均匀采样10个剪辑,并对softmax预测进行平均,以生成视频级预测。对于我们的方法,我们使用K=4k和P=4以及IG动力学作为未标记数据U来训练学生模型。有关训练的详细信息,请参见补充说明。
表7报告了3种不同学生模型的结果以及参数和乘法-加法触发器的数量。为了进行比较,我们还展示了以下结果:(1)对动力学进行全面监督的训练,(2)对免疫球蛋白动力学进行弱监督的预训练,然后对动力学进行微调。与完全监督的训练相比,我们的方法有了显著的改进。我们还观察到,与竞争性弱监督预训练方法相比,模型的失败率较低,受益最大。我们还和其他最先进的方法进行了比较,表现出了竞争力。我们注意到,与现有技术相比,我们以更低的分辨率(112×112)处理最多32个输入视频的RGB帧(无光流)。
5.2. 迁移学习实验
ImageNet已被用作迁移学习的事实上的训练前数据集。出现的一个自然问题是,使用我们的方法训练的模型对于迁移学习任务有多有效。我们考虑GAB2011(41)数据集与5994个训练图像和5794个测试图像与200个鸟类物种(标签)。研究了两种迁移学习设置:(1)全傅立叶变换涉及对全网络进行微调,(2)傅立叶变换仅涉及从最终的傅立叶变换层提取特征并训练逻辑回归器。
表8报告了使用我们的半监督(第4.2节)和半弱监督(第2节)方法训练的ResNet-50模型对完全监督和弱监督模型性能的准确性。有关训练设置,请参见补充说明。使用我们的方法训练的模型表现得更好。结果特别令人印象深刻的是,仅fc设置,其中我们的半弱监督模型优于高度竞争的弱监督模型6.7%。
6.结论
我们通过半监督学习利用大规模未标记图像收集来提高CNN模型的质量。未标记数据集的规模允许我们推断出比原始数据集大得多的训练集,从而允许我们学习更强的卷积神经网络。未标记和标记的图像在不同的阶段以一种简单但实用且有效的方式进行利用。通过对参数和变量的广泛研究,我们提出了大规模半监督深度学习的建议。作为副产品,我们的烧蚀研究表明,使用我们的方法自训练的模型也取得了令人信服的性能。总体而言,我们报告了几种架构的最新结果。
补充材料
本补充材料提供了补充我们论文的细节。首先,我们在第1节中提供参数P的统计信息。然后,第2节提供了第4.4节中讨论的变体的详细信息。第3节提供了额外的结果,显示了我们用自己的技术训练教师的方法的有效性。第4节描述了我们如何收集IG Kinectics视频数据集。第5节解释了我们的重复数据消除过程,该过程确保没有任何验证或测试数据属于我们的未标记数据集。最后,我们在第6节中给出了与CUB2011上的迁移学习实验相关的参数。
1.参数P的影响
表9显示了在K=16k的情况下,改变P对使用vanilla 型ResNext-101 32x48教师模型训练的ResNet-50学生模型的影响。我们考虑YFCC-100M,并通过随机抽样数据构建了25m和100m的两个数据集。我们注意到,增加P会平衡所有类的排名列表大小(列| D | 710)。我们还观察到,它对性能没有显著影响。由于我们工作的主要重点是处理代表性不足的类别的大规模训练,因此我们更愿意保证每个类别有固定数量的样本,因此在所有实验中选择P=10。
2.半+弱监督:Dˆ的变体
如第4.4节所述,本节提供了有关收集训练集的变体的更多详细信息。我们创建了三个不同的800万IG-1B目标数据子集。
•平衡排名是使用我们的排名方法创建的,每个类别有相同数量的示例(top-8k)。
•不平衡排名也使用我们的排名方法,但每个标签的示例数遵循Zipfian分布。为了确保我们的Zipfian分布与真实世界的数据相匹配,我们将IG-1B-Targeted中的1.5k哈希标记分配给其中一个ImageNet类,以确定每个类的大致图像数。然后,我们使用此分布作为基础来确定K以选择顶部− 每个类有K个图像,因此跨类的图像总数为8M。
•balanced with tags在将图像映射到ImageNet类后,使用相关的hashtags为每个类随机选择8k图像,并且不使用任何排名列表。
3.自学教师模式
在本文中,我们观察到,在教师和学生模型具有相同架构和能力的自训练环境中,我们仍然获得1%− 与完全监督设置相比,精确度提高2%。出于这个原因,我们考虑另一种情况下,我们采取高容量ReXeXT-101-32 x16模型训练ImageNet和SelfStand使用YFCC-100M作为未标记数据。然后,我们使用这种自训练的模型作为教师,并使用我们在YFCC-100M上的方法训练能力较低的学生模型。使用主要文件中提到的标准训练设置。表10显示了在上述设置中训练的不同学生模型的准确性。作为参考,我们还使用ImageNet训练的ResNext-101 32x48教师模型与主要论文表2中的半监督结果进行了比较。我们观察到一致的0.2%−即使使用能力较低的自学型ResNeXt-101 32x16教师,也能提高0.7%。我们打算公开发布这些模型
4.弱监督视频实验
4.1. IG动力学数据集的构建
我们从社交媒体和相关的标签中考虑了数百万的公共视频。对于动力学数据集中的每个标签,我们获取标签中每个单词的原始版本和词干版本,并以不同的排列方式连接它们。例如,对于标签“playing the guitar”,不同的排列是“Playingthe guitar”、“playingguitar”、“playingguitar”、“guitarplaying”等。然后,我们找到与这些排列匹配的所有标签和相关视频,并为它们指定标签。最后,我们得到了6500万个视频,369个标签。31个标签没有对应的hashtag。
4.2. 训练详情
我们首先对视频帧进行向下采样,分辨率为128×171,并通过从帧中裁剪随机的112×112块来生成每个视频剪辑。我们还对输入应用时间抖动。我们使用同步随机梯度下降(SGD)在16台机器上的128个GPU上训练我们的模型。对于32帧的视频剪辑,每个GPU一次处理8个图像(由于内存限制),并对每个GPU上的所有卷积层应用批量标准化[22]。对于8帧视频剪辑,每个GPU一次处理8个图像。在所有实验中,权重衰减参数设置为0.0001。我们按照[13]中提出的线性缩放程序,通过预热设置学习速率。
训练前:
弱监督和半弱监督设置都需要对模型进行预训练。我们总共处理了4.9亿个视频。表11显示了不同型号的小批量大小和学习速率设置。我们在等距步骤中将学习率降低了2倍,这样在整个训练过程中,减少的总次数为13次。
微调和全监督设置:
表12显示了微调和完全监督运行的训练设置。对于微调实验,我们使用单独的保持集对初始学习率和LR进度进行网格搜索。所有实验的学习率衰减都设置为0.1。
5.图像的重复数据消除
为了确保在我们的大规模实验中进行公平的评估,我们必须删除大规模数据集中的图像,这些图像也存在于标记的测试或验证集中。我们利用ImageNet训练过的ResNet-18模型,并使用其512维pool5特征计算ImageNet验证集和YFCC-100M图像之间的欧氏距离(L2归一化后)。我们使用Faiss[24]最近邻库来实现1亿张图像的可搜索图像索引。我们根据图像的欧几里德距离按升序对所有图像对进行全局排序,并手动查看顶部图像对。排名前5000的YFCC图像将从数据集中删除。同样的程序也适用于CUB2011,以删除218张YFCC-100M图像。
6.CUB2011上的迁移学习:参数
对于完整的微调场景,我们在4台机器上对32个GPU上的模型进行微调。表13提供了不同运行的参数设置。