翻译-A Simple Framework for Contrastive Learning of Visual Representations

推荐文章

A Simple Framework for Contrastive Learning of Visual Representations

摘要

这篇文章提出了SimCLR, 一种简单的、用于视觉表征对比学习的框架。作者们简化了最近刚提出的对比自监督学习算法,并且不需要特别的架构或者记忆库。

为了探究是什么使得对比预测任务能够学习到有用的表征,作者们系统地研究了该框架的大部分组件。作者们展示了

  • (1)数据增强的组件在定义高效预测任务中扮演的重要角色。
  • (2)在表征和对比损失之间引入了一种可学习的非线性变换,该变换能实质地提高了学习到的表征的质量。
  • (3)与监督学习相比,对比学习可以从更大批量和更多训练步骤中获益。

通过结合这些发现,作者们的方法能够大大的超过之前在ImageNet上用于自监督和半监督学习的方法。一个用SimCLR学习的自监督表征的线性分类器能够达到76.5%的top-1精度,这是7%的相对提升,超过之前的SOTA, 且与监督模型ResNet-50的性能无异。仅仅1%的标签量用于微调,就能达到85.8%的top-5精度,以少100倍的标签量超过AlexNet。


1.Introduction

在无监督的情况下学习有效的视觉表示是一个长期存在的问题。大多数主流方法可分为两类:生成性的或判别性的。

生成方法学习在输入空间中生成或建模像素。(像素级别代价高、不必要)

判别方法使用类似于监督学习的目标函数来学习表示,但训练网络执行Pretext task,其中输入和标签都来自一个没有标记的数据集。很多这种方法都依赖于启发式来设计Pretext tasks,这限制了已学习表征的普遍性。基于潜在空间的对比学习的判别方法最近展示了很大的前景,取得了最先进的结果。

在这项工作中,作者们介绍了一个简单的框架对比学习的视觉表征,作者们称之为SimCLR。SimCLR不仅比以前的工作更出色(如下图所示),但它也更简单,不需要专门的架构,也没有存储库。

在这里插入图片描述

为了理解是什么使框架能够进行良好的对比表征学习,作者们系统地研究了框架的主要组成部分,并表明:

  • 在定义产生有效表示的对比预测任务时,多个数据增强操作的组合至关重要。此外,与监督学习相比,无监督对比学习从更强的数据增强中获益。
  • 在表征和对比损失之间引入可学习的非线性转换,总体上提高了学习表征的质量。
  • 具有对比交叉熵损失的表征学习受益于规范化嵌入和适当调整的参数
  • 与有监督的对照组相比,对比学习受益于较大的批量和较长的训练。与监督学习一样,对比学习也得益于更深更广的网络。

2.Method

2.1 对比学习框架

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-30fF7w5Q-1621173010368)(A%20Simple%20Framework%20for%20Contrastive%20Learning%20of%20Visual%20Representations.assets/image-20210516172744548.png)]

受最近对比学习算法的启发(参见第7节的概述),SimCLR过隐空间中的对比损失来最大化同一数据示例的不同增强视图之间的一致性,从而学习表征。如上图所示,该框架由以下四个主要组件组成。

  • 一个随机数据增强模块,它将任意给定的数据实例随机地变换成相同样例的两个相关视图。我们将其视为一对正视图 x i x_i xi x j x_j xj,并且依次的使用三种简单的增强:随机裁剪,然后调整大小到原始大小,随机颜色失真,随机高斯模糊。如第3节所示,随机裁剪颜色失真的结合是获得良好性能的关键。
  • 一种神经网络基编码器f(·),从增强的数据实例中提取表示向量。我们的框架允许在不受任何限制的情况下选择各种网络架构。我们选择简单,采用常用的ResNet。得到 h i = f ( x i ) = R e s N e t ( x i ) , h i ∈ R d h_i = f(x_i)=ResNet(x_i),h_i\in R^d hi=f(xi)=ResNet(xi),hiRd是平均池化层之后的输出。
  • 一个小的神经网络映射头(projection head) g ( . ) g(.) g(.),用来将表征映射到对比损失应用的空间。作者们使用一个隐藏层的MLP去计算 z i z_i zi,其中 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),其中 σ \sigma σ是一个RELU函数。作者发现 z i z_i zi在定义损失对比上比 h i h_i hi更好。
  • 一个对比损失函数,用来进行对比预测任务。给定一个包含正样本 x i x_i xi x j x_j xj的数据集 { x k } \{x_k\} {xk},对比预测任务的目的是给定 x i x_i xi后,在 { x k } k ≠ i \{x_k\}_{k\neq i} {xk}k=i中识别出 x j x_j xj

给定一个batch size = N的样本,在该批增强后的样本上定义对比预测任务,则有2N个数据点。注意并没有采样负样例。给定一对正样例,同批次中其他2(N−1)的增强样例作为负样例。

两个向量 u u u v v v之间的余弦相似度 s i m ( u , v ) = u T v ∣ ∣ u ∣ ∣ ⋅ ∣ ∣ v ∣ ∣ sim(u,v) = \frac{u^Tv}{||u||\cdot||v||} sim(u,v)=uvuTv,那么一对正样本 ( 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 o n e R a n d o m 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}oneRandom_{k\neq i}exp(sim(z_i,z_k)/\tau)} li,j=logK=12NoneRandomk=iexp(sim(zi,zk)/τ)exp(sim(zi,zj)/τ)

其中 o n e R a n d o m k ≠ i ∈ { 0 , 1 } oneRandom_{k\neq i} \in \{0,1\} oneRandomk=i{0,1} 是指示函数, τ \tau τ一个温度参数。最终的损失需要计算批次中所有的正样例对,即 ( i , j ) 、 ( j , i ) (i,j)、(j,i) (i,j)(j,i),作者们称以上为NT-Xent(the normalized temperature-scaled cross entropy loss)

算法如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l1UfGVwa-1621173010370)(A%20Simple%20Framework%20for%20Contrastive%20Learning%20of%20Visual%20Representations.assets/image-20210516202344796.png)]


2.2 大批量训练

为了简单,我们没有使用存储库来训练模型。相反,我们将训练批大小N从256变化到8192。批处理大小为8192时,从两个增强视图来看,每个正对给出了16382个负例子。当使用带线性学习率缩放的标准SGD/Momentum时,大批量训练可能不稳定。为了稳定训练,我们对所有batch size都使用LARS优化器。我们用云训练模型tpu,根据批处理大小使用32到128核。

全局BN。标准的ResNets使用batch normalization。在数据并行分布式训练中,BN平均值和方差通常在每个设备的本地聚合。在我们的对比学习中,由于正对是在同一设备中计算的,该模型可以利用局部信息泄漏来提高预测精度,而无需改进表征。我们通过在训练期间汇总所有设备的BN均值和方差来解决这个问题。其他方法包括跨设备混合数据示例(He等人,2019),或用层规范替换BN (Hénaff等人,2019)。


2.3 评价方案


3.对比特征学习中的数据增强

数据增强在有监督和无监督的表示学习中得到了广泛的应用,它并没有被认为是一种系统的定义对比预测任务的方法。许多现存的方法通过改变架构来定义对比预测任务。例如,Hjelm等人(2018);Bachman等人(2019)通过约束网络架构中的接受域实现全局到局部的视图预测,而Oord等人(2018);Hénaff等人(2019)通过固定的图像分割过程和上下文聚合网络实现邻域视图预测。我们证明了这种复杂性可以通过对目标图像进行简单的随机裁剪(重新调整大小)来避免,它创建了一个包含上述两个预测任务的家族,如图3。

这种简单的设计选择方便地将预测任务与其他组件(如神经网络体系结构)解耦。更广泛的对比预测任务可以通过扩展扩充器族并随机组合来定义。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IDMA1z4L-1621173010373)(A%20Simple%20Framework%20for%20Contrastive%20Learning%20of%20Visual%20Representations.assets/image-20210516205221334.png)]


3.1 数据增强操作的组成对于学习好的表征是至关重要的

为了系统地研究数据增强的影响,我们考虑了几种常见的数据增强。一种增强类型涉及数据的空间/几何转换,如裁剪和调整大小(水平翻转)、旋转(Gidaris等人,2018)和裁剪(DeVries & Taylor, 2017)。另一种增强涉及到外观变换,如颜色失真(包括降色、亮度、对比度、饱和度、色相)(Howard, 2013;Szegedy等人,2015),高斯模糊和Sobel滤波。图4显示了我们研究的数据增强。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bzyPQGyb-1621173010375)(A%20Simple%20Framework%20for%20Contrastive%20Learning%20of%20Visual%20Representations.assets/image-20210516211134163.png)]

为了理解单个数据增量的影响和增量组合的重要性,我们研究了单独或成对应用增量时框架的性能。由于ImageNet图像的大小不同,这使得在不进行图片裁剪的情况下研究其他数据增强措施变得困难,所以我们总是应用裁剪和调整图像的大小(Krizhevsky等人,2012;Szegedy等人,2015年)。为了消除这一混淆,我们考虑采用非对称数据转换来进行消融。

具体来说,我们总是首先随机裁剪图像,并将其调整为相同的分辨率,然后我们只将目标转换应用到图2中框架的一个分支,而将另一个分支保留为标识(即t(xi) = xi)。这种不对称的数据增强会影响性能。尽管如此,这种设置不应该实质性地改变单个数据扩展或其组合的影响。

图5显示了单个和组合转换下的线性评价结果。我们观察到,没有一个单一的转换足以学习好的表征,即使模型可以几乎完美地识别对比任务中的正对。当构成增量时,对比预测任务变得更加困难,但表示质量显著提高。附录B.2提供了对构成更广泛的扩充集的进一步研究。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fPnrVf6n-1621173010377)(A%20Simple%20Framework%20for%20Contrastive%20Learning%20of%20Visual%20Representations.assets/20200225171748692.png)]

一个增强的组成突出:随机裁剪和随机颜色失真。我们推测,当仅使用随机裁剪作为数据增强时,一个严重的问题是图像中的大多数裁剪区域共享相似的颜色分布。图6显示,仅用颜色直方图就足以区分图像。神经网络可能利用这一捷径来解决预测任务。因此,在裁剪过程中加入颜色失真来学习可归纳的特征是非常重要的。(增大学习的难度,让模型学到更多细腻化的东西)。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SXwjIxRz-1621173010379)(A%20Simple%20Framework%20for%20Contrastive%20Learning%20of%20Visual%20Representations.assets/20200225172903274.png)]


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

为了进一步说明色彩增强的重要性,我们对色彩增强的强度进行了调整,如表1所示。更强的颜色增强显著改善了学习的无监督模型的线性评估.


4.编码器和头部的架构

4.1 非监督对比学习从更大的模型中获益(更多)

在这里插入图片描述

图7显示了增加深度和宽度都能提高性能,这也许并不令人意外。虽然类似的发现也适用于监督学习(He et al., 2016),但我们发现有监督模型和在无监督模型上训练的线性分类器之间的差距随着模型规模的增大而减小,这表明无监督学习比有监督模型从更大的模型中获益更多。


4.2 非线性投影头提高了其前一层的表征质量

在这里插入图片描述

作者们研究包含一个投影头的重要性,即g(h)。图8显示了头部使用三种不同架构的线性评价结果:(1)一致性映射;(2)线性投影,如之前几种方法所使用的(Wu et al., 2018);(3)带有一个额外隐藏层(和ReLU激活)的默认非线性投影,类似于Bachman等人(2019)。我们观察到非线性投影比线性投影(+3%)好,比没有投影(>10%)好得多。当使用投射头时,无论如何都能观察到类似的结果

我们推测在非线性投影之前使用表征的重要性是由于对比损失引起的信息损失。特别地,z = g(h)被训练为对数据转换不变性。因此,g可以删除可能对下游任务有用的信息,如对象的颜色或方向。通过利用非线性转换g(·),可以在h中形成和保持更多的信息。为了验证这一假设,我们进行了实验,使用h或g(h)来学习预测训练前应用的转换。这里我们设g(h) = W(2)σ(W(1)h),具有相同的输入和输出维度(即2048)。

表3显示了h包含关于应用的转换的更多信息,而g(h)丢失了信息。
在这里插入图片描述


5.损失函数和Batch Size

5.1 温度可调的归一化交叉熵损失比其他方法效果更好

在这里插入图片描述

我们将NT-Xent损失与其他常用的对比损失函数进行比较,如logistic损失(Mikolov et al., 2013)和利润损失(Schroff et al., 2015)。表2表示目标函数以及损失函数输入的梯度。看看梯度,我们观察1) l 2 l_2 l2归一化(即余弦相似度)和温度有效地权重不同的例子,一个适当的温度可以帮助模型学习硬负;2)与交叉熵不同的是,其他目标函数不会用它们的相对难度来衡量消极因素。

为了使比较公平,我们对所有损失函数使用相同的 l 2 l_2 l2归一化,我们调整超参数,并报告它们的最佳结果表4显示,而(semi-hard) negative mining有帮助,最好的结果仍然比我们的默认NT-Xent损失糟糕得多。

我们接下来在默认NT-Xent损失测试 l 2 l_2 l2归一化(即余弦相似度vs点积)和温度τ的重要性。表5显示,没有归一化和适当的温度缩放,性能显著变差。在没有 l 2 l_2 l2归一化的情况下,对比任务的准确性较高,但在线性评价下,结果的表示效果较差。
在这里插入图片描述


5.2 对比学习从更大的批量和更长的训练中获益(更多)

图9显示了针对不同epochs训练模型时批大小的影响。我们发现,当训练epoch数较小时(例如100 epoch),较大的batch size比较小的batch size具有显著的优势。随着更多的训练steps/epochs,假设这些batchs都是随即重采样的来的,那么不同batch size之间的差距减少或消失。
在这里插入图片描述
与有监督学习相比,在对比学习中,更大的批规模提供更多的负面例子,促进收敛(例如,为给定的精度采取更少的epoch和步骤)。训练时间越长,负面的例子就越多,效果就越好。



8.Conclusion

我们提出了一个简单的框架和它一个对比视觉特征学习的实例。我们认真地研究了其各个组件,并展示了其不同选择的效果。通过结合我们的发现,我们大大改进了以前的方法,自我监督,半监督和迁移学习。
本文的方法不同于在ImageNet上的标准有监督学习,只是在数据增强的选择、网络末端非线性头的使用以及损失函数方面。这个简单框架的优势表明,尽管最近兴趣激增,但自我监督学习仍然被低估。

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值