《Vision Transformer》论文精读:在大量足够数据量的条件下纯Transformer也能在图像分类任务中比肩SOTA
相关知识:《Transformer》论文精读:只用注意力机制,Transformer奠定了大模型网络架构的基石
文章目录
- 摘要
- 1 简介
- 2 相关工作
- 3 方法
- 3.1 Vision Transformer ViT
- 3.2 微调和更高的分辨率
- 4 实验结果
- 4.1 实验设置
- 4.2 跟SOTA比较
- 4.3 训练前的数据要求
- 4.4 扩展研究
- 4.5 VIT如何处理图像数据
- 4.6 自监督
- 5 结论
摘要
论文描述了计算机视觉领域中的一种新型架构——Vision Transformer (ViT)。
-
Transformer 架构的背景:
- Transformer 架构最初是为自然语言处理(NLP)任务设计的,它通过自注意力机制(self-attention mechanism)来处理序列数据,如文本。
- 在 NLP 领域取得成功后,研究者开始探索将 Transformer 应用于计算机视觉(CV)的可能性。
-
传统 CV 方法与 Transformer 的结合:
- 在计算机视觉领域,卷积神经网络(CNNs)一直是主导架构。
- 早期尝试在视觉任务中使用 Transformer 时,通常是将其与 CNN 结合使用,或者用 Transformer 替换 CNN 中的某些组件,但保留整体结构不变。
-
纯 Transformer 的应用:
- 文章指出,并不一定需要依赖 CNN。相反,可以将一个纯粹的 Transformer 直接应用于图像补丁(image patches)序列上,这些补丁是从原始图像中提取出来的局部区域。
- 这意味着整个模型可以完全由 Transformer 组件构成,而不包含传统的卷积层。
-
Vision Transformer (ViT) 的性能:
- 当 Vision Transformer 在大量数据上进行预训练,并迁移到 ImageNet、CIFAR-100、VTAB 等中等或小型图像识别基准测试集时,它可以达到与最先进(state-of-the-art)的卷积网络相媲美的优秀结果。
- 此外,ViT 训练所需的计算资源显著少于那些最先进的卷积网络。
总结来说,作者强调了纯 Transformer 架构(即 Vision Transformer)在计算机视觉任务上的潜力,特别是在图像分类方面,它不仅能够实现高性能,而且效率更高。这一发现挑战了以往认为在视觉任务中必须依赖 CNN 的观点,并为未来的研究和应用提供了新的方向。
1 简介
基于自注意机制的架构,尤其是 Transformers(Vaswani 等人,2017 年),已经成为自然语言处理(NLP)领域的首选模型。主流方法是在大型文本语料库上进行预训练,然后在较小的特定任务数据集上进行微调(Devlin 等人,2019 年)。得益于 Transformers 的计算高效性和可扩展性,它可以训练出前所未有的模型,参数超过 1 亿(Brown 等人,2020 年;Lepikhin 等人,2020 年)。随着模型和数据集的增长,性能仍未出现饱和迹象。
然而,在计算机视觉领域,卷积架构仍然占据主导地位(LeCun 等人,1989 年;Krizhevsky 等人,2012 年;He 等人,2016 年)。受 NLP 成功的启发,多项研究尝试将类似 CNN 的架构与自我注意相结合(Wang 等人,2018 年;Carion 等人,2020 年),有些研究甚至完全取代了卷积(Ramachandran 等人,2019 年;Wang 等人,2020a)。后一种模型虽然理论上高效,但由于使用了专门的注意力模式,尚未在现代硬件加速器上有效扩展。因此,在大规模图像识别中,类似 ResNet 的经典架构仍然是最先进的(Mahajan 等人,2018 年;Xie 等人,2020 年;Kolesnikov 等人,2020 年)。
受 NLP 中Transformer网络大小扩展成功的启发,我们尝试将标准Transformer直接应用于图像,并尽可能减少修改。为此,我们将图像分割成多个图像补丁,并将这些图像补丁的线性嵌入序列作为Transformer的输入。图像补丁的处理方式与 NLP 应用中的tokens(单词)相同。我们以监督方式对图像分类模型进行训练。
在中等规模的数据集(如 ImageNet)上进行训练时,如果不进行强正则化,这些模式的准确率会略低于同等规模的 ResNets 几个百分点。这种看似令人沮丧的结果可能是意料之中的:Transformer缺乏一些CNN固有的归纳偏差,如平移等变性和局部性,因此在数据量不足的情况下进行训练时不能很好地泛化。
Translation equivariance 平移等变性 指的是当输入图像中的对象被平移时,CNN输出的特征图也会相应地平移,但不会改变其形状或激活模式。简单来说,如果一个特定的图案或对象在图像的一个位置上激活了一定的神经元,那么当这个图案或对象平移到图像的另一个位置时,相同的神经元将会在新的位置上激活。这种性质对于检测图像中对象的位置变化非常重要,因为无论对象出现在图像的哪个部分,CNN都能识别出它。
Locality 局部性 指的是CNN对图像的局部区域进行操作的原则。在CNN中,每个卷积层的过滤器(filter)只与输入的局部区域(即感受野)连接,而不是整个图像。这意味着CNN可以捕捉到图像中的局部特征,比如边缘、角点或其他纹理信息。通过堆叠多个卷积层,CNN可以从低级的局部特征逐步构建更高级、更抽象的特征。这样的设计使得CNN能够有效地减少参数数量,并且专注于学习图像中最重要的局部特征,这对于视觉任务如图像分类、目标检测等非常有用。
然而,如果在更大的数据集(1 400 万至 3 亿张图像)上对模型进行训练,情况就会发生变化。我们发现,大规模训练战胜了归纳偏差。我们的模型(Vision Transformer,ViT)在经过足够规模的预训练后,可用于数据量较少的任务,并取得优异成绩。当在公共 ImageNet-21k 数据集或内部 JFT-300M 数据集上进行预训练时,ViT 在多个图像识别基准上接近或超越了SOTA水平。其中,最佳模型在 ImageNet 上的准确率为 88.55%,在 ImageNet-ReaL 上的准确率为 90.72%,在 CIFAR-100 上的准确率为 94.55%,在包含 19 项任务的 VTAB 上的准确率为 77.63%。
2 相关工作
Transformer是 Vaswani 等人(2017 年)为机器翻译提出的,自此成为许多 NLP 任务中最先进的方法。基于 Transformer 的大模型通常在大型语料库上进行预训练,然后针对手头的任务进行调整: BERT(Devlin 等人,2019 年)使用去噪自监督预训练任务,而 GPT 的系列工作则使用语言修改作为预训练任务(Radford 等人,2018 年;2019 年;Brown 等人,2020 年)。
将自注意力应用于图像,需要每个像素都关注其他像素。由于成本与像素数量成二次方关系,这并不适合现实的输入尺寸。因此,为了在图像处理中应用Transformer,过去曾尝试过几种近似方法。Parmar 等人(2018)仅在每个查询像素的局部邻域而非全局应用了自注意。这种局部多头点积自注意力块可以完全取代卷积(Hu 等人,2019;Ramachandran 等人,2019;Zhao 等人,2020)。在另一项研究中,稀疏Transformer(Child 等人,2019 年)采用了可扩展的全局自我注意力近似方法,以便适用于图像。另一种扩展注意力的方法是在不同大小的块中应用注意力(Weissenborn 等人,2019 年),极端情况下只沿单个轴应用注意力(Ho 等人,2019 年;Wang 等人,2020a)。这些专门的注意力架构中有许多在计算机视觉任务中取得了可喜的成果,但需要复杂的工程设计才能在硬件加速器上高效实现。
与我们最相关的是 Cordonnier 等人(2020 年)的模型,该模型从输入图像中提取大小为 2 × 2 的图像补丁,并在其上应用完全自注意。该模型与 ViT 非常相似,但我们的研究更进一步证明,大规模预训练可使 vanilla Transformer与最先进的 CNN 相媲美(甚至更好)。此外,Cordonnier 等人(2020 年)使用的是 2 × 2 像素的小补丁尺寸,这使得该模型仅适用于小分辨率图像,而我们也能处理中等分辨率图像。
将卷积神经网络(CNN)与各种形式的自注意相结合也引起了人们的极大兴趣,例如,通过增强图像分类的特征图(Bello 等人,2019 年)或使用自注意对 CNN 的输出进行进一步处理,例如,用于物体检测(Hu 等人,2018 年;Carion 等人,2020 年)、视频处理(Wang 等人,2018 年;Sun 等人,2019 年)、图像分类(Wu 等人,2020 年);Carion 等人,2020)、视频处理(Wang 等人,2018;Sun 等人,2019)、图像分类(Wu 等人,2020)、无监督对象发现(Locatello 等人,2020)或统一文本视觉任务(Chen 等人,2020c;Lu 等人,2019;Li 等人,2019)。
另一种最新的相关模型是图像 GPT(iGPT)(Chen 等人,2020a),该模型在降低图像分辨率和色彩空间后,将Transformer应用于图像像素。该模型作为生成模型以无监督的方式进行训练,由此产生的表征可以通过线性调整或微调来提高分类性能,在 ImageNet 上的最高准确率达到 72%。
越来越多的论文探讨了比标准ImageNet数据集更大尺度的图像识别问题,我们的研究为这些论文库增添了新的内容。使用额外的数据源可以在标准基准上取得最先进的结果(Mahajan 等人,2018 年;Touvron 等人,2019 年;Xie 等人,2020 年)。此外,Sun 等人(2017 年)研究了 CNN 性能如何随数据集大小而缩放,Kolesnikov 等人(2020 年)、Djolonga 等人(2020 年)从 ImageNet-21k 和 JFT-300M 等大规模数据集中对 CNN 转移学习进行了实证探索。我们也关注后两个数据集 ImageNet-21k和JFT-300M ,但训练的是 Transformers,而不是之前工作中使用的基于 ResNet 的模型。
3 方法
在模型设计方面,我们尽可能地沿用了最初的 Transformer(Vaswani 等人,2017 年)。这种有意为之的简单设置的优势在于,可扩展的 NLP Transformer 架构及其高效实现几乎可以开箱即用。《Transformer》论文精读:只用注意力机制,Transformer奠定了大模型网络架构的基石
3.1 Vision Transformer ViT
图 1:模型概览。我们将图像分割成固定大小的图像补丁patch,对每个patch进行线性嵌入,添加位置嵌入,然后将得到的向量序列馈送给标准Transformer的编码器。为了进行分类,我们采用标准方法,在序列中添加额外的可学习 “分类标记”。Transformer编码器的图示灵感来自 Vaswani 等人(2017 年)。
图 1 是该模型的概览。标准Transformer的输入是标记嵌入的一维序列。为了处理二维图像,我们将图像 x ∈ R H × W × C x \in \Reals^{H \times W \times C} x∈RH×W×C 重塑为一串经过精简的二维patchs x p ∈ R N × ( P 2 ⋅ C ) x_p \in \Reals^{N \times (P^2 \cdot C)} xp∈RN×(P2⋅C),其中 (H, W ) 是原始图像的分辨率,C 是通道数,(P, P ) 是每个图像补丁的分辨率, N = H W / P 2 N = HW/P^2 N=HW/P2 是生成的补丁数,这也是Transformer的有效输入序列长度。Transformer在其所有层中使用恒定的潜在向量大小 D,因此我们使用可训练的线性投影(公式 1)将补丁平面化并映射到 D 维。我们将该投影的输出称为patch embeddings。
与 BERT 的[class]标记类似,我们将一个可学习的嵌入预置到嵌入片段序列
z
0
0
=
x
c
l
a
s
s
z_0^0 = x_{class}
z00=xclass中,其在 Transformer 编码器输出端的状态
z
L
0
z^0_L
zL0作为图像表示 y(公式 4)。在预训练和微调过程中,
z
L
0
z^0_L
zL0都会连接一个分类头。分类头在预训练时由一个带有一个隐藏层的 MLP 实现,在微调时由一个线性层实现。
Position embeddings位置嵌入被添加到补丁嵌入Patch embeddings中,以保留位置信息。我们使用标准的可学习一维位置嵌入,因为我们没有观察到使用更先进的二维感知位置嵌入能带来显著的性能提升(附录 D.4)。由此产生的嵌入向量序列将作为编码器的输入。
Transformer 编码器(Vaswani 等人,2017 年)由多头自注意(MSA,见附录 A)和 MLP 块(等式 2、3)交替层组成。在每个区块之前应用 Layernorm(LN),在每个区块之后应用残余连接(Wang 等人,2019 年;Baevski & Auli,2019 年)。
MLP 包含两个具有 GELU 非线性的层。
归纳偏置:我们注意到,Vision Transformer 比 CNN 的图像特定归纳偏置要小得多。在 CNN 中,局部性、二维邻域结构和平移等变性贯穿整个模型的每一层。在 ViT 中,只有 MLP 层具有局部性和平移等变性,而自注意层则具有全局性。二维邻域结构的使用非常少:在模型开始时,将图像切割成图像补丁patchs;在微调时,针对不同分辨率的图像调整位置嵌入(如下文所述)。除此以外,初始化时的位置内嵌不包含任何有关图像片段二维位置的信息,图像片段之间的所有空间关系都需要从头开始学习。
混合模型:作为原始图像补丁patchs的替代方案,输入序列可以由 CNN 的特征图形成(LeCun 等人,1989 年)。在这种混合模型中,补丁嵌入投影 E(公式 1)应用于从 CNN 特征图中提取的补丁。作为一种特殊情况,补丁的空间尺寸可以是 1x1,这意味着输入序列可以通过简单地将特征图的空间维度平面化并投影到Transformer的向量维度来获得。分类输入嵌入和位置嵌入如上所述。
3.2 微调和更高的分辨率
通常,我们在大型数据集上对 ViT 进行预训练,然后根据(较小的)下游任务进行微调。为此,我们会移除预训练的预测头,并附加一个零初始化的 D × K 前馈层,其中 K 是下游类别的数量。与预训练相比,在更高分辨率下进行微调通常是有益的(Touvron 等人,2019;Kolesnikov 等人,2020)。当输入更高分辨率的图像时,我们会保持补丁大小不变,这将导致有效序列长度增加。VIT可以处理任意长度的序列(受内存限制),但是,预训练的位置嵌入可能不再有意义。因此,我们根据预训练位置嵌入在原始图像中的位置,对其进行二维插值。需要注意的是,只有在调整分辨率和提取补丁时,才会手动向VIT注入有关图像二维结构的归纳偏差。
4 实验结果
我们评估了 ResNet、Vision Transformer (ViT) 和混合模型的表征学习能力。为了了解每个模型对数据的要求,我们在不同规模的数据集上进行了预训练,并对许多基准任务进行了评估。考虑到预训练模型的计算成本,ViT 的表现非常出色,它以较低的预训练成本在大多数识别基准上达到了最先进的水平。最后,我们使用自监督技术进行了一项小型实验,结果表明自监督 ViT 在未来大有可为。
4.1 实验设置
数据集:为了探索模型的可扩展性,我们使用了 ILSVRC-2012 ImageNet 数据集
(包含 1k 个类别和 130 万张图像)(以下简称 ImageNet)、其超集 ImageNet-21k
(包含 21k 个类别和 1400 万张图像)(Deng 等人,2009 年)以及 JFT
(Sun 等人,2017 年)(包含 18k 个类别和 303 万张高分辨率图像)。我们按照 Kolesnikov 等人(2020 年)的方法,将预训练数据集与下游任务的测试集去重复。我们将在这些数据集上训练的模型转移到几个基准任务中: 原始验证标签和经过清理的 ReaL 标签上的 ImageNet
(Beyer 等人,2020 年)、CIFAR-10/100
(Krizhevsky,2009 年)、Oxford-IIIT Pets
(Parkhi 等人,2012 年)和 Oxford Flowers-102
(Nilsback & Zisserman,2008 年)。对于这些数据集,预处理遵循 Kolesnikov 等人(2020 年)的方法。
我们还在 19 个任务的 VTAB 分类套件(Zhai 等人,2019b)上进行了评估。VTAB 评估了少量数据迁移到不同任务的情况,每个任务使用 1 000 个训练示例。任务分为三组: 自然任务–如上述任务、宠物、CIFAR 等;专业–医疗和卫星图像;以及结构化–需要几何理解的任务,如定位。
模型变体。我们以 BERT(Devlin 等,2019 年)使用的 ViT 配置为基础,如表 1 所示。"Base"模型和 "Large"模型直接采用 BERT 模型,我们还增加了更大的 "Huge"模型。在下文中,我们使用简短的符号来表示模型大小和输入图像补丁大小:例如,ViT-L/16 表示输入补丁大小为 16 × 16 的 "Large"模型。请注意,Transformer的序列长度与补丁尺寸的平方成反比,因此补丁尺寸较小的模型计算成本较高。
对于基线 CNN,我们使用 ResNet(He 等人,2016 年),但用组归一化(Wu 和 He,2018 年)替换了BN(Ioffe 和 Szegedy,2015 年),并使用标准化卷积(Qiao 等人,2019 年)。这些修改提高了迁移效率(Kolesnikov 等人,2020 年),我们将修改后的模型称为 “ResNet (BiT)”。对于混合模型,我们将中间特征图输入 ViT,补丁大小为一个 “像素”。为了试验不同的序列长度,我们要么 (i) 采用常规 ResNet50 第 4 阶段的输出,要么 (ii) 删除第 4 阶段,将相同层数的层放入第 3 阶段(保持总层数不变),然后采用扩展后的第 3 阶段的输出。方案 (ii) 会导致序列长度增加 4 倍,ViT 模型的成本也会增加。
训练和微调:我们使用 Adam(Kingma & Ba,2015 年)训练包括 ResNets 在内的所有模型,β1 = 0.9,β2 = 0.999,批量大小为 4096,并应用 0.1 的高权重衰减,我们发现这对所有模型的迁移都很有用(附录 D.1 显示,与常见做法不同,在我们的设置中,Adam 对 ResNets 的效果略好于 SGD)。我们使用线性学习率预热和衰减,详见附录 B.1。对于所有模型的微调,我们使用了带动量的 SGD,批量大小为 512,详见附录 B.1.1。对于表 2 中的 ImageNet 结果,我们在更高分辨率下进行了微调: 对于 ViT-L/16,我们使用了 512 分辨率,对于 ViT-H/14,我们使用了 518 分辨率,同时还使用了 Polyak & Juditsky(1992 年)的平均值,系数为 0.9999(Ramachandran 等人,2019 年;Wang 等人,2020b)。
衡量标准:我们通过few-shot或fine-tuning微调来报告下游数据集上的结果。微调精度反映了每个模型在相应数据集上进行微调后的性能。few-shot精度通过求解正则化最小二乘回归问题,将训练图像的冻结子集的表示(冻结)映射到{-1, 1}K 个目标向量上。这种表述方式使我们能够以封闭形式恢复精确解。虽然我们主要关注的是微调的性能,但一次微调成本过高的情况下,我们有时也会使用线性few-shot精度进行快速实时评估。
4.2 跟SOTA比较
我们首先将最大的模型 ViT-H/14 和 ViT-L/16 与文献中最先进的 CNN 进行比较。第一个比较点是 Big Transfer (BiT)
(科列斯尼科夫等人,2020 年),它使用大型 ResNets 执行监督迁移学习。第二个比较点是 Noisy Student
(Xie 等人,2020 年),它是在 ImageNet 和去除标签的 JFT- 300M 上使用半监督学习训练的大型 EfficientNet
。目前,在 ImageNet 和 BiT-L 上,Noisy Student
是最先进的,而在本文报告的其他数据集上,Noisy Student 也是最先进的。所有模型都是在 TPUv3 硬件上训练的,我们报告了预训练每个模型所需的 TPUv3 核天数,即用于训练的 TPUv3 核数(每个芯片 2 核)乘以训练时间(天数)。
表 2:与流行图像分类基准的最新技术比较。我们报告了三次微调的平均准确率和标准偏差。在 JFT-300M 数据集上预训练的 Vision Transformer 模型在所有数据集上的表现都优于基于 ResNet 的基线模型,同时预训练所需的计算资源也大大减少。在较小的公开 ImageNet-21k 数据集上预先训练的 ViT 也表现出色。∗Touvron 等人(2020 年)报告的 88.5% 结果略有改进。
表 2 显示了结果。在 JFT-300M 上预先训练的较小的 ViT-L/16 模型在所有任务上的表现都优于 BiT-L(在相同数据集上预先训练),同时训练所需的计算资源也大大减少。更大的模型 ViT-H/14 进一步提高了性能,尤其是在更具挑战性的数据集(ImageNet、CIFAR-100 和 VTAB 套件)上。
有趣的是,与现有技术相比,预训练模型所需的计算量仍然要少得多。不过,我们注意到,预训练效率不仅会受到架构选择的影响,还会受到其他参数的影响,如训练计划、优化器、权重衰减等。我们将在第 4.4 节中对不同架构的性能与计算进行对照研究。最后,在公开的 ImageNet-21k 数据集上预先训练的 ViT-L/16 模型在大多数数据集上也表现出色,而且预先训练所需的资源更少:使用标准云 TPUv3(8 核)大约 30 天就能完成训练。
图 2:VTAB 在自然任务组、专业任务组和结构化任务组的成绩细分。
图 2 将 VTAB 任务分解为各自的组别,并与之前的 SOTA 方法在该基准上进行了比较: BiT
、VIVI
(一种在 ImageNet 和 Youtube 上联合训练的 ResNet)(Tschannen 等人,2020 年)和 S4L
(在 ImageNet 上的监督加半监督学习)(Zhai 等人,2019a)。在自然任务和结构化任务中,ViT-H/14 的表现优于 BiT-R152x4
和其他方法。在 “专业化 ”任务上,前两个模型的表现相似。
4.3 训练前的数据要求
在大型 JFT-300M 数据集上进行预训练时,VIT表现良好。与 ResNets 相比,视觉的归纳偏置更少,那么数据集的大小有多重要呢?我们进行了两个系列的实验。
图 3:迁移到ImageNet。在小型数据集上进行预训练时,大型 ViT 模型的表现不如 BiT ResNets(阴影区域),而在大型数据集上进行预训练时,大型 ViT 模型的表现则大放异彩。同样,随着数据集的增长,较大的 ViT 变体也会超越较小的 ViT 变体。
首先,我们在规模不断增大的数据集上对 ViT 模型进行预训练: ImageNet、ImageNet-21k 和 JFT- 300M。为了提高在较小数据集上的性能,我们优化了三个基本的正则化参数–权重衰减、丢弃和标签平滑。图 3 显示了对 ImageNet 进行正则化调整后的结果(其他数据集的结果见表 5)。在最小的数据集 ImageNet 上进行预训练时,尽管进行了(适度的)正则化,ViT-Large 模型的表现仍不如 ViT-Base 模型。在对 ImageNet-21k 进行预训练时,它们的表现相似。只有在使用 JFT-300M 时,我们才能看到Huge模型的全部优势。
图 3 还显示了不同大小的 BiT 模型所跨越的区域。在 ImageNet 上,BiT CNN 的表现优于 ViT,但在更大的数据集上,ViT 则超越了 BiT CNN。
图 5:不同架构的性能与预训练计算量的关系: Vision、ResNets 和混合架构。在计算预算相同的情况下,VIT的性能通常优于 ResNets。对于较小的模型大小,混合体比纯Transformer更胜一筹,但对于较大的模型,差距就会消失。
其次,我们在 9M、30M 和 90M 的随机子集以及完整的 JFT- 300M 数据集上训练我们的模型。我们不对较小的子集进行额外的正则化,并在所有设置中使用相同的超参数。这样,我们评估的是模型的内在属性,而不是正则化的效果。不过,我们确实使用了早期停止,并报告了在训练过程中取得的最佳验证精度。为了节省计算量,我们报告的是少量线性精度,而不是全部正则化精度。图 4 显示了结果。在较小的数据集上,Vision Transformers 比 ResNets 高出更多的计算成本。例如,ViT-B/32 比 ResNet50 稍微快一些;它在 900 万子集上的表现要差得多,但在 9000 万以上的子集上表现更好。ResNet152x2 和 ViT-L/16 也是如此。这一结果强化了一种直觉,即卷积归纳偏置对较小的数据集有用,但对较大的数据集来说,直接从数据中学习相关模式是足够的,甚至是有益的。
总的来说,ImageNet 上的few-shot结果(图 4)以及 VTAB 上的low-data结果(表 2)似乎很有希望实现超低low-data的迁移。进一步分析 ViT 的少量数据特性是未来工作的一个令人兴奋的方向。
4.4 扩展研究
我们通过评估 JFT-300M 的迁移性能,对不同模型进行了可控的扩展研究。在这种情况下,数据大小不会成为模型性能的瓶颈,我们将根据每个模型的预训练成本来评估其性能。模型集包括 7 个 ResNets,(R50x1、R50x2、R101x1、R152x1、R152x2)预先训练了 7 个epochs;R152x2 和 R200x3预先训练了 14 个epochs ;6 个 Vision Transformers,(ViT-B/32、B/16、L/32、L/16)预先训练了 7 个epochs,L/16 和 H/14预先训练了 14 个epochs ; 以及 5 个混合模型,R50+ViT-B/32、B/16、L/32、L/16预先训练了 7 个 epochs, R50+ViT-L/16 预先训练了 14 个 epochs(对于混合模型,模型名称末尾的数字不代表补丁大小,而是代表 ResNet 主干网中的总采样率)
图 5 显示了迁移性能与预训练总计算量的对比(计算成本详情见附录 D.5)。附录表 6 提供了每个模型的详细结果。可以观察到一些模式。首先,Vision Transformers 在性能/计算权衡方面比 ResNets 占优。要达到相同的性能,ViT 使用的计算量大约要少 2-4 倍(5 个数据集的平均值)。其次,在计算预算较少的情况下,混合模型的性能略优于 ViT,但在较大的模型中,这种差异就会消失。这一结果有些出人意料,因为人们可能会认为卷积局部特征处理在任何规模的模型中都会对 ViT 有帮助。第三,VIT在尝试的范围内似乎不会饱和,这激励了未来的扩展工作。
4.5 VIT如何处理图像数据
为了了解VIT是如何处理图像数据的,我们先来分析一下它的内部表示。VIT的第一层将 “贴图 ”线性地投射到低维空间中(公式 1)。图 7(左)显示了学习到的嵌入图层的顶端基本组件。这些分量类似于低维表示每个斑块内的线性结构的基函数。
图 7:左:ViT-L/32 的 RGB 值初始线性嵌入的滤波器。中心: ViT-L/32 的位置嵌入相似度。图中的方块显示了指定行和列的补丁位置嵌入与所有其他补丁位置嵌入之间的余弦相似度。右图 按头部和网络深度划分的关注区域大小。每个点显示的是 16 个头中的一个头在一层图像中的平均关注距离。详见附录 D.7。
投影之后,学习到的位置嵌入会添加到补丁表示中。图 7(中)显示,该模型学会了用位置嵌入的相似性来编码图像中的距离,即距离较近的补丁往往具有更相似的位置嵌入。此外,还出现了行列结构;同一行/列中的补丁具有相似的嵌入。最后,对于较大的网格,正弦结构有时也很明显(附录 D)。位置嵌入学会表示二维图像拓扑结构,这就解释了为什么手工制作的二维感知嵌入变体不能带来改进(附录 D.4)。
自注意使 ViT 能够整合整个图像的信息,即使是最底层的信息。我们将研究该网络在多大程度上利用了这一能力。具体来说,我们根据注意力权重计算图像空间中整合信息的平均距离(图 7 右)。这种 “注意距离 ”类似于 CNN 中的感受区大小
我们发现,有些注意头已经在最低层注意到了大部分图像,这表明模型确实使用了全局整合信息的能力。其他注意头在低层的注意距离一直很小。这种高度本地化的注意力在Transformer之前应用 ResNet 的混合模型中并不明显(图 7 右),这表明它可能与 CNN 中的早期卷积层具有类似的功能。此外,注意力距离随着网络深度的增加而增加。总体而言,我们发现该模型会关注与分类语义相关的图像区域(图 6)。
图 6:从输出标记到输入空间的注意力的代表性示例。详见附录 D.7。
4.6 自监督
Transformer在 NLP 任务中的表现令人印象深刻。然而,它们的成功不仅源于其出色的可扩展性,还源于大规模自监督预训练,我们还模仿 BERT 中使用的遮蔽语言建模任务,对用于自我监督的遮蔽补丁预测进行了初步探索。通过自监督预训练,我们较小的 ViT-B/16 模型在 ImageNet 上达到了 79.9% 的准确率,比从头开始训练的准确率显著提高了 2%,但仍比监督预训练的准确率低 4%。附录 B.1.2 包含更多详细信息。我们将对对比预训练(Chen 等人,2020b;He 等人,2020;Bachman 等人,2019;H´enaff 等人,2020)的探索留待未来工作。
5 结论
-
Transformers应用于图像识别:
- 传统上,Transformer模型主要用于自然语言处理(NLP)领域。
- ViT将Transformer直接应用于图像识别任务,不同于以往在计算机视觉中使用自注意力机制的方法。
-
架构设计:
- 除了最初的图像分块步骤外,ViT不引入任何特定于图像的归纳偏置(inductive biases),这些偏置通常是为了让模型更好地理解图像数据而特别设计的。
- 图像被视为一系列的补丁(patches),类似于文本中的单词或词组,并由标准的Transformer编码器进行处理。
-
预训练的重要性:
- 当与大规模数据集上的预训练结合时,这种方法简单且可扩展,结果非常令人满意。
- ViT在许多图像分类数据集上达到了或超过了当前最先进水平,同时预训练成本相对较低。
-
面临的挑战:
- 将ViT应用于其他计算机视觉任务如目标检测和分割,这是一个尚未完全解决的问题。
- 探索自我监督预训练方法,尽管初步实验显示出改进,但与大规模监督预训练相比仍有差距。
- 进一步扩大ViT规模可能会带来性能上的提升。
总结来说,结论强调了ViT作为连接NLP和计算机视觉两个领域的桥梁所展现出来的潜力,同时也指出了该领域内仍需克服的一些挑战。这包括但不限于将ViT的应用范围扩展到更多类型的视觉任务,提高自我监督学习的效果,以及通过增加模型规模来增强其性能。