2024-10-16
DL论文
00

目录

论文导读总结
主要贡献和发现
方法细节
实验结果
结论
摘要
1. 引言
2. 方法
2.1 对比学习框架
2.2 使用大批量进行训练
全局BN
2.3 评估协议
3. 用于对比表征学习的数据增强
3.1 数据增强操作的组合对学习良好的表征至关重要
3.2 对比学习需要比监督学习更强的数据增强
4. 编码器和投影头的架构
4.1 无监督对比学习在更大的模型上表现更好
4.2 非线性投影头提高了前一层的表征质量
5. 损失函数和批量大小
5.1 带有可调温度的归一化交叉熵损失优于其他替代方法
5.2 对比学习从更大的批量大小和更长的训练时间中获益更多
6. 与当前最先进方法的比较
半监督学习
迁移学习
7. 相关工作
手工设计的伪任务
对比视觉表征学习
8. 结论

论文导读总结

这篇论文提出了一种名为SimCLR的简化对比学习框架,用于学习视觉表征。SimCLR简化了现有的对比自监督学习算法,使其无需特定架构或记忆库,并在ImageNet数据集上显著超越了自监督和半监督学习方法的性能。

主要贡献和发现

  1. 数据增强的关键作用:SimCLR通过数据增强来定义对比学习任务。特别是,随机裁剪和颜色失真的组合对于提升表征学习质量至关重要。
  2. 非线性投影头的引入:在表征和对比损失之间加入一个非线性变换,可以显著提高表征质量。
  3. 大批量训练的优势:SimCLR从更大的批量大小和更多的训练步数中获益,远超过传统的监督学习。SimCLR在批量大小为8192的情况下进行训练,从而有效利用了更多的负样本。

方法细节

SimCLR使用一个简单的四组件框架:

  • 数据增强:随机裁剪、颜色失真和高斯模糊。
  • 编码器:使用ResNet模型来提取表征。
  • 投影头:一个小型多层感知机(MLP),将表征映射到用于对比损失的空间。
  • 对比损失函数:使用归一化温度缩放的交叉熵损失(NT-Xent),在小批量内通过余弦相似度计算正负样本对的相似性。

实验结果

在ImageNet数据集上,SimCLR在自监督学习任务中的Top-1准确率达到76.5%,显著超越了之前的方法。同时,仅使用1%的标签微调时,也取得了85.8%的Top-5准确率。SimCLR还展示出较强的迁移学习能力,在多个自然图像分类任务上性能表现优异。

结论

SimCLR框架的简单性和有效性表明,对比自监督学习仍有广阔的提升空间。通过引入适当的数据增强、投影头以及大批量训练,SimCLR有效提升了表征学习的性能,为未来的自监督学习研究奠定了基础。

摘要

本文提出了一种用于对比学习视觉表征的简单框架:SimCLR。我们简化了近期提出的对比自监督学习算法,使其无需特定架构或记忆库。在研究对比预测任务如何学习到有用的表征时,我们系统性地分析了框架中的主要组件。研究结果表明:(1)数据增强的组合在定义有效的预测任务中起着关键作用;(2)在表征和对比损失之间引入一个可学习的非线性变换,显著提高了所学表征的质量;(3)相比于监督学习,对比学习从更大的批量大小和更多的训练步数中获益。结合这些发现,我们在ImageNet数据集上显著超越了先前的自监督和半监督学习方法。使用SimCLR学习到的自监督表征训练的线性分类器实现了76.5%的Top-1准确率,比先前的最优方法提高了7%,并达到了监督学习的ResNet-50相当的性能。在仅使用1%的标签进行微调时,我们实现了85.8%的Top-5准确率,超越了AlexNet,所需标签量减少了100倍。

1. 引言

无需人工监督学习有效的视觉表征是一个长期存在的问题。大多数主流方法分为两类:生成式和判别式。生成式方法通过生成或模拟输入空间中的像素来学习表征(Hinton et al., 2006; Kingma & Welling, 2013; Goodfellow et al., 2014)。然而,像素级的生成计算开销很大,且在表征学习中可能并非必要。判别式方法则使用类似于监督学习中的目标函数,通过无标签数据集中的输入和标签构建伪任务来训练网络。许多此类方法依赖启发式方法来设计伪任务(Doersch et al., 2015; Zhang et al., 2016; Noroozi & Favaro, 2016; Gidaris et al., 2018),这可能会限制所学表征的通用性。基于潜在空间中对比学习的判别方法最近展现了极大的潜力,达到了当前的最优性能(Hadsell et al., 2006; Dosovitskiy et al., 2014; Oord et al., 2018; Bachman et al., 2019)。

在这项工作中,我们提出了一个用于对比学习视觉表征的简单框架,称为SimCLR。SimCLR不仅性能优越(见图1),还更加简洁,不需要特定架构(Bachman et al., 2019; Hénaff et al., 2019)或记忆库(Wu et al., 2018; Tian et al., 2019; He et al., 2019; Misra & van der Maaten, 2019)。

为了理解哪些因素有助于优质对比表征学习,我们系统地研究了框架中的主要组件,并展示以下关键发现:

  • 数据增强操作的组合在定义对比预测任务中起着至关重要的作用。并且,无监督对比学习比监督学习从更强的数据增强中获益更多。
  • 在表征和对比损失之间引入一个可学习的非线性变换显著提高了所学表征的质量。
  • 使用对比交叉熵损失函数的表征学习从归一化嵌入和适当调整的温度参数中获益。
  • 对比学习比其监督对手更依赖于更大的批量大小和更长的训练时间。和监督学习一样,对比学习在更深、更宽的网络结构中表现更佳。

通过结合这些发现,我们在ImageNet ILSVRC-2012(Russakovsky et al., 2015)上达到了自监督和半监督学习的新最优性能。按照线性评估协议,SimCLR实现了76.5%的Top-1准确率,比之前的最佳方法(Hénaff et al., 2019)相对提高了7%。当仅使用1%的ImageNet标签进行微调时,SimCLR达到了85.8%的Top-5准确率,比之前的结果相对提高了10%(Hénaff et al., 2019)。在其他自然图像分类数据集上微调时,SimCLR在12个数据集中的10个上表现优于或与强监督基线(Kornblith et al., 2019)相当。

2. 方法

2.1 对比学习框架

受近期对比学习算法的启发(详见第7节),SimCLR通过在潜在空间中对相同数据样本的不同增强视图最大化一致性来学习表征。该框架包括以下四个主要组件:

  • 一个随机数据增强模块,对任一数据样本进行随机变换,从而得到同一样本的两个相关视图,记为 xix_ixjx_j,我们将其视为一个正样本对。本文依次应用三种简单的增强:随机裁剪后恢复到原始大小,随机颜色失真和随机高斯模糊。正如第3节所示,随机裁剪和颜色失真的组合对于取得良好性能至关重要。
  • 一个神经网络基础编码器 f()f(\cdot),用于从增强后的数据样本中提取表征向量。我们的框架允许网络架构的多种选择,不受任何约束。为简单起见,我们采用常用的ResNet(He et al., 2016)来获得 hi=f(xi)=ResNet(xi)h_i = f(x_i) = \text{ResNet}(x_i),其中 hiRdh_i \in \mathbb{R}^d 是平均池化层之后的输出。
  • 一个小型神经网络投影头 g()g(\cdot),将表征映射到对比损失的空间。我们使用带有一个隐藏层的多层感知机(MLP)来获得 zi=g(hi)=W(2)σ(W(1)hi)z_i = g(h_i) = W^{(2)}\sigma(W^{(1)}h_i),其中 σ\sigma 是ReLU非线性函数。第4节显示在 ziz_i 而非 hih_i 上定义对比损失是有利的。
  • 一个用于对比预测任务的对比损失函数。给定一个包含正样本对的样本集 {xk}\{x_k\},对比预测任务旨在在 {xk}ki\{x_k\}_{k \neq i} 中识别出对于给定 xix_i 的正样本 xjx_j

我们从小批量中随机抽取 NN 个样本,并基于小批量中的增强样本对定义对比预测任务,得到 2N2N 个数据点。我们不显式采样负样本,而是类似于(Chen et al., 2017)的做法,将小批量中的 2(N1)2(N-1) 个增强样本作为负样本。令 sim(u,v)=uTvuvsim(u, v) = \frac{u^T v}{\|u\| \|v\|} 表示归一化的 uuvv 之间的点积(即余弦相似度)。则正样本对 (i,j)(i, j) 的损失函数定义为:

(i,j)=logexp(sim(zi,zj)/τ)k=12N1[ki]exp(sim(zi,zk)/τ),\ell(i, j) = -\log \frac{\exp(sim(z_i, z_j)/\tau)}{\sum_{k=1}^{2N} \mathbf{1}_{[k \neq i]} \exp(sim(z_i, z_k)/\tau)},

其中 1[ki]{0,1}\mathbf{1}_{[k \neq i]} \in \{0, 1\} 为指示函数,当 kik \neq i 时取1,τ\tau 表示温度参数。最终损失在小批量中的所有正样本对 (i,j)(i, j)(j,i)(j, i) 上计算。该损失函数在之前的工作中已有使用(Sohn, 2016; Wu et al., 2018; Oord et al., 2018);为方便起见,我们将其称为NT-Xent(归一化温度缩放的交叉熵损失)。

image.png

image.png

2.2 使用大批量进行训练

为简化流程,我们不使用记忆库(Wu et al., 2018; He et al., 2019),而是将训练批量大小 NN 从256增至8192。批量大小为8192时,每对正样本可获得来自两个增强视图的16382个负样本。使用标准的SGD/动量优化器和线性学习率缩放(Goyal et al., 2017)在大批量训练时可能不稳定。为稳定训练,我们在所有批量大小中使用LARS优化器(You et al., 2017)。我们的模型在Cloud TPU上训练,使用32至128个核心,具体取决于批量大小。

全局BN

标准的ResNet使用批量归一化(Batch Normalization, BN)(Ioffe & Szegedy, 2015)。在数据并行的分布式训练中,BN的均值和方差通常在设备上本地聚合。在我们的对比学习中,由于正样本对在同一设备上计算,模型可以利用本地信息泄露来提高预测准确性,但不会提升表征。我们通过在训练过程中跨所有设备聚合BN的均值和方差来解决这个问题。其他方法包括在设备之间打乱数据样本(He et al., 2019),或用层归一化(Layer Norm)替换BN(Hénaff et al., 2019)。

image.png

2.3 评估协议

在本节中,我们描述了用于实证研究的评估协议,旨在理解框架中不同设计选择的影响。

数据集与评估指标
大部分无监督预训练(即在无标签的情况下学习编码器网络 ff)的实验都是在 ImageNet ILSVRC-2012 数据集(Russakovsky et al., 2015)上进行的。关于 CIFAR-10(Krizhevsky & Hinton, 2009)的额外预训练实验详见附录 B.9。此外,我们还在多个数据集上测试了预训练结果,以进行迁移学习评估。为了评估所学习的表征,我们遵循广泛使用的线性评估协议(Zhang et al., 2016; Oord et al., 2018; Bachman et al., 2019; Kolesnikov et al., 2019),即在冻结的基础网络之上训练一个线性分类器,并使用测试准确率作为表征质量的指标。除了线性评估外,我们还将结果与当前最先进的半监督和迁移学习方法进行比较。

默认设置
除非另有说明,数据增强采用随机裁剪和缩放(包括随机翻转)、颜色失真和高斯模糊(详情参见附录 A)。基础编码器网络使用 ResNet-50,投影头为 2 层多层感知机(MLP),将表征投影到 128 维的潜在空间。损失函数使用 NT-Xent,并通过 LARS 优化器进行优化,学习率设为 4.8(即 0.3×BatchSize/2560.3 \times \text{BatchSize}/256),权重衰减为 10610^{-6}。我们在批量大小为 4096 的情况下训练了 100 个周期。此外,前 10 个周期使用线性预热(warmup),并通过无重启的余弦衰减策略(Loshchilov & Hutter, 2016)来降低学习率。

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

数据增强定义了预测任务。尽管数据增强在监督和无监督表征学习中已被广泛应用(Krizhevsky et al., 2012; Hénaff et al., 2019; Bachman et al., 2019),但尚未被系统性地用于定义对比预测任务。许多现有方法通过改变架构来定义对比预测任务。例如,Hjelm 等人(2018)和 Bachman 等人(2019)通过在网络架构中限制感受野来实现全局到局部视角的预测,而 Oord 等人(2018)和 Hénaff 等人(2019)通过固定的图像分割过程和上下文聚合网络实现邻近视角的预测。我们表明,通过对目标图像进行简单的随机裁剪(和缩放)可以避免这种复杂性,创建一个包含上述两种预测任务的任务集合,如图3所示。这一简单的设计选择使预测任务与其他组件(如神经网络架构)解耦。通过扩展增强集并随机组合它们,可以定义更广泛的对比预测任务。

3.1 数据增强操作的组合对学习良好的表征至关重要

为了系统地研究数据增强的影响,我们考虑了几种常见的增强方式。一类增强涉及数据的空间/几何变换,例如裁剪和缩放(包含水平翻转)、旋转(Gidaris et al., 2018)和cutout(DeVries & Taylor, 2017)。另一类增强涉及外观变换,例如颜色失真(包括颜色丢失、亮度、对比度、饱和度和色调调整)(Howard, 2013; Szegedy et al., 2015)、高斯模糊和Sobel滤波。图4展示了我们研究中涉及的增强方式。

为了理解单个数据增强的效果及其组合的重要性,我们测试了在单独或成对应用增强时框架的性能。由于 ImageNet 图像具有不同的尺寸,我们始终对图像进行裁剪和缩放操作(Krizhevsky et al., 2012; Szegedy et al., 2015),这使得在没有裁剪的情况下研究其他增强变得困难。为了消除这个干扰因素,我们在该消融实验中采用非对称的数据变换设置。具体而言,我们首先随机裁剪图像并将其缩放到相同的分辨率,然后只对框架中的一个分支应用目标变换,而保持另一个分支不变(即 t(xi)=xit(x_i) = x_i)。注意,这种非对称数据增强会降低性能。但该设置不应实质性地改变单个数据增强及其组合的影响。

图5显示了在不同单独和组合变换下的线性评估结果。我们观察到,单独的变换不足以学习到良好的表征,即使模型几乎可以完美地识别出对比任务中的正样本对。在组合增强时,对比预测任务变得更具挑战性,但表征质量显著提升。附录 B.2 进一步研究了更广泛增强组合的效果。

其中,一种增强组合特别突出:随机裁剪和随机颜色失真。我们推测,当仅使用随机裁剪作为数据增强时,存在一个严重的问题,即同一图像的大多数图块共享相似的颜色分布。图6显示,颜色直方图足以区分图像。神经网络可能利用这一快捷方式来解决预测任务。因此,将裁剪与颜色失真结合是学习可泛化特征的关键。

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

为了进一步证明颜色增强的重要性,我们调整了颜色增强的强度,如表1所示。较强的颜色增强显著提高了所学习的无监督模型的线性评估性能。在这种背景下,AutoAugment(Cubuk et al., 2019)是一种通过监督学习得出的复杂增强策略,但其效果不如简单的裁剪和(更强的)颜色失真。当在监督模型中使用相同的增强组合时,我们观察到更强的颜色增强并没有提高,甚至降低了其性能。因此,实验表明无监督对比学习比监督学习从更强的(颜色)数据增强中获益更多。尽管之前的研究已经指出数据增强对自监督学习有用(Doersch et al., 2015; Bachman et al., 2019; Hénaff et al., 2019; Asano et al., 2019),我们表明某些在监督学习中无助于提高准确率的数据增强,仍然可以显著改善对比学习的效果。

4. 编码器和投影头的架构

4.1 无监督对比学习在更大的模型上表现更好

图7显示,增加模型的深度和宽度均能提升性能。尽管类似的结果在监督学习中也成立(He et al., 2016),但我们发现无监督模型上的线性分类器与监督模型之间的差距随着模型规模的增加而缩小,这表明无监督学习比监督学习更能从更大的模型中获益。

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

我们进一步研究了投影头 g(h)g(h) 的重要性。图8展示了使用三种不同架构的投影头在线性评估中的结果:(1) 恒等映射;(2) 线性投影,类似于先前的一些方法(Wu et al., 2018);(3) 默认的非线性投影,具有一个额外的隐藏层(带有ReLU激活),类似于 Bachman 等人(2019)。结果表明,非线性投影优于线性投影(提升3%),且远优于无投影(提升超过10%)。在使用投影头时,不同输出维度的结果基本一致。此外,即使使用非线性投影,投影头之前的层 hh 仍比投影头之后的层 z=g(h)z = g(h) 更好(提升超过10%),这表明投影头前的隐藏层比投影头后的层更适合作为表征。

我们推测,使用非线性投影前的表征更好的原因是对比损失引起的信息丢失。特别地,z=g(h)z = g(h) 被训练为对数据变换保持不变。因此,gg 可能会去除一些对下游任务有用的信息,比如对象的颜色或方向。通过利用非线性变换 g()g(\cdot)hh 中可以保留更多信息。为了验证这一假设,我们在预训练期间进行实验,分别使用 hhg(h)g(h) 来预测所施加的变换。在此,我们设定 g(h)=W(2)σ(W(1)h)g(h) = W^{(2)}\sigma(W^{(1)}h),输入和输出维度相同(即2048)。表3显示,hh 包含了关于所施加变换的更多信息,而 g(h)g(h) 丢失了一些信息。附录B.4中提供了进一步分析。

5. 损失函数和批量大小

5.1 带有可调温度的归一化交叉熵损失优于其他替代方法

我们将 NT-Xent 损失与其他常用的对比损失函数进行了比较,如逻辑损失(Mikolov et al., 2013)和边际损失(Schroff et al., 2015)。表2展示了目标函数及其对输入的梯度。通过观察梯度,我们发现:(1) L2L_2 归一化(即余弦相似度)结合温度,可以有效地对不同样本进行加权,合适的温度可以帮助模型从难负样本中学习;(2) 与交叉熵不同,其他目标函数不会根据负样本的相对难度进行加权。因此,使用这些损失函数时,通常需要半难负样本挖掘(Schroff et al., 2015):即不对所有损失项计算梯度,而只使用半难负样本(即那些在损失边界内、距离较近但比正样本远的样本)。

为确保比较的公平性,我们对所有损失函数使用相同的 L2L_2 归一化,并调节超参数以报告最佳结果。表4显示,尽管(半难)负样本挖掘有帮助,但其最佳结果仍远不及我们的默认 NT-Xent 损失。

接下来,我们测试在默认 NT-Xent 损失中 L2L_2 归一化(即余弦相似度 vs 点积)和温度 τ\tau 的重要性。表5显示,在没有归一化和合适的温度缩放时,性能显著下降。如果没有 L2L_2 归一化,对比任务的准确率会更高,但在线性评估中的表征质量会更差。

5.2 对比学习从更大的批量大小和更长的训练时间中获益更多

图9显示了不同批量大小在不同训练周期下的影响。我们发现,当训练周期较少(如100个周期)时,较大的批量大小比较小的批量大小有显著优势。随着训练步数/周期的增加,如果批量内样本被随机重新采样,不同批量大小之间的差距会减小甚至消失。与监督学习不同(Goyal et al., 2017),对比学习中更大的批量大小提供了更多的负样本,从而促进了收敛(即在给定准确率下需要更少的周期和步数)。更长的训练时间也提供了更多的负样本,提高了结果。附录B.1中提供了更长训练步数的结果。

6. 与当前最先进方法的比较

在本节中,我们与 Kolesnikov 等人(2019)和 He 等人(2019)类似,使用不同宽度的 ResNet-50(宽度倍率为1×、2×和4×)进行比较。为获得更好的收敛性,我们在此训练了1000个周期(具体实验细节见附录B.6)。表1展示了不同方法的更多数值对比。与之前需要专门设计的架构的方法相比,我们使用标准网络获得了显著更好的结果。我们的 ResNet-50(4×)结果与监督预训练的 ResNet-50 相当。

半监督学习

我们按照 Zhai 等人(2019)的方法,以类平衡的方式在 ILSVRC-12 训练集中抽样 1% 或 10% 的标记数据集(分别约为每类12.8和128张图片)。我们简单地在标记数据上微调整个基础网络,未使用正则化(详见附录B.5)。表7展示了我们的方法与近期方法的比较(Zhai et al., 2019; Xie et al., 2019; Sohn et al., 2020; Wu et al., 2018; Donahue & Simonyan, 2019; Misra & van der Maaten, 2019; Hénaff et al., 2019)。尽管 Zhai 等人(2019)的监督基线通过强化超参数搜索(包括增强)而变得很强,但我们的方法在1%和10%标记数据上都显著提升了最先进水平。值得注意的是,我们的预训练 ResNet-50(2×,4×)在全量 ImageNet 数据上的微调结果也显著优于从头训练的模型(最高提升2%,详见附录B.2)。

迁移学习

我们在12个自然图像数据集上测试了迁移学习性能,分别在线性评估(固定特征提取器)和微调设置下进行。按照 Kornblith 等人(2019)的方法,我们为每个模型-数据集组合进行超参数调优,并在验证集上选择最佳超参数。表8展示了 ResNet-50(4×)模型的结果。在微调的情况下,我们的自监督模型在5个数据集上显著优于监督基线,而监督基线仅在2个数据集上表现更好(即 Pets 和 Flowers)。在其余5个数据集上,两者的表现统计上相当。附录B.8中提供了标准 ResNet-50 架构的完整实验细节和结果。

7. 相关工作

让图像表征在小变换下保持一致的想法最早可以追溯到 Becker & Hinton(1992)。我们通过利用数据增强、网络架构和对比损失的最新进展来扩展这一思想。类似的一致性思想也在其他背景中被探索,如半监督学习中的类别标签预测(Xie et al., 2019; Berthelot et al., 2019)。

手工设计的伪任务

最近的自监督学习复兴始于人为设计的伪任务,例如相对位置预测(Doersch et al., 2015)、拼图解题(Noroozi & Favaro, 2016)、颜色化(Zhang et al., 2016)和旋转预测(Gidaris et al., 2018; Chen et al., 2019)。尽管可以通过更大的网络和更长的训练获得良好结果(Kolesnikov et al., 2019),这些伪任务依赖于某些启发式方法,从而限制了所学表征的通用性。

对比视觉表征学习

自 Hadsell 等人(200

6)以来,这些方法通过正负样本对比来学习表征。在这方面,Dosovitskiy 等人(2014)提出将每个实例视为由特征向量(参数形式)表示的类。Wu 等人(2018)提出使用记忆库来存储实例类表征向量,这种方法被多篇近期论文采用和扩展(Zhuang et al., 2019; Tian et al., 2019; He et al., 2019; Misra & van der Maaten, 2019)。其他工作探索了使用批内样本作为负样本而非记忆库(Doersch & Zisserman, 2017; Ye et al., 2019; Ji et al., 2019)。

近期文献尝试将这些方法的成功与潜在表征之间互信息的最大化联系起来(Oord et al., 2018; Hénaff et al., 2019; Hjelm et al., 2018; Bachman et al., 2019)。然而,目前尚不清楚对比方法的成功是否由互信息决定,或由特定形式的对比损失决定(Tschannen et al., 2019)。

我们注意到,尽管我们的框架中的几乎所有组件在之前的工作中都有出现,具体的实现可能有所不同。相比于以往的工作,我们框架的优越性并不是由某个单一的设计选择决定的,而是它们组合在一起的结果。附录C中提供了我们设计选择与之前工作的全面比较。

8. 结论

在这项工作中,我们提出了一个简单的框架及其在对比视觉表征学习中的实例化。我们仔细研究了其各个组件,展示了不同设计选择的影响。通过结合这些发现,我们在自监督、半监督和迁移学习方面显著超越了之前的方法。

我们的方法与 ImageNet 上的标准监督学习的差异仅在于数据增强的选择、网络末端的非线性投影头以及损失函数的使用。这一简单框架的有效性表明,尽管近年来对自监督学习的兴趣激增,但其潜力仍未被充分重视。

image.png

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Dong

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!