视觉表示对比学习的简单框架 simCLR

摘要

 本文介绍了SimCLR:用于视觉表示的对比学习的简单框架。我们简化了最近提出的对比自我监督学习算法,而无需专门的架构或存储库。为了了解什么使对比预测任务能够学习有用的表示形式,我们系统地研究了框架的主要组成部分。我们证明(1)数据扩充的组合在定义有效的预测任务中起着至关重要的作用;(2)在表示和对比损失之间引入可学习的非线性变换,大大提高了学习表示的质量,并且(3)与有监督的学习相比,对比学习得益于更大的批量大小和更多的培训步骤。通过结合这些发现,我们能够大大胜过ImageNet上用于自我监督和半监督学习的先前方法。 Sim-CLR学习了一种基于自我监督表示的训练的线性分类器,可达到76.5%的top-1准确性,与以前的最新技术相比,相对提高了7%,与监督的ResNet-50的性能相匹配。当仅对1%的标签进行微调时,我们可以达到85.8%的top-5精度,而AlexNet的标签减少了100倍,超过了AlexNet。

引言

 在没有人工监督的情况下学习有效的视觉表示是一个长期存在的问题。大多数主流方法属于两类之一:生成性或判别性。生成方法学习在输入空间中生成或建模像素(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等人,2019a; Misra&van der Maaten,2019)。
 为了理解什么可以促进良好的对比表示学习,我们系统地研究了框架的主要组成部分并显示:
•多个数据增强操作的组合对于定义产生有效表示的对比预测任务至关重要。 此外,与监督学习相比,无监督的对比学习受益于更强大的数据增强。
•在表示和对比损失之间引入可学习的非线性变换,可以大大提高学习的表示的质量。
•具有归一化的交叉熵损失的表示学习得益于归一化嵌入和适当调整的温度参数。
•与受监督的同类产品相比,对比学习受益于更大的批次数量和更长的培训时间。 像监督学习一样,对比学习受益于更广泛的网络。
 我们结合这些发现,在ImageNet ILSVRC-2012上实现了自我监督和半监督学习的最新技术(Russakovsky等人,2015)。 在线性评估方案下,SimCLR的top-1准确性达到76.5%,相对于之前的最新技术水平有7%的相对提高(Hénaff等,2019)。 如果仅使用1%的ImageNet标签进行微调,SimCLR的top-5准确性将达到85.8%,相对提高10%(Hénaffet al。,2019)。 当在其他自然图像分类数据集上进行微调时,SimCLR在12个数据集中的10个数据集上的表现与强监督基线(Kornblith等,2019)相当或更好。

2.方法

2.1对比学习框架

受最新对比学习算法的启发(有关概述,请参见第7节),SimCLR通过潜在空间中的对比损失来最大化同一数据示例的不同增强视图之间的一致性,从而学习表示形式。如图2所示,此框架包括以下四个主要组件。
•随机数据增强模块,可随机转换任何给定的数据示例,从而产生同一示例的两个相关视图,分别称为 x i ^ \hat{x_i} xi^ x j ^ \hat{x_j} xj^,我们将其视为正对。在这项工作中,我们依次应用三种简单的增强方法:随机裁剪,然后将其调整为原始大小,随机颜色失真和随机高斯模糊。如第3节所示,随机裁剪和颜色失真的结合对于获得良好的性能至关重要。
•基于神经网络的编码器 f ( ⋅ ) f(·) f(),可从增强数据示例中提取表示向量。我们的框架允许对网络架构进行各种选择,而没有任何限制。我们选择简单性并采用常用的ResNet(He et al。,2016)来获得 h i = f ( x i ^ ) = R e s N e t ( x i ^ ) h_i = f(\hat{x_i})= ResNet(\hat{x_i}) hi=f(xi^)=ResNet(xi^),其中 h i ∈ R d h_ i∈R_d hiRd是平均池化层之后的输出。
•小型神经网络投影头 g ( ⋅ ) g(·) g(),它将表示映射到应用了对比损失的空间。 我们使用具有一个隐藏层的MLP来获得 z i = g ( h i ) = W ( 2 ) σ ( W ( 1 ) h i ) z_i = g(h_i)= W^{(2)}\sigma(W^{(1)}h_i) zi=g(hi)=W(2)σ(W(1)hi),其中 σ σ σ是ReLU非线性。 如第4节所示,我们发现最好定义 z i z_i zi而不是 h i h_i hi的对比损失。
•为对比预测任务定义的对比损失函数。 给定包含正对示例 x i ^ \hat{x_i} xi^ x j ^ \hat{x_j} xj^的集合 { x k ^ } \{\hat{x_k}\} {xk^},对比预测任务旨在针对给定的 x i x_i xi识别 { x k } k ≠ i \{x_k\}k≠ i {xk}k=i中的 x j x_j xj
 我们从N个样本的一个小批量中随机抽样,并在从该小批量派生的成对增强样本对上定义对比预测任务,得到2N个数据点。 我们没有明确地列举负面例子。 相反,给定一个正对,类似于(Chen等人,2017),我们将小批量处理中的其他2(N -1)个扩增实例视为阴性实例。 令 s i m ( u , v ) = u T v / ∣ ∣ u ∣ ∣ ∣ ∣ v ∣ ∣ sim(u,v)= u^Tv/ || u||||v|| sim(u,v)=uTv/uv表示两个向量u和v之间的余弦相似性。 然后将正对示例 ( i , j ) (i,j) ij的损失函数定义为:
l i , j = − l o g e x p ( s i m ( z i , z j ) / τ ) ∑ k = 1 2 N 1 [ k ≠ i ] e x p ( s i m ( z i , z k ) / τ ) l_{i,j}=-log\frac{exp(sim(z_i,z_j)/\tau)}{\sum_{k=1}^{2N}1_{[k≠i]}exp(sim(z_i,z_k)/\tau)} li,j=logk=12N1[k=i]exp(sim(zi,zk)/τ)exp(sim(zi,zj)/τ)

2.2大批量培训

 我们不使用存储库训练模型(Wu et al。,2018)。 取而代之的是,我们将训练批次大小N从256更改为8192。批次大小8192可从两个扩充视图中为每个正对提供16382个负面示例。 当使用标准的SGD / Momentum和线性学习率定标时,以大批量进行训练可能会不稳定(Goyal等,2017)。 为了稳定培训,我们针对所有批次大小使用LARS优化器(You等人,2017)。 我们使用Cloud TPU训练模型,根据批次大小使用32到128个内核。
 全局BN。 标准ResNet使用批量归一化(Ioffe&Szegedy,2015)。 在具有数据并行性的分布式训练中,BN平均值和方差通常在每个设备上本地汇总。 在我们的对比学习中,当在同一设备中计算正对时,该模型可以利用局部信息泄漏来提高预测精度,而无需改进表示。 我们通过在训练期间汇总所有设备的BN均值和方差来解决此问题。 其他方法包括改组数据示例(Heetal。,2019a),或用层范数代替BN(Hénaff等,2019)。

2.3 评估协议

在这里,我们为我们的实证研究列出协议,旨在了解我们框架中的不同设计选择。
数据集和指标。 我们对无监督预训练(学习无标签的编码器网络f)的大多数研究都是使用ImageNet ILSVRC-2012数据集完成的(Russakovsky等人,2015)。 附录B.7中提供了有关CIFAR-10的一些其他预培训实验(Krizhevsky&Hinton,2009)。 我们还对各种用于迁移学习的数据集测试了预训练的结果。 为了评估学习的表示形式,我们遵循广泛使用的线性评估协议(Zhang等人,2016; Oord等人,2018; Bachman等人,2019; Kolesnikov等人,2019),其中使用线性分类器 在冻结的基础网络之上接受培训,并且测试准确性被用作代表质量的代表。 除了线性评估,我们还与半监督学习和转移学习方面的最新技术进行了比较。
默认设置。 除非另有说明,否则对于数据增强,我们使用随机裁剪和调整大小(带有随机翻转),颜色失真和高斯模糊(有关详细信息,请参见附录A)。 我们使用ResNet-50作为基础编码器网络,并使用2层MLP投影头将表示投影到128维潜在空间。 作为损失,我们使用NT-Xent,并使用具有线性学习速率缩放(即LearningRate = 0.3×BatchSize / 256)和权重衰减为10 -6的LARS进行优化。 我们以4096个批次的规模训练100个纪元。 2此外,我们在前10个时期使用线性预热,并在不重新启动的情况下按照余弦衰减时间表衰减学习率(Loshchilov&Hutter,2016)。

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

数据扩充定义了预测性任务。尽管数据增强已在有监督和无监督表示学习中得到了广泛使用(Krizhevsky等人,2012;Hénaff等人,2019; Bachman等人,2019),但尚未将其视为定义概念的系统方法-交易预测任务。许多现有方法通过更改体系结构来定义对比预测任务。例如,Hjelm等人。 (2018); Bachman等。 Oord等人(2019)通过限制网络体系结构中的接收场来实现全局到局部视图预测。 (2018); Hénaff等。 (2019)通过固定的图像分割程序和上下文聚合网络实现了相邻视图预测。我们表明,可以通过对目标图像执行简单的随机裁剪(调整大小)来避免这种复杂性,从而创建了包含上述两个内容的一系列预测任务,如图3所示。这种简单的设计选择可方便地将预测变量解耦。其他组件(例如神经网络架构)完成任务。可以通过扩展增强族并随机组成它们来定义更广泛的对比预测任务。

你可能感兴趣的:(视觉表示对比学习的简单框架 simCLR)