Emerging Properties in Self-Supervised Vision Transformers
TL;DR 精炼摘要
本文研究自监督学习(SSL)对视觉变换器(ViT)的独特贡献,提出了DINO方法。研究发现,自监督ViT特征显式包含图像语义分割信息,且在k-NN分类器上表现优异,达到78.3%的准确率。DINO在ImageNet上实现了80.1%的顶级准确率,展示SSL与ViT的强协同。
摘要
In this paper, we question if self-supervised learning provides new properties to Vision Transformer (ViT) that stand out compared to convolutional networks (convnets). Beyond the fact that adapting self-supervised methods to this architecture works particularly well, we make the following observations: first, self-supervised ViT features contain explicit information about the semantic segmentation of an image, which does not emerge as clearly with supervised ViTs, nor with convnets. Second, these features are also excellent k-NN classifiers, reaching 78.3% top-1 on ImageNet with a small ViT. Our study also underlines the importance of momentum encoder, multi-crop training, and the use of small patches with ViTs. We implement our findings into a simple self-supervised method, called DINO, which we interpret as a form of self-distillation with no labels. We show the synergy between DINO and ViTs by achieving 80.1% top-1 on ImageNet in linear evaluation with ViT-Base.
思维导图
论文精读
中文精读
1. 论文基本信息
1.1. 标题
Emerging Properties in Self-Supervised Vision Transformers
(自监督视觉变换器中的涌现属性)
1.2. 作者
Mathilde Caron, Hugo Touvron, Ishan Misra, Hervé Jegou, Julien Mairal, Piotr Bojanowski, Armand Joulin
隶属机构: Facebook AI Research (FAIR), Inria, Sorbonne University
1.3. 发表期刊/会议
ICCV 2021 (International Conference on Computer Vision)
注:ICCV 是计算机视觉领域的顶级会议之一,具有极高的学术影响力。
1.4. 发表年份
2021 年 4 月 (arXiv), 后发表于 ICCV 2021。
1.5. 摘要
本文探讨了自监督学习(Self-Supervised Learning, SSL)是否能为视觉变换器(Vision Transformer, ViT)带来卷积神经网络(ConvNets)所不具备的新特性。除了验证自监督方法在 ViT 上表现优异外,作者有两个主要发现:
-
自监督 ViT 的特征包含了关于图像语义分割的显式信息(即模型能自动“看”出物体的轮廓),这在监督学习的 ViT 或卷积网络中并不明显。
-
这些特征在 -NN(k近邻)分类器上表现出色,无需微调即可达到很高的准确率。
基于这些发现,作者提出了一种简单的自监督方法 DINO (Self-distillation with no labels),将其解释为无标签的自蒸馏。实验表明,DINO 与 ViT 的结合在 ImageNet 上取得了 80.1% 的 top-1 准确率。
1.6. 原文链接
- arXiv: https://arxiv.org/abs/2104.14294v2
- PDF: https://arxiv.org/pdf/2104.14294v2.pdf
- 状态: 已正式发表。
2. 整体概括
2.1. 研究背景与动机
- 核心问题: Transformer 模型在自然语言处理(NLP)领域取得了巨大成功(如 BERT, GPT),这很大程度上归功于自监督预训练(使用文本本身作为监督信号)。在计算机视觉领域,虽然 Vision Transformer (ViT) 已经展现出与卷积神经网络(ConvNet)相当的竞争力,但它们通常依赖于大量的有监督数据预训练。
- 研究空白: 现有的 ViT 并没有表现出超越 ConvNet 的独特属性。作者质疑,ViT 在视觉领域尚未取得像在 NLP 那样压倒性成功的原因,是否是因为使用了监督学习(标签)而非自监督学习。监督学习可能会将图像丰富的视觉信息压缩为单一的标签概念,从而丢失了细节。
- 切入点: 作者受到 NLP 中自监督成功的启发,尝试将自监督学习应用于 ViT,探究是否会涌现出新的特性。
2.2. 核心贡献与主要发现
-
**提出 DINO 框架:**这是一种无需任何标签的自蒸馏方法。它简化了自监督训练流程,直接预测教师网络的输出,无需负样本对(negative pairs)或复杂的预测器。
-
发现一:自动语义分割: 自监督训练的 ViT 的自注意力图(Self-attention maps)能够自动捕捉场景布局和物体边界。这意味模型在没有像素级标注的情况下,学会了“分割”物体。
-
发现二:优秀的 -NN 性能: DINO 提取的特征非常适合最近邻检索。使用简单的 -NN 分类器就能在 ImageNet 上达到 78.3% 的准确率,这表明特征空间具有很好的语义结构。
-
技术组件验证: 强调了动量编码器(Momentum Encoder)、多裁剪训练(Multi-crop training)以及在 ViT 中使用小尺寸补丁(Small patches)的重要性。
下图(原文 Figure 1)直观展示了第一个核心发现:无需任何监督,模型就能精准地定位并分割出图像中的主体(如鸟、车、狗)。
该图像是展示自监督学习中的自注意力机制,包含不同物体的图像与相应的分割结果。每个图像上方的彩色表示显示了自监督训练中自动学习的类别特征,这些特征可用于无监督的物体分割。
3. 预备知识与相关工作
3.1. 基础概念
为了理解本文,初学者需要掌握以下三个核心概念:
-
视觉变换器 (Vision Transformer, ViT):
- 这是一种不使用卷积(Convolution)而完全基于注意力机制(Attention Mechanism)的图像处理模型。
- 工作原理: 它将图像切分成一个个固定大小的小方块(称为 Patches),例如 像素。这些 Patches 被线性映射为向量,序列化后输入到 Transformer 中,就像 NLP 处理单词序列一样。
- Token (词元): 在 ViT 中,每个 Patch 转换后的向量就是一个 Token。此外,通常会增加一个特殊的
[CLS]Token,用于聚合整个图像的信息。
-
自监督学习 (Self-Supervised Learning, SSL):
- 一种无监督学习形式。模型不使用人工标注的标签(如“这是一只猫”),而是从数据本身构造任务(Pretext Task)。
- 例如:遮住图像的一部分让模型去预测,或者对同一张图做不同的扭曲(裁剪、变色),让模型识别出它们来自同一张原图。
-
知识蒸馏 (Knowledge Distillation):
- 通常用于模型压缩。由一个庞大的“教师网络”(Teacher)和一个较小的“学生网络”(Student)组成。
- 目标: 训练学生网络,使其输出的概率分布尽可能接近教师网络的输出。
- 自蒸馏 (Self-Distillation): 学生和教师拥有相同的架构,教师通常是学生网络在训练过程中的某种平均或历史版本。
3.2. 前人工作与差异化分析
- 对比学习 (Contrastive Learning, e.g., MoCo, SimCLR):
- 原理: 拉近同一图像不同视图的特征距离,推远不同图像的特征距离。
- DINO 的区别: DINO 不使用负样本(即不需要推远不同图像),这简化了训练,避免了维护大型负样本队列或大批次(Batch Size)的需求。
- BYOL (Bootstrap Your Own Latent):
- 原理: 仅使用正样本对,通过预测目标网络的输出来训练。依靠非对称结构(学生网络有预测头,教师没有)来防止模型坍塌(Collapse)。
- DINO 的区别: DINO 也可以看作是 BYOL 的一种形式,但使用了交叉熵损失(而非均方误差 MSE),并且通过中心化 (Centering) 和 锐化 (Sharpening) 来防止坍塌,而不是依赖预测头。
- SwAV (Swapping Assignments between Views):
- 原理: 基于聚类的方法。将特征映射到一组可学习的原型向量(Prototypes)上。
- DINO 的区别: DINO 继承了 SwAV 的多裁剪(Multi-crop)策略,但放弃了显式的聚类步骤,直接通过 softmax 输出概率分布进行匹配,更接近蒸馏的思想。
4. 方法论
4.1. 方法原理:无标签自蒸馏
DINO 的核心思想是训练一个学生网络 (Student Network) 来模仿一个教师网络 (Teacher Network) 的输出。
-
两个网络拥有完全相同的架构(通常是 ViT 或 ResNet),但参数不同。
-
关键点: 教师网络不是预先训练好的,而是在训练过程中根据学生网络的参数动态构建的(通过指数移动平均)。
-
防止坍塌 (Avoiding Collapse): 自监督学习中常见的一个问题是“坍塌”,即模型无论输入什么图像都输出相同的特征。DINO 通过对教师网络的输出进行中心化 (Centering) 和 锐化 (Sharpening) 来解决这个问题。
下图(原文 Figure 2)详细展示了 DINO 的整体架构和数据流:
该图像是一个示意图,展示了无标签自蒸馏 DINO 的过程。模型接收输入图像的两个随机变换 和 ,通过学生网络和教师网络处理。教师网络的输出经过中心化处理,并利用 softmax 进行归一化。两者的相似性通过交叉熵损失进行测量。在此过程中,教师使用停止梯度操作仅向学生传播梯度,教师参数则通过学生参数的指数移动平均进行更新。
4.2. 核心方法详解 (逐层深入)
4.2.1. 图像增强与多裁剪 (Multi-Crop Strategy)
首先,给定一张输入图像 ,DINO 使用多裁剪策略生成一组不同的视图(Views)。
- 全局视图 (Global Views): 包含两个大面积的裁剪 和 (覆盖原图的 50% 以上)。只有这两个视图会通过教师网络。
- 局部视图 (Local Views): 包含多个小面积的裁剪(覆盖原图的 50% 以下)。所有视图(全局+局部)都会通过学生网络。
- 目的: 这种策略鼓励“局部到全局”的对应关系,即学生网络仅看局部细节,就被迫要预测教师网络看到的全局信息。
4.2.2. 网络输出与概率分布
对于输入图像 ,学生网络 和教师网络 输出 维的特征向量。为了量化输出的相似度,使用 Softmax 函数将输出归一化为概率分布 和 。
对于学生网络,输出概率 的计算公式为: 符号解释:
-
: 学生网络输出向量的第 个维度的值。
-
: 温度参数 (Temperature),控制输出分布的平滑程度。。
-
: 输出的总维度数。
教师网络 的计算公式类似,但使用不同的温度 。
4.2.3. 损失函数 (Loss Function)
DINO 的目标是最小化教师分布和学生分布之间的差异。作者使用了交叉熵损失函数。 对于给定的两个视图,我们要最小化以下损失: 其中 是标准的交叉熵公式。
结合多裁剪策略,完整的损失函数是对所有视图对的求和: 解释:
- 外层求和 : 教师网络只接收两个全局视图。
- 内层求和 : 学生网络接收所有视图(全局和局部)。
- 我们要让学生网络对任意视图 的预测,都去匹配教师网络对全局视图 的预测。
4.2.4. 教师网络的更新 (Momentum Teacher)
重点: 教师网络的参数 不是通过反向传播(Gradient Descent)更新的。为了防止学生直接复制教师导致坍塌,教师参数是学生参数的指数移动平均 (Exponential Moving Average, EMA)。
更新公式如下: 符号解释:
-
: 动量系数,取值在
[0, 1)之间(例如 0.996)。 -
: 当前迭代步骤中学生网络的参数。
-
: 更新后的教师网络参数。
这使得教师网络演变成一个更加稳定、高质量的模型(类似于模型集成 Ensemble 的效果),指导学生学习。
4.2.5. 防止坍塌:中心化与锐化 (Centering & Sharpening)
这是 DINO 能够无负样本工作的关键。
- 中心化 (Centering): 防止某个维度一直占据主导地位(即防止输出全部集中在某一个类别上)。
- 教师网络的输出 在做 Softmax 之前,会减去一个中心向量 :。
- 中心向量 也是通过移动平均更新的: 其中 是平滑系数, 是批次大小。
- 锐化 (Sharpening): 防止输出变成均匀分布(Uniform Distribution)。
-
通过在教师网络的 Softmax 中使用较低的温度 来实现。较低的温度会放大数值间的差异,使概率分布更“尖锐”。
总结: 中心化防止了单一模式坍塌,但可能导致均匀分布坍塌;锐化防止了均匀分布坍塌,但可能导致单一模式坍塌。两者结合,实现了平衡。
-
4.2.6. 投影头设计 (Projection Head)
为了进一步提升性能,作者在主干网络(ViT 或 ResNet)之后添加了一个投影头。DINO 的投影头设计如下图(原文 Figure 9)所示,是否包含 L2 归一化瓶颈层(Bottleneck)对性能有显著影响。
该图像是示意图,展示了带有和不带有12-norm瓶颈的投影头设计。左侧的设计包含一个线性层和L2正则化,而右侧设计则省略了这些组件。图中展示了输入数据的维度为,以及输出特征的维度。两种设计的结构通过不同的层次连接,分别影响最终特征的处理方式。
5. 实验设置
5.1. 数据集
- ImageNet: 包含 128 万张训练图片,1000 个类别。这是评估自监督学习特征质量的标准基准。
- 其他数据集: 用于迁移学习评估,包括 CIFAR-10/100, Oxford Flowers, Google Landmarks v2 (GLDv2) 等。
5.2. 评估指标
- Top-1 准确率 (Linear Evaluation):
- 定义: 冻结预训练的主干网络参数,只训练一个线性分类器(Linear Classifier)在特征之上进行分类。
- 意义: 衡量特征的线性可分性,是 SSL 最标准的评估指标。
- -NN 准确率 (-Nearest Neighbors):
- 定义: 对于测试图像,在训练集中找到特征空间距离最近的 个样本,通过投票决定类别。
- 意义: 衡量特征空间的几何结构质量。如果特征好,同类图像在空间中应该自然聚在一起。
- Jaccard 相似度 (Jaccard Similarity / IoU):
- 定义: 用于评估分割效果。计算预测掩码(Mask)与真值掩码(Ground Truth)的交并比。
- 公式: 。
- 平均精度均值 (Mean Average Precision, mAP):
- 定义: 用于图像检索任务,综合衡量检索的准确率和召回率。
5.3. 对比基线
- 监督学习基线: Supervised ViT, Supervised ResNet-50。
- 自监督基线:
- BYOL (非对比学习)
- MoCo v2 (对比学习)
- SwAV (聚类方法)
6. 实验结果与分析
6.1. 核心结果分析:ImageNet 分类
作者在 ImageNet 上进行了广泛的对比。下表(原文 Table 2)展示了 DINO 与其他方法的对比结果。
重点观察:
-
同架构对比 (ViT-S): DINO 在线性分类 (77.0%) 和 -NN (74.5%) 上均大幅超越其他自监督方法(BYOL, MoCo v2, SwAV)。特别是 -NN 性能,提升了近 8-10 个百分点,这证实了 DINO 特征优秀的局部结构。
-
跨架构对比: DINO ViT-S (21M 参数) 的性能可以媲美参数量大得多的 ResNet-50 (23M 参数) 的 SOTA 方法。
-
最佳性能: 使用 ViT-B/8(Base模型,8x8 patch),DINO 达到了 80.1% 的 Top-1 准确率,这是当时的自监督学习新纪录。
以下是原文 Table 2 的结果:
Method Arch. Param. im/s Linear k-NN Supervised RN50 23 1237 79.3 79.3 SCLR [12] RN50 23 1237 69.1 60.7 MoCov2 [15] RN50 23 1237 71.1 61.9 InfoMin [67] RN50 23 1237 73.0 65.3 BarlowT [81] RN50 23 1237 73.2 66.0 OBoW [27] RN50 23 1237 73.8 61.9 BYOL [30] RN50 23 1237 74.4 64.8 DCv2 [10] RN50 23 1237 75.2 67.1 SwAV [10] RN50 23 1237 75.3 65.7 DINO RN50 23 1237 75.3 67.5 ViT Architecture Supervised ViT-S 21 1007 79.8 79.8 BYOL* [30] ViT-S 21 1007 71.4 66.6 MoCov2* [15] ViT-S 21 1007 72.7 64.4 SwAV* [10] ViT-S 21 1007 73.5 66.3 DINO ViT-S 21 1007 77.0 74.5 Comparison across architectures DINO ViT-B/16 85 312 78.2 76.1 DINO ViT-S/8 21 180 79.7 78.3 DINO ViT-B/8 85 63 80.1 77.4
6.2. 涌现属性:自动分割
这是论文最引人注目的发现。作者可视化了 ViT 最后一层的自注意力图(Self-Attention Maps)。在没有任何像素级标注监督的情况下,DINO 能够惊人地将注意力集中在前景物体上,清晰地区分物体和背景。
下图(原文 Figure 3)展示了不同注意力头(Heads)关注的不同区域,证明了特征的多样性和语义对应能力。
该图像是注意力图,展示了经过 DINO 训练的 ViT-S/8 模型最后一层的多头自注意力机制。不同颜色表示的头部关注于图像中不同的对象或部分,突显出模型在理解图像语义方面的多样性。
此外,下图(原文 Figure 4)对比了监督学习和 DINO 自监督学习生成的分割掩码。可以看到,监督学习(Supervised)的注意力往往是一团模糊,而 DINO 的注意力则精确地贴合物体轮廓。下方的表格数据显示 DINO 在 Jaccard 相似度上大幅领先监督模型。
该图像是一个示意图,展示了自监督学习方法 DINO 在图像分割中的效果。上半部分展示了使用 DINO 方法处理的图像,其中红色区域表示提取的特征;下半部分为性能比较表,列出了 ViT-S/16 和 ViT-S/8 在随机、监督和 DINO 方法下的准确率。DINO 方法在图像特征提取中显示出显著的提升,ViT-S/16 达到 45.9% 的效果。
6.3. 消融实验与参数分析
6.3.1. 关键组件的重要性
作者在 Table 7 中分析了不同组件对 DINO 性能的影响。
-
动量编码器 (Momentum Encoder): 极其重要。如果没有它(Row 2),模型会直接坍塌(0.1% 准确率)。
-
多裁剪 (Multi-crop): 对性能提升显著(Row 4 vs Row 1,72.5% -> 76.1%)。
-
损失函数: 交叉熵(CE)优于均方误差(MSE)。
以下是原文 Table 7 的结果:
Method Mom. SK MC Loss Pred. k-NN Lin. 1 DINO ✓ X ✓ CE X 72.8 76.1 2 × X ✓ CE X 0.1 0.1 3 ✓ ✓ ✓ CE X 72.2 76.0 4 ✓ X × CE X 67.9 72.5 5 ✓ X ✓ MSE × 52.6 62.4 6 ✓ X ✓ CE √ 71.8 75.6
6.3.2. Patch Size 的影响
下图(原文 Figure 5)展示了 Patch Size 对性能的影响。
-
结论: 使用更小的 Patch(如 甚至 )能显著提升 -NN 准确率。
-
代价: 吞吐量(Throughput, im/s)会随着 Patch 变小而急剧下降,计算成本增加。
该图像是图表,展示了不同输入补丁大小对 ViT-B 和 DeiT-S 模型在 ImageNet 上 k-NN 评估的影响。随着 throughput 的变化,展示了 5x5、8x8 和 16x16 不同补丁大小的性能表现。
6.3.3. 教师网络的行为
下图(原文 Figure 6)揭示了为什么动量教师有效。左图显示,在整个训练过程中,教师网络的性能始终优于学生网络。这验证了动量更新起到了类似 Polayk-Ruppert 平均(一种模型集成技术)的效果,从而能够持续为学生提供更高质量的训练目标。
该图像是图表,展示了在ImageNet验证集上使用-NN分类器的Top-1准确率。在训练过程中,动量教师(Momentum)和学生(Student)的表现进行了比较,并列出了不同教师网络的Top-1准确率,动量编码器显示出最佳性能。
6.3.4. 坍塌研究
下图(原文 Figure 7)展示了中心化和锐化如何防止坍塌。
- KL 散度 (右图): 如果不做处理,KL 散度会降为 0,意味着完全坍塌。
- 熵 (Entropy, 左图):
-
无中心化(No centering):熵降为 0,意味着输出集中在单一类别(Dominant mode collapse)。
-
无锐化(No sharpening):熵达到最大值(),意味着输出变成均匀分布(Uniform collapse)。
-
两者结合:维持了健康的熵水平。
该图像是图表,展示了教师目标熵和KL散度随训练周期的演变。左侧显示不同策略下目标熵的变化,其中蓝色表示锐化,红色虚线表示中心化,橙色表示两者结合。右侧展示了对应的KL散度演变情况。
-
7. 总结与思考
7.1. 结论总结
本文提出了 DINO,一种基于自蒸馏的自监督学习框架,并将其应用于 Vision Transformers。
- 方法简洁: DINO 不依赖负样本或复杂的预测头,仅通过动量教师、中心化和锐化即可高效训练。
- 性能优越: 在 ImageNet 上取得了 SOTA 的线性分类性能,并且在 -NN 检索任务上表现卓越。
- 涌现属性: 最重要的发现是,DINO 训练的 ViT 能够自动学习到关于物体边界和场景布局的显式知识(自动分割),这是以往监督学习模型所不具备的。
7.2. 局限性与未来工作
- 计算开销: 虽然 DINO 可以在单机上训练,但高性能的模型(如 ViT-B/8)仍然需要大量的计算资源(低吞吐量)。特别是小 Patch 带来的计算复杂度是平方级增长的。
- 训练稳定性: 自监督学习对超参数(如学习率、动量系数、温度参数)通常比较敏感,需要精细调节。
- 未来方向: 作者建议探索在更大规模、未清洗的数据集上预训练大型 ViT,以进一步推高视觉特征的极限(类似于 BERT/GPT 在文本领域的做法)。
7.3. 个人启发与批判
- ViT 与 SSL 的契合度: 这篇论文强有力地证明了 ViT 的架构特性(如 Patch 间的注意力机制)与自监督学习目标(如 DINO 的局部-全局匹配)结合时,能产生“化学反应”。自动分割能力的涌现暗示了 ViT 可能更接近人类的视觉感知方式(先关注物体整体结构)。
- 无标签蒸馏的通用性: DINO 将自监督学习统一在“蒸馏”的框架下,这是一个非常优雅且具有解释性的视角。它暗示了教师网络(作为历史模型的集成)确实包含了比单一时刻学生网络更丰富的知识。
- 批判: 尽管 DINO 简化了流程,但“中心化+锐化”的平衡机制在数学原理上相对经验主义(Heuristic)。为何这种特定的组合能如此完美地避免坍塌,可能仍需要更深层的理论解释。此外,小 Patch 虽然效果好,但其推理速度极慢,在实际工业部署中可能需要权衡。
相似论文推荐
基于向量语义检索推荐的相关论文。