DINOv2:无监督学习鲁棒的视觉特征

温馨提示:
本篇文章已同步至"AI专题精讲" DINOv2:无监督学习鲁棒的视觉特征

摘要

最近,针对大规模数据进行模型预训练的自然语言处理领域的突破,为计算机视觉中的类似基础模型铺平了道路。这些模型可以通过生成通用的视觉特征(即适用于不同图像分布和任务的特征)来极大简化图像在任何系统中的使用,且无需进行微调。本文展示了现有的预训练方法,尤其是自监督方法,如果在来自多样化来源的大量精心策划的数据上训练,能够生成这样的特征。我们回顾了现有方法,并结合了不同技术,在数据和模型规模上扩展我们的预训练。大多数技术贡献旨在加速和稳定大规模训练。在数据方面,我们提出了一种自动化流程,用于构建专门的、多样化的、精心策划的图像数据集,而不是像自监督文献中通常采用的未策划数据。在模型方面,我们训练了一个拥有1B参数的ViT模型(Dosovitskiy et al., 2021),并将其蒸馏成一系列更小的模型,这些模型在大多数基准测试中超越了现有的最优通用特征OpenCLIP(Ilharco et al., 2021),无论是在图像层面还是像素层面。

1 引言

学习任务无关的预训练表示已经成为自然语言处理(NLP)中的标准(Radford et al., 2019; Raffel et al., 2020; Chowdhery et al., 2022; Hoffmann et al., 2022; Touvron et al., 2023)。人们可以直接使用这些特征,即无需微调,就能在下游任务上取得显著优于特定任务模型的表现(Brown et al., 2020)。这种成功得益于使用前置目标,如语言建模(Radford et al., 2017)或词向量(Devlin et al., 2019),对大量原始文本进行预训练,这些目标不需要监督。
继NLP领域的这一范式转变之后,我们预计类似的“基础”模型将出现在计算机视觉领域(Bommasani et al., 2021)。这些模型应当生成可以直接应用于任何任务的视觉特征,无论是图像层面(例如图像分类),还是像素层面(例如分割)。最具前景的基础模型努力聚焦于文本引导的预训练,即使用某种形式的文本监督来引导特征的训练(Joulin et al., 2016; Mahajan et al., 2018; Radford et al., 2021)。这种文本引导的预训练方法限制了能够保留的图像信息,因为图像的说明文本只能近似图像中的丰富信息,而复杂的像素级信息可能在这种监督下无法展现。此外,这些图像编码器需要对齐的文本-图像语料库,因此不能像其文本模型那样仅通过原始数据进行学习。

在这里插入图片描述

另一种替代文本引导预训练的方法是自监督学习(Caron et al., 2018;Chen et al., 2020;He et al., 2022),在这种方法中,特征仅从图像中学习。这些方法在概念上更接近于语言建模等前置任务,可以捕获图像和像素级别的信息(Caron et al., 2021)。此外,已证明自监督模型输出的特征具有各种有用的属性,并且已经在多种应用中得到了应用(Amir et al., 2022;Tumanyan et al., 2022;Ofri-Amar et al., 2023;Hamilton et al., 2022)。然而,尽管自监督学习有潜力学习通用特征,但大多数自监督学习的进展是在一个小的精心策划的数据集ImageNet-1k(Russakovsky et al., 2015)上进行的。对于将这些方法扩展到ImageNet-1k之外,一些尝试已经被提出(Caron et al., 2019;Goyal et al., 2021;2022a),但它们主要集中在未策划的数据集上,这通常会导致特征质量的显著下降。这是因为缺乏对数据质量和多样性的控制,而这些对产生良好的特征至关重要。

在这项工作中,我们探索了自监督学习是否有潜力在大量精心策划的数据上进行预训练,从而学习到通用的视觉特征。我们回顾了现有的判别性自监督方法,这些方法在图像和图像块级别学习特征,例如iBOT(Zhou et al., 2022a),并在更大的数据集视角下重新考虑了它们的一些设计选择。我们大部分的技术贡献都专注于在模型和数据规模扩展时,稳定和加速判别性自监督学习。这些改进使得我们的方法比类似的判别性自监督方法快大约2倍,且需要的内存减少了3倍,从而使我们能够利用更长时间的训练和更大的批次大小。

关于预训练数据,我们构建了一个自动化流程,用于从大量未策划的图像中筛选和重新平衡数据集。这个流程受到NLP中使用的流程的启发(Wenzek et al., 2020),在这些流程中,使用数据相似性而不是外部元数据,并且不需要手动注释。当处理来自自然环境的图像时,一个主要的困难是重新平衡概念,避免过度拟合于少数主导模式。在这项工作中,一个简单的聚类方法能够合理地解决这个问题。我们收集了一个小而多样化的142M图像语料库,用于验证我们的方法。

在这里插入图片描述

最后,我们提供了多种预训练的视觉模型,称为DINOv2,这些模型使用不同的视觉变换器(ViT)(Dosovitskiy et al., 2016)架构在我们的数据上进行训练。我们发布了所有的模型和用于在任何数据上重新训练DINOv2的代码。我们在各种计算机视觉基准测试中验证了DINOv2的质量,涵盖了图像级别和像素级别的测试,并随着它们的扩展进行总结,如图2所示。我们得出的结论是,单独使用自监督预训练是学习可迁移的冻结特征的一个良好候选,这些特征与最好的公开可用的弱监督模型具有竞争力。

2 相关工作

图像内自监督训练。一类自监督方法专注于基于图像构建的预训练任务,即从图像中提取信号,并用其余图像进行预测。这个思想随着Doersch等人(2015)的工作变得广泛传播,他们通过预测给定图像块的上下文来进行训练。基于此,许多其他预训练任务应运而生,例如重新上色图像(Zhang et al., 2016)、预测变换(Gidaris et al., 2018)、图像修复(Pathak et al., 2016)或图像块重新排序(Noroozi & Favaro, 2016;Misra & Maaten, 2020)。最近,随着基于图像块的架构(如ViTs)的出现,图像修复被重新应用于预训练(He et al., 2022;Bao et al., 2021;El-Nouby et al., 2021),可能是在特征空间中(Assran et al., 2023;Baevski et al., 2022)。特别地,He等人(2022)表明,遮掩自编码器(MAE)学习到的特征在下游任务的微调中提供了显著的提升。这一MAE特性在视频(Tong et al., 2022)、音频(Xu et al., 2022)以及其他模态(Girdhar et al., 2023)中得到了进一步验证。然而,它们的特征需要监督微调,而我们的特征则可以直接在任务中良好表现。

区分性自监督学习。第二类与我们方法更接近的工作是使用图像或图像组之间的区分性信号来学习特征。这类方法源自早期的深度学习工作(Hadsell et al., 2006),但随着实例分类方法的出现(Dosovitskiy et al., 2016;Bojanowski & Joulin, 2017;Wu et al., 2018)而变得流行。通过基于实例级目标(Hénaff et al., 2019;He et al., 2020;Chen & He, 2021;Chen et al., 2020;Grill et al., 2020;Caron et al., 2021)或聚类(Caron et al., 2018;Asano et al., 2020;Caron et al., 2020)等方式,做出了多项改进。这些方法在标准基准数据集如ImageNet(Russakovsky et al., 2015)上提供了高性能的冻结特征,但它们在扩展到更大模型时较为困难(Chen et al., 2021)。在这项工作中,我们在大规模预训练数据集和模型的背景下重新审视了这些方法的训练,特别是我们在Zhou等人(2022a)的方法上进行了构建,发现它特别适合于扩展。

在这里插入图片描述

自监督预训练的扩展。越来越多的研究集中在自监督学习在数据和模型规模方面的扩展能力(Caron et al., 2019;Goyal et al., 2019;Tian et al., 2021;Goyal et al., 2022a)。这些工作大多使用大量未经筛选的数据来训练无监督模型。研究表明,区分性方法可以随着数据的扩展而扩展,但由于预训练数据的质量较差,大多数结果都是通过微调特征来获得的。特别值得注意的是,Goyal等人(2021)还表明,在有足够预训练数据的情况下,这些方法在模型大小上也能受益。这个研究方向质疑自监督方法是否能够在任何数据上工作,而我们则专注于生成最优的预训练编码器。

自动数据筛选。我们的数据集构建借鉴了图像检索领域的做法(Weinzaepfel et al., 2021;Radenović et al., 2018b;Berman et al., 2019;Douze et al., 2009;Tolias et al., 2016;Revaud et al., 2019)。特别地,使用检索来增强训练集在半监督学习的背景下得到了研究(Yalniz et al., 2019)。类似地,其他人也使用了标签或其他元数据(Mahajan et al., 2018;Radford et al., 2021)或预训练的视觉编码器(Schuhmann et al., 2021;2022)来筛选未筛选的数据集。与这些工作不同,我们没有使用预训练编码器、元数据或监督来筛选图像,而是利用图像之间的视觉相似性。我们的方法受到文本筛选管道的启发(Wenzek et al., 2020),其中语言模型在维基百科上进行训练,以对从未筛选的来源提取的文本进行评分。

3 数据处理

我们通过从大量未经筛选的数据中检索与若干精选数据集相似的图像,来构建我们的精选LVD-142M数据集。下面我们描述了数据管道的主要组成部分,包括精选/未精选数据源、图像去重步骤和检索系统。我们的管道不需要任何元数据或文本,直接处理图像,如图3所示。更多的细节可以参考附录A。

数据源。我们选择的精选数据集在附录中有详细列出(表15),其中包括ImageNet-22k、ImageNet-1k的训练集、Google Landmarks和几个细粒度数据集。对于未筛选的数据源,我们从一个公开的爬取网页数据存储库中收集了未经筛选的原始图像数据集。从每个网页中,我们提取了标签中的图像URL。我们丢弃不安全或被域名限制的URL,并对下载的图像进行后处理(PCA哈希去重、NSFW过滤和模糊面部特征)。这样,我们得到了12亿张独特的图像。

去重。我们采用Pizzi等人(2022)提出的副本检测管道来处理未筛选的数据,并去除近重复图像。这减少了冗余,增加了图像之间的多样性。我们还移除了在任何基准测试中用于测试或验证集的图像的近重复。

自监督图像检索。我们通过从未筛选的数据源中检索与精选数据源中的图像相似的图像,来构建我们的精选预训练数据集。为了做到这一点,我们首先使用自监督的ViT-H/16网络计算图像嵌入,该网络是在ImageNet-22k上进行预训练的,并使用余弦相似度作为图像之间的距离度量。接着,我们对未筛选数据进行k均值聚类。如果检索的数据集足够大,我们会为每个查询图像检索N个最近邻(通常为4)。如果数据集较小,我们则从每个查询图像对应的聚类中抽样M张图像。尽管视觉检查表明,当N大于4时,检索质量较好,但这会导致更多的冲突(即多个查询的最近邻检索到相同的图像)。因此,我们选择N = 4,以便在这方面提供良好的平衡。

实现细节。我们管道中的去重和检索阶段依赖于Faiss库(Johnson et al., 2019)来高效地索引并计算批量最近邻嵌入的搜索。特别地,我们大量利用了其对GPU加速索引的支持,使用带有产品量化编码的倒排文件索引(Jegou et al., 2010)。整个处理过程分布在一个配备8个V100-32GB GPU的20节点计算集群上,并在不到两天的时间内生成了LVD-142M数据集。

4 区分性自监督预训练

我们通过一种区分性自监督方法来学习我们的特征,这种方法可以看作是DINO和iBOT损失的结合,并且结合了SwAV的中心化方法(Caron et al., 2020)。我们还添加了一个正则化项来扩展特征,并增加了一个短时间的高分辨率训练阶段。我们简要介绍每种方法,但更多细节可以在相关论文或我们的开源代码中找到。
• 图像级目标(Caron et al., 2021)。我们考虑来自学生网络和教师网络提取的特征之间的交叉熵损失。两个特征都来自ViT的类别标记(class token),并且是从同一张图像的不同裁剪中获得的。我们通过学生网络的DINO头部处理学生类别标记。该头部是一个MLP模型,输出一个分数向量,我们称之为“原型分数”。然后,我们应用softmax来获得ps。类似地,我们应用教师DINO头部来处理教师类别标记,获得教师原型分数。接下来,我们应用softmax并通过移动平均(或后续介绍的Sinkhorn-Knopp中心化)来得到pt。DINO损失项的公式为:
L D I N O = − ∑ p t log ⁡ p s \mathcal { L } _ { D I N O } = - \sum p _ { t } \log p _ { s } LDINO=ptlogps
我们通过学生网络学习参数,并通过过去迭代的指数移动平均来构建教师网络头部(He et al., 2020)。
• 补丁级目标(Zhou et al., 2022a)。我们随机屏蔽给学生输入的一些补丁,但不屏蔽教师的补丁。然后,我们将学生的iBOT头部应用于学生的掩码标记。类似地,我们将教师的iBOT头部应用于与学生掩码对应的(可见的)教师补丁标记。接着,我们像上面一样应用softmax和中心化步骤,得到iBOT损失项:
L i B O T = − ∑ i p t i log ⁡ p s i \mathcal { L } _ { i B O T } = - \sum _ { i } p _ { t i } \log p _ { s i } LiBOT=iptilogpsi
,其中 i i i 是被掩码标记的补丁索引。与上述相似,我们学习学生的参数,并通过过去迭代的指数移动平均来构建教师头部。
• 解耦头部权重。DINO 和 iBOT 损失都使用可学习的 MLP 投影头。该头部应用于输出标记,并在此基础上计算损失。在 Zhou et al. (2022a) 中,一项消融研究表明,在 DINO 和 iBOT 头部之间共享参数能够带来更好的性能。然而,在大规模训练中,我们观察到相反的情况,因此在所有实验中我们都使用两个独立的头部。
• Sinkhorn-Knopp 中心化(Caron et al., 2020)。Ruan et al. (2023) 建议用 Sinkhorn-Knopp(SK)批归一化替代 DINO 和 iBOT 中教师的 softmax 中心化步骤,该方法来自 SwAV(Caron et al., 2020)。我们运行 Sinkhorn-Knopp 算法步骤 3 次迭代。对于学生,我们应用 softmax 归一化。
• KoLeo 正则化器(Sablayrolles et al., 2019)。KoLeo 正则化器源自 Kozachenko-Leonenko 差分熵估计器(参见 Beirlant et al. (1997); Delattre & Fournier (2017)),并鼓励在一个批次中特征的均匀跨度。给定一组 n 个向量 ( x 1 , . . . , x n ) (x₁, ..., xₙ) x1,...,xn,它被定义为:
L k o l e o = − 1 n ∑ i = 1 n log ⁡ ( d n , i ) , \mathcal { L } _ { \mathrm { k o l e o } } = - \frac { 1 } { n } \sum _ { i = 1 } ^ { n } \log ( d _ { n , i } ) , Lkoleo=n1i=1nlog(dn,i),
其中, d n , i = min ⁡ j ≠ i ∣ x i − x j ∣ \begin{array} { r } { d _ { n , i } = \operatorname* { m i n } _ { j \neq i } \left| x _ { i } - x _ { j } \right| } \end{array} dn,i=minj=ixixj x i x_i xi 与批次中其他点之间的最小距离。我们还在计算该正则化器之前对特征进行 l 2 l2 l2 标准化。

调整分辨率(Touvron et al., 2019)。增加图像分辨率对于像分割或检测这样的像素级下游任务至关重要,因为在低分辨率下,小物体会消失。然而,高分辨率训练既费时又费内存,因此我们在预训练的最后阶段短时间内将图像分辨率提高到 518 x 518。这与 Likhomanenko et al. (2021) 的 UniViT 训练和 Beyer et al. (2023) 的 FlexiViT 训练类似。

5 高效实现

我们考虑了若干改进方法,以便在更大规模下训练模型。我们在 A100 GPU 上使用 PyTorch 2.0 进行训练。代码和预训练模型在 Apache 2.0 许可下开放。我们模型的详细信息见附录表 17。相同硬件下,与 iBOT 实现相比,DINOv2 代码运行速度约为原来的 2 倍,并且内存使用量仅为其三分之一。

快速且内存高效的注意力机制。我们实现了自己版本的 FlashAttention(Dao 等,2022),以改善自注意力层的内存使用和速度。我们的版本在所有考虑的情况下都与原始版本相当或更好,同时覆盖了更多的使用场景和硬件。由于 GPU 硬件的具体特性,当每个头的嵌入维度是 64 的倍数时效率最佳,而当整个嵌入维度是 256 的倍数时,矩阵运算的效率更高。因此,我们的 ViT-g 架构与 Zhai 等人(2022)提出的架构略有不同,以最大化计算效率,并且我们使用了 1536 的嵌入维度和 24 个头(每个头 64 维),而不是 1408 的嵌入维度和 16 个头(每个头 88 维)。我们的实验未显示最终准确率有显著差异,且我们的 ViT-g 主干网络包含 11 亿个参数。

序列打包。DINO 算法需要分别正向传递大裁剪(分辨率 224)和小裁剪(分辨率 98)。当将其拆分成补丁时,这两个组会由不同长度的 token 序列表示,因此不能一起正向传递。为了加速训练,我们使用了一种称为“序列打包”的技巧,该技巧起源于自然语言处理(Krell 等,2022)。这个思路很简单:我们将必须通过变换器转发的序列连接成一个长序列。我们按常规将此序列传递通过变换器块。然而,在注意力层中,我们对自注意力矩阵应用了一个块对角掩码,防止不同序列之间的注意力。因此,正向过程严格等价于分别正向传递每个序列。这一技巧相比于之前的实现,给我们带来了显著的计算效率提升。我们设置的低级组件可以在 xFormers 库中找到(Lefaudeux 等,2022)。

高效的随机深度。我们实现了一种改进版的随机深度(Huang 等,2016),其通过跳过丢弃的残差计算来节省内存和计算,而不是对结果进行掩蔽。通过特定的融合核,这可以节省大约与丢弃率成正比的内存和计算。在较高丢弃率(本工作中d为 40%)下,这能显著提高计算效率和内存使用。该实现通过在批次维度上随机打乱 B 个样本,并在块中计算时切割前 ( 1 − d ) × B (1 − d) × B (1d)×B 个样本来实现。

完全分片数据并行(FSDP)。使用 AdamW 优化器最小化我们的目标时,需要 4 个模型副本(float32 精度)——学生、教师、优化器的第一动量、优化器的第二动量。这对于像 ViT-g 这样的十亿参数模型总共需要 16 GB 内存。为了减少每个 GPU 的内存占用,我们将模型副本分布到多个 GPU 上,即通过 PyTorch 实现的 FSDP 对 16 GB 内存进行分片。因此,模型大小不再受单个 GPU 内存的限制,而是受跨计算节点的总 GPU 内存的限制。PyTorch 实现的 FSDP 还带来了第二个优势,即节省了跨 GPU 通信成本:权重分片以 float32 精度存储,以满足优化器的需求,但广播权重和减少梯度在骨干网络中以 float16 精度进行(MLP 头部的梯度以 float32 精度减少,以避免训练不稳定)。这导致与 DistributedDataParallel(DDP)中使用的 float32 梯度全量缩减操作相比,通信成本减少约 50%。因此,在扩展 GPU 节点数量时,训练过程比 DDP 与 float16 自动混合精度的情况更高效。总体来说,PyTorch-FSDP 混合精度优于 DDP 自动混合精度,在我们遇到的几乎所有情况下都表现更好。

模型蒸馏。我们训练大规模模型时,许多技术改进都旨在提升大模型在大量数据上的训练效果。对于较小的模型,我们选择从最大模型 ViT-g 中进行蒸馏,而不是从头开始训练。知识蒸馏(Hinton 等,2014)旨在通过最小化给定输入集的两者输出之间的某种距离,使较小的模型复现大模型的输出。由于我们的目标函数是从教师网络到学生网络的一种蒸馏形式,我们在训练过程中采用了相同的训练循环,唯一的不同是:我们使用较大的冻结模型作为教师,保持学生的 EMA(指数移动平均)作为最终模型,去除掩蔽和随机深度,并对两个全局裁剪应用 iBOT 损失。在我们的消融实验中,我们观察到这种方法比从头开始训练更能提高性能,即使是对 ViT-L 也是如此。我们的蒸馏方法与 Duval 等(2023)描述的方法基本一致,只是我们没有修改蒸馏的损失项,而是评估学生的 EMA。

6 消融研究

我们通过一组消融实验实证验证了我们工作流中不同组件的有效性:第 4 节中描述的技术改进、预训练数据以及模型蒸馏的影响。我们考虑了多种下游任务,相关内容见第 7 节。

6.1 改进的训练方案

我们的方法通过将 iBOT 方法与第 4 节中描述的几个现有组件结合,从而进行了改进。为了评估这些组件的重要性,我们训练了多个模型,逐步将组件添加到基线 iBOT 模型中。我们在表 1 中报告了在 ImageNet-1k 验证集上的 Top-1 准确率,采用了 k-NN 和线性探测。通常,我们观察到每个组件都能改善 k-NN 或线性探测的性能,甚至在大多数情况下两者都会得到提升。只有 LayerScale 和随机深度会在进行线性探测时出现性能下降,但根据我们的经验,它们显著改善了训练稳定性。
在这里插入图片描述

6.2 预训练数据源

特征的质量与预训练数据的质量直接相关。在这个实验中,我们探讨了 LVD-142M 数据集与 ImageNet-22k(一个常用的预训练数据集)以及直接使用原始未整理数据的影响。对于未整理数据集,我们从与 LVD-142M 相同的数据源中随机抽取了 1.42 亿张图像。我们在每个数据集上训练了一个 ViT-g/14 模型,并且训练的迭代次数相同。我们还包括了一个变体,即从 ImageNet-22k 中移除了 ImageNet-1k 的 synsets(INet-22k \ INet-1k),以便进行完整性比较。我们在表 2 中报告了比较结果。

最显著的观察结果是,与训练于未整理数据的模型相比,训练于整理过的数据集在大多数基准测试上表现更好。这验证了整理数据的好处,即使是在自监督预训练的情况下。与训练于 ImageNet-22k 的模型相比,训练于 LVD-142M 的模型在所有基准测试上都优于后者,除了 ImageNet-1k。这确认了训练于更多样化的图像集会改善在 ImageNet-22k 未涵盖的领域中的特征质量。我们还发现,训练于我们整理过的数据集会提升在未参与整理过程的领域(如 INaturalist 2018, 2021 和 Places205)的表现,证明了数据的规模和多样性能够带来对未见领域的好处。
在这里插入图片描述

总体而言,本次消融实验的结论是,我们的数据集提供了不同类型图像的良好平衡,从而带来了整体最佳的性能表现。

6.3 模型大小与数据

我们通过图 4 量化了随着模型大小的增加,数据规模的增长所带来的影响。随着模型的增大,训练于 LVD-142M 的效果比训练于 ImageNet-22k 的效果更为显著。例如,在 LVD-142M 上训练的 ViT-g 模型,其 ImageNet-1k 上的表现与在 ImageNet-22k 上训练的模型相当,但在其他基准测试上则大幅超越了后者。

6.4 损失函数组件

我们通过逐步添加技术改进(如第 6.1 节所述)来验证其效果。本节分析了如果去除特定损失项时观察到的性能下降,首先从我们表现最佳的模型开始。我们去除 KoLeo 损失项以及掩码图像建模项的影响。对于这两者,我们报告了在 ImageNet-1k 上使用线性分类器、在 ADE-20k 分割任务上使用线性分类器以及在 Oxford-M 上的最近邻图像检索的性能。表 3a 展示了使用 KoLeo 损失项的影响。我们看到,实例检索性能提高了超过 8%,这验证了该损失项帮助了特征在输出空间中的分布。同时,其他度量指标并未受到该正则化项的负面影响。在表 3b 中,我们展示了使用 iBOT 的掩码图像建模项的影响。该项对密集预测任务至关重要,带来了接近 3% 的性能提升。

6.5 知识蒸馏的影响

对于较小的架构,我们使用知识蒸馏方法从更大的模型中进行蒸馏,而非从头开始训练。我们使用第 5 节描述的蒸馏过程。通过比较从头开始训练的 ViT-L/14 模型与从 ViT-g/14 蒸馏出的模型在 12 个基准上的表现(见图 5),我们评估了这种方法的有效性。我们还报告了用于蒸馏的 ViT-g/14 模型作为性能上线。蒸馏后的模型在所有 12 个基准上都超过了从头开始训练的模型,这验证了我们的小型模型预训练方法的有效性。
在这里插入图片描述
在这里插入图片描述

6.6 分辨率的影响

我们衡量了在预训练过程中改变分辨率对图像和补丁级特征的性能的影响。我们考虑了从头开始训练的模型,分别使用固定分辨率 224×224 或 416×416,同时也考虑了一个从 224×224 开始训练,然后在 416×416 分辨率下继续训练 10,000 次的模型。高分辨率训练计算密集,因此我们在一个小型设置中进行了这个消融实验:使用 ImageNet1k 数据集训练的 ViT-L/16 模型。在图 6 中,我们报告了在不同分辨率下评估的线性探测器在 ImageNet-1k 和 ADE-20k 上的表现。使用高分辨率图像训练的模型在所有分辨率下表现最好,但这需要付出较高的代价:在 416 分辨率下的训练大约是 224 分辨率训练的三倍计算开销。另一方面,仅在训练结束时的最后 10,000 次迭代中进行高分辨率训练,几乎可以得到相同的结果,但计算开销要小得多。因此,我们在训练的最后阶段加入了这一步骤,而不是从头开始就使用高分辨率训练。

7 结果

在本节中,我们呈现了我们模型在多个图像理解任务上的实证评估。我们评估了全局和局部图像表示,在类别级和实例级识别、语义分割、单目深度预测和动作识别等任务上。有关基准任务的详细列表,请参见附录 C。本次评估的目标有两个:首先,我们展示了我们的自监督特征在性能上远远超过了当前的最先进水平;其次,我们证明它们在大量任务上与弱监督方法的性能相匹配,甚至超过了这些方法。

基准 在我们的比较中,我们使用了两种类型的模型作为基准。我们与公开可用的最佳自监督模型进行比较。首先,我们对以下方法进行评估:MAE (He et al., 2022)、DINO (Caron et al., 2021)、SEERv2 (Goyal et al., 2022a)、MSN (Assran et al., 2022)、EsViT (Li et al., 2022a)、Mugs (Zhou et al., 2022b) 和 iBOT (Zhou et al., 2022a)。当为给定方法提出多个架构变种时,我们报告在 ImageNet-1k 上获得最佳 Top-1 准确率的变种。其次,我们报告开放源代码的弱监督模型的性能,如 CLIP (Radford et al., 2021)、OpenCLIP (Ilharco et al., 2021; Cherti et al., 2023) 和 SWAG (Singh et al., 2022)。在评估 ImageNet-1k 上的模型时,我们报告上述每种方法的性能。对于所有其他评估,我们报告 SSL 模型中表现最好的四个模型。此外,为了参考,我们还报告了 OpenCLIP-G 在弱监督模型中的最佳表现。

7.1 ImageNet 分类

作为第一次评估,我们探讨了模型在 ImageNet-1k 分类数据集上的全局图像表示质量。我们通过训练一个简单的分类器来评估特征质量,且不会对骨干网络的权重进行微调。为了简化起见,我们使用线性模型,确保可重复的评估,尽管类别可能并不线性可分。由于大多数 SSL 方法都是使用 ImageNet-1k 验证集的性能作为调试信号,我们还报告了 ImageNet-ReaL 和 ImageNet-V2 上的 top-1 准确率。为了报告这些附加的验证性能,对于所有模型,我们使用我们的代码进行评估。我们将冻结的特征与当前公开可用的最佳 SSL 特征进行比较,结果见表 4。不论架构或预训练数据如何,我们看到本工作中提出的组件在线性评估上相比于之前的最先进方法 (iBOT ViT-L/16 训练于 ImageNet-22k) 提升了非常显著的 (+4.2%) 性能。同时,我们还观察到我们的方法在替代测试集上的性能提升更大,表明了更强的泛化能力。我们在附录 B.3 中描述了线性评估的详细过程。

我们距离弱监督模型有多远?
我们还希望验证我们的特征是否在与最先进的开源弱监督模型进行比较时具有竞争力。为此,我们使用线性评估对 ImageNet-1k 上的三个现成方法进行了比较,并考虑了多个架构变种。对于所有模型,我们在确保我们的数值与技术报告和论文中报告的数值相匹配后,使用我们的代码进行线性评估。我们在表 4 中展示了这个评估结果。我们看到,使用 ViT-G/14 架构的模型超越了 OpenCLIP 的表现 (+0.3%) 和 EVA-CLIP 的表现 (+0.1%)。同时,我们还观察到,在 ImageNet-V2 测试集上的表现显著更好 (+1.1% 相比 EVA-CLIP),表明了更强的泛化能力。在本节剩余部分,我们将 OpenCLIP-G 作为弱监督模型的参考。

我们能否微调编码器?
我们质疑我们的模型生成高质量冻结特征的能力是否会影响它们在特定数据集上进行监督微调时的表现。虽然这不是本文的核心内容,但这个实验可以表明我们的模型是否在无意中对冻结特征的线性评估设置进行了过度优化。为了进行这个合理性检查,我们应用了 Touvron 等人 (2022) 提出的微调流程,而没有调整超参数。在表 5 中,我们展示了微调骨干网络后,ImageNet-1k 验证集上的 Top-1 准确率提升了超过 +2%。这一点在使用 224 分辨率和 448 分辨率的模型中都成立。通过调整微调的超参数,还可以获得更多的性能提升,但这超出了本次合理性检查的目标。尽管如此,我们的最佳微调性能 (88.9%) 仅比绝对最先进水平 (91.1%) 低了几个百分点 (−2.2%),后者由 Chen 等人 (2023a) 提供。因此,DINOv2 生成的特征在进行线性评估和微调时都表现强劲,我们的方法的一个重要特点是,微调是可选的。
在这里插入图片描述
在这里插入图片描述

鲁棒性分析
为了补充我们的研究并探讨我们特征的泛化能力,我们评估了我们在 ImageNet-1k 上训练的线性分类头模型在领域泛化基准上的表现。我们使用上面描述的最佳线性分类器,并简单地在这些基准上进行推理。请注意,大多数文献中的结果是通过在 ImageNet-1k 上对模型进行端到端微调获得的。我们将这个实验的结果展示在表 6 中。

与最先进的自监督方法进行比较时,我们的模型在鲁棒性上表现出了显著的提高(在 A 数据集上提升了 +29.6%(Hendrycks et al., 2021b),在 R 数据集上提升了 +22.1%(Hendrycks et al., 2021a),在 Sketch 数据集上提升了 +23.0%(Wang et al., 2019)相比于 iBOT)。我们的模型在 ImageNet-A 上的表现也超过了最好的弱监督模型,但在 R 和 Sketch 上稍微落后。
在这里插入图片描述

7.2 额外的图像和视频分类基准

在这一节中,我们研究了我们特征在下游分类基准上的泛化能力。我们考虑了两组评估。在一方面,我们使用了大型和细粒度的数据集,如 iNaturalist 和 Places205;另一方面,我们使用了最初由 SimCLR (Chen et al., 2020) 提出的 12 个图像分类任务。

对于 iNaturalist 2018、iNaturalist 2021 和 Places205,我们训练了一个线性分类器,并使用了第 7.1 节中的数据增强方法。我们报告了这三个数据集的 top-1 准确率,结果见表 7。有趣的是,我们的模型在 iNaturalist 的两个变体上都明显超过了 OpenCLIP ViT-G/14(2018 年和 2021 年分别提高了 +8.6% 和 +9.7%),而在 Places 205 上略微落后(−2.3%)。

在第二组评估中,我们评估了我们模型在视频动作识别任务中的表现,尽管我们的特征并没有在视频数据上进行训练。我们在三个数据集上评估了这些特征,分别是 UCF-101 (Soomro et al., 2012)、Kinetics-400 (Kay et al., 2017) 和 Something-Something v2 (Goyal et al., 2017)。对于这个评估,我们选择视频中的 8 帧均匀分布的图像,并在 UCF 和 K-400 上使用这些图像的特征平均值训练线性分类器。对于 SSv2,我们选择了拼接方式,以便保留比特征平均更丰富的时间信息。对于每个数据集,我们计算了平均准确率,并报告了结果,见表 7。我们发现,在自监督方法中,我们的模型明显设立了新的最先进水平。此外,我们的模型在 UCF 和 Kinetics 上与 OpenCLIP 特征的准确率相当(分别提高了 +0.1% 和 +0.5%),并在 SSv2 上明显超过了它们(+2.5%)。这一点尤其有趣,因为 SSv2 需要对视频帧有更丰富的理解。

最后,在表 8 中,我们比较了在 Chen et al. (2020) 提出的 12 个迁移分类基准上的部分冻结特征。该基准包括场景、物体(如食物、汽车、飞机)和纹理等类别。
在这里插入图片描述

我们将 Birdsnap 数据集替换为 CUB,因为前者并未完全公开。我们遵循 Chen 等人(2020)提出的实验协议,即在预计算特征上训练逻辑回归。我们的模型显著超越了最先进的自监督学习(SSL)模型,最显著的差异出现在 Stanford Cars(比 DINO ViT-B/8 提高 14.8%)和 FGVC Aircraft(比 iBOT ViT-L/16 提高 14.8%)。尽管这些基准更倾向于文本引导的预训练,我们的特征在大多数分类基准上仍然与 OpenCLIP 竞争,只有少数数据集表现较差,特别是 SUN(−5.3%)和 Cars(−4.7%)。

7.3 实例识别

在这个实验中,我们探讨了使用非参数方法进行实例级别识别的任务。我们通过计算图像与查询图像的余弦相似度,对数据库中的图像进行排序。我们在巴黎和牛津数据集上评估了我们的模型,并与基线方法进行了比较,这些数据集是地标识别基准。我们还在 Met 数据集(来自大都会艺术博物馆的艺术作品)和 AmsterTime 数据集(包含与阿姆斯特丹档案图像匹配的街景图像)上进行了评估。我们通过计算平均平均精度(mAP)来衡量性能,并在表 9 中报告了结果。我们看到,我们的特征在 SSL 方法(牛津困难数据集上 mAP 提高 41%)和弱监督方法(牛津困难数据集上 mAP 提高 34%)上都表现得显著优越。值得注意的是,我们的特征在任务粒度上表现良好,无论是类别级别还是实例级别。这对于强大的现成计算机视觉特征而言是一个非常理想的特性。

在这里插入图片描述

7.4 Dense Recognition Tasks

在这一部分,我们探讨了从我们的网络中提取的补丁级特征在多个密集下游任务中的质量。我们考虑了语义图像分割和单目深度估计等几种设置,并在多个数据集上进行评估。

语义分割

对于语义分割评估,我们考虑了两种不同的设置:

  • 线性(Linear):训练一个线性层从补丁token中预测类别logits。它用于生成低分辨率的logit图(例如,对于补丁大小为16的模型为32×32),然后将其上采样到全分辨率(512×512),从而获得分割图。这种方法非常简单,但无法轻易生成高分辨率的分割结果。
  • +ms(多尺度增强):线性设置的增强版本。我们将最后四层的补丁token进行拼接,使用更大的图像分辨率(640),并使用多尺度测试时增强来提高预测的准确性。

我们报告了我们模型变体和基线在三个数据集上,在两种设置下的表现,如表10所示。

我们的模型在所有数据集和所有设置上表现都非常好。有趣的是,使用+ms设置时,我们的评估与使用Upernet解码器对MAE进行完全微调的结果(53.0对53.6 mIoU)相当。这是令人惊讶的,因为我们使用的是一个显著更简单的预测器。此外,我们的最佳模型,在使用增强配方时,几乎达到了Pascal VOC上的最先进水平(86.2对89.0 mIoU)。

冻结骨干网络与最先进的管道

在最后一个实验中,我们冻结了骨干网络,并将其插入到ViT-Adapter(Chen et al., 2023b)和Mask2former头(Cheng et al., 2022)中。我们调整了适配器和头的权重,但保持骨干网络被冻结,这意味着66%的权重被冻结。这使得我们能够比完全端到端微调更轻松地进行分割训练。使用这种设置,我们在ADE20k数据集上达到了60.2 mIoU,接近竞争性的最先进水平(62.9 mIoU,Wang et al., 2022)。尽管本实验中的设置未使用第5节中描述的优化方法,但该实验的分割训练在16个V100 GPU上进行了28小时。

深度估计

在这个实验中,我们评估了我们的补丁级特征在三个单目深度估计基准上的表现:NYUd、KITTI以及从NYUd到SUN3d的零样本迁移。我们遵循Li et al.(2022b)提出的评估协议。我们考虑了三种不同的设置来进行评估:

  • lin. 1:我们提取冻结变压器的最后一层,并将[CLS]token与每个补丁token拼接。然后我们通过4倍的因子对token进行双线性上采样,以提高分辨率。最后,我们训练一个简单的线性层,使用分类损失,通过将深度预测范围分成256个均匀分布的bin,并使用Bhat et al.(2021)提出的线性归一化方法。
  • lin. 4:我们使用与“lin. 1”相同的协议,但将来自层 l = 3 , 6 , 9 , 12 l = {3, 6, 9, 12} l=3,6,9,12 的token拼接在一起(对于ViT-S/B), l = 5 , 12 , 18 , 24 l = {5, 12, 18, 24} l=5,12,18,24(对于ViT-L),以及 l = 10 , 20 , 30 , 40 l = {10, 20, 30, 40} l=10,20,30,40(对于ViT-g)。
  • DPT:我们在冻结模型上使用DPT解码器(Ranftl et al., 2021),并设置回归任务。我们根据每个架构特征的维度调整头部的大小。

我们在表11中展示了所有基线、所有数据集和所有设置的结果。
在这里插入图片描述

从表格中可以看到,我们的特征明显超越了现有的最佳SSL和WSL特征。值得注意的是,从ViT-L提取的iBOT特征表现优于ViT-G提取的OpenCLIP特征。这一观察结果支持了这样的直觉:基于文本的特征学习未能捕捉到像这种微妙的模式。同时,我们的模型,在使用DPT解码器和冻结骨干网络的情况下,其表现达到了或超过了Li et al.(2022b)近期工作的性能。最后,在SUN-RGBd上的跨域泛化结果表明,我们的特征能够在不同领域之间实现非常好的迁移。一个在NYUd的室内场景上训练的深度预测模块,能够很好地泛化到SUN-RGBd的户外示例。

7.5 定性结果

在本节中,我们提供了一些定性分析,进一步评估我们的特征表现。

语义分割和深度估计。我们展示了一些定性结果,分别是针对ADE20K的分割和NYUd、KITTI以及SUN RGB-D上的深度估计。我们将DINOv2与OpenCLIP进行比较,使用线性分类器在每个数据集上进行评估。尽管不是完美的,使用我们DINOv2骨干网络的线性分割模型表现良好,并且在这个评估设置下明显优于OpenCLIP模型。实际上,OpenCLIP-G产生的分割掩模显示出许多伪影和断裂组件。而在深度估计方面,定性结果清晰地展示了OpenCLIP与DINOv2之间的定量差距。这些结果突显出,我们的特征和OpenCLIP提取的特征都能够线性地分离出复杂的信息,如深度,尽管两者都未经过此类信息的训练。然而,我们的特征产生的深度估计更加平滑,伪影较少。比如在SUN RGB-D图像中,OpenCLIP完全忽视了椅子等物体,而我们的方法则正确地定位了这些物体。

跨域泛化。我们展示了一些将深度预测和分割线性分类器应用于跨域示例的结果(见图8)。定性结果支持我们的观点:我们的特征能够在不同领域间迁移。对于动物或绘画的图像,预测的深度和分割质量非常好,即使这些领域之间差异很大。
在这里插入图片描述
在这里插入图片描述

**PCA of patch features. ** 我们展示了对由我们的模型提取的图像块特征进行主成分分析(PCA)后的结果。我们只保留在对第一主成分进行阈值处理后得到正值的图像块。这个过程成功地将图像的主要物体与背景分离。然后,我们对来自三个显示同一类别的图像的剩余图像块进行第二次PCA。我们用三种不同的颜色来表示前三个主成分,并将结果展示在图1和图9中。这里有两个有趣的观察结果:首先,我们的无监督前景/背景检测器,通过检测最大方差方向,表现非常好,能够清晰地勾画出图像中主要物体的边界。其次,其他的主成分对应于物体的“部分”,并且对于同一类别的图像来说,匹配得很好。这是一种新兴的特性——我们的模型并没有经过专门训练来解析物体的部分。
在这里插入图片描述

Patch matching. 最后,我们通过在图像之间匹配图像块,探索我们的图像块特征包含了哪些类型的信息。我们首先使用上述方法检测前景物体。然后,我们计算从两幅图像提取的图像块特征之间的欧几里得距离,并通过解决分配问题将它们进行映射。为了减少匹配的数量,我们接着应用非最大抑制(non-maximum suppression),只保留最显著的匹配。在图10中,我们展示了一些这样的匹配示例。我们观察到,特征似乎能够捕捉到在不同物体或动物中,具有类似作用的语义区域的信息。例如,飞机的翅膀与鸟的翅膀匹配。我们还观察到,模型对风格(图像与绘画)和姿势的较大变化(例如大象)具有鲁棒性。

8 公平性和偏见分析

我们对我们的模型进行了两项公平性评估。我们探讨了地理公平性和潜在的有害标签关联。对于这两个评估,我们使用了我们最大的ViT-g模型。

8.1 地理公平性

我们在Dollar Street数据集上评估地理公平性,该数据集由De Vries等人(2019年)引入,并使用Goyal等人(2022b)的评估协议。该基准测试比较了跨国家和收入水平的性能。数据集包含来自54个国家的289个家庭的16,073张图像。任务是识别94个概念,这些概念在不同家庭中因收入或位置的不同而呈现视觉上的差异。在表12中,我们将我们的模型与SEERv2(Goyal等人,2022a)进行比较,后者是一个在地理上多样化的图像集上训练的模型。我们的模型在不同地区和收入水平上稍微表现得比SEERv2模型更公平,且显著优于Goyal等人(2022a)报告的监督基线。然而,我们仍然观察到地区之间存在显著差异,特别是在非洲,我们的模型表现比欧洲低25.7%。这表明我们的模型仍然偏向于西方国家。类似地,我们的模型在高收入家庭上的表现明显优于低收入家庭,差距为31.7%。尽管有所改进,但我们观察到模型仍然在西方国家的富裕家庭中存在显著的偏见。
在这里插入图片描述
在这里插入图片描述

8.2 性别、肤色和年龄

在第二组评估中,我们探讨了我们的模型如何分类不同性别、肤色和年龄(均为自我报告)的人的图像。我们遵循Goyal等人(2022b)的协议,其中我们在ImageNet-22k的619个类别的子集上训练了一个多类分类器。我们将这619个类别分为四个更广泛的类别:人类、可能为人类、非人类和犯罪。非人类和犯罪被认为是有害的。使用该分类器,我们在Casual Conversations数据集(Hazirbas等人,2021)中的2955张图像上运行推理,并将所有分配了0.1或更多概率的标签保留在前5名中。因此,我们可以将多个类别分配给每张图像。我们对原始评估协议做出了一项修改:我们不对骨干网络反向传播梯度,而是将其保持冻结。在表13中,我们将我们的模型与SEERv2进行了比较。
在这里插入图片描述

我们的模型通常将所有群体的图像分类为“人类”,且不同肤色之间的偏差不大。SEERv2和DINOv2都没有预测出来自非人类或犯罪元类别的有害标签(除了两例背景中包含与监狱铁栅栏相似的条纹)。我们发现我们的模型经常触发“可能是人类”类别。这个类别由ImageNet-22k中通常与人类相关的物体组成,如围巾、眼镜或胡须。由于胡须类别的普遍存在,我们的模型经常将男性预测为“可能是人类”类别。此研究中没有明显的模式表明对特定群体存在偏见。虽然这令人鼓舞,但我们也承认,若进行更彻底的偏见评估,可能会揭示模型中的缺陷。

9 估算我们模型训练的环境影响

训练基础模型消耗大量能源,导致二氧化碳排放。Patterson等人(2021)提出了一种方法,用于根据数据中心的具体情况和电网的特点报告模型训练期间的碳排放估算值。这种计算有助于数据中心设计以及数据中心选址。然而,这一方法需要了解训练中使用的数据中心的具体情况,当涉及多个数据中心时,这一过程可能变得复杂。此外,这些具体情况通常不在AI从业者的控制范围内,因此当从业者做出关于未来训练的技术决策时,这一方法的帮助较小。因此,在本节中,我们遵循另一种方法,该方法报告了在美国一个普通数据中心重新训练类似模型的潜在碳排放。这个方法在自然语言处理领域的前期工作(Strubell等人,2019;Touvron等人,2023)中已经被使用,以便对比预训练方案。更精确地说,我们固定所有外部变量的值,即电力使用效率(PUE)和电网的碳强度因子,设置为Touvron等人(2023)中相同的值,即PUE为1.1,电网的碳强度因子为美国平均值0.385 kg CO2eq/KWh。我们使用Patterson等人(2021)中的相同公式来估算潜在的能耗和碳排放。对于A100-80GB的功耗,我们采用NVLink系统的热设计功率(TDP),即400W。我们在表14中报告了重新训练DINOv2 ViT-g的潜在碳排放。为了进行比较,如果在相同的数据中心中运行,重新训练OpenCLIP ViT-L或OpenCLIP ViT-G分别需要22.4 MWh和118.9 MWh,这意味着它们的碳排放是我们的10倍。值得注意的是,这个比较对它们来说并不公平,因为它们还会并行训练文本编码器,因此我们在表格中没有列出它们。然而,这为那些只关心训练视觉特征的人提供了一个合理的参考:在这种情况下,训练自监督模型在碳排放方面是更为可取的。若计划重新利用文本编码器,训练文本引导模型仍然是合理的选择。

整个项目的碳足迹
此外,我们估算整个项目的碳足迹在0.5千吨到1千吨CO2eq之间,使用上述相同的电网。这一碳足迹代表大约200k GPU天。排放的主要来源是模型的自监督预训练。例如,单次ViT-g模型的预训练(22k GPU小时)排放3.7吨CO2eq,而在ImageNet-1k上微调(1k GPU小时)排放0.2吨。这个估算只考虑了GPU的电力消耗,忽略了其他排放源,如GPU的制造和处置。

10 未来工作与讨论

在本研究中,我们介绍了DINOv2,这是一系列在大规模精选数据上无监督预训练的图像编码器。这是第一个在图像数据上进行的SSL(自监督学习)工作,它通过一系列广泛的基准测试,在不需要微调的情况下,成功缩小了与(弱监督)替代方法之间的性能差距。我们可以将DINOv2系列模型的强大表现归因于几个因素:

i) 改进的训练方法,包括更好的超参数和正则化(见表1);
ii) 更大的模型规模,无论使用何种数据进行训练,模型结果均得到改进(见图4);
iii) 更大的数据集(见图4);
iv) 蒸馏过程使得较小的模型能够从最强的ViT-g模型的表现中受益(见图5)。

从这些模型中涌现出一些特性,例如无论图像域如何,模型都能理解物体部分和场景几何结构。我们预计,在更大规模的模型和数据中,将会涌现出更多类似的特性,这类似于大规模语言模型中的指令涌现,并计划继续沿这些方向进行扩展。本文还展示了这些视觉特征与线性层等简单分类器兼容——这意味着基础信息已经准备好。在未来的工作中,我们计划利用这一能力训练一个语言驱动的AI系统,使其能够像处理词汇token一样处理视觉特征,并提取所需的信息以为系统提供基础。

论文名称:
DINOv2: Learning Robust Visual Features
without Supervision
论文地址:
https://arxiv.org/pdf/2304.07193
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI专题精讲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值