一个简单的方法,用于视觉表示的对比学习
A Simple Framework for Contrastive Learning of Visual Representations
https://arxiv.org/abs/2002.05709 ICML2020
https://github.com/google-research/simclr
本文提出了一个简单的视觉表征对比学习框架SimCLR。我们简化了最近提出的对比自监督学习算法,而不需要专门的体系结构或内存库。为了了解是什么使对比预测任务能够学习有用的表征,我们系统地研究了框架的主要组成部分。我们发现:(1)数据扩充的组合在定义有效的预测任务中起着关键作用,(2)在表示和对比损失之间引入可学习的非线性转换,显著提高了学习表示的质量,与监督学习相比,对比学习得益于更大的批量和更多的训练步骤。通过结合这些发现,我们能够在ImageNet上大大优于以往的自监督和半监督学习方法。基于SimCLR学习的自监督表示训练的线性分类器达到76.5%的top-1精度,比现有的水平提高了7%,与有监督ResNet-50的性能相当。当只对1%的标签进行微调时,我们就达到了85.8%的前5名准确率,比AlexNet少了100倍的标签。
学习有效的视觉表征是一个长期存在的问题。大多数主流方法分为两类:生成性方法和区别性方法。生成方法学习在输入空间中生成或以其他方式建模像素(Hinton et al.,2006;Kingma&Welling,2013;Goodfello et al.,2014)。
然而,像素级的产生在计算上是昂贵的,并且对于表示学习可能不是必需的。区别性方法使用与监督学习类似的目标函数来学习表示,但是训练网络执行借口任务,其中输入和标签都来自未标记的数据集。许多此类方法都依赖于启发式来设计借口任务(Doersch等人,2015;Zhang等人,2016;Noroozi&Favaro,2016;Gidaris等人,2018),这可能会限制学习表征的普遍性。基于潜在空间对比学习的区别性方法最近显示出巨大的前景,取得了最先进的成果(Hadsell等人,2006年;Dosovitskiy等人,2014年;Oord等人,2018年;Bachman等人,2019年)。
在这项工作中,我们介绍了一个简单的视觉表征对比学习框架,我们称之为SimCLR。SimCLR不仅优于以前的工作(图1),而且更简单,既不需要专门的体系结构(Bachman et al.,2019;Hénaff et al.,2019),也不需要内存库(Wu et al.,2018;Tian et al.,2019;He et al.,2019;Misra&van der Maaten,2019)。
为了理解是什么促成了良好的对比表征学习,我们系统地研究了我们框架的主要组成部分,并表明:
•多个数据扩充操作的组合对于定义产生有效表示的对比预测任务至关重要。此外,无监督对比学习比有监督学习具有更强的数据扩充能力。
•在表征和对比损失之间引入可学习的非线性转换,大大提高了学习表征的质量。
•对比交叉熵损失的表征学习得益于标准化嵌入和适当调整的温度参数。
•对比学习得益于更大的批量和更长的培训时间,而不是监督下的学习。与监督学习一样,对比学习得益于更深更广的网络。
我们结合这些发现,在ImageNet ILSVRC-2012上实现了最新的自我监督和半监督学习(Russakovsky et al.,2015)。在线性评估方案下,SimCLR达到76.5%的top-1准确率,比之前的最新水平相对提高了7%(Hénaff等人,2019年)。当仅使用1%的ImageNet标签进行微调时,SimCLR达到85.8%的前5精度,相对提高了10%(Hénaff等人,2019)。当对其他自然图像分类数据集进行微调时,SimCLR在12个数据集中的10个数据集上的性能与强监督基线相当或更好(Kornblith et al.,2019)。
方法
对比学习框架
受最新对比学习算法的启发(参见第7节的概述),SimCLR通过在潜在空间中的对比损失最大化相同数据示例的不同增强视图之间的一致性来学习表示。如图2所示,该框架由以下四个主要组件组成。
•一个随机数据扩充模块,它将任意给定的数据示例进行随机变换,得到同一示例的两个相关视图,表示为x∙i和x∙j,我们将其视为正对。在这项工作中,我们依次应用了三种简单的增强:随机裁剪,然后调整回原来的大小,随机颜色失真,和随机高斯模糊。如第3节所示,随机裁剪和颜色失真的结合对于获得良好的性能至关重要。
•一个基于神经网络的编码器f(·),从增强数据示例中提取表示向量。我们的框架允许在没有任何限制的情况下选择各种网络体系结构。我们选择简单,并采用常用的ResNet(He等人,2016)
•一个小型神经网络投影头g(·),将表示映射到应用对比损失的空间。我们使用具有一个隐藏层的MLP来获得zi=g(hi)=W(2)σ(W(1)hi),其中σ是ReLU非线性。如第四节所示,我们发现定义“子”的对比损失比“高”的对比损失更为有利。
•为对比预测任务定义的对比损失函数。假设一个集合{x~k}包含一对正的例子x~i和x~j,对比预测任务的目的是确定给定x~i的{x~k}k6=i中的x~j。
我们随机抽取了N个小样本,并定义了基于该小样本的增广样本对的对比预测任务,得到2N个数据点。我们不显式地给出否定的例子。相反,与(Chen et al.,2017)类似,给定一个正对,我们将minibatch中的其他2个(N−1)增强示例视为负示例。设sim(u,v)=u>v/kukkvk表示'2归一化u和v之间的点积(即余弦相似性)。然后将一对正例子(i,j)的损失函数定义为
其中,1[k6=i]∈{0,1}是当k6=i时求1的指示函数,τ表示温度参数。最后的损失是在一个小批量中计算所有正对(i,j)和(j,i)。这一损失已在之前的工作中使用(Sohn,2016;Wu et al.,2018;Oord et al.,2018);为方便起见,我们将其称为NT-Xent(归一化温度标度交叉熵损失)。
大批量培训
为了简单起见,我们不使用内存库来训练模型(Wu et al.,2018;He et al.,2019)。相反,我们将训练批大小N从256更改为8192。一个8192的批大小从两个扩充视图中为每个正对提供了16382个负示例。当使用标准SGD/动量和线性学习率标度时,大批量培训可能不稳定(Goyal等人,2017)。为了稳定培训,我们对所有批量大小使用LARS优化器(You等人,2017)。我们使用云tpu来训练我们的模型,根据批量大小使用32到128个核
全球BN。
标准resnet使用批量标准化(Ioffe&Szegedy,2015)。在具有数据并行性的分布式训练中,BN均值和方差通常在每个设备上进行局部聚集。在我们的对比学习中,由于正对是在同一个设备上计算的,因此该模型可以利用局部信息泄漏来提高预测精度,而不需要改进表示。我们通过在训练过程中汇总所有设备的BN均值和方差来解决这个问题。其他方法包括在设备之间对数据示例进行洗牌(He et al.,2019),或用层规范替换BN(Hénaff et al.,2019)。
评估协议
在这里,我们为我们的实证研究制定了协议,旨在理解我们框架中不同的设计选择。
数据集和指标。
我们对无监督预训练(无标签学习编码器网络f)的大部分研究是使用ImageNet ILSVRC-2012数据集完成的(Russakovsky et al.,2015)。关于CIFAR-10的一些额外的训练前实验(Krizhevsky&Hinton,2009),见附录B.9。我们还测试了大量迁移学习数据集的预训练结果。为了评估学习到的表征,我们遵循广泛使用的线性评估协议(Zhang et al.,2016;Oord et al.,2018;Bachman et al.,2019;Kolesnikov et al.,2019),其中在冻结的基础网络上训练线性分类器,并使用测试精度作为表征质量的代理。除了线性评估之外,我们还比较了半监督学习和转移学习的最新进展。
默认设置。
除非另有规定,对于数据增强,我们使用随机裁剪和调整大小(使用随机翻转)、颜色失真和高斯模糊(有关详细信息,请参阅附录A)。我们使用ResNet-50作为基本编码网络,并使用一个2层MLP投影头将表示投影到一个128维的潜在空间。作为损失,我们使用NT-Xent,使用LARS优化,学习率为4.8(=0.3×BatchSize/256),重量衰减为10-6。我们以4096批量训练100个阶段。3此外,我们在前10个阶段使用线性预热,并在不重新启动的情况下使用余弦衰减计划衰减学习速率(Loshchilov&Hutter,2016)。
对比分析的数据扩充
表示学习数据扩充定义了预测任务。
尽管数据增强在有监督和无监督的表征学习中都得到了广泛的应用(Krizhevsky等人,2012;Hénaff等人,2019;Bachman等人,2019),但它并没有被认为是定义对比预测任务的系统方法。许多现有的方法通过改变体系结构来定义对比预测任务。例如,Hjelm et al.(2018);Bachman et al.(2019)通过约束网络架构中的感受野实现全局到局部视图预测,而Oord et al.(2018);Hénaff et al.(2019)通过固定的图像分割过程和上下文聚合网络实现相邻视图预测。我们表明,这种复杂性可以通过对目标图像执行简单的随机裁剪(调整大小)来避免,这将创建一系列包含上述两种任务的预测任务,如图3所示。这种简单的设计选择方便地将预测任务与其他组件(如神经网络结构)解耦。更广泛的对比预测任务可以通过扩展增广族并随机组合它们来定义。
3.1. 数据扩充操作的组合对于学习良好的表示是至关重要的
为了系统地研究数据扩充的影响,我们考虑了几种常见的扩充。一种类型的增强涉及数据的空间/几何变换,例如裁剪和调整大小(水平翻转)、旋转(Gidaris et al.,2018)和剪切(DeVries&Taylor,2017)。另一类增强涉及外观变换,例如颜色失真(包括颜色下降、亮度、对比度、饱和度、色调)(Howard,2013;Szegedy et al.,2015)、高斯模糊和Sobel滤波。图4显示了我们在这项工作中研究的增强
为了理解单个数据扩充的效果和扩充组合的重要性,我们研究了单独或成对应用扩充时框架的性能。由于ImageNet图像的大小不同,我们总是应用裁剪和调整图像大小(Krizhevsky et al.,2012;Szegedy et al.,2015),这使得在没有裁剪的情况下很难研究其他增强。为了消除这种混淆,我们考虑了这种消融的非对称数据转换设置。具体来说,我们总是首先随机地裁剪图像并将它们调整到相同的分辨率,然后我们将目标转换(S)仅应用到图2中的框架的一个分支,而将另一个分支作为标识(即T(席)=席)。请注意,这种不对称的数据扩充会损害性能。尽管如此,这种设置不应实质性地改变单个数据扩充或其组成的影响。
图5显示了单个和组合变换下的线性评估结果。我们观察到,没有一个单一的转换足以学习良好的表征,即使该模型可以几乎完美地识别对比任务中的正对。在编写增广词时,对比预测任务变得更加困难,但表达质量却有了很大的提高。附录B.2提供了关于组成更广泛的扩充集的进一步研究。
增强的一个组成部分很突出:随机裁剪和随机颜色失真。我们推测,当仅使用随机裁剪作为数据增强时,一个严重的问题是来自图像的大多数补丁共享相似的颜色分布。图6显示,仅颜色直方图就足以区分图像。神经网络可以利用这一捷径来解决预测任务。因此,将裁剪与颜色失真相结合是学习广义特征的关键。
3.2. 对比学习比监督学习需要更强的数据扩充
为了进一步证明颜色增强的重要性,我们调整了颜色增强的强度,如表1所示。更强的颜色增强显著提高了学习的无监督模型的线性评估。在这种情况下,AutoAugment(Cubuk et al.,2019)是一种利用监督学习发现的复杂的增强策略,其效果并不比简单裁剪+颜色失真(更强)效果更好。当训练具有相同增强集的监督模型时,我们观察到较强的颜色增强并不能改善甚至损害模型的性能。因此,我们的实验表明,无监督对比学习得益于更强的(颜色)数据增强比监督学习。尽管之前的研究报告数据增强对自我监督学习很有用(Doersch et al.,2015;Bachman et al.,2019;Hénaff et al.,2019;Asano et al.,2019),但我们发现,数据增强对监督学习的准确性没有好处,但对对比学习仍然有很大帮助。
编码器和磁头的结构
4.1. 无监督对比学习从更大的模型中获益更多
图7显示,增加深度和宽度都可以提高性能,这也许并不奇怪。虽然监督学习也有类似的发现(He et al.,2016),但我们发现监督模型和在非监督模型上训练的线性分类器之间的差距随着模型大小的增加而缩小,这表明非监督学习比监督学习更受益于更大的模型
4.2. 非线性投影头提高了前一层的表示质量
然后我们研究了包含投影头的重要性,即g(h)。图8显示了使用三种不同头部结构的线性评估结果:(1)身份映射;(2)线性投影,如之前几种方法所用(Wu et al.,2018);以及(3)默认非线性投影,带有一个额外的隐藏层(和ReLU激活),类似于Bachman et al.(2019)。我们观察到非线性投影比线性投影好(+3%),比无投影好得多(>10%)。当使用投影头时,无论输出尺寸如何,都可以观察到类似的结果。此外,即使使用非线性投影,投影头之前的层h仍然比之后的层z=g(h)好得多(>10%),这表明投影头之前的隐藏层比之后的层更好地表示。
我们推测在非线性投影之前使用表示的重要性是由于对比损失导致的信息损失。特别地,z=g(h)被训练成对数据变换是不变的。因此,g可以移除可能对下游任务有用的信息,例如对象的颜色或方向。通过利用非线性变换g(·),可以在h中形成和保持更多的信息。为了验证这一假设,我们进行了实验,使用h或g(h)来学习预测在训练前应用的变换。这里我们设置g(h)=W(2)σ(W(1)h),具有相同的输入和输出维数(即2048)。表3显示h包含更多关于所应用的转换的信息,而g(h)则丢失了信息。进一步分析见附录B.4。
损失函数和批量大小
5.1. 温度可调的归一化交叉熵损失比其他方法效果更好
我们将NT-Xent损失与其他常用的对比损失函数进行了比较,如逻辑损失(Mikolov等人,2013)和边际损失(Schroff等人,2015)。表2显示了目标函数以及损失函数输入的梯度。从梯度上看,我们观察到1)`2归一化(即余弦相似性)和温度有效地加权了不同的例子,适当的温度可以帮助模型从硬负中学习;2)与交叉熵不同,其他目标函数不以负的相对硬度来加权。因此,必须对这些损失函数应用半硬负挖掘(Schroff et al.,2015):不是计算所有损失项的梯度,而是可以使用半硬负项(即,在损失裕度范围内且距离最近,但比正示例更远的项)计算梯度。
为了公平地进行比较,我们对所有损失函数使用了相同的`2标准化,我们调整了超参数,并报告了它们的最佳结果。8表4显示,虽然(半硬)负挖掘有帮助,但最佳结果仍然比我们默认的NT-Xent损失差得多。
下一步,我们将测试默认NT-Xent损失中'2归一化(即余弦相似性与点积)和温度τ的重要性。表5显示,如果没有标准化和适当的温度缩放,性能会显著下降。在线性评价条件下,没有2标准化,对比任务的准确率较高,但结果表征较差。
5.2. 对比学习得益于更大的批量和更长的培训时间
图9显示了当为不同数量的历元训练模型时批量大小的影响。我们发现,当训练周期数较少时(例如100个周期),较大的批量比较小的批量具有显著的优势。如果对批次进行随机重采样,则随着训练步骤/时间的增加,不同批次大小之间的差距减小或消失。与监督学习(Goyal et al.,2017)相比,在对比学习中,较大的批量提供了更多的负面示例,有助于收敛(即,对于给定的精确度,采用较少的时间和步骤)。训练时间越长,负面例子越多,效果越好。在附录B.1中,提供了更长培训步骤的结果。
与最新技术的比较
在本小节中,与Kolesnikov et al.(2019);He et al.(2019)类似,我们在3种不同的隐藏层宽度(1×、2×、4×)中使用ResNet-50。为了更好地收敛,我们这里的模型训练了1000个时代。线性评估。表6将我们的结果与线性评估设置中的先前方法(Zhuang et al.,2019;He et al.,2019;Misra&van der Maaten,2019;Hénaff et al.,2019;Kolesnikov et al.,2019;Donahue&Simonyan,2019;Bachman et al.,2019;Tian et al.,2019)进行了比较(见附录B.6)。表1显示了不同方法之间更多的数值比较。我们能够使用标准网络来获得比以前需要专门设计的体系结构的方法更好的结果。用我们的ResNet-50(4×)得到的最佳结果可以与监督预训练ResNet-50相匹配。
半监督学习。
我们遵循Zhai等人(2019年)的研究,以类平衡的方式对1%或10%的标记的ILSVRC-12训练数据集进行抽样(每个类分别有∼12.8和∼128张图像)。11我们只需在标记的数据上微调整个基础网络,而无需正则化(见附录B.5)。表7显示了我们的结果与最新方法的比较(Zhai等人,2019年;Xie等人,2019年;Sohn等人,2020年;Wu等人,2018年;Donahue&Simonyan,2019年;Misra&van der Maaten,2019年;Hénaff等人,2019年)。由于超参数的密集搜索(包括增广),来自(Zhai等人,2019年)的监督基线很强。同样,我们的方法大大提高了1%和10%的标签的最新水平。有趣的是,在完整的ImageNet上微调我们预先训练好的ResNet-50(2×,4×),也比从头开始训练要好得多(高达2%,见附录B.2)。
迁移学习。
我们评估了12个自然图像数据集在线性评估(固定特征提取)和微调设置下的传输学习性能。遵循Kornblith等人(2019),我们对每个模型数据集组合执行超参数调整,并在验证集上选择最佳超参数。表8显示了ResNet-50(4×)模型的结果。经过微调后,我们的自监督模型在5个数据集上显著优于监督基线,而监督基线仅在2个数据集(即宠物和鲜花)上优于监督基线。在剩下的5个数据集中,模型在统计学上是并列的。完整的实验细节以及标准ResNet-50架构的结果见附录B.8。
相关工作
在小变换下使图像的表示相互一致的想法可以追溯到Becker&Hinton(1992)。我们通过利用数据扩充、网络架构和对比丢失方面的最新进展来扩展它。类似的一致性思想,但对于类标签预测,已经在其他环境中进行了探索,如半监督学习(Xie et al.,2019;Berthelot et al.,2019)。
手工制作的借口任务。
最近自我监督学习的复兴始于人工设计的借口任务,如相对斑块预测(Doersch et al.,2015)、解决拼图(Noroozi&Favaro,2016)、着色(Zhang et al.,2016)和旋转预测(Gidaris et al.,2018;Chen et al.,2019)。尽管通过更大的网络和更长的训练可以获得良好的结果(Kolesnikov等人,2019年),这些借口任务依赖于某种特殊的启发式,这限制了学习表征的普遍性。
对比视觉表征学习。
追溯到Hadsell等人(2006),这些方法通过对比正对和负对来学习表征。沿着这些思路,Dosovitskiy et al.(2014)建议将每个实例视为一个由特征向量(以参数形式)表示的类。Wu et al.(2018)建议使用内存库存储实例类表示向量,最近几篇论文(Zhuang et al.,2019;Tian et al.,2019;He et al.,2019;Misra&van der Maaten,2019)采用并扩展了这种方法。其他研究探索了使用批内样本代替内存库进行负采样(Doersch&Zisserman,2017;Ye et al.,2019;Ji et al.,2019)。
最近的文献试图将其方法的成功与潜在表征之间的互信息最大化联系起来(Oord et al.,2018;Hénaff et al.,2019;Hjelm et al.,2018;Bachman et al.,2019)。然而,尚不清楚对比方法的成功是由相互信息决定的,还是由对比损失的具体形式决定的(Tschannen et al.,2019)。我们注意到,我们框架的几乎所有单个组件都出现在以前的工作中,尽管具体的实例化可能不同。我们的框架相对于以前的工作的优越性不是由任何单一的设计选择来解释的,而是由它们的组成来解释的。我们提供了一个全面的比较,我们的设计选择与那些以前的工作在附录C。
结论
在这项工作中,我们提出了一个简单的框架及其实例对比视觉表征学习。我们仔细研究了它的组成部分,并展示了不同设计选择的效果。通过结合我们的发现,我们在自我监督、半监督和迁移学习方面比以前的方法有了很大的改进。我们的方法不同于ImageNet上的标准监督学习,只是在数据增强的选择、在网络末端使用非线性头和损失函数方面。这个简单框架的优势表明,尽管最近兴趣激增,自我监督学习仍然被低估。
数据扩充详细信息
在默认的预训练设置(用于训练最佳模型)中,我们使用随机裁剪(调整大小和随机翻转)、随机颜色失真和随机高斯模糊作为数据增强。下面提供了这三个增强的详细信息。
随机裁剪并调整大小为224x224
我们使用标准的初始样式随机裁剪(Szegedy等人,2015)。裁剪原始尺寸的随机尺寸(面积从0.08到1.0均匀)和原始纵横比的随机纵横比(默认值:3/4到4/3)。此裁剪最终调整为原始大小。这在Tensorflow中实现为“slim.preprocessing.u预处理.扭曲的\u边界\u框\u裁剪”,或在Pytorch中为“torchvision.transforms.RandomResizedCrop随机调整大小”. 此外,随机裁剪(调整大小)之后总是以50%的概率随机水平/从左到右翻转。这是有帮助的,但不是必要的。通过从我们的默认增强策略中删除这一点,在100个时期内训练的ResNet-50模型的前1线性评估从64.5%下降到63.4%。
颜色失真
颜色失真由颜色抖动和颜色下降两部分组成。我们发现更强的颜色抖动通常有帮助,所以我们设置了一个强度参数。
使用TensorFlow进行颜色失真的伪代码如下所示。
高斯模糊
这是我们的默认政策。我们发现它很有帮助,因为它将100个时代的ResNet-50训练从63.2%提高到64.5%。我们用高斯核使图像模糊50%。我们随机抽样σ∈[0.1,2.0],并且将核大小设置为图像高度/宽度的10%。
附加实验结果
B、 1。批量和培训步骤
图B.1显示了在不同批量和不同训练时期进行训练时,线性评估的前5位精度。这一结论与之前的top-1精度非常相似,只是不同批量大小和训练步骤之间的差异似乎稍小。
在图9和图B.1中,我们使用类似于(Goyal et al.,2017)的学习率线性标度,对不同批量的培训进行评估。虽然线性学习率缩放在SGD/动量优化器中很流行,但是我们发现平方根学习率缩放在LARS优化器中更可取。使用平方根学习率缩放,我们得到LearningRate=0.075×√BatchSize,而不是线性缩放情况下的LearningRate=0.3×BatchSize/256,但当批量大小为4096(我们的默认批量大小)时,两种缩放方法下的学习率是相同的。表B.1中给出了一个比较,其中我们观察到平方根学习率缩放提高了小批量和小时间段训练模型的性能
我们还使用更大的批量(高达32K)和更长的时间(高达3200个周期)进行训练,并使用平方根学习率缩放。如图B.2所示,批处理大小为8192时,性能似乎达到饱和,而较长时间的训练仍然可以显著提高性能。
B、 2。更广泛的数据扩充组合进一步提高了性能
当扩展默认增强策略以包括以下内容时,我们在主文本(表6和7)中的最佳结果可以得到进一步改进:(1)Sobel滤波,(2)附加颜色失真(均衡器、日光化)和(3)运动模糊。对于线性评估协议,用更广泛的数据扩充训练的ResNet-50模型(1×、2×、4×)分别达到70.0(+0.7)、74.4(+0.2)、76.8(+0.3)。
表B.2显示了通过微调SimCLR模型获得的ImageNet精度(有关微调过程的详细信息,请参见附录B.5)。有趣的是,当对完整(100%)ImageNet训练集进行微调时,我们的ResNet(4×)模型实现了80.4%的top-1/95.4%的top-513,这明显优于使用相同增强集(即随机裁剪和水平翻转)从头开始的训练(78.4%的top-1/94.2%的top-5)。对于ResNet-50(2×),微调我们预先训练好的ResNet-50(2×)也比从头开始训练好(77.8%的top-1/93.9%的top-5)。ResNet-50的微调没有任何改进。
B、 三。长时间训练对监督模型的影响
在这里,我们进行实验,看看如何训练步骤和更强的数据增强影响监督训练。我们测试ResNet-50和ResNet-50(4×)在同一组数据增强(随机裁剪、颜色失真、50%高斯模糊)下作为我们的无监督模型使用。图B.3显示了top-1精度。我们观察到在ImageNet上训练监督模型并没有明显的好处。更强的数据扩充略微提高了ResNet-50(4×)的精度,但对ResNet-50没有帮助。当应用更强的数据扩充时,ResNet-50通常需要更长时间的训练(例如500个历元14)来获得最佳结果,而ResNet-50(4×)不受益于更长时间的训练。
B、 第四条。理解非线性投影头
图B.3显示了用于计算z=Wh的线性投影矩阵W∈R2048×2048的特征值分布。这个矩阵有相对较少的大特征值,表明它是近似低秩的。
图B.4显示了t-SNE(Maaten&Hinton,2008)通过我们的最佳ResNet-50(top-1线性评估69.3%)随机选择的10个班级的h和z=g(h)可视化。与z相比,用h表示的类可以更好地分离。
B、 五。基于微调的半监督学习
微调程序
我们使用Nesterov动量优化器进行微调,批量大小为4096,动量为0.9,学习率为0.8(以下LearningRate=0.05×BatchSize/256),无需预热。预处理只使用随机裁剪(从左到右随机翻转并调整大小为224x224)。我们不使用任何正则化(包括权重衰减)。对于1%的标记数据,我们微调60个时代,对于10%的标记数据,我们微调30个时代。为了进行推断,我们将给定图像的大小调整为256x256,并将单个中心裁剪为224x224。B、 六。线性评价
对于线性评估,我们遵循与微调类似的程序(如附录B.5所述),除了较大的学习率1.6(学习率=0.1×BatchSize/256)和较长的90个周期的训练。或者,使用带有预训练超参数的LARS优化器也可以得到类似的结果。此外,我们发现在基础编码器上附加线性分类器(在线性分类器的输入端加一个停止梯度以防止标签信息影响编码器)并在预训练期间同时训练它们可以获得相似的性能。
B、 七。线性评估和微调之间的相关性
本文研究了在不同的训练步长和网络结构设置下,线性评估和微调之间的相关性。
如图B.2所示,图B.5显示了当ResNet-50(使用4096的批量大小)的训练周期在50到3200之间变化时的线性评估与微调。虽然它们几乎是线性相关的,但似乎对一小部分标签进行微调会从长时间的训练中获得更多好处
图B.6显示了所选不同体系结构的线性评估与微调。
B、 八。转移学习我们在两种情况下评估了转移学习的自我监督表示的性能:线性评估,其中训练一个logistic回归分类器,根据在ImageNet上学习的自我监督表示对新数据集进行分类,以及微调,我们允许所有重量在训练中变化。在这两种情况下,我们都遵循Kornblith等人(2019)描述的方法,尽管我们的预处理略有不同。
B、 8.1。方法
数据集集合
我们调查了Food-101数据集(Bossard et al.,2014)、CIFAR-10和CIFAR-100(Krizhevsky&Hinton,2009)、Birdsnap(Berg et al.,2014)、SUN397场景数据集(Xiao et al.,2010)、斯坦福汽车公司(Krause et al.,2013)、FGVC飞机公司(Maji et al.,2013)、PASCAL VOC 2007分类任务(Everingham et al.,2013)的迁移学习绩效描述纹理数据集(DTD)(Cimpoi et al.,2014)、Oxford IIIT Pets(Parkhi et al.,2012)、Caltech-101(Fei Fei et al.,2004)和Oxford 102 Flowers(Nilsback&Zisserman,2008)。我们遵循介绍这些数据集的论文中的评估协议,即,我们报告Food-101、CIFAR-10、CIFAR-100、Birdsnap、SUN397、斯坦福汽车和DTD的top-1精度;FGVC飞机、牛津IIIT宠物、加州理工学院-101和牛津102花的平均每类精度;以及Everingham等人(2010)中定义的11点地图度量对于PASCAL VOC 2007。对于DTD和SUN397,数据集创建者定义了多个训练/测试分割;我们只报告第一次分割的结果。加州理工学院101没有定义训练/测试分割,因此我们随机选择了每类30张图像,并对剩余的图像进行测试,以便与之前的工作进行公平比较(Donahue等人,2014;Simonyan&Zisserman,2014)。
我们使用数据集创建者指定的验证集为FGVC飞机、PASCAL VOC 2007、DTD和Oxford 102 Flowers选择超参数。对于其他数据集,我们在执行超参数调优时,拿出训练集的一个子集进行验证。在验证集上选择最优超参数后,我们使用所有训练和验证图像,使用所选参数重新训练模型。我们报告测试集的准确性。
基于线性分类器的迁移学习
我们训练了一个基于冻结预训练网络特征的2正则多项式logistic回归分类器。我们使用L-BFGS来优化softmax交叉熵目标,并且我们没有应用数据扩充。作为预处理,所有的图像被调整到224像素沿短边使用双三次重采样,然后我们采取了224×224中心作物。我们从10-6和105之间的45个对数间隔值中选择了“2正则化参数”。
微调迁移学习
我们使用预训练网络的权值作为初始化,对整个网络进行了微调。我们使用带有Nesterov动量的SGD(动量参数为0.9),以256的批量大小训练20000个步骤。我们将批量标准化统计的动量参数设置为max(1−10/s,0.9),其中s是每个历元的步数。作为微调期间的数据增强,我们只执行调整大小和翻转的随机裁剪;与预训练相比,我们没有执行颜色增强或模糊。在测试时,我们将图像的短边调整到256像素,并进行224×224的中心裁剪。(通过进一步优化数据增强,特别是在CIFAR-10和CIFAR-100数据集上,可以进一步提高精确度。)我们选择了学习率和权重衰减,7个对数间隔学习率的网格在0.0001到0.1之间,7个对数间隔权重衰减值在10−6到10之间10−3,以及无重量衰减。我们将这些权重衰减值除以学习率。
随机初始化训练
我们从随机初始化开始训练网络,使用与微调相同的过程,但时间更长,并且使用改变的超参数网格。我们从7个对数间隔学习率(0.001到1.0)和8个对数间隔权重衰减值(10−5到10−1.5)的网格中选择超参数。重要的是,我们的随机初始化基线经过40000步的训练,足够长,以达到接近最大的精度,如Kornblith等人(2019)的图8所示。在Birdsnap上,不同方法之间没有统计上的显著差异,在Food-101、Stanford Cars和FGVC飞机数据集上,微调只比随机初始化的训练提供了很小的优势。然而,在剩下的8个数据集上,预训练有明显的优势。
监督基线
我们比较了在ImageNet上训练的具有标准交叉熵损失的结构相同的ResNet模型。这些模型使用与我们的自监督模型(crops、强颜色增强和模糊)相同的数据增强进行训练,并且还训练了1000个历元。我们发现,尽管更强的数据增强和更长的训练时间不利于ImageNet的准确性,但这些模型的表现明显优于90个时期的有监督基线训练和传输数据集子集线性评估的普通数据增强。有监督的ResNet-50基线在ImageNet上达到76.3%的top-1准确率,而自我监督的ResNet-50(4×)基线达到78.3%,而自我监督模型达到76.5%。
统计显著性检验
我们用排列检验来检验模型之间差异的显著性。给定两个模型的预测,我们通过随机交换每个例子的预测并计算执行此随机化后的精度差异,从零分布生成100000个样本。然后,我们从零分布中计算比预测中观察到的差异更极端的样本百分比。对于top-1精度,此程序产生的结果与精确的McNemar测试相同。零假设下的可交换性假设也适用于平均每类精度,但在计算平均精度曲线时不适用。因此,我们对VOC 2007的精确度差异而不是mAP差异进行显著性检验。该程序的一个警告是,在训练模型时不考虑运行到运行的可变性,只考虑使用有限的图像样本进行评估时产生的可变性。
B、 8.2。标准RESNET的结果
文中表8所示的ResNet-50(4×)结果与监督模型和自监督模型相比没有明显的优势。然而,对于较窄的ResNet-50体系结构,监督学习比自监督学习具有明显的优势。监督ResNet-50模型在所有线性评价数据集和大多数(10/12)微调数据集上都优于自监督模型。ResNet模型的性能比ResNet(4×)差
模型可能与ImageNet上监督模型和自监督模型之间的精度差距有关。自监督ResNet的top-1准确率为69.3%,绝对值比监督模型差6.8%,而自监督ResNet(4×)模型的top-1准确率为76.5%,仅比监督模型差1.8%。
B、 第九条。CIFAR-10型
当我们专注于使用ImageNet作为主要数据集来预训练我们的无监督模型时,我们的方法也适用于其他数据集。我们在CIFAR-10上进行了如下测试。
安装程序
由于我们的目标不是优化CIFAR-10的性能,而是进一步证实我们在ImageNet上的观察结果,因此我们使用相同的体系结构(ResNet-50)进行CIFAR-10实验。由于CIFAR-10图像比ImageNet图像小得多,因此我们将第2步的第一个7x7 Conv替换为第1步的3x3 Conv,并删除了第一个max pooling操作。对于数据增强,我们使用与ImageNet相同的初始裁剪(翻转并调整大小为32x32),15和颜色失真(强度=0.5),排除高斯模糊。我们用{0.5,1.0,1.5}的学习率、{0.1,0.5,1.0}的温度和{256,512,1024,2048,4096}的批量大小进行预训练。其余的设置(包括优化器、权重衰减等)与我们的ImageNet培训相同。
我们用1024批大小训练的最佳模型可以达到94.0%的线性评估准确率,而使用相同体系结构和批大小的监督基线的线性评估准确率为95.1%。报告CIFAR-10线性评估结果的最佳自监督模型是AMDIM(Bachman et al.,2019),该模型比我们的模型大25倍,达到91.2%。我们注意到,我们的模型可以通过加入额外的数据扩充以及使用更合适的基础网络来改进。
不同批量和训练步骤下的性能
图B.7显示了不同批量大小和训练步骤下的线性评估性能。结果与我们在ImageNet上的观察结果一致,尽管4096的最大批量似乎会导致CIFAR-10的性能略有下降。
模型可能与ImageNet上监督模型和自监督模型之间的精度差距有关。自监督ResNet的top-1准确率为69.3%,绝对值比监督模型差6.8%,而自监督ResNet(4×)模型的top-1准确率为76.5%,仅比监督模型差1.8%。
不同批量下的最佳温度
图B.8显示了在不同批量下,在三种不同温度下训练的模型的线性评估。我们发现当训练到收敛(例如训练次数>300)时,{0.1,0.5,1.0}中的最佳温度为0.5,并且与批大小无关。然而,τ=0.1时的性能随着批量的增加而提高,这可能表明最佳温度向0.1有一个小的转变。
B、 十。其他损失函数的调整
对NT-Xent损失最有效的学习率对于其他损失函数可能不是一个好的学习率。为了确保公平比较,我们还调整了保证金损失和物流损失的超参数。具体来说,我们将两个损失函数的学习率都调整为{0.01、0.1、0.3、0.5、1.0}。我们进一步调整了{0,0.4,0.8,1.6}中的边际损失,调整了{0.1,0.2,0.5,1.0}中的温度来计算logistic损失。为简单起见,我们只从一个增强视图(而不是两个视图)来考虑负面因素,这会略微影响性能,但可以确保公平比较。
相关方法的进一步比较
正如我们在正文中所注意到的,SimCLR的大多数单个组件都出现在以前的工作中,性能的提高是这些设计选择组合的结果。表C.1提供了我们的方法与以前方法的设计选择的高级比较。与以前的工作相比,我们的设计选择通常更简单
下面,我们将我们的方法与最近提出的对比表征学习方法进行深入比较:
•DIM/AMDIM(Hjelm et al.,2018;Bachman et al.,2019)通过预测ConvNet的中间层,实现全球到本地/本地到邻居的预测。ConvNet是一个ResNet,经过修改,对网络的感受野施加了很大的限制(例如,用1x1 conv替换许多3x3 conv)。在我们的框架中,我们通过随机裁剪(调整大小)和使用两个增强视图的最终表示来解耦预测任务和编码器架构,因此我们可以使用标准和更强大的resnet。我们的NT-Xent损失函数利用归一化和温度来限制相似性分数的范围,而它们使用具有正则化的tanh函数。我们使用了一个更简单的数据扩充策略,而他们使用fastautomaugment来获得最好的结果。
•CPC v1和v2(Oord et al.,2018;Hénaff et al.,2019)使用确定性策略定义上下文预测任务,将示例拆分为补丁,并使用上下文聚合网络(PixelCNN)聚合这些补丁。基本编码器网络只能看到比原始图像小得多的补丁。我们将预测任务和编码器结构解耦,因此我们不需要上下文聚合网络,并且我们的编码器可以查看更宽分辨率范围的图像。此外,我们使用NT-Xent损失函数,它利用标准化和温度,而他们使用基于非标准化交叉熵的目标。我们使用更简单的数据扩充。
•InstDisc,MoCo,PIRL(Wu et al.,2018;He et al.,2019;Misra&van der Maaten,2019)概括了Dosovitskiy et al.(2014)最初提出的范例方法,并利用显式内存库。我们不使用内存库;我们发现,对于较大的批大小,批内负示例采样就足够了。我们还利用非线性投影头,并使用投影头之前的表示。虽然我们使用类似类型的增强(例如,随机裁剪和颜色失真),但我们预计具体参数可能不同。
•CMC(Tian等人,2019)为每个视图使用一个单独的网络,而我们只是为所有随机增强的视图使用一个共享的网络。数据增广、投影头和损失函数也不同。我们使用更大的批量而不是内存库。
•鉴于Ye et al.(2019)最大化了同一图像的增强副本和未经整理副本之间的相似性,我们将数据增强对称地应用于我们框架的两个分支(图2)。我们还对基本特征网络的输出应用非线性投影,并使用投影网络之前的表示,而Ye等人(2019)使用线性投影的最终隐藏向量作为表示。在使用多个加速器进行大批量训练时,我们使用全局BN来避免可能大大降低表示质量的捷径