Abstract
出了一种用于视觉表示的对比学习简单框架,并且结构简单,不需要专门的架构或特殊的存储库。
在这篇论文中,研究者发现:
- 多个数据增强方法组合对于对比预测任务产生有效表示非常重要。
- 与监督学习相比,数据增强对于无监督学习更加有用;
- 在表示和对比损失之间引入一个可学习的非线性变换可以大幅提高模型学到的表示的质量;
- 与监督学习相比,对比学习得益于更大的批量和更多的训练步骤。
基于这些发现,他们在 ImageNet 数据集上实现了一种新的自监督学习方法—SimCLR。
参考:https://zhuanlan.zhihu.com/p/340721853
Model
SimCLR通过潜在空间中的对比损失来最大化同一数据示例的不同增强视图之间的一致性,从而学习表示形式。具体说来,这一框架包含四个主要部分:
- 随机数据增强模块。它将任意给定的数据实例随机地变换成同一实例的两个相关视图,我们将其视为一对正视图,分别表示为 x˜i 和 x˜j;
- 一个基本的神经网络编码器 f(·),从扩充的数据实例(增强数据)中提取表示向量我们的框架允许在不受任何限制的情况下选择各种网络架构。我们采用常用的ResNet ;
- 一个小的神经网络投射头(projection head)g(·),将表示映射到对比损失的空间,这里使用的是MLP;
- 为对比预测任务定义的对比损失函数,作者称之为 NT-Xent(归一化温度尺度交叉熵损失)。
详细见 https://zhuanlan.zhihu.com/p/340721853
https://blog.csdn.net/weixin_46330802/article/details/104587494
这篇文章的Batchsize很大,选用的是批次大小为8192。当某一批次大小为8192时,经过扩充,它的批量大小为8192时,从两个扩充视图中,每对正对给出16382个负示例。为了稳定训练,对所有批量使用LARS优化器(You等人,2017)。我们使用云TPU训练我们的模型,根据批量大小使用32到128个核心。
在具有数据并行性的分布式训练中,BN均值和方差通常在每个设备上进行局部聚合。在我们的对比学习中,由于正对是在同一个设备中计算的,该模型可以利用局部信息泄漏来提高预测精度,而不需要改进表示。我们通过在训练期间对所有设备的BN均值和方差进行汇总来解决这个问题。 ———————————————— 版权声明:本文为CSDN博主「宇弦酒仙」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/m0_37929824/article/details/104440694
Data Augmentation for Contrastive Representation Learning
通过对目标图像执行简单的随机裁剪(调整大小)可以避免数据扩充的复杂性,这将创建一个包含上述两个任务的预测任务集,如图3所示。这种简单的设计选择可以方便地将预测任务与其他组件(如神经网络体系结构)分离。通过扩展增广项族并随机组合它们,可以定义更广泛的对比预测任务。
Architectures for Encoder and Head
我们发现,在无监督模型上训练的有监督模型和线性分类器之间的差距随着模型大小的增加而缩小,这表明无监督学习比有监督学习从更大的模型中获益更多。
补充:对比学习
对比学习的基本概念,也就是试图教会机器区分相似和不同的东西
可以简单总结为:
- 随机抽取一个小批量
- 给每个例子绘制两个独立的增强函数
- 使用两种增强机制,为每个示例生成两个互相关联的视图
- 让相关视图互相吸引,同时排斥其他示例

其思想非常简单:
- 取一幅图像,对其进行随机变换,得到一对增广图像x_i和x_j。该对中的每个图像都通过编码器以获得图像的表示。
- 然后用一个非线性全连通层来获得图像表示z,其任务是最大化相同图像的z_i和z_j两种表征之间的相似性。
