【论文笔记_对比学习_2020】A Simple Framework for Contrastive Learning of Visual Representations

视觉表征对比学习的简单框架
请添加图片描述

摘要

本文介绍了SimCLR:一个简单的视觉表征对比学习的框架。我们简化了最近提出的对比性自我监督学习算法,而不需要专门的架构或内存库。为了理解是什么使对比性预测任务能够学习有用的表征,我们系统地研究了我们框架的主要组成部分。我们表明:(1)数据增强的组成在定义有效的预测任务中起着关键作用;(2)在表征和对比性损失之间引入可学习的非线性转换,大大改善了所学表征的质量;(3)与监督学习相比,对比性学习从更大的批次规模和更多的训练步骤中受益。通过结合这些发现,我们能够在ImageNet上的自监督和半监督学习中大大超越以前的方法。通过SimCLR学习的自监督表征训练的线性分类器达到了76.5%的最高准确率,比以前的技术水平提高了7%,与有监督的ResNet-50的性能相匹配。当只对1%的标签进行微调时,我们达到了85.8%的最高5级准确率,超过了标签数量少100倍的AlexNet的表现。

1.介绍

在没有人类监督的情况下学习有效的视觉表征是一个长期存在的问题。大多数主流方法属于两类中的一类:生成性或判别性。生成式方法学习生成或以其他方式对输入空间的像素进行建模(Hinton等人,2006;Kingma & Welling,2013;Goodfellow等人,2014)。然而,像素级的生成在计算上是很昂贵的,对于表征学习来说可能是没有必要的。鉴别性方法使用与监督学习类似的目标函数来学习表征,但是训练网络来执行输入和标签都来自于未标记的数据集的借口任务。许多这样的方法依靠启发式方法来设计借口任务(Doersch等人,2015;Zhang等人,2016;Noroozi和Favaro,2016;Gidaris等人,2018),这可能会限制所学表征的通用性。最近,基于潜伏空间的对比学习的判别方法显示出巨大的前景,取得了最先进的结果(Hadsell等人,2006;Dosovitskiy等人,2014;Oord等人,2018;Bachman等人,2019)。
在这项工作中,我们引入了一个简单的视觉表征对比学习的框架,我们称之为SimCLR。SimCLR不仅优于之前的工作(图1),而且更简单,既不需要专门的架构(Bachman等人,2019;Hénaff等人,2019),也不需要记忆库(Wu等人,2018;Tian等人,2019;He等人,2019;Misra & van der Maaten,2019)。

请添加图片描述
图1. 用不同的自监督方法(在ImageNet上预训练)训练的线性分类器的ImageNet Top-1准确性。灰十字表示有监督的ResNet-50。我们的方法,SimCLR,以粗体显示。

为了了解是什么促成了良好的对比性表征学习,我们系统地研究了我们框架的主要组成部分,并表明
1.在定义产生有效表征的对比性预测任务时,多种数据增强操作的组成是至关重要的。此外,无监督的对比性学习比有监督的学习更受益于强大的数据增强。
2.在表征和对比性损失之间引入一个可学习的非线性转换,可以大幅提高学习到的表征的质量。
3.具有对比性交叉熵损失的表征学习得益于规范化的嵌入和适当调整的温度参数。
4.与有监督的学习相比,对比性学习受益于更大的批次规模和更长的训练。与监督学习一样,对比学习也得益于更深更广的网络。

我们结合这些发现,在ImageNet ILSVRC-2012(Russakovsky等人,2015)上实现了自监督和半监督学习的新的最先进水平。在线性评估协议下,SimCLR实现了76.5%的top-1准确率,比之前的最先进水平(Hénaff等人,2019)有7%的相对提高。当只用1%的ImageNet标签进行微调时,SimCLR实现了85.8%的前5名准确率,相对提高了10%(Hénaff等人,2019)。当在其他自然图像分类数据集上进行微调时,SimCLR在12个数据集中的10个表现与强监督基线(Kornblith等人,2019)相当或更好。

2.方法

2.1对比性学习框架
受最近的对比学习算法的启发(见第7节的概述),SimCLR通过潜空间中的对比损失,使同一数据实例的不同增强视图之间的一致性最大化来学习表征。如图2所示,这个框架包括以下四个主要部分。
1.一个随机的数据增强模块,对任何给定的数据例子进行随机转换,导致同一例子的两个相关视图,表示为˜xi和˜xj,我们认为这是一个正对。在这项工作中,我们依次应用三个简单的增强:随机裁剪,然后调整到原始尺寸,随机颜色扭曲,以及随机高斯模糊。如第3节所示,随机裁剪和颜色扭曲的组合对于实现良好的性能至关重要。
2.一个神经网络基础编码器f(·),从增强的数据实例中提取表示向量。我们的框架允许对网络架构进行各种选择,没有任何限制。我们选择简单,并采用常用的ResNet(He等人,2016)来获得hi = f(˜xi) = ResNet(˜xi) 。其中hi∈Rd是平均池化层之后的输出。
3.一个小的神经网络投影头g(-),将表征映射到应用对比性损失的空间。我们使用具有一个隐藏层的MLP来获得zi = g(hi) = W (2)σ(W (1)hi) 其中σ是ReLU非线性。如第4节所示,我们发现在zi而不是hi上定义对比损失是有好处的。
4.为对比性预测任务定义的对比性损失函数。给定一组{˜xk}包括一对正面的例子˜xi和˜xj,对比性预测任务的目的是在{˜xk}k≠i中识别给定的˜xj。

请添加图片描述
图2. 一个简单的视觉表征对比学习的框架。两个独立的数据增强操作者从同一个增强系列中取样(t∼T和t’∼T),并应用于每个数据实例以获得两个相关的视图。一个基础编码器网络f(-)和一个投影头g(-)被训练成使用对比性损失来最大化协议。训练完成后,我们扔掉投影头g(-),使用编码器f(-)和表示法h进行下游任务。

我们随机抽取N个例子的迷你批,并将对比性预测任务定义在来自迷你批的一对增强的例子上,从而得到2N个数据点。我们不对负面的例子进行明确的抽样。相反,与(Chen等人,2017)类似,我们将迷你批中的其他2(N - 1)个增强的例子视为负面例子。让sim(u, v) = uTv||u|| ||v||表示L2归一化的u和v之间的点积(即余弦相似度)。那么,一对正面例子(i,j)的损失函数定义为:
请添加图片描述
其中,1[k≠i]∈{0,1}是一个指标函数,如果k ≠i,其值为1,τ表示一个温度参数。最终的损失是在一个小型批次中计算所有的正数对,包括(i,j)和(j,i)。这种损失在以前的工作中已经使用过(Sohn,2016;Wu等人,2018;Oord等人,2018);为了方便起见,我们称之为NT-Xent(归一化温度标度的交叉熵损失)。

请添加图片描述
2.2 大批量训练
为了保持简单,我们不使用记忆库来训练模型(Wu等人,2018;He等人,2019)。相反,我们将训练批次大小N从256变化到8192。8192的批次大小给了我们每个来自两个增强视图的阳性对16382个负面例子。在使用线性学习率缩放的标准SGD/Momentum时,大批量的训练可能是不稳定的(Goyal等人,2017)。为了稳定训练,我们对所有批次大小使用LARS优化器(Y ou等人,2017)。我们用云计算TPU训练我们的模型,根据批次大小,使用32到128个核心。
全局BN。标准ResNets使用批量归一化(Ioffe & Szegedy,2015)。在具有数据并行性的分布式训练中,BN的平均值和方差通常在每个设备上进行本地汇总。在我们的对比学习中,由于正数对是在同一个设备中计算的,模型可以利用本地信息泄漏来提高预测的准确性,而不需要改进表示。我们通过在训练期间将BN的平均值和方差汇总到所有设备上来解决这个问题。其他方法包括跨设备洗数据实例(He等人,2019年),或用层规范代替BN(Hénaff等人,2019年)。

请添加图片描述
图3. 实心矩形为图像,虚线矩形为随机裁剪。通过随机裁剪图像,我们对包括全局到局部视图(B→A)或相邻视图(D→C)预测的对比性预测任务进行了采样。

2.3评估协议
在这里,我们为我们的实证研究制定了协议,其目的是了解我们框架中的不同设计选择。
数据集和指标。我们对无监督预训练(在没有标签的情况下学习编码器网络f)的大部分研究是使用ImageNet ILSVRC-2012数据集完成的(Russakovsky等人,2015)。在CIFAR-10(Krizhevsky & Hinton, 2009)上的一些额外预训练实验可以在附录B.9中找到。我们还在广泛的数据集上测试了预训练的结果,用于转移学习。为了评估学到的表征,我们遵循广泛使用的线性评估协议(Zhang等人,2016;Oord等人,2018;Bachman等人,2019;Kolesnikov等人,2019),在冻结的基础网络之上训练一个线性分类器,并将测试精度作为表征质量的代理。除了线性评估,我们还与半监督和转移学习的最先进技术进行比较。

3.对比性表征学习的数据增强

数据扩增定义了预测性任务。虽然数据增强已被广泛用于有监督和无监督的表示学习(Krizhevsky et al,2012; Hénaff et al., 2019; Bachman et al., 2019), 它还没有被认为是定义对比性预测任务的一种系统方法。许多现有的方法通过改变架构来定义对比性预测任务。例如,Hjelm等人(2018);Bachman等人(2019)通过约束网络架构中的感受野来实现全局到局部的视图预测,而Oord等人(2018);Hénaff等人(2019)通过固定的图像分割程序和上下文聚合网络实现邻近视图预测。我们表明,这种复杂性可以通过对目标图像进行简单的随机裁剪(带大小调整)来避免,这就创造了一个包含上述两种预测任务的系列,如图3所示。这种简单的设计选择方便地将预测任务与其他组件(如神经网络结构)解耦。更广泛的对比性预测任务可以通过扩展增量系列和随机地组成它们来定义。

请添加图片描述
图4. 所研究的数据增强运算符的图示。每个增强都可以用一些内部参数(如旋转程度、噪声水平)随机地改变数据。请注意,我们只在消融中测试这些运算符,用于训练我们模型的增强策略只包括随机裁剪(带翻转和调整大小)、颜色失真和高斯模糊。(原图cc-by: V on.grzanka)

3.1数据增强操作的组成对于学习好的表征至关重要
为了系统地研究数据增强的影响,我们在此考虑几种常见的增强方式。一种增强涉及数据的空间/几何变换,如裁剪和调整大小(水平翻转)、旋转(Gidaris等人,2018)和剪切(DeVries & Taylor,2017)。另一类增强涉及外观转换,如颜色失真(包括颜色下降、亮度、对比度、饱和度、色调)(Howard,2013;Szegedy等人,2015),高斯模糊和Sobel过滤。图4可视化了我们在这项工作中研究的增强功能。

为了了解单个数据增强的效果和增强组成的重要性,我们研究了单独或成对应用增强时我们框架的性能。由于ImageNet图像的尺寸不同,我们总是应用裁剪和调整图像大小(Krizhevsky等人,2012;Szegedy等人,2015),这使得我们很难在没有裁剪的情况下研究其他的增强。为了消除这种干扰,我们考虑对这种消融进行不对称的数据转换设置。具体来说,我们总是先随机裁剪图像并将其调整到相同的分辨率,然后我们只对图2中框架的一个分支应用目标转换(s),而将另一个分支作为身份(即t(xi)=xi)。

3.2对比性学习需要比监督性学习更强的数据增强。

4.编码器和头的架构

4.1无监督对比学习从更大的模型中受益(更多)。
图7显示,也许毫不奇怪,增加深度和宽度都能提高性能。虽然类似的发现也适用于监督学习(He等人,2016),但我们发现监督模型和在无监督模型上训练的线性分类器之间的差距随着模型大小的增加而缩小,这表明无监督学习比监督学习更受益于更大的模型。

4.2非线性投影头提高了该层之前的表示质量

5.损失函数和batch size

5.1. 可调节温度的归一化交叉熵损失比替代方案效果更好
我们将NT-Xent损失与其他常用的对比性损失函数进行比较,如Logistic损失(Mikolov等人,2013)和margin损失(Schroff等人,2015)。表2显示了目标函数以及损失函数输入的梯度。看一下梯度,我们观察到:1)L2归一化(即余弦相似性)与温度一起有效地权衡了不同的例子,适当的温度可以帮助模型从硬的负数中学习;2)与交叉熵不同,其他目标函数并不按相对硬度权衡负数。因此,对于这些损失函数,人们必须应用半硬性负数挖掘(Schroff等人,2015):不是在所有损失项上计算梯度,而是使用半硬性负数(即那些在损失边际内且距离最近,但比正面例子远的例子)计算梯度。
为了使比较公平,我们对所有损失函数使用相同的L2归一化,我们调整了超参数,并报告了它们的最佳结果。表4显示,虽然(半硬)负向挖掘有帮助,但最佳结果仍然比我们默认的NT-Xent损失差很多。
我们接下来测试L2归一化(即余弦相似度与点积)和温度τ在我们默认的NT-Xent损失中的重要性。表5显示,如果没有归一化和适当的温度比例,性能会明显下降。没有L2归一化,对比性任务的准确性更高,但在线性评价下,所产生的表示法更差。
5.2对比学习从更大的批次规模和更长的训练中受益(更多)。
图9显示了当模型被训练为不同数量的epochs时,批量大小的影响。我们发现,当训练epoch数较少时(如100个历时),较大的批次大小比较小的批次有明显的优势。随着训练步骤/epochs的增加,只要批次是随机重新采样的,不同批次大小之间的差距就会减少或消失。与之相反的是监督学习(Goyal等人,2017),在对比学习中,较大的批次规模提供了更多的负面例子,促进了收敛(即在给定的精度下,需要更少的epochs和步骤)。训练时间越长,也越能提供更多的负面例子,改善结果。在附录B.1中,提供了甚至更长的训练步骤的结果。

6.实验结果比较

请添加图片描述
表8. 在12个自然图像分类数据集中,我们的自监督方法与监督基线的转移学习性能比较,ResNet-50(4×)模型在ImageNet上进行了预训练。没有明显差于最好的结果(p>0.05,互换检验)显示为粗体。实验细节和标准ResNet-50的结果见附录B.8。

7.相关工作

8.结论

在这项工作中,我们提出了一个简单的框架和它的实例,用于对比性的视觉表征学习。我们仔细研究了其组成部分,并展示了不同设计选择的效果。通过结合我们的研究结果,我们比以前的自监督、半监督和转移学习方法有了很大的改进。我们的方法与ImageNet上的标准监督学习的不同之处仅在于对数据增强的选择、在网络末端使用非线性头以及损失函数。这个简单框架的优势表明,尽管最近兴趣大增,自我监督学习的价值仍然被低估。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值