Emerging Properties in Self-Supervised Vision Transformers
公纵号:EDPJ(添加 VX:CV_EDPJ 或直接进 Q 交流群:922230617 获取资料)
目录
0. 摘要
在这篇论文中,我们质疑自监督学习是否为 Vision Transformer(ViT)[16] 提供了与卷积网络(convnets)相比突出的新特性。除了将自监督方法适应这一架构特别有效之外,我们得出以下观察结果:首先,自监督 ViT 特征包含有关图像语义分割的显式信息,这在受监督的 ViT 和卷积网络中并不明显。其次,这些特征还是出色的 k-NN 分类器,使用小型 ViT 在 ImageNet 上达到 78.3%的 top-1。我们的研究还强调了动量编码器(momentum encoder) [26]、多裁剪训练(multi-crop training) [9] 以及在 ViTs 中使用小块的重要性。我们将我们的发现实施到一个简单的自监督方法中,称为 DINO,我们将其解释为一种无标签的自蒸馏(self-distillation with no labels)形式。我们通过在 ViT-Base 上进行线性评估,在 ImageNet 上实现了与 DINO 和 ViTs 的协同作用,达到了80.1% 的 top-1。
代码:https://github.com/facebookresearch/dino
1. 简介
Transformers [57] 最近已经成为视觉识别 [16, 56, 68] 中卷积神经网络(convnets)的一种替代方法。它们的采用与一种受自然语言处理(NLP)启发的训练策略相结合,即在大量数据上进行预训练,然后在目标数据集上进行微调 [15, 45]。由此产生的 Vision Transformers(ViT)[16] 在与卷积网络竞争时表现出色,但它们尚未在其上提供清晰的优势:它们在计算上要求更高,需要更多的训练数据,而且它们的特征并没有展现出独特的性质。
在这篇论文中,我们质疑在视觉中 Transformers 取得的静默成功是否可以通过在预训练中使用监督来解释。我们的动机是,Transformers 在 NLP 中取得成功的主要因素之一是使用了自监督的预训练,例如 BERT [15] 中的紧密过程(close procedure)或 GPT [45] 中的语言建模。这些自监督的预训练目标利用句子中的单词创建假设任务,提供比预测每个句子的单一标签的监督目标更丰富的学习信号。类似地,在图像中,图像级别的监督通常将包含在图像中的丰富视觉信息减少到从几千个对象类别的预定义集中选择的单一概念 [49]。
虽然在 NLP 中使用的自监督假设任务是文本特定的,但许多现有的自监督方法已经显示出它们在使用 convnets 的图像上具有潜力 [9, 11, 23, 26]。它们通常共享类似的结构,但具有不同的组件,旨在避免平凡的解决方案(崩溃)或提高性能 [14]。在这项工作中,我们受到这些方法的启发,研究了自监督预训练对 ViT 特征的影响。特别感兴趣的是,我们已经发现了几个有趣的性质,这些性质在受监督的 ViT 和卷积网络中都没有显现出来:
- 自监督 ViT 特征明确包含场景布局,特别是对象边界,如图 1 所示。这些信息在最后一个块的自注意模块中可直接访问。
- 自监督 ViT 特征在基本的最近邻分类器(k-NN)中表现特别出色,无需任何微调、线性分类器或数据增强,在 ImageNet 上达到 78.3% 的 top-1 准确率。
分割掩码(segmentation mask)的出现似乎是自监督方法之间共享的一种性质。然而,仅在结合诸如动量编码器 [26] 和多裁剪增强 [9] 等特定组件时,k-NN 的良好性能才会显现出来。我们研究的另一个发现是使用较小的 patche 与 ViTs 结合,以提高生成特征的质量的重要性。
总的来说,关于这些组件重要性的发现使我们设计了一种简单的自监督方法,可以解释为一种无标签的知识蒸馏 [28] (knowledge distillation with no labels)形式。由此产生的框架 DINO 通过使用标准的交叉熵损失,直接预测具有动量编码器的教师网络的输出,简化了自监督训练。有趣的是,我们的方法可以仅通过对教师输出进行中心化和锐化来避免崩溃,而其他流行的组件,如预测器 [23]、先进的归一化 [9] 或对比损失 [26] 在稳定性或性能方面几乎没有增益。尤其重要的是,我们的框架灵活,可以在卷积网络和 ViTs 上工作,无需修改架构,也无需适应内部规范化 [47]。
我们通过在 ImageNet 线性分类基准上使用 ViT-Base(小块)取得 80.1%的 top-1 准确率,优于先前自监督特征的性能,进一步验证了 DINO 和 ViT 之间的协同作用。我们还通过使用 ResNet-50 架构与当前技术匹配,证实了 DINO 与卷积网络的兼容性。最后,我们讨论了在计算和内存容量有限的情况下在 ViTs 中使用 DINO 的不同场景。特别是,使用 ViT 训练 DINO 仅需要两台 8-GPU 服务器,在 3 天内就能在 ImageNet 线性基准上达到 76.1% 的准确率,这超过了基于具有显著减少计算需求的可比大小卷积网络的自监督系统 [9, 23]。
2. 相关工作
自监督学习。自监督学习的大量工作集中在被称为实例分类 [11, 17, 26, 60] 的判别性方法上,该方法将每个图像视为不同的类别,并通过对它们进行数据增强来训练模型。然而,明确学习一个分类器以区分所有图像 [17] 在图像数量较多时效果不佳。Wu 等人 [60] 建议使用噪声对比估计器(noise contrastive estimator)(NCE)[25] 来比较实例,而不是对它们进行分类。这种方法的一个缺点是它需要同时比较大量图像的特征。在实践中,这需要大批量 [11] 或内存库 [26, 60]。几种变体 [2, 7, 8, 21, 29, 35, 61, 65, 69] 允许以聚类的形式自动对实例进行分组。
最近的研究表明,我们可以在不区分图像的情况下学习无监督的特征。特别有趣的是,Grill 等人[23] 提出了一种度量学习的公式,称为 BYOL,其中通过将特征与动量编码器获得的表示进行匹配来训练特征。已经证明像 BYOL 这样的方法即使没有动量编码器也能工作,但性能会下降 [14, 23]。其他几项工作也呼应了这个方向,显示可以通过将特征匹配到 𝑙_2 超球面上的均匀分布 [5] 或通过使用白化 [19, 66] 来进行训练。我们的方法受到 BYOL 的启发,但使用了不同的相似性匹配损失,并且对于学生和教师使用完全相同的架构。这样,我们的工作完善了 BYOL 对自监督学习的解释,将其看作一种无标签的 Mean Teacher 自蒸馏 [52] 形式。
自训练和知识蒸馏。自训练旨在通过将一小部分初始注释传播到大量无标签的实例来改善特征的质量。这种传播可以通过硬标签的分配 [34, 63, 64] 或软标签的分配 [62] 来完成。使用软标签时,该方法通常被称为知识蒸馏 [6, 28],主要设计用于训练一个小型网络来模仿较大网络的输出以压缩模型。Xie 等人 [62] 最近表明,蒸馏可以用于将软伪标签传播到自训练管道中的无标签数据,建立了自训练和知识蒸馏之间的重要关联。我们的工作基于这种关系,并将知识蒸馏扩展到无标签可用的情况。先前的工作还结合了自监督学习和知识蒸馏,实现了自监督模型压缩 [20] 和性能提升 [12, 38]。然而,这些工作依赖于预训练的固定教师,而我们的教师是在训练过程中动态构建的。这样,知识蒸馏不是用作自监督预训练的后处理步骤,而是直接被构造为一种自监督目标。最后,我们的工作还与 codistillation [1] 有关,在这里学生和老师具有相同的架构,并在训练过程中使用蒸馏。然而,在 codistillation 中,教师还从学生那里蒸馏,而在我们的工作中,教师是通过学生的动量平均进行更新的。
3. 方法
3.1. 自监督学习与知识蒸馏
这项工作使用的框架 DINO 与最近的自监督方法 [9, 14, 11, 23, 26] 具有相同的整体结构。然而,我们的方法也与知识蒸馏 [28] 有相似之处,并以这个角度提出。我们在图 2 中说明了 DINO,并在算法 1 中提出了伪代码实现。
知识蒸馏是一种学习范式,其中我们训练一个学生网络 g_θs,使其匹配给定教师网络 g_θt 的输出,分别由参数 θs 和 θt 参数化。给定输入图像 x,两个网络都输出由 Ps 和 Pt 表示的 K 维概率分布。概率 P 通过使用 softmax 函数对网络 g 的输出进行归一化得到。更确切地说,
使用 τ_s > 0 作为控制输出分布锐度的温度参数,并且对于具有温度 τ_t 的 Pt 也适用类似的公式。给定一个固定的教师网络 g_θt,我们通过最小化相对于学生网络参数 θs 的交叉熵损失来学习匹配这些分布:
其中 H(a, b) = - a log b。
在接下来的内容中,我们详细说明如何将方程(2)中的问题调整为自监督学习。首先,我们使用多裁剪策略 [9] 构建不同的扭曲视图或裁剪。更具体地说,对于给定的图像,我们生成一个包含两个全局视图
以及几个小分辨率的局部视图的视图集 V。所有裁剪都经过学生网络,而只有全局视图经过教师网络,因此鼓励 “局部到全局” 的对应关系。我们最小化损失:
这个损失是通用的,可以用于任意数量的视图,甚至只有 2 个视图。然而,我们遵循多裁剪的标准设置,使用 2 个分辨率为 224^2 的全局视图,覆盖原始图像的大部分区域(例如大于 50%),以及几个分辨率为 96^2 的局部视图,仅覆盖原始图像的小部分区域(例如小于 50%)。我们将这种设置称为 DINO 的基本参数化,除非另有说明。
两个网络共享相同的架构g,具有不同的参数集 θs 和 θt。我们通过随机梯度下降最小化方程(3)来学习参数 θs。
教师网络。与知识蒸馏不同,我们没有预先给定一个教师 θt,因此我们从学生网络的先前迭代中构建它。我们在附录中研究了教师的不同更新规则,并显示在我们的框架中,在整个时期冻结教师网络效果出奇的好,而将学生权重复制给教师却无法收敛。特别值得注意的是,在我们的框架中,对学生权重使用指数移动平均(EMA),即动量编码器 [26],特别适用。更新规则为
其中 λ 在训练过程中遵循余弦调度从 0.996 到 1。最初,动量编码器被引入作为对比学习中队列的替代物 [26]。然而,在我们的框架中,它的作用不同,因为我们既没有队列也没有对比损失,可能更接近于自我训练中使用的均值教师(mean teacher)的作用 [52]。实际上,我们观察到这个教师执行一种类似于 Polyak-Ruppert 平均的模型集成形式,带有指数衰减 [41, 48]。在模型集成中使用Polyak-Ruppert 平均是一种改进模型性能的标准做法 [31]。我们观察到,这个教师在整个训练过程中的性能优于学生,因此通过提供更高质量的目标特征来引导学生的训练。这种动态在先前的研究中并没有观察到 [23, 47]。
网络架构。神经网络 g 由一个主干网络 f(ViT [16] 或 ResNet [27])和一个投影头 h 组成:
在下游任务中使用的特征是主干网络 f 的输出。投影头包括一个 3 层的多层感知器(MLP),隐藏维度为 2048,接着是 L2 范数归一化和一个具有 K 维的权重归一化全连接层 [50],这与 SwAV [9]的设计类似。我们已经测试了其他投影头,而这个特定的设计似乎对 DINO 效果最好(请参阅附录)。我们不使用预测器 [23, 14],导致学生和教师网络具有完全相同的架构。特别值得注意的是,与标准的卷积神经网络不同,ViT 架构默认不使用批标准化(BN)。因此,当将 DINO 应用于 ViT 时,我们在投影头中也不使用任何 BN,使系统完全不含 BN。
避免崩溃。几种自监督方法通过使用不同的操作来避免崩溃,可以通过对比损 失[60]、聚类约束 [7, 9]、预测器 [23] 或批标准化 [23, 47]。虽然我们的框架可以通过多种归一化来稳定 [9],但它也可以通过对动量教师输出进行居中和锐化(centering and sharpening)来避免模型崩溃。正如在附录中实验证明的那样,居中防止一个维度占主导地位,但鼓励崩溃为均匀分布,而锐化产生相反的效果。应用这两种操作平衡它们的效果,足以在存在动量教师的情况下避免崩溃。选择这种方法以避免崩溃是在稳定性和对批处理的较少依赖性之间进行权衡:居中操作仅依赖于一阶批次统计,并且可以解释为向教师添加偏置项 c:
中心 c 通过指数移动平均进行更新,这使得该方法能够在不同批次大小下表现良好,如附录所示。
其中 m > 0 是一个比率参数,B 是批处理大小。通过在教师 softmax 归一化中使用较低的温度 τ 来获得输出锐化。
3.2. 实现和评估协议
在这一部分,我们提供了使用 DINO 进行训练的实现细节,并介绍了我们实验中使用的评估协议。
视觉 Transformer。我们简要描述了视觉 Transformer(ViT)[16, 57] 的机制,并参考 Vaswani 等人的工作 [57] 以获取有关 Transformers 的详细信息,以及 Dosovitskiy 等人的工作 [16] 以获取其适应图像的信息。我们遵循 DeiT [56] 中使用的实现。我们总结了本文中使用的不同网络的配置,如表 1 所示。ViT 架构以 N x N 分辨率的非重叠连续图像块网格作为输入。在本文中,我们通常使用 N = 16(“/16”)或 N = 8(“/8”)。然后通过线性层将这些块传递以形成一组嵌入。我们向序列中添加一个额外的可学习标记 [15, 16]。这个标记的作用是从整个序列中聚合信息,并在其输出处附加投影头 h。为了与先前的工作 [15, 16, 56] 保持一致,尽管在我们的情况下它没有附加到任何标签或监督,我们将这个标记称为类标记 [CLS]。块标记和 [CLS] 标记被馈送到带有 “pre-norm” 层标准化(layer normalization) [10, 32] 的 Transformer 网络中。Transformer 是一系列具有跳跃连接的自注意力和前馈层,通过自注意机制 [3] 更新标记表示。
实现细节。我们在没有标签的 ImageNet 数据集 [49] 上对模型进行预训练。我们使用 adamw 优化器 [37] 和批处理大小为 1024,当使用 ViT-S/16 时在 16 个 GPU 上分布训练。学习率在前 10 个时期内线性增加到其基础值,其基础值通过以下线性缩放规则确定 [22]:l_r = 0.0005* batchsize / 256。在这个预热后,我们使用余弦调度 [36] 衰减学习率。权重衰减也遵循从 0.04 到 0.4 的余弦调度。温度 τ_s 设置为 0.1,而在前 30 个时期内我们对 τ_t 进行线性预热,从 0.04 增加到 0.07。我们遵循 BYOL [23] 的数据增强(颜色抖动,高斯模糊和太阳化)和多裁剪 [9],使用双三次插值来适应位置嵌入到尺度 [16, 56]。
评估协议。自监督学习的标准协议通常是要么在冻结的特征上学习线性分类器 [67, 26],要么在下游任务中微调这些特征。对于线性评估,我们在训练过程中应用随机调整大小的裁剪和水平翻转增强,并在中心裁剪上报告准确性。对于微调评估,我们使用预训练的权重初始化网络,并在训练过程中调整它们。然而,这两种评估都对超参数敏感,当例如学习率变化时,在运行之间的准确性存在较大的方差。因此,我们还使用一个简单的加权最近邻分类器(k-NN)评估特征的质量,如 [60] 所述。我们冻结预训练模型以计算并存储下游任务的训练数据的特征。然后,最近邻分类器将图像的特征与 k 个最近存储的特征进行匹配,这些特征投票给标签。我们在不同数量的最近邻上进行扫描,并发现对于我们的大多数运行,20 个最近邻一直效果最好。这个评估协议不需要任何其他的超参数调整,也不需要数据增强,可以仅通过一次通过下游数据集来运行,大大简化了特征评估的过程。
4. 主要结果
我们首先使用在本研究中使用的 DINO 框架,在 ImageNet 上进行标准的自监督基准验证。然后,我们研究生成的特征在检索、物体发现和迁移学习方面的属性。
4.1. 在 ImageNet 上与 SSL 框架进行比较
我们考虑两种不同的设置:与相同架构的比较和跨架构的比较。 与相同架构的比较。在表 2 的顶部面板中,我们将 DINO 与其他具有相同架构的自监督方法进行比较,这些架构是 ResNet-50 [27]或 ViT-small(ViT-S)[56]。选择 ViT-S 的原因是它在几个方面与 ResNet-50 相似:参数数量(21M 与 23M),吞吐量(1237/sec 与 1007 im/sec)以及在 ImageNet 上使用 [56] 的训练过程的监督性能(79.3% 与 79.8%)。我们在附录中探讨了 ViT-S 的变体。首先,我们观察到 DINO 在 ResNet-50 上与最先进的方法相当,验证了 DINO 在标准设置中的有效性。当我们切换到 ViT 架构时,DINO 在线性分类和 k-NN 评估中均优于 BYOL、MoCov2 和 SwAV,分别提高了 +3.5%和 +7.9%。更令人惊讶的是,使用简单的 k-NN 分类器的性能几乎与线性分类器相当(74.5% 与 77.0%)。这种性质只在使用 DINO 与 ViT 架构时出现,并且在其他现有的自监督方法或 ResNet-50 中并未出现。
跨架构比较。在表 2 的底部面板上,我们比较了在不同架构中获得的最佳性能。这种设置的兴趣不是直接比较方法,而是评估使用 DINO 训练的 ViT 在转向更大的架构时的极限。虽然使用 DINO 训练较大的 ViT 可以提高性能,但减小补丁的大小(“/8” 变体)对性能的影响更大。虽然减小补丁大小不会增加参数,但它仍然导致运行时间显著减少,并增加了更大的内存使用。尽管如此,使用DINO 训练的带有 8×8 补丁的基本 ViT 在线性分类中达到 80.1% 的 top-1,使用 k-NN 分类器则为77.4%,具有比先前最先进的方法 [12] 少 10 倍的参数和 1.4 倍更快的运行时间。
4.2. 使用SSL训练的ViT的属性
我们评估DINO特征的性质,包括最近邻搜索、保留有关对象位置的信息以及对下游任务的可迁移性。
4.2.1. 使用 DINO ViT 进行最近邻检索
在 ImageNet 分类方面的结果揭示了我们的特征在依赖最近邻检索任务上的潜力。在这组实验中,我们进一步在地标检索和复制检测任务上巩固了这一发现。
图像检索。我们考虑重新评估的 [43] 牛津和巴黎图像检索数据集 [40]。它们包含 3 个不同的逐渐增加难度的拆分,具有查询/数据库对。我们报告了中等(M)和困难(H)拆分的平均精度均值(Mean Average Precision,mAP)。在表 3 中,我们比较了使用监督或 DINO 训练获得的不同现成特征的性能。我们冻结特征并直接应用 k-NN 进行检索。我们观察到,DINO 特征的性能优于使用 ImageNet 标签训练的特征。SSL 方法的一个优势是它们可以在任何数据集上训练,而无需任何形式的注释。我们在 Google Landmarks v2(GLDv2)[59] 的 1.2M 干净数据集上训练 DINO,这是一个专为检索目的设计的地标数据集。在 GLDv2上 训练的 DINO ViT 特征非常出色,优于基于现成描述符的先前发布的方法 [55, 46]。
复制检测。我们还评估了使用 DINO 训练的 ViTs 在复制检测任务上的性能。我们报告了 INRIA Copydays 数据集 [18] 的 “强” 子集上的平均精度均值。该任务是识别被模糊、插入、打印和扫描等方式扭曲的图像。在先前的工作 [4] 的基础上,我们添加了从 YFCC100M 数据集 [53] 中随机抽样的 10k 个分离(distractor)图像。我们直接在从预训练网络获取的特征上使用余弦相似度执行复制检测。特征是通过连接输出的 [CLS] 标记和 GeM 池化 [44] 输出的补丁标记获得的。这导致了一个 1536d 的 ViT-B 描述符。按照 [4] 的方法,我们对特征进行白化。我们在 YFCC100M 的额外20K 张与分离(distractor)图像不同的随机图像上学习了这种变换。表 4 显示,使用 DINO 训练的 ViT 在复制检测上非常有竞争力。
4.2.2. 发现场景的语义布局
正如在图 1 中定性显示的那样,我们的自注意力图包含有关图像分割的信息。在这项研究中,我们在一个标准基准上度量这一特性,同时直接探测从这些注意力图生成的掩模的质量。
视频实例分割。在表 5 中,我们评估了 DAVIS-2017 视频实例分割基准 [42] 上的输出补丁标记。我们按照 Jabri 等人 [30] 的实验协议,在连续帧之间使用最近邻方法对场景进行分割;因此,我们不在特征之上训练任何模型,也不为任务微调任何权重。我们观察到在表 5 中,即使我们的训练目标和架构都不是为密集任务设计的,性能在这个基准上也很有竞争力。由于网络没有进行微调,模型的输出必须保留了一些空间信息。最后,对于这个密集的识别任务,小补丁(“/8”)的变体表现得更好(对于 ViT-B,J&Fm 增加了 +9:1%)。
探测自注意力图。在图 3 中,我们展示了不同头部可以关注图像的不同语义区域,即使它们被遮挡(第三行的灌木)或很小(第二行的旗帜)。可视化是使用 480p 图像获得的,对于 ViT-S/8,结果是 3601 个标记的序列。在图 4 中,我们展示了在混乱环境中,监督的 ViT 在对象上的关注效果不好,定性和定量上都如此。我们报告了真实标签和通过将自注意力图阈值设定为保留 60% 的质量而获得的分割掩模之间的 Jaccard 相似性。请注意,自注意力图是平滑的,并且未经过优化以生成掩模。尽管如此,我们看到监督或 DINO 模型在 Jaccard 相似性方面存在明显差异。请注意,自监督的卷积网络也包含有关分割的信息,但需要专门的方法从它们的权重中提取 [24]。
4.2.3. 在下游任务上的迁移学习
在表 6 中,我们评估了使用 DINO 预训练的特征在不同下游任务上的质量。我们将其与在ImageNet 上使用监督进行训练的相同架构的特征进行比较。我们按照 Touvron 等人 [56] 使用的协议,在每个下游任务上微调特征。我们观察到,对于 ViT 架构,自监督预训练的迁移效果比使用监督训练的特征更好,这与对卷积网络的观察一致 [9, 26, 51]。最后,自监督预训练在 ImageNet 上极大地改善了结果(+1-2%)。
5. DINO 的消融研究
在本节中,我们对应用于 ViT 的 DINO 进行了实证研究。整个研究中考虑的模型是 ViT-S。我们还请读者参阅附录以获取额外的研究。
组件的重要性。我们展示了在使用我们的框架训练的 ViT 上添加不同自监督学习组件的影响。 在表 7 中,我们报告了不同的模型变体,当我们添加或删除组件时。首先,我们观察到在没有动量的情况下,我们的框架不起作用(第 2 行),并且需要更高级的操作,例如 SK,以避免崩溃(第 9行)。然而,有了动量,使用 SK 的影响很小(第 3 行)。此外,比较第 3 行和第 9 行突显了动量编码器对性能的重要性。其次,在第 4 行和第 5 行中,我们观察到多裁剪训练和 DINO 中的交叉熵损失是获得良好特征的重要组成部分。我们还观察到将预测器添加到学生网络对性能影响很小(第 6 行),而在 BYOL 中,这对防止崩溃至关重要 [14, 23]。为了完整起见,我们在附录中提出了这个消融研究的扩展版本。
补丁大小的重要性。在图 5 中,我们比较了使用不同补丁大小(16 × 16、8 × 8 和 5 × 5)训练的ViT-S 模型的 k-NN 分类性能。我们还将其与使用 16 × 16 和 8 × 8 补丁的 ViT-B 进行了比较。所有模型均进行了 300 个 epoch 的训练。我们观察到随着补丁大小的减小,性能大大提高。有趣的是,性能可以在不添加额外参数的情况下大幅提高。然而,使用较小的补丁带来的性能增益是以吞吐量为代价的:使用 5×5 补丁时,吞吐量下降到 44 im/s,而使用 8×8 补丁时为 180 im/s。
6. 结论
我们已经展示了自监督地预训练一个标准 ViT 模型的潜力,实现了与专门设计用于此设置的最佳卷积网络相媲美的性能。我们还看到了两个可以在未来应用中利用的属性的出现:k-NN 分类中特征的质量对图像检索具有潜力。特征中有关场景布局的信息也有助于弱监督图像分割。
S. 总结
S.1 主要贡献
与受监督的 Vision Transformer(ViT)和卷积网络不同,自监督 ViT 特征包含有关图像语义分割的显式信息,且这些特征还是出色的 k-NN 分类器。本文提出一种自监督方法:无标签的自蒸馏(self-distillation with no labels,DINO),使用多裁剪训练(multi-crop training),使用标准的交叉熵损失,直接预测具有动量编码器的教师网络的输出,仅通过对教师输出进行中心化和锐化来避免崩溃。
S.2 方法
DINO 架构如图 2 所示,其与最近的自监督方法具有相同的整体结构。然而,该方法也与知识蒸馏 有相似之处。
多裁剪策略:对于给定的图像,生成一个包含两个全局视图以及几个小分辨率的局部视图的视图集。所有裁剪都经过学生网络,而只有全局视图经过教师网络,因此鼓励 “局部到全局” 的对应关系。然后,最小化学生网络与教师网络输出分布的交叉熵。
教师网络:与知识蒸馏不同,DINO 没有预先给定一个教师网络,而是从学生网络的先前迭代中构建它。学生权重使用指数移动平均(EMA),即动量编码器。
网络架构。神经网络由一个主干网络(ViT 或 ResNet)和一个投影头组成,在下游任务中使用的特征是主干网络的输出。因为不使用预测器,所以学生和教师网络具有完全相同的架构。