[paper] Emerging Properties in Self-Supervised Vision Transformers
[code] facebookresearch/dino

摘要
在本文中,我们质疑自我监督学习是否为视觉变压器(ViT)[18]提供了与卷积网络(convnets)相比脱颖而出的新属性。除了使自我监督方法适应这种体系结构特别有效的事实之外,我们还做出以下观察:首先,自我监督的ViT功能包含有关图像语义分割的明确信息,而对于监督的ViT来说,这显然不明显, 也没有卷积网。其次,这些功能也是出色的k-NN分类器,使用较小的ViT在ImageNet上的top-1达到78.3%。我们的研究还强调了动量编码器[31],多作物训练[10]以及在ViT上使用小补丁的重要性。我们将研究结果实施为一种简单的自我监督方法,称为DINO,我们将其解释为无标签的自我蒸馏形式。通过使用ViT-Base进行线性评估,在ImageNet上达到80.1%的top-1,我们展示了DINO和ViT之间的协同作用。
介绍
变压器[67]最近出现,可以替代卷积神经网络(convnets)进行视觉识别[18、66、80]。它们的采用与自然语言处理(NLP)启发的训练策略相结合,即对大量数据进行预训练并对目标数据集进行微调[17,53]。最终的视觉变形器(ViT)[18]与卷积网络相比具有竞争优势,但是,它们还没有比卷积网络带来明显的好处:它们在计算上要求更高,需要更多的训练数据,并且它们的功能没有表现出独特的性能。
在本文中,我们质疑变压器在视觉上的成功是否可以通过在他们的训练前使用监督来解释。我们的动机是,成功实现NLP的主要因素之一是使用自我监督的预训练,形式是BERT [17]中的紧密过程或GPT [53]中的语言建模。这些自我监督的预训练目标使用句子中的单词来创建借口任务,这些任务提供比预测每个句子单个标签的监督目标更丰富的学习信号。类似地,在图像中,图像级监督通常将图像中包含的丰富视觉信息减少为从几千个类别的对象的预定义集合中选择的单个概念[58]。
尽管NLP中使用的自我监督的前置任务是特定于文本的,但许多现有的自我监督方法已在具有卷积网络的图像上显示了它们的潜力[10、12、28、31]。它们通常具有相似的结构,但具有不同的组件,旨在避免琐碎的解决方案(崩溃)或提高性能[15]。在这项工作中,受这些方法的启发,我们研究了自我监督的预训练对ViT功能的影响。特别令人感兴趣的是,我们发现了受监督的ViT或卷积网络都没有出现的几个有趣的属性:
- 自我监督的ViT功能明确包含场景布局,尤其是对象边界,如图1所示。在最后一个块的自我关注模块中可以直接访问此信息。
- 自我监督的ViT功能在没有任何微调,线性分类器或数据增强的情况下,使用基本的最近邻分类器(k-NN)尤其出色,在ImageNet上达到了78.3%的top-1准确性。
分割掩码的出现似乎是跨自我监督方法共享的属性。然而,仅当结合某些要素(例如动量编码器[31]和多作物增强[10])时,k-NN的良好性能才会出现。我们研究的另一个发现是,将较小的补丁与ViT配合使用对于提高最终功能质量的重要性。
总体而言,我们对这些组件重要性的发现促使我们设计了一种简单的自我监督方法,可以将其解释为一种无标签的知识蒸馏形式[33]。产生的框架DINO通过使用标准的交叉熵损失直接预测由动量编码器构建的教师网络的输出,从而简化了自我监督的训练。有趣的是,我们的方法只能对教师的输出进行居中和锐化,以避免崩溃,而其他流行的组成部分,例如预测变量[28],高级归一化[10]或对比损失[31],则在稳定性或稳定性方面几乎没有增加任何益处或表现。尤其重要的是,我们的框架非常灵活,可以在卷积网络和ViT上工作,而无需修改架构,也无需调整内部标准化[56]。
我们通过以小补丁的ViT-Base优于ImageNet线性分类基准的以前的自我监督功能,以80.1%的top-1准确性,来进一步验证DINO和ViT之间的协同作用。我们还通过将最先进的技术与ResNet-50架构进行匹配,确认了DINO可与卷积网络一起使用。最后,我们讨论了在计算和内存容量有限的情况下将DINO与ViT结合使用的不同方案。特别是,使用ViT训练DINO仅需两台8-GPU服务器,即可在3天之内达到ImageNet线性基准测试的76.1%,该性能优于基于可比较大小的卷积网络的自我监督系统,并且显着降低了计算需求[10,28]。
相关工作
自我监督学习
关于自我监督学习的大量工作着重于区分实例分类[12、19、31、70]的判别方法,该方法将每个图像视为不同的类别,并通过将它们区分为数据扩充来训练模型。但是,明确学习分类器以区分所有图像[19]并不能很好地缩放图像的数量。Wu等[70]建议使用噪声对比估计器(NCE)[30]来比较实例,而不是对它们进行分类。这种方法的一个警告是,它需要同时比较大量图像中的特征。实际上,这需要大批量[12]或存储库[31、70]。有几种变体允许以聚类的形式对实例进行自动分组[2、8、9、25、34、40、71、77、82]。
最近的工作表明,我们可以在不区分图像的情况下学习不受监督的功能。特别有趣的是,Grill等[28]提出了一种称为BYOL的度量学习公式,其中通过将特征与动量编码器获得的表示进行匹配来对特征进行训练。已经表明,像BYOL这样的方法即使没有动量编码器也可以工作,但会降低性能[15,28]。其他一些工作也呼应了这个方向,表明人们可以训练匹配它们的特征到 l 2 l_2 l2超球体上的均匀分布[6]或使用增白[22,78]。我们的方法是从BYOL中汲取灵感的,但是在相似度匹配损失方面却有所不同,并且为学生和老师使用了完全相同的体系结构。这样,我们的工作就完成了BYOL发起的自我监督学习的解释,这是一种没有标签的中庸教师自我提炼的形式[62]。
自我训练和知识升华
自我训练旨在通过将少量的初始批注传播到大量的未标记实例来提高要素的质量。可以使用标签[39、75、76]的硬分配或使用软分配[73]来完成此传播。当使用软标签时,该方法通常被称为知识提炼[7,33],并且主要用于训练小型网络以模仿大型网络的输出以压缩模型。谢等[73]最近表明,蒸馏可以用于在自训练管道中将软伪标签传播到未标记的数据,从而在自训练和知识蒸馏之间建立了必不可少的联系。我们的工作建立在这种关系的基础上,并将知识提炼扩展到没有标签可用的情况。先前的工作还结合了自我监督学习和知识提炼,从而实现了自我监督模型压缩[24]和性能提升[13,45]。但是,当我们的老师在培训过程中动态建立时,这些作品依赖于受过培训的固定老师。这样,知识提纯而不是被用作自我监督式预训练的后处理步骤,而是直接转化为自我监督的目标。最后,我们的工作还涉及到协作[1],即学生和教师拥有相同的体系结构,并在培训过程中使用蒸馏。然而,协同教学中的教师也是从学生身上提炼出来的,而在我们的工作中则是用学生的平均动量来更新的。
方法
SSL与知识蒸馏
用于这项工作的框架 DINO 与最近的自我监督方法具有相同的整体结构 [10、15、12、28、31]。然而,我们的方法与知识蒸馏 [33] 也有相似之处,我们在这个角度下呈现它。我们在图 2 中说明了 DINO,并在算法 1 中提出了一个伪代码实现。


知识蒸馏是一种学习范式,我们训练学生网络 gθs 以匹配给定教师网络 gθt 的输出,分别由 θs 和 θt 参数化。给定输入图像 x,两个网络都输出 K 维的概率分布,用 Ps 和 Pt 表示。概率 P 是通过使用 softmax 函数对网络 g 的输出进行归一化得到的。 更确切地说,

τs > 0 是控制输出分布锐度的温度参数,类似的公式适用于温度为 τt 的 Pt。给定一个固定的教师网络 gθt ,我们通过最小化交叉熵损失 w.r.t 来学习匹配这些分布。 学生网络θs的参数:

下面,我们将详细说明如何使等式(2)中的问题适应自我监督学习。首先,我们使用多重裁剪策略构建图像的不同扭曲视图或裁剪图 [10]。更准确地说,从给定的图像中,我们生成一组不同视图的 V。该集合包含两个全局视图 x 1 g x^g_1 x1g 和 x 2 g x^g_2 x2g 以及几个较小分辨率的局部视图。所有裁剪都通过学生传递,而只有全局视图通过教师传递,因此鼓励“本地到全局”的对应关系。我们最小化损失:

这种损失是通用的,可以用于任意数量的视图,甚至只有 2 个。然而,我们遵循多重裁剪的标准设置,使用 2 个分辨率为 22 4 2 224^2 2242 的全局视图覆盖原始图像的大(例如大于 50%)区域,和几个分辨率为 9 6 2 96^2 962 的局部视图仅覆盖原始图像的小区域(例如小于 50%)。除非另有说明,否则我们将此设置称为 DINO 的基本参数化。
两个网络共享相同的架构 g,具有不同的参数 θs 和 θt 集。我们使用随机梯度下降通过最小化方程 (3) 来学习参数 θs 。
- 教师网络
与知识蒸馏不同,我们没有给定先验的教师 gθt,因此,我们从学生网络的过去迭代中构建它。我们在 5.2 节中研究了教师的不同更新规则,并表明在我们的框架中冻结教师网络在一个时期内的效果出奇地好,而复制教师的学生权重未能收敛。特别有趣的是,在学生权重上使用指数移动平均 (EMA),即动量编码器 [31],特别适合我们的框架。更新规则是 θt ← λθt + (1 − λ)θs,其中 λ 在训练期间遵循从 0.996 到 1 的余弦计划 [28]。最初,动量编码器已被引入作为对比学习中队列的替代品 [31]。然而,在我们的框架中,它的作用有所不同,因为我们没有队列也没有对比损失,并且可能更接近于自我训练中使用的平均教师的作用 [62]。事实上,我们观察到这个老师执行了一种类似于 Polyak-Ruppert 平均的模型集成形式,具有指数衰减 [49, 57]。使用 PolyakRuppert 平均进行模型集成是提高模型性能的标准做法 [36]。我们观察到该教师在整个培训过程中的表现优于学生,因此通过提供更高质量的目标特征来指导学生的培训。在以前的工作中没有观察到这种动态 [28, 56]。 - 网络架构
神经网络 g 由主干 f(ViT [18] 或 ResNet [32])和投影头 h 组成:g = h ◦ f。下游任务中使用的特征是主干 f 输出。投影头由一个隐藏维度为 2048 的 3 层多层感知器 (MLP) 和一个具有 K 维度的权重归一化全连接层 [59] 组成,其隐藏维度为 2048,类似于 SwAV [10] 的设计。我们测试了其他投影头,这种特殊设计似乎最适合 DINO(附录 C)。我们不使用预测器 [28, 15],导致学生和教师网络中的架构完全相同。特别有趣的是,我们注意到与标准卷积网络不同,ViT 架构默认不使用批量归一化 (BN)。因此,当将 DINO 应用于 ViT 时,我们也不会在投影头中使用任何 BN,从而使系统完全没有 BN。 - 避免崩溃
几种自监督方法因用于避免崩溃的操作而异,通过对比损失 [70]、聚类约束 [8、10]、预测器 [28] 或批量归一化 [28、56]。虽然我们的框架可以通过多重归一化 [10] 来稳定,但它也可以仅使用动量教师输出的居中和锐化来避免模型崩溃。如第 5.3 节中的实验所示,居中可以防止一个维度占主导地位,但会鼓励崩溃到均匀分布,而锐化则具有相反的效果。应用这两种操作可以平衡它们的效果,这足以避免在有动量教师的情况下崩溃。选择这种方法来避免崩溃交易稳定性以减少对批次的依赖性:居中操作仅依赖于一阶批次统计,并且可以解释为向教师添加偏差项 c:gt(x) ← gt(x) + C。中心 c 用指数移动平均线更新,这使得该方法可以在不同的批次大小下很好地工作,如第 5.5 节所示:
自监督学习在视觉Transformer上的新兴特性与DINO框架

最低0.47元/天 解锁文章
1416

被折叠的 条评论
为什么被折叠?



