文献库

A Cookbook of Self-Supervised Learning

1 什么是自监督学习及其重要性?

自监督学习,被称为“智能的暗物质”1,是推动机器学习进步的一条有前景的路径。与受限于标注数据可用性的监督学习不同,自监督方法可以从海量未标注数据中学习 [Chen et al., 2020b, Misra and Maaten, 2020]。自监督学习(SSL)支撑了深度学习在自然语言处理领域的成功,推动了从自动机器翻译到基于网络规模未标注文本语料库训练的大型语言模型等一系列进步 [Brown et al., 2020, Popel et al., 2020]。在计算机视觉领域,SSL 通过诸如在 10 亿张图像上训练的 SEER 等模型,突破了数据规模的限制 [Goyal et al., 2021]。用于计算机视觉的 SSL 方法已经能够匹配甚至在某些情况下超越在标注数据上训练的模型,即使在像 ImageNet 这样竞争激烈的基准测试上也是如此 [Tomasev et al., 2022, He et al., 2020a, Deng et al., 2009]。SSL 也已成功应用于其他模态,如视频、音频和时间序列 [Wickstrøm et al., 2022, Liu et al., 2022a, Schiappa et al., 2022a]。

自监督学习基于未标注输入定义一个前置任务,以产生具有描述性和可理解性的表征 [Hastie et al., 2009, Goodfellow et al., 2016]。在自然语言中,一个常见的 SSL 目标是掩码文本中的一个词并预测周围的词。这种预测单词周围上下文的目标鼓励模型捕捉文本中单词之间的关系,而无需任何标签。相同的 SSL 模型表征可用于一系列下游任务,如跨语言文本翻译、摘要生成,甚至文本生成等。在计算机视觉中,也存在类似的目标,例如 MAE 或 BYOL 等模型学习预测图像的掩码块或表征 [Grill et al., 2020, He et al., 2022]。其他 SSL 目标鼓励将同一图像的两个视图(例如通过添加颜色或裁剪形成)映射到相似的表征。

在海量未标注数据上训练的能力带来了诸多好处。传统的监督学习方法通常在特定任务上进行训练,该任务通常根据可用的标注数据先验已知,而 SSL 学习的是对许多任务都有用的通用表征。SSL 在医学等领域尤其有用,因为在这些领域中标签成本高昂或特定任务无法先验得知 [Krishnan et al., 2022, Ciga et al., 2022]。也有证据表明,与监督学习模型相比,SSL 模型学习到的表征对对抗样本、标签损坏和输入扰动更具鲁棒性,并且更加公平 [Hendrycks et al., 2019, Goyal et al., 2022]。因此,SSL 是一个日益受到关注的研究领域。然而,就像烹饪一样,训练 SSL 方法是一门精细的艺术,入门门槛很高。

1.1 为何编写这本自监督学习手册?

尽管自监督学习的许多组成部分对研究人员而言并不陌生,但成功训练一个自监督学习方法涉及从预文本任务到训练超参数等一系列令人眼花缭乱的选择。自监督学习研究因其(i)高昂的计算成本,(ii)缺乏完全透明的论文来详细阐述充分发挥自监督学习潜力所需的复杂实现,以及(iii)缺乏统一的自监督学习词汇和理论视角,而具有较高的入门门槛。随着自监督学习确立了与传统基于重建的无监督学习方法(如(去噪、变分)自编码器 [Vincent et al., 2008, 2010, Kingma and Welling, 2013])截然不同的范式,我们用于统一理解自监督学习的词汇变得十分有限。事实上,试图从单一视角统一自监督学习方法的尝试直到去年才开始出现 [HaoChen et al., 2021, Balestriero and LeCun, 2022, Shwartz-Ziv et al., 2022, Garrido et al., 2022b]。缺乏一个共同的基础来刻画自监督学习方法的不同组成部分,使得研究人员开始从事自监督学习研究变得更加困难。与此同时,由于自监督学习现已广泛应用于现实世界,该领域亟需新的研究人员。然而,关于自监督学习的泛化保证、公平性属性以及对对抗攻击甚至自然发生变化的鲁棒性,仍有许多开放的研究问题。这些问题对于自监督学习方法的可靠性至关重要。

此外,自监督学习——作为一门经验驱动的学科——伴随着许多可变的组成部分(主要是超参数),这些部分可能影响最终表征的关键属性,但在已发表的工作中未必得到详细说明。也就是说,要开始研究自监督学习方法,人们必须首先对这些方法进行详尽的实证探究,以充分理解所有这些可变部分的影响和行为。这种实证盲区是很大的限制,因为它们需要大量的计算资源和已有的实践经验。总而言之,看似不同却相互重叠的方法同时取得最先进性能、现有理论研究匮乏以及现实世界中的广泛部署,这些因素使得编写一本统一各种技术及其配方的手册对于降低自监督学习的研究入门门槛至关重要。

我们的目标是通过以手册的风格奠定基础并介绍最新的自监督学习配方,来降低自监督学习研究的入门门槛。要成功烹饪,你必须首先学习基本技巧:切菜、炒菜等。我们在第2节中从自监督学习的基本技术开始,使用统一的词汇进行介绍。具体来说,我们描述了各类方法,并辅以理论线索,从统一的角度连接它们的目标。我们在概念框中突出关键概念,如损失项或训练目标。接下来,厨师必须学会熟练运用这些技巧来制作一道美味的菜肴。这需要学习现有配方、准备食材并评估菜肴。在第3节中,我们介绍了成功实现自监督学习方法时的实际考量。我们讨论了常见的训练配方,包括超参数选择、如何组装架构和优化器等组件,以及如何评估自监督学习方法。我们还分享了来自顶尖研究人员关于常见训练配置和陷阱的实用建议。我们希望这本手册能成为成功训练和探索自监督学习的实用基础。

2 自监督学习的家族与起源

自监督学习方法自2020年以来经历了一次复兴,这在很大程度上得益于超大规模数据集和高内存GPU的可用性。然而,自监督学习的起源可以追溯到深度学习时代的最初阶段。

2.1 SSL的起源

当代方法建立在早期实验所获得的知识基础之上。在本节中,我们简要概述2020年之前SSL的主要思想。尽管许多具体方法因在基准问题上不再提供最先进的性能而逐渐退出主流应用,且我们不会对其进行详细讨论,但这些论文中的思想构成了许多现代方法的基础。例如,恢复输入中缺失或损坏部分的核心目标,或对比同一图像的两个视图,构成了现代SSL方法的基础。SSL的早期进展集中在开发属于以下(有时重叠的)类别的方法上:

  1. 信息恢复:已开发出多种方法,用于掩盖或移除图像中的某些内容,然后训练神经网络以恢复缺失的信息。基于着色的SSL方法将图像转换为灰度图,然后训练网络预测原始的RGB值 [Zhang et al., 2016, Larsson et al., 2016, Vondrick et al., 2018]。由于着色需要理解对象的语义和边界,着色被证明是一种用于对象分割的早期SSL方法。信息恢复最直接的应用是掩盖(即移除)图像的一部分,然后训练网络修复缺失的像素值 [Pathak et al., 2016]。这一思想演变为掩码自编码方法 [He et al., 2022],其中掩码区域是图像块的集合,可以使用Transformer进行预测。

  2. 利用视频中的时间关系:虽然本综述侧重于图像(而非视频)处理,但已经开发出一系列专门的方法,通过在视频上进行预训练来学习单图像表示。请注意,信息恢复方法对于视频尤其有用,因为视频包含多种可以被掩盖的信息模态。Wang 和 Gupta [2015] 使用三元组损失预训练模型,该损失促进两个不同帧中对象表示之间的相似性。由此产生的模型在对象检测方面表现良好。Pathak 等人 [2017] 训练模型预测单帧中对象的运动,并调整所得特征以解决单帧检测问题。Agrawal 等人 [2015] 根据多个帧预测相机的自我运动。Owens 等人 [2016] 提出移除视频中的音轨,然后预测缺失的声音。对于像深度映射这样的专门应用,已经提出了自监督方法,可以从无标签的图像对 [Eigen et al., 2014] 以及后来的单摄像头视频帧 [Zhou et al., 2017] 中学习单目深度模型。此类方法仍然是一个活跃的研究领域。

  3. 学习空间上下文:这类方法训练模型理解场景中对象的相对位置和方向。RotNet [Gidaris et al., 2018] 通过应用随机旋转来掩盖重力方向,然后要求模型预测旋转角度。Doersch 等人 [2015] 是最早的SSL方法之一,它简单地预测图像中两个随机采样块的相关位置。这种策略后来被“拼图”方法 [Pathak et al., 2016, Noroozi et al., 2018] 所取代,后者将图像分解为一系列不相交的块,并预测每个块的相关位置。另一个不同的空间任务是学习计数 [Noroozi et al., 2017]:模型被训练以自监督方式输出图像中对象的数量。

  4. 将相似图像分组:通过将语义相似的图像分组,可以学习到丰富的特征。K-means聚类是经典机器学习中使用最广泛的方法之一。许多研究已经改编k-means以使用神经模型执行SSL。深度聚类交替进行以下操作:在特征空间中执行k-means为图像分配标签,并更新模型以尊重这些分配的类别标签 [Caron et al., 2018]。最近对此方法的处理使用均值漂移更新将特征推向其聚类中心,并已被证明可以补充BYOL,一种基于两个网络且目标是为每个样本预测伪标签的方法 [Koohpayegani et al., 2021](在第2.3节讨论)。深度聚类的其他改进包括在特征空间中使用最优传输方法来创建更具信息量的聚类 [Asano et al., 2019]。

  5. 生成模型:一种早期有影响力的SSL方法是贪婪逐层预训练 [Bengio et al., 2006],其中深度网络的层使用自编码器损失一次训练一层。当时的一种类似方法使用受限玻尔兹曼机(RBM),可以逐层训练并堆叠以创建深度信念网络 [Hinton et al., 2006]。虽然这些方法因更简单的初始化策略和更长的训练过程而被放弃,但它们在历史上是SSL的重要应用,因为它们使得训练第一批“深度”网络成为可能。后来的进展改进了自编码器的表示学习能力,包括去噪自编码器 [Vincent et al., 2008]、跨通道预测 [Zhang et al., 2017] 和深度典型相关自编码器 [Wang et al., 2015]。然而,最终发现,当自编码器被要求恢复其输入中缺失的部分时,表示的迁移性更好,从而产生了“信息恢复”类别的SSL方法。

生成对抗网络(GANs)[Goodfellow et al., 2014] 由一个图像生成器和一个区分真实图像与生成图像的判别器组成。该模型对的两个组件都可以在没有监督的情况下进行训练,并且都可能包含对迁移学习有用的知识。早期的GAN论文 [Salimans et al., 2016] 使用GAN组件进行了下游图像分类的实验。还开发了专门的特性学习程序,通过修改判别器 [Springenberg, 2015]、添加生成器 [Dai et al., 2017] 或学习从图像到潜在空间的额外映射 [Donahue et al., 2017] 来改进迁移学习。

  1. 多视图不变性:许多现代SSL方法,尤其是我们在本文中重点关注的那些,使用对比学习来创建对简单变换不变的特性表示。对比学习的思想是鼓励模型相似地表示输入的两个增强版本。在对比学习被广泛采用之前,许多方法通过以各种方式强制不变性引领了这一方向。

从无标签数据中学习的最流行框架之一是使用弱训练网络将伪标签应用于图像,然后以标准监督方式使用这些标签进行训练 [Lee et al., 2013]。这种方法后来通过强制对变换的不变性得到了改进。虚拟对抗训练 [Miyato et al., 2018] 使用图像的伪标签训练网络,并额外执行对抗训练,使得学习到的特征对输入图像的小扰动几乎不变。后来的工作侧重于保持对数据增强变换的不变性。

该类别中的重要早期方法包括MixMatch [Berthelot et al., 2019],它通过对训练图像进行多次不同随机增强后,对网络输出进行平均来选择伪标签,从而产生具有增强不变性的标签。大约在同一时期,人们发现通过训练网络以最大化同一图像在不同视角下表示之间的互信息,可以获得良好的自监督学习性能 [Bachman et al., 2019]。这些基于增强的方法在先前描述的传统方法与本文关注的当代方法之间架起了一座桥梁。

基于这些起源,我们现在将自监督学习分为四大类:深度度量学习类、自蒸馏类、典型相关分析类和掩码图像建模类。

2.2 深度度量学习类:SimCLR/NNCLR/MeanSHIFT/SCL

深度度量学习(DML)类方法基于鼓励输入语义变换版本之间相似性的原则。DML起源于对比损失的概念,该损失将此原则转化为学习目标。对比损失首次在 [Bromley et al., 1993] 中引入,随后在 [Chopra et al., 2005, Hadsell et al., 2006] 中被更正式地定义。在DML中,我们训练一个网络,通过使两个输入的嵌入向量接近(或远离)来预测它们是否来自同一类别(或不是)。由于数据没有标签,为了识别相似的输入,我们通常使用已知的语义保持变换来形成单个输入的变体。这些输入变体被称为正样本对或正样本;我们希望使其不相似的样本被称为负样本。通常有一个边际参数 m,要求来自不同类别的样本之间的距离应大于 m。与对比损失类似,三元组损失 [Weinberger and Saul, 2009, Chechik et al., 2010, Schrof et al., 2015] 具有相似的精神,但由三元组组成:一个查询样本、一个正样本和一个负样本(见公式 (3))。与对比损失相比,三元组损失仅要求正样本和负样本相对于查询点的(不)相似度之差大于边际 m

从DML向现在所称的自监督学习的转变可能发生在Sohn [2016] 引入(N+1)元组损失时,该损失类似于 [Oord et al., 2018] 中的对比预测编码(CPC)损失。将其他样本的正视图用作其他样本对的负视图,作为一种高效策略被引入,称为N-pair-mc损失。Ni et al. [2021b] 表明对比学习是元学习的一个特例,现有的元学习器可以直接应用于自监督学习并获得有竞争力的性能。CPC被扩展到图像领域 [Henaf, 2020]。CPC的一个关键要素是引入了InfoNCE损失,该损失在 Oh Song et al. [2016] 中有描述,并成为自监督学习的核心。

总而言之,DML与对比自监督学习之间的主要范式转变源于几个关键变化,即使用数据增强而非采样来获取正/负样本对,使用更深的网络,以及使用预测器网络,我们在图4中指出了这一点。在深度学习家族中,从范式转变到自监督学习的最著名方法之一是SimCLR。

SimCLR通过鼓励图像的两个增强视图之间的相似性来学习视觉表示。在SimCLR中,两个视图是通过应用一系列变换组合形成的,包括随机调整大小、裁剪、颜色抖动和随机模糊。在编码每个视图后,SimCLR使用一个投影器(通常是多层感知机(MLP)后接ReLU(修正线性单元)激活函数)将初始嵌入映射到另一个空间,在该空间中应用对比损失以鼓励视图之间的相似性。对于下游任务,已证明提取投影器之前的表示可以提高性能。关于投影器作用的进一步讨论见第2.6.1和3.2节。

与SimCLR中使用的InfoNCE损失一起的另一个关键要素是Wu et al. [2018] 引入的非参数softmax。这个名称的由来是因为它无需在表示之上使用“参数化”线性层来计算softmax,而是直接比较表示之间的相似性。这种损失公式已经包含了softmax中的温度参数,该参数负责增加或减少预测中事件的尖锐程度。其他值得注意的发展包括Schrof et al. [2015] 使用带有主动三元组选择(硬正样本、硬负样本)的三元组损失,这些样本可以来自当前小批量或来自过去的检查点(类似于动量网络,在第2.3节讨论)。Weinberger and Saul [2009] 在三元组损失中引入了推-拉加权,即推开负样本的同时拉近正样本,以增加基于K-NN模型的边际。Tian et al. [2020a] 引入了多个正视图的可能性。

除了使用语义保持变换形成正样本外,挖掘数据中自然出现的正样本对也是可能的。一个标志性的三元组损失基于视频帧,其中正样本对来自相邻帧(而负样本来自远距离帧),由Sermanet et al. [2018] 开发,被称为时间对比(TC)学习。非线性ICA [Hyvarinen and Morioka, 2016] 证明了在执行分类任务时可以学习对数概率密度函数。Alexey et al. [2015] 通过比较图像块的不同变换来训练一个分类前置任务。一个缺点是这种设置可能涉及太多类别,导致下游任务性能下降。为了克服这一点,NCE已被成功应用于Mnih and Teh [2012], Mnih and Kavukcuoglu [2013] 中,以修改分母,从而避免遍历所有类别。这是基于采样的梯度估计的一种替代方案,后者被发现不太稳定 [Bengio and Senécal, 2003, 2008]。这引入了动量编码器的概念,通过强制特征图不快速变化来实现,这被称为近端算法 [Parikh et al., 2014]。受DML启发的自监督学习中的另一个考虑因素是“硬负样本挖掘”的思想,即有意选择与正样本接近但不同的负样本,以形成更具挑战性的学习目标。接下来,我们描述一种基于自蒸馏的深度度量学习替代方案。

2.3 自蒸馏家族:BYOL/SimSIAM/DINO

自蒸馏方法,如BYOL [Grill等人,2020]、SimSIAM [Chen和He,2021]、DINO [Caron等人,2021]及其变体,依赖于一个简单的机制:将两个不同的视图输入到两个编码器中,并通过一个预测器将一个视图映射到另一个视图。为了防止编码器因对任何输入都预测一个常数而崩溃,人们采用了各种技术。一种常见的防止崩溃的方法是,用另一个编码器权重的运行平均值来更新其中一个编码器的权重。我们讨论


图 1:噪声对比估计。

每种方法的特殊性。

BYOL(自举你的潜在表示)首次引入自蒸馏作为避免崩溃的手段。BYOL使用两个网络以及一个预测器,将一个网络的输出映射到另一个网络。预测输出的网络称为在线网络或学生网络,而产生目标的网络称为目标网络或教师网络。每个网络接收由图像变换(包括随机调整大小、裁剪、颜色抖动和亮度变化)形成的同一图像的不同视图。学生网络在整个训练过程中使用梯度下降进行更新。教师网络则使用在线网络权重的指数移动平均(EMA)更新进行更新。由指数移动平均引起的缓慢更新产生了一种不对称性,这对BYOL的成功至关重要。损失可以定义为

LBYOL(θs,γ)=E(x,t1,t2)(X,T1,T2)[renorm(pγ(fθs(t1(x))))renorm(fθt(t2(x)))22].(9)\mathcal { L } _ { \mathrm{BYOL} } \left( \theta _ { \mathrm{s} } , \gamma \right) = \mathbb{E} _ { ( \mathbf { x } , t _ { 1 } , t _ { 2 } ) \sim ( X , T _ { 1 } , T _ { 2 } ) } \left[ \left. \mathrm{renorm} ( p _ { \gamma } ( f _ { \theta _ { \mathrm{s} } } ( t _ { 1 } ( \mathbf { x } ) ) ) ) - \mathrm{renorm} ( f _ { \theta _ { \mathrm{t} } } ( t _ { 2 } ( \mathbf { x } ) ) ) \right. _ { 2 } ^ { 2 } \right] .\tag{9}

其中表示空间中的两个向量自动进行2\ell _ { 2 } \cdot归一化,即

renorm(v)=vmax(v2+ϵ),(10)\mathrm{renorm} ( { \pmb v } ) = \frac { { \pmb v } } { \operatorname*{max} ( \| { \pmb v } \| _ { 2 } + \epsilon ) } ,\tag{10}

其中ϵ通常设置为112. fθs1 ^ { - 1 2 } . \ f _ { \theta _ { \mathrm{s} } }是在线编码器网络,通常称为由θs\theta _ { \mathrm{s} }参数化的学生网络,pγp _ { \gamma }是由γ\gamma参数化的预测器网络。 \emx X\textbf { \em x } \sim X


图 2:infoNCE 的历史。

输入从数据分布 X 中采样,t1(x),t2(x)t _ { 1 } ( { \pmb x } ) , t _ { 2 } ( { \pmb x } ) 是 x 的两个增强视图,其中 t1T1,t2T2t _ { 1 } \sim T _ { 1 } , t _ { 2 } \sim T _ { 2 } 是两个数据增强。目标网络 fθtf _ { \theta _ { \mathrm{t} } } 与学生网络具有相同的架构,并通过 EMA 更新,其中 ξ\xi 控制目标网络保留其历史信息的程度,如下所示

θtξθt+(1ξ)θs\theta _ { \mathrm{t} } \gets \xi \theta _ { \mathrm{t} } + ( 1 - \xi ) \theta _ { \mathrm{s} }

初始化时 η=θs\eta = \theta _ { \mathrm{s} }


图 3:infoNCE 损失的扩展。


图 4:深度度量学习与对比自监督学习。

SimSiam 旨在理解 BYOL 中哪些组件最为重要。SimSiam 表明,在实践中 EMA 并非必需,即使它能带来小幅的性能提升。这使得可以使用一个简化的损失函数,其定义为

LSimSIAM(θs,γ)=E(x,t1,t2)[renorm(pγ(fθs(t1(x))))sg(renorm(fθs(t2(x))))22],(11)\begin{array} { r } { \mathcal { L } _ { \mathrm{SimSIAM} } \left( \theta _ { \mathrm{s} } , \gamma \right) = \mathbb{E} _ { \left( \mathbf { x } , t _ { 1 } , t _ { 2 } \right) } \left[ \left. \mathrm{renorm} ( p _ { \gamma } ( f _ { \theta _ { \mathrm{s} } } ( t _ { 1 } ( \mathbf { x } ) ) ) ) - \mathrm{sg} ( \mathrm{renorm} ( f _ { \theta _ { \mathrm{s} } } ( t _ { 2 } ( \mathbf { x } ) ) ) ) \right. _ { 2 } ^ { 2 } \right] , } \end{array}\tag{11}


图 5:自标签历史。

为清晰起见,我们省略了 x,t1,t2x , t _ { 1 } , t _ { 2 } 的采样分布。多项工作旨在理解 BYOL 和 SimSiam 如何避免坍缩,例如 Tian 等人 [2021] 或 Halvagal 等人 [2022],他们发现两个分支之间的不对称性是关键,同时训练动态也会隐式地正则化嵌入的方差。

DINO 使用运行均值(running mean)对学生网络的输出进行居中处理(以避免对小批量大小的敏感性),并通过带有温度 τ(通常取约 0.1)的 softmax 对表示进行(平滑的)离散化,如下所示:

LDINO(θs,γ)=E(x,t1,t2)[CrossEnt(softmax(fθs(t1(x))/τ),sg(softmax(center(fθt(t2(x)))/τ)))].(12){ \mathcal { L } } _ { \mathrm{DINO} } \left( \theta _ { \mathrm{s} } , \gamma \right) = \mathbb{E} _ { ( \mathbf { x } , t _ { 1 } , t _ { 2 } ) } \left[ \mathrm{CrossEnt} \left( \mathrm{softmax} { \left( f _ { \theta _ { \mathrm{s} } } ( t _ { 1 } ( x ) ) / \tau \right) } , \mathrm{sg} ( \mathrm{softmax} ( \mathrm{center} { \left( f _ { \theta _ { \mathrm{t} } } ( t _ { 2 } ( x ) ) \right) } / \tau ) ) \right) \right] .\tag{12}

其中与 BYOL 类似,教师网络同样是学生网络权重的移动平均,通常在训练期间遵循从 0.996 到 1 的余弦调度,取值为 ξ\xi。DINO 中由 softmax 引起的离散化可以解释为一种在线聚类机制,其中 softmax 之前的最后一层包含聚类原型及其权重。因此,倒数第二层的输出使用最后一层的权重进行聚类。

iBOT 在 DINO 的基础上构建,并将其目标与直接在潜在空间中应用的掩码图像建模目标相结合。这里,目标重建不是图像像素,而是通过教师网络嵌入的相同补丁。

DINOv2 进一步在 iBOT 的基础上构建,通过改进训练配方、架构,并引入额外的正则化器(如 KoLeo [Sablayrolles 等人,2018]),在线性和 k-NN 评估中显著提升了性能。此外,DINOv2 策划了一个更大的预训练数据集,包含 1.42 亿张图像(进一步讨论见第 2.7 节)。

许多其他方法属于这一自蒸馏家族。MoCo 是另一种基于构建字典查找的流行方法,已被证明在某些情况下在分割和目标检测基准上超越监督学习 [He 等人,2020a]。最初,动量编码器被引入作为对比学习中队列的替代品 [He 等人,2020a],这扩展了 [Dosovitskiy 等人,2014] 的结果。MoCo 的移动平均使用相对较大的动量,默认值为 ξ=0.999\xi = 0 . 9 9 9。这种较高的动量值比较小的值(如 ξ=0.9\xi = 0 . 9)效果要好得多。当 SimCLR 引入投影器和更强的数据增强时,MoCoV2 [Chen 等人,2020d] 也紧随其后,采用了更强的数据增强和投影器头以提升性能。类似地,ISD [Tejankar 等人,2021] 使用 KL 散度将查询分布与学生分布中的锚点进行比较,从而放宽了正负样本之间的二元区分。MSF [Koohpayegani 等人,2021] 将查询的最近邻表示与学生目标的表示进行比较,然后通过重新归一化最小化它们之间的 2\ell _ { 2 } 距离(类似于余弦相似度最大化)。另一种方法 SSCD 基于对比目标用于复制检测任务,超越了复制检测模型和其他对比方法 [Pizzi 等人,2022]。除了对比目标的广泛使用外,许多其他方法在其训练机制中也采用了类似的运行平均更新。例如,自蒸馏 [Hinton 等人,2015,Furlanello 等人,2018]、强化学习中的深度 Q 网络 [Mnih 等人,2013]、半监督学习中的 Mean Teacher [Tarvainen 和 Valpola,2017],甚至监督和生成建模中的模型平均 [Jean 等人,2014]。

2.4 典型相关分析家族:VICReg/BarlowTwins/SWAV/W-MSE

SSL典型相关分析家族起源于典型相关框架(CCA)[Hotelling, 1992]。CCA的总体目标是通过分析两个变量之间的互协方差矩阵来推断它们之间的关系。具体来说,设 XRD\pmb { X } \in \mathbb{R} ^ { D }YRD\pmb { Y } \in \mathbb{R} ^ { D }。CCA框架寻求两个变换 U=fx(X)U = f _ { x } ( { \pmb X } )

V=fy(Y)V = f _ { y } ( \boldsymbol { Y } ),使得

L=n=1NUn,Vn,such that 1Nn=1NUn=1Nn=1NVn=0 z e r o - m e a n r e p r e s e n t a t i o n s 1NUTU=1NVTV=I z e r o - r e p r e s e n t a t i o n s ,  (13)\begin{array} { c } { { \displaystyle { \mathcal { L } } = - \sum _ { n = 1 } ^ { N } \langle U _ { n } , V _ { n } \rangle , } } \\ { { \mathrm { s u c h \ t h a t \ } } } \\ { { \displaystyle \underbrace { \frac { 1 } { N } \sum _ { n = 1 } ^ { N } U _ { n } = \frac { 1 } { N } \sum _ { n = 1 } ^ { N } V _ { n } = 0 } _ { \mathrm { \texttt { z e r o - m e a n r e p r e s e n t a t i o n s } } } \underbrace { \frac { 1 } { N } U ^ { T } U = \frac { 1 } { N } V ^ { T } V = I } _ { \mathrm { \texttt { z e r o - r e p r e s e n t a t i o n s } } } , \ ~ } } \end{array}\tag{13}

其中d(输出映射的维度)满足 dmin(dim(X),dim(Y))d \leq \operatorname*{min} ( \dim ( X ) , \dim ( Y ) )。线性CCA [Hotelling, 1992] 考虑两个映射为线性的情况,此时最优参数可以通过 Σx12ΣxyΣy12\Sigma _ { x } ^ { - \frac { 1 } { 2 } } \Sigma _ { x y } \Sigma _ { y } ^ { - \frac { 1 } { 2 } } 的SVD分解找到,其中涉及 X,YX , Y 的协方差矩阵及其互协方差。非线性CCA研究的一个重大进展由Breiman和Friedman [1985] 在单变量输出设置下取得,以及Makur等人 [2015] 在多变量输出设置下取得,他们将公式(13)的解与交替条件期望(ACE)方法联系起来。Painsky等人 [2020] 研究了使用交替条件期望的非线性CCA最优表示之间的联系,证明了新的理论界限,从而进一步改进了CCA。

这些思想被扩展到深度学习中,形成了深度典型相关自编码器(DCCAE),这是一种通过CCA正则化的自编码器。Hsieh [2000] 和 Andrew等人 [2013] 引入了联合学习两个网络 f1,f2f _ { 1 } , f _ { 2 } 参数的目标,使得它们的输出最大程度相关。这些网络的输入是两个视图 X1X _ { 1 }X2X _ { 2 }。具体来说,目标是为每个网络找到参数 θ1,θ2\theta _ { 1 } , \theta _ { 2 },使得

(θ1,θ2)=argmax(θ1,θ2)corr(f1(X1;θ1),f2(X2;θ2).(14)\begin{array} { r } { ( \theta _ { 1 } ^ { * } , \theta _ { 2 } ^ { * } ) = \operatorname * { a r g m a x } _ { ( \theta _ { 1 } , \theta _ { 2 } ) } \operatorname{corr} ( f _ { 1 } ( X _ { 1 } ; \theta _ { 1 } ) , f _ { 2 } ( X _ { 2 } ; \theta _ { 2 } ) . } \end{array}\tag{14}

这个DCCAE目标在Wang等人 [2015] 中被扩展到多变量输出和任意DDN。

从这些起源中,衍生出了诸如VICReg [Bardes等人, 2021]、Barlow Twins [Zbontar等人, 2021]、SWAV [Caron等人, 2020] 和 W-MSE [Ermolov等人, 2021] 等SSL方法。VICReg是这些方法中最新的一个,它平衡了基于两个视图表示协方差矩阵的三个目标:方差、不变性和协方差,如图6所示。对表示每个维度的方差进行正则化可以防止坍缩,不变性确保两个视图被相似地编码,而协方差鼓励表示的不同维度捕获不同的特征。

2.5 掩码图像建模

许多早期著名的计算机视觉自监督预训练算法会对训练图像施加退化处理,例如去色 [Zhang et al., 2016]、加噪 [Vincent et al., 2008] 或打乱图像块 [Noroozi and Favaro, 2016],并教导模型撤销这些退化。上下文编码器(Context encoders)则相反,它们掩码掉图像的大部分区域,并将其像素值替换为白色,训练一个自编码器来修复这些白色块 [Pathak et al., 2016]。这种早期的掩码图像建模尝试在下游任务上未能达到与监督学习相竞争的性能,并且早于现代掩码训练流程所基于的视觉Transformer架构。随后,BERT [Devlin et al., 2019] 通过将输入到Transformer语言模型的文本令牌替换为可学习的掩码令牌,并教导模型恢复原始文本,从而震撼了自然语言处理领域。这种范式被称为掩码语言建模(MLM),也可以被解释为上述策略的一种形式:通过掩码对样本进行退化,并教导模型撤销掩码退化。MLM 以及跨度填充技术,至今仍是大型语言模型流行的自监督学习目标 [Rafel et al., 2020, Wang et al., 2022a, Tay et al., 2022]。


图 6:VICReg:通过惩罚方差、不变性和协方差项来从未标记数据中学习表示。

我们也可以类似地掩码掉图像的部分区域,并教导模型修复它们。这种预训练视觉策略被称为掩码图像建模(MIM)。受 BERT 启发,Dosovitskiy 等人利用视觉Transformer架构,掩码掉图像块令牌并将其替换为可学习的掩码令牌。然后他们教导模型直接预测像素值,但他们发现这种预训练策略的效果明显不如监督预训练。

Bao 等人 [2021a] 指出,将 BERT 策略直接应用于图像是困难的,因为文本令牌只能取少量值,可以作为分类问题来预测,而图像块可能取的值要多得多,因此其类别数远超适合分类的范畴。相反,作者将 MIM 视为一个回归问题,首先使用自编码器将图像块编码为离散令牌,然后预训练他们的Transformer来预测掩码令牌的离散令牌值。BEiT 在下游图像分类和语义分割任务上取得了相较于先前监督和自监督基线显著提升的性能,但其训练流程复杂,因为它需要一个强大的自编码器来将图像块转换为离散令牌。

为了简化 MIM 预训练,两项同期工作 [He et al., 2022, Xie et al., 2022] 分别提出了简化算法——掩码自编码器(MAE)和 SimMIM,它们直接重建被掩码的图像块,而非像 BEiT 那样重建从编码器提取的离散图像令牌。此外,这些简化的预训练策略在下游图像分类、语义分割和目标检测任务上取得了优于 BEiT 的性能。此后,掩码图像建模在广泛的视觉任务 [Zhou et al., 2022a, Woo et al., 2023, Oquab et al., 2023] 甚至视觉-语言表示学习 [Fang et al., 2022a] 中取得了具有竞争力的性能。在使用冻结编码器时最成功的方法,iBOT [Zhou et al., 2022a] 和 DINOV2 [Oquab et al., 2023],采用了掩码图像建模与更经典方法(如自蒸馏)的混合。然而,它们的掩码图像建模目标是在潜在空间中进行重建,使用教师网络提供目标,而非使用原始图像作为重建目标。

考虑到 MIM 从根本上说是一项生成式建模任务。这类模型被训练为在观察到部分图像块的条件下生成缺失的图像部分。请注意,BEiT、MAE 和 SimMIM 在部署到下游预测问题时,会移除解码器并用预测头替换。然而,掩码图像模型也可以实现强大的生成建模 [Chang et al., 2022],包括文本条件生成 [Chang et al., 2023]。与按顺序生成图像块的图像生成自回归模型 [Yu et al.] 相比,基于 MIM 的生成模型效率显著更高,因为它们可以并行生成图像块。

在第 3.6 节中,我们将讨论最先进的掩码图像建模系统为实现如此有竞争力的性能所利用的各种技术。


图 7:掩码图像建模简史

2.6 自监督学习的理论统一

2.6.1 自监督学习的理论研究

大量工作试图统一各种自监督学习方法。在 Huang 等人 [2021] 的工作中,Barlow Twins 准则被证明与对比损失的上界相关。这表明对比方法和基于协方差的方法之间存在联系。Garrido 等人 [2022b] 进一步推进了这一方向,通过推导两种方法之间的精确差距,证明了基于协方差的方法和对比准则在归一化后是等价的。这些结果在经验上得到了进一步验证,因为方法在 ImageNet 规模(120 万个样本)上表现出相似的性能和表示特性。方法之间的相似性也在 Tao 等人 [2021] 中进行了研究,该工作从损失梯度的角度探讨了这种统一性。

对比学习与其他目标之间的关系。 最初,InfoNCE 被认为是两个视图之间互信息的变分近似 [Aitchison and Ganev, 2023, Wang and Isola, 2020, Oord et al., 2018]。Li 等人 [2021a] 通过希尔伯特-施密特独立性准则(HSIC)的视角解释了 InfoNCE 在对比学习中的作用,该准则被用来表示不同变换之间互信息(MI)的变分下界。Tschannen 等人 [2020] 表明,InfoNCE 的性能不能仅用互信息来解释。相反,其他因素如特征提取器和互信息估计器的公式化方式也很重要,并可能导致截然不同的性能 [Guo et al., 2022a]。其他理论表明,InfoNCE 在“正”样本的对齐和整体特征表示的均匀性之间取得平衡 [Wang and Isola, 2022],或者(在强假设下)它可以识别假设的数据生成过程中的潜在结构,类似于非线性 ICA [Khemakhem et al., 2020]。在 Wang 和 Isola [2020] 中,定理 1 表明,使用 RBF 核(一种将特征映射到更高维空间的表达性映射)的对比学习收敛到球面上的均匀分布,并带有匹配对。[Tian, 2022] 表明,使用深度线性网络的对比学习等价于主成分分析(PCA),而 [Tian, 2023] 进一步分析了在使用对比损失训练时,架构中非线性所扮演的角色,表明非线性会导致许多局部最优解,这些最优解可以容纳训练数据中的多样模式,而线性网络只能学习单一的主导模式。Hjelm 等人 [2019] 引入了 Deep InfoMax (DIM),它通过使用输入的局部特征来最大化深度神经网络编码器输入和输出之间的互信息,这一思想在 Veličković 等人 [2018] 中被扩展到图数据。

统一的对比损失。 Tian [2022] 将对比损失统一为最小化一个通用的损失函数族 Lϕ,ψ\mathcal { L } _ { \phi , \psi },其中 ϕ\phiψ\psi 是单调递增且可微的标量函数

minθLϕ,ψ(θ)=i=1Nϕ(jiψ(zizi22zizj22)).(15)\operatorname*{min} _ { \theta } \mathcal { L } _ { \phi , \psi } ( \theta ) = \sum _ { i = 1 } ^ { N } \phi \left( \sum _ { j \ne i } \psi ( \| z _ { i } - z _ { i ^ { \prime } } \| _ { 2 } ^ { 2 } - \| z _ { i } - z _ { j } \| _ { 2 } ^ { 2 } ) \right) .\tag{15}

其中 z 是表示,索引 i 和 jj 从 1 到 N。通过不同的 ϕ\phiψ\psi,公式 15 涵盖了许多损失函数(图 8)。特别是,设置 ϕ(x)=τlog(ϵ+x)\phi ( x ) = \tau \log ( \epsilon + x )ψ(x)=exp(x/τ)\psi ( x ) = \exp ( x / \tau ) 给出了 InfoNCE 损失 [Oord et al., 2018] 的广义版本:

Lnce:=τi=1Nlogezizi22/τϵezizi22/τ+jiezizj22/τ(16)\mathcal { L } _ { n c e } : = - \tau \sum _ { i = 1 } ^ { N } \log \frac { e ^ { - \| z _ { i } - z _ { i ^ { \prime } } \| _ { 2 } ^ { 2 } / \tau } } { \epsilon e ^ { - \| z _ { i } - z _ { i ^ { \prime } } \| _ { 2 } ^ { 2 } / \tau } + \sum _ { j \neq i } e ^ { - \| z _ { i } - z _ { j } \| _ { 2 } ^ { 2 } / \tau } }\tag{16}


图 8:问题设置。左图:数据点(第 i 个样本 x[i] 及其增强版本 x[i],第 j 个样本 x[j])\pmb { x } [ j ] ) 被送入权重为 θ 的网络,以产生输出 z[i], z[i] 和 z[j]z [ j ]。从输出 z 中,我们计算 z[i]z [ i ]z[j]z [ j ] 之间的成对平方距离 dij2d _ { i j } ^ { 2 } 以及 z[i]z [ i ]z[i]z [ i ^ { \prime } ] 之间的类内平方距离 di2d _ { i } ^ { 2 },用于具有通用对比损失族 Lϕ,ψ\mathcal { L } _ { \phi , \psi }(公式 15)的对比学习。右图:不同的现有损失函数对应于不同的单调函数 ϕ\phi 和 ψ。这里 [x]+:=max(x,0)[ x ] _ { + } : = \operatorname*{max} ( x , 0 )

其中 ϵ>0\epsilon > 0 是某个常数,例如在 He 等人 [2020b], Tian 等人 [2020a] 中使用了 ϵ = 1,ϵ=0\epsilon = 0 则产生了 SimCLR [Chen et al., 2020b] 的一个轻微变体,即 DCL 损失 [Yeh et al., 2021]。

困难负样本采样。 负样本挖掘在(深度)度量学习中已被深入研究。最近,一些工作专注于对困难样本赋予更大的权重 [Robinson et al., 2020]。然而,Kalantidis 等人 [2020], Tian [2022] 表明,具有 ψ=ex/τ\psi = e ^ { x / \tau } 的对比自监督损失在批次级别已经具有这种机制,无需显式的“困难负样本采样”就能关注困难负样本对。这意味着对比损失需要大批量大小来确保观察到困难负样本,这会带来额外的内存成本。

投影头的研究。 投影头网络,由 Chen 等人 [2020b] 首次引入,将表示映射到另一个空间,在该空间中计算损失。尽管有强有力的经验证据表明投影头能提高性能,但很少有理论工作尝试解释其作用。Jing 等人 [2022] 研究了线性投影头在对比学习中的作用。更具体地说,他们认为投影头可以防止表示空间中的维度坍缩,并且只需要是对角且低秩的即可实现这一点。尽管所提出的无投影头方法优于使用单层线性投影头的 SimCLR,但对于 2 层和 3 层 MLP 投影头,其性能仍然无法企及。Cosentino 等人 [2022] 研究了当增强是李群变换时投影头和数据增强之间的相互作用,并且像 Mialon 等人 [2022] 一样,对投影头的宽度和深度的影响提供了解释。关于投影头作用的进一步实证研究将在第 3.2 节中介绍。

2.6.2 表征的维度坍缩

虽然联合自监督方法的目标是学习有意义的表征,但其中相当一部分方法都遭受着所谓的维度坍缩问题。


图 9:投影器之前(左)和投影器之后(右)的维度坍缩示意图。不同方法在投影器之后遭受不同程度的坍缩;而投影器之前的表征则不会发生此类坍缩。

当表征的不同维度间编码的信息存在冗余时,就会发生维度坍缩。换句话说,在投影器的输出中,嵌入是秩亏的,这可以通过嵌入的奇异值谱来近似评估,如图 12 所示。

这一现象最早由 Hua 等人 [2021] 阐明,他们发现使用白化批归一化有助于缓解坍缩。Jing 等人 [2022] 也从理论角度研究了维度坍缩,重点关注对比方法。随后的几项工作将维度坍缩与性能影响联系起来 [He and Ozay, 2022, Ghosh et al., 2022, Li et al., 2022a, Garrido et al., 2022a]。一些工作专注于无监督评估 [Ghosh et al., 2022, Garrido et al., 2022a],发现维度坍缩可以作为下游性能的良好代理指标。

人们引入了不同的维度坍缩度量方法,例如奇异值分布的熵 [Garrido et al., 2022a]、经典秩估计器 [Jing et al., 2022]、对奇异值分布拟合幂律 [Ghosh et al., 2022] 或奇异值分布的 AUC [Li et al., 2022a]。尽管如此,所有这些度量方法都侧重于评估表征的秩,以衡量学习表征中的维度坍缩程度。

2.7 预训练数据

精选(标准)数据:最常见的做法是在精选数据集上预训练 SSL 模型,例如 ImageNet 以及 PASS [Asano et al., 2021] 等替代数据集。这些数据集通常类别均衡,并包含以物体为中心的图像,其中物体通常突出地出现在照片中心。

使用野外数据进行训练:尽管 ImageNet 一直是预训练的首选数据集,但它绝非唯一选择。其简单性(以物体为中心、单一物体、类别均衡)使其成为一个非常好的试验场,但大多数野外数据集并不那么干净。如果我们希望利用大规模非精选数据集,SSL 方法需要能够很好地迁移到 ImageNet 之外。为此,一些工作探索了在大规模非精选数据集 [Goyal et al., 2021] 或与 ImageNet 不同的数据集(如 COCO [El-Nouby et al., 2021] 或 iNaturalist [Assran et al., 2022a])上进行预训练。虽然这些工作显示了有希望的结果,但 ImageNet(或类似精选数据集)预训练仍然是主流做法。


表 1:通过在 ImageNet 或直接在目标数据集上预训练,在目标数据集上的 top-1 准确率比较。我们使用最初在 ImageNet 上开发的相同数据增强策略来研究其可迁移性,并重点调整与损失相关的超参数。所有方法在所有数据集上都进行了相同迭代次数的预训练。

为了提供更多见解,我们在 Places205 [Zhou et al., 2014] 和 iNaturalist18 [Horn et al., 2018] 上对方法进行了预训练,未改变增强策略,但重点调整了损失相关系数。目的是观察在 ImageNet 上使用的设置是否能很好地迁移到其他数据集。Places205 的优势在于它不以物体为中心,而 iNaturalist 则具有类别幂律分布以及需要大量细粒度信息的特点。我们在表 1 中报告了结果。可以看出,大多数方法在 ImageNet 或目标数据集上预训练时都能达到相似的性能。这表明在 ImageNet 上开发的协议可以较好地迁移,因为我们注意到在 ImageNet 上最优的超参数在其他数据集上也往往表现良好。不过有一个明显的例外:SimCLR 和 MSN 在 iNaturalist18 上直接预训练时表现不佳。虽然这里无法得出精确结论,但这表明某些方法对预训练数据集的敏感度高于其他方法。

弱精选训练数据:利用大规模非精选数据集的一种成功方法是基于精选数据在其中进行检索。这意味着数据集将包含与精选或较小的源数据集(如 ImageNet)相似的图像,同时规模更大、更多样化。这一策略被用于 DINOv2 [Oquab et al., 2023],其中 LVD-142M 是使用各种小型和特定领域的数据集构建的。虽然这不会在 ImageNet 分类任务上带来显著的性能提升,但在图像检索等其他任务上可能会带来显著的性能提升。

3 成功进行 SSL 训练与部署的实用指南

3.1 数据增强的作用

许多自监督学习方法,特别是源自 Chen 等人 [2020b] 的联合嵌入方法,需要一种方式来定义给定图像的正视图,以学习不变性。这些 SSL 方法中使用的代理机制是利用数据增强来定义这些不变性。例如,通过使用给定图像的不同裁剪作为正视图,SSL 模型将被训练以产生对这些不同裁剪不变的表示。当使用灰度操作或颜色抖动操作作为正视图时,表示将必须对颜色信息保持不变。因此,SSL 模型所学内容的深层性质是由数据增强流程定义的。值得注意的是,由于投影器 [Bordes et al., 2022a] 的存在,完美的不变性并未实现,这有助于提高在并非完全不变的任务上的性能。Chen 等人 [2020b] 研究了特定数据增强对 SimCLR 在 ImageNet 上性能的影响程度。他们表明,像噪声这样的简单数据增强对 ImageNet 分类下游任务并无益处。相反,裁剪和多种颜色抖动操作能够达到与有监督基线相竞争的结果。数据增强这一关键要素在后续的 SSL 工作中 [Chen et al., 2020d, Bardes et al., 2021, Zbontar et al., 2021] 也被广泛使用,且没有显著变化。唯一有时使用的变体是在学习不变性时,除了较大的裁剪外,还添加较小的裁剪。我们将在接下来的小节中讨论这种使用大裁剪和小裁剪(称为多裁剪)的方法。

然而,这种特定的数据增强组合是专门为在 ImageNet 上取得良好性能而设计的。Bordes 等人 [2023a] 研究了不同数据增强选择对不同下游任务的影响,发现即使添加 ColorJitter 似乎对许多分类任务有益,但在其他下游任务上可能并非总是如此。同样,Ericsson 等人 [2021a] 表明,不同的增强会导致学习不同类型的不变性,其中一些增强在某些下游任务上比其他增强表现更好。作者建议合并使用不同增强学习到的表示,以提高在更广泛下游任务上的迁移能力。使用复杂的数据增强流程还有一个隐藏成本:数据预处理时间可能会显著减慢训练速度。因此,当训练预算有限时,在训练 SSL 模型时可能更倾向于仅使用随机裁剪和灰度操作。我们将在第 3.8.1 节讨论加速训练流程的常见方法。Ni 等人 [2021b] 进一步表明,对比学习器可以从非常激进的数据增强中受益,例如大角度旋转,当明确训练其不对这些旋转保持不变时,如在元学习中 [Ni et al., 2021a]。

另一类工作试图消除对这些手工设计的数据增强的需求。一种方法是使用基于重建的目标,如 MAE [He et al., 2022],它在像素空间中使用重建损失来避免定义精确不变性的需要。另一种方法基于联合嵌入,其中基于图像的随机部分,目标是预测图像缺失部分在表示空间中的表示。此类方法的一个例子是 I-JEPA [Assran et al., 2023] 或 Data2Vec2.0 [Baevski et al., 2022],它们使用图像的上下文部分来预测图像缺失的小部分。另一类工作试图保留关于增强的风格信息,通过预测风格信息来提高需要风格信息(如颜色)的下游任务的性能 [Xiao et al., 2020, Dangovski et al., 2021, Gidaris et al., 2018, Scherr et al., 2022]。编码对增强的真正等变性(这需要嵌入之间的映射)是一个活跃的研究方向,相关方法包括 EquiMod [Dangovski et al., 2021]、SEN [Park et al., 2022] 或 [Marchetti et al., 2022],后者也旨在将表示分解为类别和姿态。这种将表示分解为不变和等变部分的想法也在 SIE [Garrido et al., 2023] 中得到了探索,并在 Ibrahim 等人 [2022] 中使用了李群形式化方法。

3.1.1 多裁剪的作用

虽然像 MoCo [Meng et al., 2021] 这样的工作专注于增加负样本对的数量或质量,但提高性能的另一个方向是增加给定图像的正样本数量。多裁剪(multi-crop)由 SwAV [Caron et al., 2020] 引入,通过在通常的两个大裁剪(224 × 224)之上引入较小的裁剪(96 × 96)来解决这个问题。不是仅比较两个大裁剪,或比较所有裁剪对,而是将两个大裁剪分别与所有其他裁剪(大的或小的)进行比较。因此,如果我们有 2 个大裁剪和 N 个小裁剪,不变性损失将计算 2(N − 1) 次,从而增加了正样本对相关的信号。使用较小的裁剪以及不比较所有裁剪对,有助于减少这些额外裁剪的计算成本。虽然额外裁剪的数量可以变化(Mugs [Zhou et al., 2022b] 中为 10 个,而 SwAV 中为 6 个),但如果直接使用,总是会导致训练时间和内存使用的增加。为了减轻这种成本,在 SwAV 中使用 160 × 160 的大裁剪和 4 个 96 × 96 的小裁剪有助于减轻内存成本,并且与使用两个 224 × 224 裁剪的经典设置相比,仅导致训练时间增加 25%,同时带来了 4 个百分点的性能提升。因此,多裁剪是一种非常有用的策略,可以以边际额外的计算成本来帮助提升性能。它因此在最近的工作中几乎无处不在 [Caron et al., 2021, Zhou et al., 2022a,b, Bardes et al., 2022, Oquab et al., 2023]。值得指出的是,一些工作仅观察到微小的性能提升 [Wang et al., 2021a],其中它仅带来了 0.3 个百分点的性能提升。

其他方法已经出现,通过在嵌入空间中使用最近邻来抵消向编码器馈送额外裁剪的计算负担。在 NNCLR [Dwibedi et al., 2021] 中,匹配的正样本裁剪被其在潜在空间中的最近邻替换,而在 MSF [Koohpayegani et al., 2021] 中,在嵌入空间中构建了一个 k-NN 图,以提供类似于多裁剪的效果并增加正样本对相关的信号。这一策略在 UniVCL [Tang et al., 2022] 中得到了进一步应用,该工作将诸如节点掩码边缘等增强策略与潜在空间中的 k-NN 图结合使用。所有这些方法都显示出显著的性能提升,且计算成本低于多裁剪。在 MSF 中,使用这种 k-NN 图仅使训练时间增加了 6%。

3.2 投影器的作用

大多数采用联合嵌入方法的自监督学习(SSL)都在编码器之后包含一个投影器(通常是2层或3层带ReLU激活的多层感知机)。SSL损失函数应用于投影器的输出,而投影器在训练后通常会被丢弃。这一关键组件在SimCLR [Chen et al., 2020b] 中被引入,虽然它并非用于避免坍塌,但能在ImageNet上带来显著的top-1准确率提升。例如,在100轮训练中,投影器为SimCLR和VICReg增加了约20%的top-1准确率(分别从约50%提升至68%,以及从48%提升至68%)。

Bordes等人 [2022a] 表明,添加投影器不仅对SSL有用,而且在训练任务与下游任务存在错配时,对监督训练设置也极为有益(Sariyildiz等人 [2022] 也证明了这一点)。事实上,Yosinski等人 [2014] 的研究众所周知,在迁移学习中,裁剪已训练深度神经网络的层是有益的,这主要是为了避免训练任务的过拟合偏差。从迁移学习的角度来看,就很容易理解为什么SSL中需要投影器,因为训练任务总是不同于下游任务。为了弥合SSL与迁移学习文献中术语的差距,Bordes等人 [2022a] 建议将探测中间表示或裁剪层的方法命名为:断头台式正则化(GR)。他们还强调了将GR与SSL中添加投影器区分开来的重要性,因为探测表示的最佳层可能并不总是主干网络(但可能是中间投影层,如Chen等人 [2020c] 所证明的)。最后,Bordes等人 [2022a] 证明,减少训练任务与前置任务之间的错配(通过在对比学习中使用类别标签来寻找正样本对)会导致学习到的网络在ImageNet上获得最佳线性探测性能的位置在最后一个投影层(而非主干网络),如图10所示。


表2:投影器可能处理源自随机数据增强的噪声。在没有投影器的情况下训练VICReg,可以通过使用“神谕”过滤语义不一致的增强视图而受益。使用投影器时,使用“神谕”仅带来微小的增益。Top-1和Top-5对应于在IN-1k上的线性探测性能。

使用投影器处理噪声图像增强。 投影器也可能对于减轻数据增强的噪声是必要的。如第3.1节所述,SSL方法通常随机增强输入图像以生成同一图像的两个不同视图。在某些情况下,对两个非常不同的视图强制执行不变性可能是一个非常强的约束,可能会损害性能,例如当两个视图的内容不同时。为了演示使用投影器如何减轻这种情况,我们使用根据“神谕”(例如在ImageNet上全监督预训练的ResNet50)判断为语义相似的图像增强,来预训练带和不带投影器的VICReg [Bardes et al., 2021]。我们预训练了100轮,并将这些实验的线性探测结果包含在表2中。在没有投影器且使用“神谕”的情况下,Top1性能比不使用“神谕”时高出6.3%。然而,在配备投影器的情况下,使用“神谕”去除噪声视图仅将Top1性能提升了0.6%。这可能意味着投影器在SSL训练过程中处理不一致或噪声增强视图方面发挥作用。


图10:来自Bordes等人 [2022a] 的图,展示了在多个下游任务中主干网络和投影器表示之间的准确率差异。当使用传统的SSL正样本对(蓝色)时,主干网络的准确率总是远高于投影器的准确率。然而,当使用类别标签信息来定义正样本对(绿色)时,从而减少了训练任务与下游任务之间的错配,投影器表示在ImageNet上比主干网络表示带来更高的准确率。

投影器输出维度的影响。 类似于大批次大小曾被视为对比方法的必要条件,投影器的大输出维度也曾被视为基于协方差方法的必要条件。这在Zbontar等人 [2021] 的图4和Bardes等人 [2021] 的表12中有所说明,其中可以观察到在ImageNet上top-1准确率下降高达15%。正如Garrido等人 [2022b] 所指出的,这是由于投影器的中间层随输出维度扩展以及损失权重也需要相应调整所致。通过调整这些参数,VICReg在256维嵌入下的top-1准确率从55.9%提升至65.1%。峰值性能也在1024维时达到,之后趋于平稳。虽然VICReg对投影器输出维度的敏感性仍高于SimCLR,但它比最初认为的要稳健得多,非常大的输出维度并非必要条件。由于Barlow Twins与这两种方法的相似性,应该可以实现相当的结果。


图11:不同投影器架构和输出维度对主流方法的影响。xyzx - y - z 表示一个多层感知机,其各层输出维度分别为x、y和z。来自Garrido等人 [2022b]。

主干网络输出维度的影响。 最近的研究也调查了主干网络维度的影响。Dubois等人 [2022] 观察到,使用CISSL时,更大的主干网络表示会带来更好的线性探测性能。Bordes等人 [2023b] 更深入地研究了主干网络维度对VICReg、SimCLR或BYOL等常见SSL方法的影响。他们表明,当主干网络的维度增加时,传统监督方法的性能会下降。另一方面,SSL方法则高度受益于更宽的主干网络表示,如图12a所示。事实上,在SSL中,训练ResNet时增加主干网络的大小比增加ResNet的宽度或深度更为有益,如图12b所示。这一观察突显了当前SSL中使用的架构(通常与监督训练中使用的架构相同)可能并非最优的。

投影器所诱导的表征性质。Mialon等人[2022]认为,投影器强制实现了表征中特征的成对独立性,并在VICReg、BarlowTwins和W-MSE的背景下为随机投影器提供了论证[Bardes等人,2021,Zbontar等人,2021,Ermolov等人,2021]。特别是,更宽的投影器能达到更高程度的独立性。对于从ImageNet等“真实世界”数据集学习无监督表征,成对独立性或其软性概念可能比相互独立性更为合适[Li等人,2019]。或者,如果追求相互独立性,则需要寻求VCReg之外的替代SSL正则化方法。值得注意的是,在投影器输出端应用VCReg(VICReg中的抗坍塌项)所产生的优化动态:相对于投影器参数最小化VCReg并非必要,而VCReg更应相对于编码器参数进行优化。这一分析是否完全适用于其他SSL方法仍是一个开放问题。

无投影器的SSL训练。Jing等人[2022]提出了DirectCLR,表明在DirectCLR中,通过对表征的子向量应用InfoNCE SimCLR目标而不使用可训练投影器进行正则化,就足以在ImageNet top-1准确率上超越使用线性投影器的SimCLR。


(a)


(b)
图12:来自Bordes等人[2023b]的图。a) 不同SSL方法在主干网络输出维度上的ImageNet准确率。b) 不同参数数量下的ImageNet准确率。蓝色和绿色线上的点是在不同主干网络输出维度下训练的模型。

3.3 SSL中的均匀先验或不平衡数据上SSL的失败

尽管SSL方法近期取得了成功,但它们存在一个重要局限:在不平衡数据集上性能不佳。由于现实世界的数据是不平衡的,这一局限成为SSL方法在大量未整理数据上应用面临挑战的重要因素。Assran等人[2022a]将这一局限归因于许多SSL方法共有的隐藏均匀先验。通过在表征空间中将数据均匀分布,SSL方法学习在给定小批量中找到最具判别性的特征。当数据在类别标签上均匀分布时,模型学习到的最具判别性特征将是类别特定的。然而,当使用不平衡数据时,小批量内最具判别性的特征可能不再是类别,而是更底层的信息,这会降低下游分类任务的性能。为缓解这一问题,Assran等人[2022a]在SSL方法MSN[Assran等人,2022c]上引入了额外的正则化项,以改变SSL聚类的分布。

3.4 教师-学生架构特定技巧

3.4.1 移动平均教师的作用

虽然原始的BYOL方法基于目标(教师)网络权重的指数移动平均(EMA)更新,但后来证实EMA并非必需(即在线网络和目标网络可以相同)。SimSiam[Chen和He,2021]也证实了这一点,只要预测器比主干网络更新更频繁或具有更大的学习率。在DQN的情况下,带有EMA的目标网络被证明可以消除偏差,Fan等人[2020]和Piché等人[2021]表明,通过使用正确的正则化器,可以从目标网络中移除EMA。对于BYOL,在线网络的停止梯度(即目标网络的衰减率为0)会导致坍塌,如Grill等人[2020]的表5所示。Pham等人[2022]表明,指数移动平均的思想提供了训练稳定性,甚至可以用于SimCLR等非师生框架中。具体来说,他们表明对SimCLR的投影器应用EMA更新可以提升性能。Wang等人[2022c]表明,训练也可以受益于师生设置中的其他类型不对称性(例如,学生端更强的数据增强)。

3.4.2 自标记SSL中预测器的作用

预测器网络在BYOL的成功中扮演核心角色,它从学生网络的表征预测教师网络的表征。Shi等人[2020]表明,移除预测器会导致ImageNet上的top-1准确率从68%下降到21%(与BYOL中原始的两层MLP预测器相比)。在Shi等人[2020]的图1中,他们证明即使是线性预测器也能带来良好的性能,并能在10-20个训练周期内从较差的初始化中恢复。对于SimSiam,Chen和He[2021]的表1表明,移除SimSiam中的预测器也会导致坍塌,ImageNet上的top-1准确率<1%。Tian等人[2021](其实现可在2找到)证明,在存在预测器的情况下,BYOL和SimSiam的训练动态包含非平凡的稳定不动点,从而避免在训练过程中陷入平凡解,即使这些平凡解是全局最优的。该工作还提出了一种对比方法DirectPred,在训练过程中通过特征值分解直接设置预测器,在ImageNet上取得了相当的性能。其后续工作(DirectSet,Wang等人[2021b])进一步消除了特征值分解的开销。

3.5 标准超参数的作用

SSL研究中的一个常见问题是每种方法都有不同的超参数配置。因此,直接比较不同的SSL方法或模型通常具有挑战性。在本节中,我们介绍并描述每个超参数的影响,以帮助SSL从业者根据其设置确定哪些超参数最为重要。

3.5.1 小批量大小的影响

最初人们认为SimCLR或MoCo等对比方法需要大批量或存储库才能工作。事实证明这是一种误解,因为这两种方法都可以在小批量下正常工作。Chen等人[2020b]的附录中讨论了学习率的平方根缩放,这在ImageNet上100个周期的训练中已经带来了显著的性能提升,top-1准确率提高了多达5个百分点。

类似地,Bordes等人[2023a]研究了小批量下学习率的影响,并发现如何在单GPU上训练SimCLR于ImageNet而不会出现显著的性能下降。此外,一些工作如DCL[Yeh等人,2021]表明,只需从softmax的分母中移除正样本对并进行更仔细的超参数调优,就可以在SimCLR中使用256或更大的批量大小,在MoCo中使用仅256或更大的队列大小达到最佳性能。同样,Zhang等人[2022a]表明,通过分解MoCo中的字典并对正负样本对使用不同的温度,可以增强对字典维度的鲁棒性。

3.5.2 学习率(调度器)与优化器的作用

在此,我们概述不同方法中学习率调度器和优化器的典型标准设置。为了确定学习率,方法通常根据 Goyal 等人 [2017] 的启发式规则,基于批量大小缩放基础学习率:学习率 =batch size256= { \frac { \mathrm { b a t c h ~ s i z e } } { 2 5 6 } } ∗ 基础学习率。对于 ImageNet 预训练,VICReg、Barlow Twins、BYOL 和 SimCLR 使用 0.2 − 0.3 的基础学习率,并采用 LARS 优化器 [You et al., 2017]。此外,对于某些方法(如 Barlow Twins),会使用更小的学习率(0.0048)来更新偏置项和批归一化参数。其他方法如 MAE、DINO 和 iBot 则使用 AdamW 优化器 [Loshchilov and Hutter, 2017],其基础学习率较小,为 1e55e41 e - 5 - 5 e - 4。关于权重衰减的讨论,请参见第 3.5.3 节。最常见的训练调度包括一个预热期,通常为 10 个 epoch,在此期间学习率线性增加至其基础值。预热期之后,大多数方法使用余弦衰减。

3.5.3 权重衰减的作用

对于许多自监督学习方法而言,权重衰减是反向传播中的一个重要组成部分。BYOL [Grill et al., 2020] 中的表 15 表明,不使用权重衰减可能导致结果不稳定。最近的一篇博客文章3 也提到,在 BYOL 中使用权重衰减可以实现稳定学习。在 Tian 等人 [2020b] 的图 4 中,权重衰减的效果通过其对初始条件记忆的影响进行了解释。其假设是,权重衰减使得在线网络和预测器能够更好地对增强不变性进行建模,而无论初始条件如何。如需进一步阅读,Zhang 等人 [2022b] 对 SimSIAM 坍缩的理解提供了很好的综述,Shi 等人 [2020] 则对 BYOL 进行了类似的工作。

3.5.4 视觉 Transformer 的注意事项

训练视觉 Transformer(ViT)[Dosovitskiy et al.] 需要特别小心。它们更容易发生坍缩和不稳定,并且对超参数的设置更为敏感 [Touvron et al., 2021a]。

批量大小。 [Chen et al., 2021b] 发现,对于联合嵌入 ViT 自监督学习方法,大批量(例如 4096)训练可能不稳定。这种不稳定性并不会表现为最终准确率的大幅下降,而是在训练过程中,当梯度的 LnormL _ { \infty } - n o r m 出现尖峰时,表现为 kNN 探针准确率的下降。对于 ViT,使用随机(而非学习到的)块投影层将像素块嵌入到输入 token 中,可以稳定 MoCo-V3、SimCLR 和 BYOL 的训练,并提高最终准确率。10k 迭代的学习率预热期 [Goyal et al., 2017, Dosovitskiy et al.] 也能提高训练稳定性。另一方面,Caron 等人 [2021] 注意到,当使用非常小的批量大小(128)进行训练时,最终的 k-NN 准确率会下降。因此,对于 ViT 的自监督预训练,1024 或 2048 的批量大小似乎是最佳选择。

虽然 ViT 架构没有任何批归一化层,但在投影头中使用 BN 层训练 MoCo-V3 模型可以提高 ViT 的线性探针准确率 [Chen et al., 2021b]。请注意,对于联合嵌入方法,批处理可以在一个批次中同时处理所有样本和裁剪块,也可以分别处理每个裁剪块的批次。SimCLR 采用前者,而 BYOL 和 MoCo-V3 采用后者。

块大小。 [Caron et al., 2021] 发现,使用较小的块大小(5×5,5 \times 5 , 0r8×8\phantom { - } 0 \mathbf { r } 8 \times 8 而不是 16×16)1 6 \times 1 6 ) 进行训练,可以提高 DINO ViT 预训练的线性探针准确率。请注意,虽然增加块大小会减少运行时间,但也会增加内存使用量(这使得难以在小于 8×8)8 \times 8 ) 的块上进行训练)。

随机深度 [Huang et al., 2016] 起源于 NLP,随后被用于视觉模型 [Touvron et al., 2021b] 以训练更深的模型。它作为一种正则化手段,随机丢弃 ViT 的某些块。每层的丢弃率可能随层深度线性变化,或者如近期工作 [Touvron et al., 2021b] 所建议的那样均匀分布。这在训练更大的模型(如 ViT-L、ViT-H 等)时非常重要。例如,Touvron 等人 [2022] 对 ViT-H 模型使用了 0.5 的丢弃路径率。相反,在训练较小的模型(如 ViT-B)时,这种正则化通常会损害性能 [Steiner et al., 2021]。

层间衰减 [Clark et al., 2020] 沿层几何级数地降低学习率。换句话说,最后一层不受影响,而第一层具有非常小的学习率。在自监督视觉模型中,当下游任务微调时,层间衰减可以提高性能 [Bao et al., 2021b, Zhou et al., 2022a, He et al., 2022]。根据模型大小,该参数设置在 0.65 到 0.85 之间——较大的模型通常需要更高的值,因为它们有更多的层。其基本原理是,自监督学习构建了强大的模型主干,因此我们只需要微调最浅的层。

层缩放 [Touvron et al., 2021b] 是对 transformer 每个残差块产生的向量进行逐通道乘法。它增加了优化的稳定性,并允许使用更深的 ViT(大于 ViT-B)。

[cls] token。 当方法本身不需要时,使用块 token 的平均值而不是类别 token 可以节省内存,而不会对网络的准确率产生太大影响 [Zhai et al., 2022a]。

3.6 高性能掩码图像建模技术

尽管存在多种掩码预训练方法,但采用这些方法的最先进系统往往将 MIM 与其他技术相结合。例如,ConvNextV2 架构在发布时是 ImageNet(仅使用公开数据训练的模型)上最先进的,它就采用了 MAE 预训练 [Woo et al., 2023]。有趣的是,作者指出,仅仅使用 MAE 框架预训练 ConvNextV2 效果并不理想。他们提出添加一种新颖的归一化层,称为“全局响应归一化”,事实证明这对于达到最先进的结果至关重要 [Woo et al., 2023]。

在其他声称在图像分类和语义分割上达到最先进性能的工作中,MIM 预训练与蒸馏相结合。虽然一些 MIM 流程涉及在像素空间中重建输入的掩码部分,但另一种选择是使用教师网络生成未掩码图像的目标表示。Zhou et al. [2022a] 提出了 iBOT,它在基于蒸馏的 MIM 中同时使用 ViT 作为教师和学生,并在 ImageNet 分类上优于先前的方法。随后,Liu et al. [2022b] 提出了 dBOT,这是一种更新的基于蒸馏的 MIM 方法,也在图像分类和语义分割上取得了最先进的结果。他们工作的一个主要发现是,如果分阶段进行蒸馏,则无需精心选择教师模型。也就是说,教师会定期更新以匹配学生的权重,而学生则被重新初始化。Oquab et al. [2023] 采用了类似的蒸馏方法,从 ViT-g 教师训练较小的模型,其性能远优于从头训练。这一系列工作强调了将蒸馏与 MIM 结合使用极为有效。

对于利用 MIM 超越先前工作的目标检测器,允许 MIM 与近期高性能金字塔 ViT(如 Swin)配合使用的技术至关重要。由于金字塔 ViT 会合并补丁,随机掩码可能导致某些局部窗口完全没有信息。Li et al. [2022d] 提出了一种考虑这些模型层次结构的掩码方法,称为“均匀掩码”。他们限制掩码在每个局部窗口中隐藏等量的信息,确保每个窗口都有部分信息保留。这项技术帮助自监督模型(在 ImageNet1K 上)在目标检测基准上超越了监督模型(甚至在 ImageNet22K 上)Li et al. [2022d]。

3.7 评估你的 SSL 模型

3.7.1 使用标签进行评估

自监督预训练主要在图像分类任务上进行评估,因为图像分类几十年来一直是计算机视觉的核心。三种主要的通用协议分别是k近邻(KNN)、线性评估和全微调评估(按复杂度排序)。它们都属于离线评估,意味着这些评估独立于自监督训练过程进行;与之相对的是在线评估,后者在训练过程中执行。虽然在线评估可以提供有用的下游性能信号,但由于它是与不断变化的自监督学习目标同时优化的,因此可能会产生误导。此外,除了这些需要下游任务标签的评估程序外,最近,RankMe [Garrido et al., 2022a] 作为一种成本高昂评估的可行替代方案出现,它可以在不进行任何训练的情况下,作为最终准确率的预测指标(oracle)。

KNN是机器学习中最著名的算法之一,已在各个领域得到广泛应用。就图像分类而言,KNN分类器根据数据点的邻居标签来确定该数据点的标签。

形式化地说,首先使用模型从训练数据集中的所有图像中提取冻结的特征 X=x1,...,xn\mathcal { X } = x _ { 1 } , . . . , x _ { n }(通常是 l2normalizedl _ { 2 } { \mathrm { - n o r m a l i z e d } })。为了对新图像进行分类,我们提取其特征表示 xx ^ { \prime },并检索其k个最近邻。这些最近邻是训练集X中与 xx ^ { \prime } 具有最高余弦相似度的k个向量。然后,朴素方法采用多数投票方案:每个邻居在其对应标签上计数+1,最后选择得票最多的标签。更复杂的方法使用加权投票方案。每个邻居不是在其对应标签上计数+1,而是计算一个权重 w=f(xTx)w = f ( x ^ { T } x ^ { \prime } ),例如DINO实现采用 w=exTxˉ/Tw = e ^ { x ^ { T } \bar { x } ^ { \prime } / T } [Caron et al., 2021]。这有助于处理训练集不平衡、特征非独立同分布的情况,并且通常能给出更准确的结果,代价是引入一个额外的超参数 TT

K-NN分类器的一大优势在于不依赖太多超参数,部署快速且轻量,无需任何领域适配。

线性评估 在SSL评估的背景下,在预训练特征表示之上训练线性分类器(即线性探测评估)由Zhang等人 [2016, 2017] 引入。它是最流行的协议,原因如下:它能达到高准确率;由于其判别能力较低,其性能在很大程度上依赖于表示的质量;它模仿了特征在实践中可能被使用的方式;最后但同样重要的是,它的计算成本不高。

大多数情况下,只需在冻结的主干网络末端附加一个线性层,并优化其参数几个周期(约100个)即可完成。有时,如Bao等人 [2021b] 所引入的,我们可以利用线性评估轻量级的特性,同时评估多个线性头,以同时测试许多超参数(学习率、特征平均或对ViT类架构使用类令牌、特征数量等)。线性探针也可以通过简单地切断来自表示的梯度来进行在线训练。虽然只是一种近似,但在线线性探针极其廉价,因为它复用了SSL预训练的计算,并能很好地指示下游性能,如图13所示。

MLP评估 除了简单的线性探测,也可以使用多层感知器(两层或三层)来提取SSL模型中学习到的信息。非线性评估在SSL相关工作中很少见,但当学习到的特征不是线性可分的,或者用线性模型难以提取特征中的信息时,就需要用到它。事实上,将线性探针和非线性探针的结果进行比较,可以让我们了解一个表示的结构化程度。Bordes等人 [2023a] 展示了一些比较使用线性或非线性探针的不同评估机制的结果。在图13中,可以观察到使用多层感知器代替线性探针有可能在准确率上获得一些提升。然而,增加探针容量的主要问题与过拟合有关:最佳的MLP头可能不是100个周期后得到的那个,如图13所示。

全微调 掩码自编码器(MAE)论文 [He et al., 2022] 重新将微调作为主要评估指标。其主要论点是线性探测与微调和迁移学习性能不相关,并且小的MLP头无法评估方法创建强健但非线性特征的能力。后续的大多数工作 [Bao et al., 2021b, Zhou et al., 2022a, Dong et al., 2021] 都专注于这种类型的评估(有时不报告线性/MLP结果)。已有研究表明,对比方法在微调方面的表现不如掩码图像建模,因为它们“不太利于优化” [Wei et al., 2022]——这解释了人们对MIM的整体兴趣。这是迄今为止计算成本最高的评估方法,因为它需要重新训练整个网络。在ImageNet上最常见的基准测试中,对于小于base的ViT模型运行100个周期的优化,对于更大的模型则运行50个周期 [He et al., 2022]。其他工作 [Bao et al., 2021b, Peng et al., 2022, Wang et al., 2022b] 首先在ImageNet-21k上微调60个周期,然后在ImageNet-1k上进一步微调,其成本约为预训练阶段的1/5到2倍。


图13:来自Bordes等人 [2023a] 的图。描述了在SimCLR训练期间(在线)和训练后(离线)使用线性或MLP分类器,训练分类器探针从Resnet50主干网络输出预测Imagenet-1k标签的情况。红色叉号对应最佳准确率。在离线设置中不使用数据增强。我们清楚地观察到 (i) 当使用MLP时,仅需少量周期,并且应采用正则化或早停;然而,在流行的线性情况下,我们清楚地看到在线和离线性能之间的差异有限,并且在两种训练情况下都不会发生过拟合。

3.7.2 无标签评估

正如我们刚刚讨论的,大多数评估依赖于使用标签和训练辅助模型。这可能导致评估成本高昂,并且对超参数或其优化敏感。为了帮助缓解这些问题,研究者提出了多种方法,旨在不依赖标签的情况下评估方法性能或帮助调整其超参数。使用诸如旋转预测这样的前置任务可以促进无标签的性能评估,如 Reed 等人 [2021] 在数据增强策略选择中所展示的那样。然而,这种方法的一个缺点是需要为前置任务训练分类器,并且假设旋转不是预训练增强的一部分,否则模型将对其具有不变性。Li 等人 [2022a] 将表示的特征谱与损失值结合使用来评估性能。虽然显示了与性能的相关性,但它需要使用秩和损失值训练一个性能分类器,这使得其难以用于无监督评估。Agrawal 等人 [2022] 引入了 αReQ\alpha { \mathrm { - R e Q } },通过观察投影器之前表示的特征谱衰减来评估方法。


表 3:使用常见的监督线性探针策略(ImageNet 基准)、RankMe 和 α-ReQ 进行超参数选择。OOD 表示在 iNaturalist18、Places 205、Sun397、EuroSat、StanfordCars、CIFAR-10、CIFAR-100、Pascal VOC2007、CLEVR-cnt 和 FOOD101 上的平均性能。在没有任何标签、优化或参数的情况下,RankMe 恢复了使用 ImageNet 验证集所获得的大部分性能,突显了其作为超参数选择工具的优势。摘自 Garrido 等人 [2022a]

另一种简单的评估 SSL 方法,称为 RankMe,由 Garrido 等人 [2022a] 提出。其思想是使用表示的有效秩,定义为嵌入奇异值分布的熵。其计算公式如下:

RankMe(Z)=exp(k=1min(N,K)pklogpk), pk=σk(Z)σ(Z)1+ϵ(17)\mathrm{RankMe} ( Z ) = \exp \left( - \sum _ { k = 1 } ^ { \operatorname*{min} ( N , K ) } p _ { k } \log p _ { k } \right) , \ p _ { k } = \frac { \sigma _ { k } ( Z ) } { \| \sigma ( Z ) \| _ { 1 } } + \epsilon\tag{17}

这被证明是获得良好性能的必要条件,尽管你可以获得满秩表示但结果退化(例如,一个元素从高斯分布中独立同分布采样的随机矩阵)。虽然这不能用于评估不同的方法,但它对于超参数选择效果很好,如表 3 所示。

3.7.3 超越分类

虽然分类是评估自监督学习模型常用的性能指标,但考虑其他类型的视觉任务也很重要。诸如目标检测和语义分割等任务因其要求模型学习更复杂的视觉信息表示而日益流行。最近的研究 Caron 等人 [2021]、Zhou 等人 [2022a]、Bardes 等人 [2022] 已经证明了自监督学习在这些任务上的有效性。然而,一个局限性是目前对于在这些任务上评估自监督模型尚无标准化协议。存在各种评估方法,例如在下游任务上微调编码器或使用编码器作为特征提取器。需要进一步研究以建立自监督学习背景下这些任务的标准化评估协议。

3.7.4 可视化评估

另一种评估表示中包含或未包含哪些信息的方法是,在表示之上使用一个解码器,该解码器能够将这些信息映射回像素空间。一些方法如 [He 等人, 2022] 内置了特定的解码器,使得这种可视化分析变得容易,然而大多数 SSL 方法并未附带解码器。为了缓解这个问题并允许研究人员可视化任何类型的 SSL 方法能学到什么,Bordes 等人 [2022b] 建议使用 SSL 表示作为条件,训练一个条件生成扩散模型。通过分析在特定条件下,不同生成样本中哪些信息保持不变,以及哪些信息(由于生成模型中的随机性)不保持不变,可以大致了解表示中包含哪些信息。如果表示编码了每个像素的所有信息,条件生成模型将利用这些信息的每一个比特进行完美重建,这将导致不同样本之间没有差异。如果表示仅编码了类别信息,条件生成模型将只能利用该信息重建属于该类别的图像,这意味着在生成不同样本时,对象类别将保持不变,但背景/上下文/颜色会随样本变化。在图 14 中,我们展示了 Bordes 等人 [2022b] 如何使用 RCDM 来比较在投影器级别学习到的表示与在主干网络级别学习到的表示。在此图中,我们观察到投影器级别的表示具有更强的不变性,因为颜色/背景信息在不同样本间并不保持恒定,而主干网络级别的情况则并非如此。

3.8 加速训练

3.8.1 分布式训练

训练自监督模型通常需要较大的批次大小 [Chen et al., 2020b, He et al., 2020b],或者可以通过增加批次大小来显著加速训练,而这最终受到模型训练设备内存容量的限制。分布式训练将批次分割到多个并行运行的设备上,从而增加了批次的总大小。这主要通过 DDP(分布式数据并行)或 FSDP(完全分片数据并行)实现,这些方法在 FairScale [FairScale, 2021] 或 Apex [NVidia, 2021] 等库中可用。然而,一些自监督方法依赖于当前批次的统计信息来计算其损失值 [Chen et al., 2020b, Zbontar et al., 2021, Bardes et al., 2021],这在将训练分布到多个设备时需要考虑。在本节中,我们介绍了为了正确分布常见自监督学习方法的训练而需要考虑的要素。我们将分布在设备上的完整批次大小称为有效批次大小,将单个设备上每个子批次的大小称为每设备批次大小

同步批归一化。 批归一化是稳定神经网络训练以及提升网络性能的最常用技术之一。它存在于自监督学习中使用的多数卷积骨干网络中,尤其是在 ResNet 中。批归一化使用当前批次的统计信息,这些信息需要在分布式训练中进行聚合。在 PyTorch 中,可以通过以下方式包装分布式模型来轻松实现:model = torch.nn.SyncBatchNorm.convert_sync_batchnorm(model)。这会将网络中的所有 BatchNorm 模块替换为一个自定义的 BatchNorm 类,该类会自动聚合统计信息。

Cond.
RCDM Samples

图 14:来自 Bordes et al. [2022b] 的图。RCDM 可视化了各种表示中编码了什么?第一到第四行显示了以通常的 resnet50 骨干网络表示(大小为 2048)为条件的样本,而第五到第八行显示了以各种 SSL 模型的投影器/头部表示为条件的样本。(注意,为每种表示分别训练了一个独立的生成模型)。一组生成图像中的共同/稳定方面揭示了条件表示中编码的内容。变化的方面则揭示了表示中未编码的内容。我们清楚地看到,与骨干网络表示相反,投影器表示仅保留全局信息而不保留其上下文。这表明 SSL 模型中的不变性主要是在投影器表示中实现的,而不是在骨干网络中。此外,它也证实了表 a) 的线性分类结果,该结果表明骨干网络表示更适合分类,因为它们包含比投影器级别更多的关于输入的信息。

聚合批次以进行精确损失计算。 批归一化并不是唯一对批次进行操作的操作,多种自监督损失函数也这样做,例如 SimCLR [Chen et al., 2020b] 使用当前批次中的样本作为其对比损失的负样本,或者 VICReg [Bardes et al., 2021] 计算其嵌入的协方差矩阵。在这些情况下,需要手动将每个设备的批次聚合到完整批次中。这可以使用 PyTorch 的 all_gather 操作来完成,但是该操作不允许通过它进行反向传播。因此,我们实现了一个支持反向传播的自定义聚合操作,代码如下:

算法 1:
class GatherLayer(torch.autograd.Function):
    """
    从所有进程收集张量并支持跨进程的梯度反向传播。
    """

    @staticmethod
    def forward(ctx, x):
        output = [torch.zeros_like(x) for _ in range(dist.get_world_size())]
        dist.all_gather(output, x)
        return tuple(output)

    @staticmethod
    def backward(ctx, grads):
        all_gradients = torch.stack(grads)
        dist.all_reduce(all_gradients)
        return all_gradients[dist.get_rank()]

我们在梯度上使用 all_reduce 操作,该操作会将它们求和,因为 DDP 稍后会将其除以设备数量。可以通过简单地在输入 x 上调用 FullGatherLayer.apply(x) 来使用该操作。实际上,对于上述方法,这需要在计算损失之前对嵌入进行。

额外技巧。 我们建议始终使用有效批次大小作为训练脚本的参数,也用于比较不同运行。DataLoader 类将每设备批次大小作为参数,可以通过将有效批次大小除以设备数量(在 PyTorch 中为 world_size)来获得。我们还建议使用随有效批次大小缩放的自适应学习率,例如使用 effective_lr = base_lr * effective_batch_size / 256,其中 base_lr 是训练脚本的参数。这减少了在更改批次大小时的 learning rate 搜索范围。当使用较小的批次大小时,Chen et al. [2020b] 建议使用 effective_lr = base_lr * sqrt(effective_batch_size) / 256

3.8.2 使用 FFCV 和其他加速方法实现更快训练

由于大多数联合嵌入 SSL 方法需要不同的手工数据增强,数据处理在训练 SSL 模型时可能成为真正的瓶颈。一些方法4 使用 DALI 作为 pytorch vision 的替代数据加载器,而另一些方法则依赖于基于 FFCV 库 [Leclerc et al., 2022] 的 FFCV-SSL5。FFCV-SSL [Bordes et al., 2023a] 表明,可以在单个 GPU 上不到 2 天的时间内,或使用 8 个 GPU 在短短几个小时内,在 ImageNet 上训练 SimCLR(图 15)。


图 15:来自 Bordes et al. [2023a] 的图。SimCLR 训练期间 ImageNet 验证准确率(y 轴)与训练时间(x 轴)的关系。FFCV-SSL 是一个专门为自监督学习优化的库,它扩展了原始 FFCV 库 [Leclerc et al., 2022]。与 torchvision 相比,FFCV-SSL 实现了 3 倍的加速,并使得在单个 GPU 上不到 2 天内训练 SSL 模型成为可能。

3.8.3 加速视觉Transformer的训练

训练ViT可以变得更高效,原因有二。首先,ViT很容易做到不处理所有图像块。这在使用诸如MAE [He et al., 2022] 或掩码孪生网络 [Assran et al., 2022b] 等掩码预测预训练目标时尤其有用。例如,使用ViT和此类目标,Data2vec 2.0 [Baevski et al., 2022] 在32个GPU上仅预训练3小时即可达到84%的Top-1准确率。

第二个原因与架构有关。由于Transformer [Vaswani et al., 2017] 几乎被应用于计算机科学的所有领域,许多工作致力于降低注意力机制的计算和内存需求。一种方法是使用低秩和/或稀疏近似机制 [Kitaev et al., 2020, Choromanski et al., 2020, Wang et al., 2020a, Chen et al., 2021a, Zaheer et al., 2020]。例如,Li等人 [2022b] 使用稀疏自注意力来提高SSL视觉模型的效率。另一种方法是采用IO感知优化 [Ivanov et al., 2021],其中最著名的或许是FlashAttention [Dao et al., 2022]。

这些加速方法在开源库中均可获得:Fairseq [Ott et al., 2019]、FairScale [FairScale, 2021]、XFormers [Lefaudeux et al., 2022]、Apex [NVidia, 2021] 等。

另一种加速视觉Transformer训练的简单方法是使用PyTorch的bfloat16,它可以在保持与float32相同精度范围的同时实现更快的训练(这对于避免在float16下训练视觉Transformer时可能遇到的常见数值不稳定性问题非常有用)。

4 将自监督学习扩展到图像与分类之外

4.1 其他数据领域的策略

使用自监督目标预训练大型模型不仅在视觉系统中流行,在音频、文本和表格数据中也是如此。现有SSL方法在这些领域的性能各不相同——产生了最先进的语言模型,但在表格数据上成功有限——这可能反映了自监督的适用性更好,或者也反映了SSL文献中对各个领域关注程度的巨大差异。

将SSL技术应用于任何这些数据领域都需要谨慎,因为每个领域都会出现独特的挑战,需要特殊考虑。例如,用于视觉的SSL通常围绕数据增强展开,而这些增强可能并不自然地适用于语音信号。可用于对比学习的“正样本对”从同一图像的略微不同视图到音频录音的完全不同片段不等。尽管如此,对比目标和生成目标都可以应用于这些其他数据领域。一种跨数据类型普遍有用的技术是掩码。无论是预测句子中缺失的单词、图像中的像素,还是表格中一行的条目,掩码都是跨领域SSL方法的有效组成部分。

本节并非旨在对其他数据模态的自监督进行全面综述,因为每个领域都极为广泛。特定领域的综述可参见Liu等人[2022a](音频)、Schiappa等人[2022b](视频)、Min等人[2021](文本)以及Rubachev等人[2022](表格数据)。相反,本节旨在讨论SSL应用于音频、文本和表格数据时有趣的相似性和差异性。

音频数据。 音频信号,无论是原始音频还是梅尔频谱图,与图像有很多共同之处。作为神经网络的输入,它们存在很强的相似性。例如,卷积可以发挥作用[Oord等人,2016,Schneider等人,2019,Baevski等人,2021]。但作为SSL的数据,会出现重大差异。例如,水平翻转图像通常不会改变图像的语义含义(并且是一种极为流行的数据增强方式),但对于语音录音来说,这会完全扭曲数据。同样,虽然图像的掩码通常使用随机像素,但频谱图的两个维度分别代表时间和频率,使用水平和/或垂直条带进行掩码更为有效[Wang等人,2020b]。此外,除语音之外的其他音调(背景噪声、环境音)的存在,在为对比学习寻找正样本对时提出了独特挑战,即防止学习到的表示过度拟合给定片段中的噪声[Oord等人,2018,Wang等人,2020b]。事实上,通常与语义含义无关的高频噪声伪影意味着在输入空间中的重建比其他领域(如文本)更为复杂。另一方面,多模态模型可以将一段音频及其文本[Sermanet等人,2018,Chung等人,2018]或视频的某些帧及对应的声音片段[Zhao等人,2018,Alwassel等人,2020]视为不同的视图,用作对比学习的正样本对。

视频数据。 大多数SSL图像方法都有对应的视频SSL方法。例如,Feichtenhofer等人[2021]将SimCLR、MoCo、SwAV和BYOL推广到了时空视频数据。事实上,在所有这些方法中,都可以纳入同一视频不同时间片段之间相似性的概念。最近,视频的掩码自编码目标围绕与图像相同的思路构建,但同时在时间轴上对补丁/补丁管进行掩码[Feichtenhofer等人,2022,Tong等人,2022,Girdhar等人,2022]。此外,使用SSL视觉预训练模型用于视频下游任务(如动作识别)是常见做法。例如,对于ViT,可以通过沿时间轴重复权重将补丁嵌入卷积层从2D迁移到3D[Feichtenhofer等人,2022]。视觉模型随后可以通过作为视频任务微调的初始化来迁移到视频模型[Fang等人,2022a]。帧特征也可以直接使用,方法是在特征之上附加线性层[Radford等人,2019],或使用更复杂的头部[Ni等人,2022,Arnab等人,2021]。在这种情况下,视觉系统被冻结,时间信息在之后学习。

文本数据。 与音频数据相比,文本是一种相对干净的输入信号,对重建有用的表示不会过度拟合信号的噪声部分。事实上,最流行的大型语言模型都使用重建目标进行训练,而非其他数据领域流行的对比目标[Radford等人,2018,2019,Brown等人,2020,Devlin等人,2018]。Word2Vec目标[Mikolov等人,2013]预测训练文本中被掩码的部分,已成为自然语言自监督学习的基础目标。虽然不常见,但语言建模也可以通过对比学习来实现词或字符表示[Chen等人,2022]。文本与图像之间的另一个区别是,文本的掩码词元预测是在整个词典上进行的。这种方法在图像中并非主流,但已在像素级别进行过尝试[Chen等人,2020a]。虽然对语言数据来说,很少有不会改变语义含义的增强方式,但大规模系统通常使用足够的数据和各种类型的掩码来克服这一问题。具体来说,下一个词元预测[Radford等人,2018,2019,Brown等人,2020]类似于掩码字符串中的最后一个词元,而双向编码器则掩码字符串中任意位置的词元[Devlin等人,2018]或填充更大范围的缺失文本[Rafel等人,2020,Tay等人,2022]。这种单向下一个词元预测与双向方法的选择会导致下游文本应用中的显著差异[Artetxe等人,2022]。对于对比学习,正样本对通常来自掩码和/或裁剪输入序列[Meng等人,2021,Giorgi等人,2021]。它们也可以通过使用dropout生成,使一个输入具有两个不同的潜在表示[Gao等人,2021]。此外,一些用于对比和重建预训练的方法还会使用其他几种增强方式来破坏输入,包括文档旋转、句子置换和词元删除[Lewis等人,2020,Rafel等人,2020,Wu等人,2018]。

表格数据。 与文本、音频和图像不同,经典机器学习工具在处理表格数据方面仍然很受欢迎。然而,虽然表格数据的深度学习相对而言是一个较小的领域,但寻找合理的数据增强策略已经是一个被广泛研究的课题。几种用于表格数据的SSL方法以各种方式利用掩码,一些技术创造性地采用了为图像开发的其他增强方法,如mixup[Zhang等人,2018]。与图像和音频一样,一些算法旨在生成缺失或损坏的值,而另一些则采用对比学习。在混合整数规划(MIP)等组合优化中,目标函数被用作指导,以生成具有可比目标值的正解对,以及尽管少数变量发生微小变化但目标值却显著不同的负解对[Huang等人,2023]。类似的方法也用于引导式语言生成[Yang等人,2023]。

掩码重建方法涵盖了多种掩码策略。此外,在处理表格数据时,预测掩码向量作为一种前置任务也很常见 [Yoon et al., 2020, Iida et al., 2021]。由于预测掩码本身是预训练目标的一部分,输入中被掩码的条目必须被填充,通常的做法是从该列或特征的经验分布中进行采样。

在采用相同增强方法(即掩码和从经验边际分布采样)的情况下,Bahri et al. [2021] 提出使用对比损失进行预训练。具体来说,他们建议使用 InfoNCE 损失 [Gutmann and Hyvärinen, 2010, Ceylan and Gutmann, 2018] 来比较干净输入和损坏输入的表征。

其他几项工作则概述了为结合生成式学习和对比学习而增强数据的方法。例如,表格数据可以被分成若干列组,使得每个样本(行)拥有多个可用的视图 Ucar et al. [2021]。借鉴视觉系统的做法,在输入空间使用 CutMix [Yun et al., 2019] 和在嵌入空间使用 mixup [Zhang et al., 2018] 的组合,对于表格数据也是一种有效的增强方法 [Somepalli et al., 2021]。这些方法生成增强视图,并与干净输入一起用于对比学习。然而,对于 SAINT 模型 [Somepalli et al., 2021] 和 SubTab [Ucar et al., 2021],当对比预训练与重建损失项结合时,效果似乎最佳。

在专注于比较表格数据 SSL 方法的研究中,Rubachev et al. [2022] 发现预训练目标通常确实有助于提升表格模型的性能。但更具体地说,他们发现使用标签的预训练目标效果最好,这表明针对表格数据的 SSL 尚未达到其领域内的最先进水平 [Rubachev et al., 2022]。类似地,Levin et al. [2023] 表明,与计算机视觉不同,现有的 SSL 预训练流程产生的特征可迁移性不如监督预训练。

强化学习。 SSL 已被用于改进基于视觉输入的强化学习(RL)。这种设置与视频类似,不同之处在于除了图像序列,我们还可以访问动作序列。在此应用 SSL 的最常见方法是使用对比学习来训练模型,使其匹配当前状态表征与下一时间步的表征,或者匹配同一状态但经过不同增强处理的表征。最早的例子之一是 CURL [Srinivas et al., 2020]。最近,SSL 被用于提高具有挑战性的 Atari100k 基准测试 [Kaiser et al., 2020] 上的样本效率。近期工作修改了 BYOL [Grill et al., 2020] 或 Barlow Twins [Zbontar et al., 2021],将连续时间步观测的图像输入到孪生网络的两个分支中:SGI [Schwarzer et al., 2021b] 和 Barlow Balance [Zhang et al., 2022c] 将其用于离线预训练,而 SPR [Schwarzer et al., 2021a] 则将其作为在线设置中的附加目标。表现最佳的方法是 EficientZero [Ye et al., 2021],它通过(除其他修改外)添加 SimSiam [Chen and He, 2020] 目标来训练编码器和前向模型,从而修改了 MuZero [Schrittwieser et al., 2020],并在 Atari100k 上创下了新的最先进水平。Parisi et al. [2022] 提出了 PVR,一种基于 MoCo [He et al., 2020a] 的方法,可提高控制任务的样本效率。Eysenbach et al. [2022] 表明,RL 环境中的对比学习与目标条件 RL 直接相关,并证明基于 InfoNCE [Oord et al., 2018] 的方法在机械臂控制任务上取得了优异的性能。

SSL 已被证明能为行为克隆生成良好的表征。Pari et al. [2022] 表明,使用 BYOL [Grill et al., 2020] 微调的 ImageNet 预训练模型可以非常有效地用于机器人开门、推和堆叠任务的视觉模仿,而 Arunachalam et al. [2022] 使用类似方法,成功地从使用 VR 收集的小型操作数据集中学习。Guzey et al. [2023] 提出了一种方法,利用 BYOL 从机械臂上的触觉传感器提取信息,以改进灵巧操作。Cui et al. [2022] 表明,在使用 Transformer 架构对目标条件轨迹进行建模时,视觉输入的 BYOL 表征也很有用。

将 SSL 应用于 RL 时还存在一些额外的挑战。首先,如果数据是在线记录的,各个观测值之间高度相关,并且不是独立同分布(IID)的,因此从回放缓冲区采样时需要谨慎。SSL 目标应用于 RL 智能体数据时的一个失败模式是倾向于锁定“慢特征” [Sobal et al., 2022]。例如,对比目标可能仅通过观察天空中的云层模式来区分自动驾驶数据集中的帧,因此必须谨慎设计增强方法以去除图像中无用的静态特征,或相应地采样数据。

SSL 不仅用于提高样本效率,还用于改进探索。Guo et al. [2022b] 提出了 BYOL-Explore,该方法使用 BYOL [Grill et al., 2020] 学习编码器和前向模型,并将前向模型的差异作为探索目标。Jarrett et al. [2022] 的后续工作解决了 BYOL-Explore 锁定在噪声电视上的问题。Yarats et al. [2021] 提出使用类似于 SwAV [Caron et al., 2020] 的聚类方法进行无监督探索,即仅使用内在奖励进行探索。

一些工作探索了利用大量可用的自然视频数据为 RL 智能体预训练表征。Xiao et al. [2022] 引入了 MVP,该方法使用掩码自编码器为机器人控制预训练 Transformer 编码器,而 Ma et al. [2022] 提出了 VIP,一种使用 ResNet-50 主干网络并基于观测帧间时间作为监督信号的目标来学习 RL 通用特征的方法。另一种训练 RL 基础模型的方法 R3M [Nair et al., 2022] 结合了时间对比和视频-语言对齐目标。VIP 和 R3M 在大型 Ego4D 数据集 [Grauman et al., 2022] 上进行训练,而 MVP 则结合了 Imagenet、Ego4D 和额外的操作数据。Majumdar et al. 提出了 VC-1,一种基于掩码自编码的方法。作者在名为 CortexBench 的新测试套件上测试了所提出的方法和其他基础模型。该基准测试包括控制、操作和导航任务,不同的方法在基准测试的不同部分表现出色。

还有一些特定于 RL 的无监督表征学习方法,这些方法不常用于图像:例如,拉普拉斯特征映射 [Machado et al., 2017]、前向-后向表征 [Touati et al., 2023]。Zhang et al. [2021] 提出通过学习使得导致相同奖励的状态表征相同,否则表征不同的方法来学习表征。

4.2 将多种模态融入SSL训练

自监督学习不必仅基于单一模态。尤其是多模态视觉-语言方法近来已展现出显著效果。对比语言-图像预训练(CLIP)[Radford et al., 2021] 和 ALIGN [Jia et al., 2021] 是使用图像-标题对来学习图像和标题联合嵌入空间的自监督学习方法。其目标是对比式的,给定一张图像及其标题,通过分别的编码器模型将每种模态编码为固定长度的嵌入向量。训练数据中图像-标题对的嵌入是对齐的,而批次中的其他组合则被排斥。

与第2.6.1节讨论的基于纯视觉的对比SSL相比,这种方法尤其引人注目。使用第二种模态(此处为文本)锚定了整个SSL训练。不再需要生成多个增强视图来形成鲁棒表示的概念,因为联合方法仅通过观察相似标题与相似图像重复出现,就能学习到语义上有意义的表示。

因此,由此类联合预训练产生的图像编码器对不改变语义的视觉变化特别鲁棒,例如在ImageNet-Sketch [Wang et al., 2019, Radford et al., 2021] 中评估的物体草图,并且在域外泛化任务上表现强劲。然而,这并不总是理想的表示,因为Ghiasi et al. [2022] 的可视化显示,这些模型也会将视觉上不相似但在语义上或字面上相似的特性分组。这可以通过结合图像-文本和图像-图像SSL来缓解,如Mu et al. [2022] 所做的那样,他们结合了CLIP和SimCLR [Radford et al., 2021, Chen et al., 2020b],甚至可以提高整体性能,例如在线性探测中。

近期工作已将这些视觉-语言系统推向更大规模 [Ding et al., 2021, Yuan et al., 2021, Singh et al., 2022, Wang et al., 2022d, Fang et al., 2022b],基于从互联网收集的免费图像-标题对,如 [Schuhmann et al., 2022] 中所述。这些现代SSL模型能够表示视觉和文本,并可用于多种多模态应用,从视觉问答到多模态生成 [Alayrac et al., 2022, Li et al., 2022c, Nichol et al., 2022, Rao et al., 2022]。

视觉-语言预训练的未来,作为仅基于视觉学习的鲁棒视觉表示的替代方案,仍有待进一步探索。虽然其在视觉-语言下游应用中的优势显而易见 [Shen et al., 2022, Dou et al., 2022],但也可以通过先仅训练视觉编码器、固定它,然后训练匹配的语言编码器来构建共享嵌入空间,如 [Zhai et al., 2022b] 所述。最终,视觉-语言模型只是从大规模多模态进行自监督学习的第一步。原型系统,如 Reed et al. [2022],在任意输入流上进行自监督训练,范围从视觉和文本到表格和智能体动作,从而学习到对通用任务有帮助的可复用表示。

4.3 为密集预测任务构建具有定位能力的特征提取器

除了语义理解之外,从目标检测到分割再到深度估计等流行的计算机视觉任务,都需要能够提取局部化特征的模型,换言之,这些特征包含指示输入图像中物体位置的信息。自监督学习对于这些密集预测任务可能特别有价值,因为为训练图像收集分割掩码或边界框标注的成本远高于分类标签。然而,在图像分类基准上精心调优的学习框架可能缺乏对这类密集预测任务有价值的特性。多项工作(我们注意到它们在不同的设置、不同的架构和不同的学习算法上进行实验)表达了看似矛盾的发现,即现有的自监督学习策略对于下游密集预测任务是否有效存在争议 [Goyal et al., 2019, Purushwalkam and Gupta, 2020, Zhao et al., 2021, Ericsson et al., 2021b, Shwartz-Ziv et al.]。我们现在深入探讨这一讨论。

自监督学习器在定位方面的局限性。 依赖增强视图或拼图变换的SSL方法,如MoCo [He et al., 2020b] 和 PIRL [Misra and Maaten, 2020],学习的是遮挡不变性,因为它们在ImageNet上使用随机裁剪进行训练,而ImageNet中的前景物体通常很大,因此不同的裁剪包含同一物体的不同部分 [Purushwalkam and Gupta, 2020]。另一方面,它们缺乏视角不变性和类别-实例不变性。此外,Zhao et al. [2021] 认为自监督学习器也缺乏定位信息,因为模型能够使用图像的所有部分(包括前景和背景)来进行预测。上述工作主要在卷积架构上进行实验。值得注意的是,Ericsson et al. [2021b] 提出,在他们测试的流行SSL算法中,表现最好的是CNN,在某些检测和分割设置中,CNN仍然可以达到与其监督学习对应方法相竞争的性能。有趣的是,较早期的预文本任务,如拼图或着色,这些任务早于由MoCo和SimCLR引发的近期SSL热潮,当预文本任务被设计得足够“困难”时,也能达到与监督学习骨干网络相竞争的性能 [Goyal et al., 2019]。

CNN还是ViT? 近期研究表明,与卷积架构相比,视觉变换器(ViT)在其学习到的表示中包含更优越的定位信息 [Caron et al., 2021]。CNN需要专门设计的分割流程来从其特征中提取定位信息,而ViT的逐块特征中自然会产生这种信息。现有的专门为变换器设计的SSL方法证实,训练后的模型对于下游检测和分割任务是有效的,尤其是在微调之后 [Li et al., 2021b, He et al., 2022]。然而,需要注意的是,这些SSL算法在其目标函数中明确要求定位能力,例如通过掩码自编码,其中块特征应包含关于图像对应部分内容的信息 [He et al., 2022]。最近,掩码自编码预训练策略已被适配到卷积架构并取得了显著效果,在下游目标检测和实例分割上达到了有竞争力的性能 [Woo et al., 2023]。此外,我们将在下文看到,多种专门为定位设计的预训练策略可以同样有效地应用于变换器和卷积网络。

那么,我们如何在没有标注的情况下学习局部化特征? 为了定制适用于下游密集预测任务的表示,许多工作提出修改SSL流程,专门增强其特征中的定位能力。由于这些SSL预训练算法不使用分割或检测标注,它们转而依赖精心选择的无监督物体先验。

一种物体先验风格是强制单张图像内不同位置提取的特征之间的关系,就像自监督学习流程通常强制不同图像之间的关系一样。其中一种先验利用相邻ViT块通常包含相同物体这一事实。与鼓励图像的增强视图产生相似特征的流行对比目标不同,SelfPatch鼓励单张图像内的相邻块产生相似特征 [Yun et al., 2022]。一种相关方法DenseCL [Wang et al., 2021c] 匹配从增强样本中提取的最相似的像素级特征,以自动处理增强操作在图像中移动物体的情况,并且我们只希望匹配对应于同一物体的特征。最近,VICRegL [Bardes et al., 2022] 通过结合几何匹配和学习匹配,并采用非对比准则,应用了类似的原理。正如基于聚类的方法对相关图像进行聚类一样,Leopart [Ziegler and Asano, 2022] 微调预训练模型以对块级特征进行聚类。

除了修改训练损失以改善定位外,我们还可以通过将物体放置在多种设置中来增强数据,以便生成的模型从物体中提取相同的特征,无论其位置如何。实例定位 [Yang et al., 2021] 利用RoIAlign [He et al., 2017],这是一种为目标检测器设计的算法,用于提取对应于特定图像块的特征。为此,实例定位将从一张图像的前景中随机裁剪的块粘贴到另外两张图像上,并仅提取对应于粘贴的前景块的特征,使用对比损失来确保前景块无论背景如何以及无论其在图像中的位置如何,都能生成相似的特征。另一种竞争方法使用显著性图估计训练图像中物体的位置,然后将这些物体剪切并粘贴到背景上,并优化类似的目标 [Zhao et al., 2021]。Purushwalkam and Gupta [2020] 没有使用增强来移动物体,而是指出相邻视频帧包含相同物体但处于不同位置或从不同视角观察,因此对视频数据进行对比学习可以达到大致相同的目的。

最近,UP-DETR [Dai et al., 2021] 和 DETReg [Bar et al., 2022] 提出了DETR系列检测器的端到端SSL预训练。UP-DETR 提出在给定随机选择的图像块区域的像素值条件下检测其边界框,同时预测它们对应的SwAV [Caron et al., 2020] 嵌入。在DETReg中,检测目标通过选择性搜索算法获得,该算法不需要人工标注。类似地,检测器为每个目标边界框预测一个关联的SwAV [Caron et al., 2018] 嵌入。

用于密集预测任务的视觉-语言模型。 在4.2节中,我们看到视觉-语言模型提取具有语义意义的特征。近期工作也利用这些特征进行开放词汇目标检测 [Kamath et al., 2021, Gu et al., 2021, Zareian et al., 2021, Minderer et al., 2022]。这些工作利用如前所述在带标题图像数据库上预训练的视觉和语言骨干网络,并在目标检测数据上进行微调。关键在于,预训练的语言模型与图像特征提取器配对,使得开放词汇目标检测器能够仅通过向语言模型查询适当的提示,来检测在微调阶段从未见过的新物体。

5 结论

自监督学习(SSL)确立了推进机器智能的新范式。尽管取得了诸多成功,SSL 仍是一个令人生畏的领域,方法繁多,且每种方法的实现都错综复杂。由于研究进展迅速且 SSL 方法覆盖面广,驾驭该领域仍是一大挑战。这对于新近加入该领域的研究人员和从业者而言尤为棘手,进而为 SSL 的研究与部署设置了高门槛。我们希望这本手册能通过帮助任何背景的好奇研究者驾驭方法领域、理解各种参数的作用,并掌握在 SSL 中取得成功所需的专业技能,从而助力降低这些门槛。