摘要
本文介绍了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