总结
提出了Vision Transformer (ViT):
- 论文提出了一种将标准Transformer直接应用于图像的方法。具体来说,将图像划分为固定大小的块(patches),然后将这些块嵌入为向量序列,并输入到Transformer中进行处理。与传统的卷积神经网络 (CNN) 不同,ViT减少了图像特定的归纳偏差。
大规模数据集的预训练:
- 研究表明,ViT在较小的数据集(如ImageNet)上性能不如等规模的ResNet模型。然而,当在大规模数据集(如JFT-300M)上进行预训练时,ViT能够达到甚至超越最先进的CNN模型,展示了Transformer在图像识别任务中的潜力。
不同大小的数据集和模型变体的实验:
- 论文通过在不同大小的数据集(ImageNet、ImageNet-21k、JFT-300M)上训练不同大小的ViT模型,分析了数据集大小对模型性能的影响。结果表明,较大的ViT模型在大规模数据集上表现突出。
与最先进方法的对比:
- ViT模型在多个图像分类基准(如ImageNet、CIFAR-100、VTAB等)上的表现接近或超过了最先进的CNN方法,并且所需的预训练计算资源更少。
结构:
图像分块 (Patch Embedding)
- 图像分割:首先,将输入的二维图像分割成一系列大小固定的小块(patches)。假设输入图像的尺寸为 H×W×C,其中 H 和 W 分别是图像的高度和宽度,C 是通道数(如RGB图像的通道数为3)。每个小块的尺寸为 P×P×C。
- 展平和线性投影:每个小块会被展平成一个一维向量,并通过一个线性层投影到一个固定的维度 D 中。这样,整个图像会被转化为一个长度为 N=(HW)/P^2 的序列,其中每个元素都是一个 D 维的向量。
位置嵌入 (Position Embedding)
- 位置编码:为了保留每个小块的位置信息,ViT为每个小块的线性嵌入向量添加了一个可学习的位置嵌入。这些位置嵌入与序列中的对应元素逐元素相加,生成最终的输入向量序列。
Transformer 编码器 (Transformer Encoder)
- 输入序列:生成的向量序列会作为标准Transformer编码器的输入。
- 多头自注意力层 (Multi-Head Self-Attention, MSA):序列首先经过多个自注意力头,每个头计算图像块之间的相似性(注意力分数),并生成新的嵌入表示。多头自注意力允许模型同时关注不同的图像区域。
- 前馈神经网络 (Feed-Forward Neural Network, FFN):经过注意力层后,每个位置的表示会通过一个前馈神经网络(通常是两层MLP)。
- 层规范化 (Layer Normalization, LN) 和 残差连接 (Residual Connection):在每个多头自注意力层和前馈神经网络的输入和输出之间应用层规范化和残差连接,以稳定训练过程。
分类头 (Classification Head)
- 分类标记 (Class Token):在输入序列的开头加入一个额外的可学习的“分类标记” (CLSCLSCLS),它的初始表示与其他图像块嵌入相同。这个标记的最终表示用于图像分类任务。
- 线性层:最终的分类标记向量会通过一个线性层进行投影,输出图像分类的预测结果。
ABSTRACT
虽然 Transformer 架构已成为自然语言处理任务的事实标准,但它在计算机视觉中的应用仍然有限。在视觉中,注意力要么与卷积网络结合使用,要么用于替换卷积网络的某些组件,同时保持其整体结构。我们表明,这种对 CNN 的依赖是不必要的,直接应用于图像块序列的纯转换器可以在图像分类任务中表现良好。当对大量数据进行预训练并转移到多个中小型或小型图像识别基准(ImageNet、CIFAR-100、VTAB 等)时,与最先进的卷积网络相比,Vision Transformer (ViT) 获得了出色的结果,同时需要更少的计算资源来训练。
1 INTRODUCTION
基于自注意力的架构,特别是 Transformer (Vaswani et al., 2017),已成为自然语言处理 (NLP) 中的首选模型。主要方法是在大型文本语料库上进行预训练,然后在较小的特定任务数据集上进行微调(Devlin 等人,2019)。由于 Transformer 的计算效率和可扩展性,可以训练具有超过 100B 参数的前所未有的规模模型(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 应用程序中的标记(单词)相同的方式处理。我们以有监督的方式在图像分类上训练模型。
当在没有强正则化的 ImageNet 等中等大小的数据集上进行训练时,这些模型产生的准确度比同等大小的 ResNets 低几个百分点。这种看似令人沮丧的结果可能是意料之中的:变形金刚缺乏 CNN 固有的一些归纳偏差,例如平移等方差和局部性,因此在对数据量不足进行训练时不能很好地泛化。
然而,如果模型在更大的数据集(14M-300M 图像)上进行训练,情况会发生变化。我们发现大规模训练胜过归纳偏差。我们的 Vision Transformer (ViT) 在以足够的规模进行预训练并转移到数据点较少的任务时获得了出色的结果。当在公共 ImageNet-21k 数据集或内部 JFT-300M 数据集上进行预训练时,ViT 在多个图像识别基准上接近或击败最先进的技术。特别是,最佳模型在 ImageNet 上达到 88.55% 的准确率,ImageNet-ReaL 上达到 9.72%,CIFAR-100 上达到 94.55%,在 19 个任务的 VTAB 套件上达到 77.63%。
归纳偏差(Inductive Bias) 是指机器学习模型在学习过程中,如何基于有限的数据推导出普遍规律或进行概括的倾向或假设。因为数据通常是不完备的或有噪声的,模型需要依赖某种形式的归纳偏差来从数据中得出合理的结论。
具体而言,归纳偏差包含以下几个方面的含义:
- 模型的假设:模型对学习问题的某些假设或先验知识。例如,线性回归模型假设数据点之间存在线性关系。这种假设帮助模型在有限的样本上推导出更广泛的结论。
- 偏好的假设空间:模型倾向于在某些假设空间内寻找解决方案。这种偏好影响了模型在面对不确定性或模棱两可的数据时,如何进行推断和决策。例如,决策树模型倾向于寻找最简洁(即最少分支和最少节点)的树来解释数据。
- 泛化能力:归纳偏差影响模型如何从训练数据中学习到的模式推广到未见过的数据。好的归纳偏差可以使模型在见到新数据时,仍然能够做出合理的预测,而不是仅仅记住训练数据。
归纳偏差的必要性:
由于数据量和计算资源的限制,任何学习算法都不可能完全穷尽所有可能的假设空间,模型需要某种归纳偏差来指导学习过程。因此,归纳偏差是使得机器学习模型能够有效学习和推断的核心。
举例:假设你要训练一个模型来识别狗的图片。如果你选择了一个偏向于线性分隔的模型(比如线性分类器),那么你的模型就具有了线性分类的归纳偏差。这个偏差帮助模型在处理复杂的数据时简化问题,但是如果狗的图片分类并不是线性可分的,这种偏差可能会导致模型性能不佳。因此,选择合适的归纳偏差是设计有效机器学习模型的关键之一。
2 RELATED WORK
Transformers 由 Vaswani 等人提出。 (2017)用于机器翻译,并已成为许多 NLP 任务中最先进的方法。基于大型 Transformer 的模型通常在大型语料库上进行预训练,然后针对手头的任务进行微调:BERT (Devlin et al., 2019) 使用去噪自监督预训练任务,而 GPT 工作线使用语言建模作为其预训练任务(Radford et al., 2018; 2019; Brown et al., 2020)。
天真地将自我注意应用于图像将需要每个像素关注所有其他像素。随着像素数的二次代价,这不能扩展到真实的输入大小。因此,为了在图像处理的上下文中应用 Transformer,过去尝试了几种近似。Parmar等人(2018)只对每个查询像素的局部邻域应用自我注意,而不是全局应用。这种局部多头点积自注意力块可以完全替换卷积(Hu 等人,2019;Ramachandran 等人,2019;Zhao 等人,2020)。在另一项工作中,Sparse Transformers (Child et al., 2019) 对全局自注意力采用可扩展的近似,以便适用于图像。缩放注意力的另一种方法是将其应用于不同大小的块(Weissenborn 等人,2019 年),在极端情况下仅沿各个轴应用(Ho 等人,2019 年;Wang 等人,2020a)。许多这些专门的注意力架构在计算机视觉任务中展示了有希望的结果,但需要复杂的工程才能在硬件加速器上有效地实现。
与我们最相关的是 Cordonnier 等人的模型。 (2020),它从输入图像中提取大小为 2 × 2 的补丁,并在顶部应用完整的自注意力。该模型与 ViT 非常相似,但我们的工作进一步证明大规模预训练使 vanilla Transformer 与最先进的 CNN 具有竞争力(甚至更好)。此外,Cordonnier 等人。 (2020)使用 2 × 2 像素的小块大小,这使得模型仅适用于低分辨率图像,同时我们也处理中分辨率图像。
将卷积神经网络 (CNN) 与自我注意的形式相结合也有很多兴趣,例如通过增强图像分类的特征图 (Bello et al., 2019) 或使用自注意力进一步处理 CNN 的输出,例如对象检测 (Hu et al., 2018; Carion et al., 2020)、视频处理 (Wang et al., 2018; Sun et al., 2019)、图像分类 (Wu et al., 2020)、无监督对象发现 (Locatello et al., 2020) 或统一的文本视觉任务 (Chen et al., 2020c; Lu et al., 2019; Li et al., 2019)。
最近的另一个相关模型是图像 GPT (iGPT) (Chen et al., 2020a),它在降低图像分辨率和颜色空间后将 Transformer 应用于图像像素。该模型以无监督的方式作为生成模型进行训练,然后可以对生成的表示进行微调或线性探测以提高分类性能,在 ImageNet 上实现了 72% 的最大准确率。
我们的工作增加了越来越多的论文集,这些论文探索了比标准 ImageNet 数据集更大规模的图像识别。使用额外的数据源可以在标准基准上实现最先进的结果(Mahajan 等人,2018;Touvron 等人,2019;Xie 等人,2020)。此外,Sun等人(2017)研究了CNN的性能如何随数据集大小扩展,Kolesnikov等人(2020);Djolonga等人(2020)对ImageNet-21k和JFT-300M等大规模数据集的CNN迁移学习进行了实证探索。我们也关注后两个数据集,但训练 Transformer 而不是先前工作中使用的基于 ResNet 的模型。
图 1:模型概述。我们将图像分割为固定大小的补丁,线性嵌入每个块,添加位置嵌入,并将生成的向量序列馈送到标准 Transformer 编码器。为了执行分类,我们使用在序列中添加额外的可学习“分类标记”的标准方法。Transformer 编码器的图示受到 Vaswani 等人的启发。 (2017)。
3 METHOD
在模型设计中,我们尽可能地遵循原始的 Transformer (Vaswani et al., 2017)。这种有意的简单设置的一个优点是可扩展的 NLP Transformer 架构——及其高效的实现——几乎可以开箱即用。
3.1 VISION TRANSFORMER (VIT)
该模型的概述如图1所示。标准Transformer接收一维令牌嵌入序列作为输入。为了处理 2D 图像,我们将图像 x ∈ RH×W ×C 重塑为一系列扁平的 2D 补丁 xp ∈ RN ×(P^2·C),其中 (H, W ) 是原始图像的分辨率,C 是通道数,(P, P ) 是每个图像块的分辨率,N = (HW)/P^2 是生成的块数,也是 Transformer 的有效输入序列长度。Transformer 通过其所有层使用恒定的潜在向量大小 D,因此我们将补丁展平并使用可训练的线性投影映射到 D 维(等式 1)。我们将此投影的输出称为补丁嵌入(patch embeddings)。
与 BERT 的 [class] 令牌类似,我们在嵌入补丁序列 (z0 0 = xclass) 之前添加了一个可学习的嵌入,其 Transformer 编码器 (z0L) 的输出处的状态用作图像表示 y(等式 4)。在预训练和微调期间,分类头都附加到 z0L。分类头由 MLP 实现,在预训练时有一个隐藏层,在微调时由单个线性层实现。
将位置嵌入添加到补丁嵌入中以保留位置信息。我们使用标准的可学习 1D 位置嵌入,因为我们没有观察到使用更高级的 2D 感知位置嵌入的显着性能提升(附录 D.3)。生成的嵌入向量序列用作编码器的输入。
Transformer 编码器 (Vaswani et al., 2017) 由交替的多头自注意力层 (MSA, 见附录 A) 和 MLP 块 (Eq. 2, 3) 组成。Layernorm (LN) 在每个块之前应用,每个块之后的残差连接 (Wang et al., 2019; Baevski & Auli, 2019)。MLP 包含两层,具有 GELU 非线性。
Inductive bias.我们注意到视觉变压器比cnn具有更少的图像特定的感应偏置。在cnn中,局部性、二维邻域结构和平移等方差被嵌入到整个模型的每一层中。在ViT中,只有MLP层是局部和平移等变的,而自注意层是全局的。二维邻域结构的使用非常少:在模型开始时通过将图像切割成小块,以及在微调时用于调整不同分辨率图像的位置嵌入(如下所述)。除此之外,初始化时的位置嵌入不携带关于patch的二维位置信息,所有patch之间的空间关系都需要从头学习。
Hybrid Architecture.作为原始图像补丁的替代方案,输入序列可以由CNN的特征映射形成(LeCun et al., 1989)。在该混合模型中,将patch embedding投影E (Eq. 1)应用于从CNN feature map中提取的patch。作为一种特殊情况,patch的空间大小可以是1x1,这意味着输入序列是通过简单地将feature map的空间维度平坦化并投影到Transformer维度来获得的。如上所述添加分类输入嵌入和位置嵌入。
3.2 FINE-TUNING AND HIGHER RESOLUTION
通常,我们在大型数据集上预训练 ViT,并微调(较小)的下游任务。为此,我们删除了预训练的预测头并附加一个零初始化的 D × K 前馈层,其中 K 是下游类的数量。与预训练相比,以更高的分辨率进行微调通常是有益的(Touvron 等人,2019;Kolesnikov 等人,2020)。在提供更高分辨率的图像时,我们保持补丁大小相同,从而产生更大的有效序列长度。Vision Transformer 可以处理任意序列长度(直到内存限制),但是,预训练的位置嵌入可能不再有意义。因此,我们根据它们在原始图像中的位置对预训练的位置嵌入进行 2D 插值。请注意,这种分辨率调整和补丁提取是唯一手动注入 Vision Transformer 中关于图像 2D 结构的归纳偏差的点。
4 EXPERIMENTS
我们评估了 ResNet、Vision Transformer (ViT) 和混合的表示学习能力。为了了解每个模型的数据需求,我们对不同大小的数据集进行预训练并评估许多基准任务。在考虑预训练模型的计算成本时,ViT 表现非常好,在大多数识别基准上以更低的预训练成本达到了最先进的水平。最后,我们使用自我监督进行了一个小型实验,并表明自我监督 ViT 有望在未来取得前景。
4.1 SETUP
数据集。为了探索模型的可扩展性,我们使用具有 1k 类和 1.3M 图像的 ILSVRC-2012 ImageNet 数据集(我们将在下面我们将其称为 ImageNet)、具有 21k 类和 14M 图像的超集 ImageNet-21k(Deng 等人,2009 年)和具有 18k 类和 303M 高分辨率图像的 JFT(Sun 等人,2017 年)。我们对Kolesnikov等人(2020)之后下游任务的测试集进行了重复数据删除。我们将在这些数据集上训练的模型转移到几个基准任务:原始验证标签上的ImageNet和清理后的ReaL标签(Beyer等人,2020)、CIFAR-10/100 (Krizhevsky, 2009)、Oxford-IIIT Pets (Parkhi等人,2012)和Oxford Flowers-102 (Nilsback & Zisserman, 2008)。对于这些数据集,预处理遵循Kolesnikov等人(2020)。
我们还在 19 任务 VTAB 分类套件 (Zhai et al., 2019b) 上进行评估。VTAB 评估低数据传输到不同的任务,每个任务使用 1 000 个训练示例。该任务分为三组:自然任务,如上面、宠物、CIFAR等。专门的——医学和卫星图像,以及结构化——需要几何理解的任务,如定位。
模型变体。我们根据用于 BERT 的 ViT 配置(Devlin 等人,2019 年),如表 1 所示。 BERT 直接采用“Base”和“Large”模型,我们添加了更大的“Huge”模型。在下文中,我们使用简短的符号来指示模型大小和输入补丁大小:例如,ViT-L/16 表示具有 16 × 16 输入补丁大小的“大”变体。请注意,Transformer 的序列长度与补丁大小的平方成反比,因此补丁大小较小的模型在计算上更昂贵。
训练和微调。我们使用 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)。
指标。我们通过少样本或微调准确性报告下游数据集的结果。微调精度捕获每个模型在对各自数据集进行微调后的性能。通过求解正则化最小二乘回归问题来获得少镜头精度,该问题将训练图像子集的(冻结)表示映射到{−1,1}K目标向量。这个公式允许我们以封闭形式恢复精确解。虽然我们主要关注微调性能,但我们有时会使用线性少样本精度进行快速动态评估,其中微调成本太高。
4.2 COMPARISON TO STATE OF THE ART
表 2:在流行的图像分类基准上与最先进的比较。我们报告了准确度的均值和标准差,平均超过三个微调运行。在JFT-300M数据集上预训练的Vision Transformer模型在所有数据集上都优于基于resnet的基线,同时预训练的计算资源要少得多。在较小的公共 ImageNet-21k 数据集上预训练的 ViT 也表现良好。* Slightly改进了Touvron等人(2020)报告的88.5%结果。
图 2:自然、专业和结构化任务组中的 VTAB 性能细分。
4.3 PRE-TRAINING DATA REQUIREMENTS
Vision Transformer 在在大型 JFT-300M 数据集上进行预训练时表现良好。与ResNets相比,视觉的归纳偏差更少,数据集大小有多关键。我们执行两个系列实验。
首先,我们在越来越大的数据集上预训练ViT模型:ImageNet、ImageNet-21k和JFT300M。为了提高在较小数据集上的性能,我们优化了三个基本的正则化参数——权重衰减、dropout和标签平滑。图3显示了调优到ImageNet后的结果(表5显示了其他数据集上的结果)2。当在最小的数据集ImageNet上进行预训练时,尽管(适度)正则化,viti - large模型的表现仍不如viti - base模型。使用ImageNet-21k预训练,它们的性能是相似的。只有使用JFT-300M,我们才能看到更大型号的全部好处。图3还显示了不同大小的BiT模型所跨越的性能区域。BiT cnn在ImageNet上的表现优于ViT,但在更大的数据集上,ViT超越了它。
其次,我们在9M、30M和90M的随机子集以及完整的JFT300M数据集上训练我们的模型。我们没有对较小的子集执行额外的正则化,并对所有设置使用相同的超参数。这样,我们评估的是模型的内在属性,而不是正则化的影响。然而,我们确实使用了早期停止,并报告了在训练期间实现的最佳验证准确性。为了节省计算,我们报告了少镜头线性精度而不是全微调精度。图4包含了结果。在较小的数据集上,Vision transformer比ResNets过拟合更多,且计算成本相当。例如,vitb /32略快于ResNet50;它在9M的子集上表现得更差,但在90M以上的子集上表现得更好。ResNet152x2和vitl /16也是如此。这个结果强化了卷积归纳偏差对较小数据集有用的直觉,但对于较大的数据集,直接从数据中学习相关模式是足够的,甚至是有益的。
总体而言,ImageNet 上的小样本结果(图 4)以及 VTAB 上的低数据结果(表 2)似乎很有希望用于非常低的数据传输。进一步分析ViT的少镜头特性是未来工作的一个令人兴奋的方向。
图 3:转移到 ImageNet。虽然在小数据集上进行预训练时,大型 ViT 模型的性能比 BiT ResNets(阴影区域)差,但当在更大的数据集上进行预训练时,它们会发光。同样,随着数据集的增长,更大的 ViT 变体会过度接受较小的变体。
图 4:ImageNet 上的线性少样本评估与预训练大小。ResNets 在较小的预训练数据集上表现更好,但比 ViT 更快地趋于稳定,这在更大的预训练下表现更好。ViT-b 是 ViT-B,所有隐藏维度减半。
图 5:不同架构的性能与成本:Vision Transformers、ResNets 和hybrids。Vision Transformers通常在相同的计算预算下优于ResNets。对于较小的模型尺寸,混合改进了纯Transformers,但对于较大的模型,差距消失了。
4.4 SCALING STUDY
4.5 INSPECTING VISION TRANSFORMER
为了了解 Vision Transformer 如何处理图像数据,我们分析了其内部表示。Vision Transformer 的第一层将扁平的补丁线性投影到低维空间中(等式 1)。图 7(左)显示了学习嵌入过滤器的顶部主成分。这些组件类似于每个补丁内精细结构的低维表示的合理基函数。
在投影之后,将学习到的位置嵌入添加到补丁表示中。图 7(中心)表明,该模型学习在位置嵌入的相似性中编码图像中的距离,即更近的补丁往往具有更相似的位置嵌入。此外,出现了行列结构;同一行/列中的补丁具有相似的嵌入。最后,对于较大的网格,有时会出现正弦结构(附录 D)。位置嵌入学习表示 2D 图像拓扑解释了为什么手工制作的 2D 感知嵌入变体不会产生改进(附录 D.3)。
Self-attention 允许 ViT 在整个图像中集成信息,即使在最低层中。我们研究了网络在多大程度上利用了这种能力。具体来说,我们根据注意力权重计算图像空间中集成信息的平均距离(图 7,右)。这种“注意力距离”类似于 CNN 中的感受野大小。我们发现一些头部关注已经处于最低层的大部分图像,表明该模型确实使用了全局集成信息的能力。其他注意力头在低层的注意力距离始终很小。这种高度本地化的注意力在在 Transformer 之前应用 ResNet 的混合模型中不太明显(图 7,右),这表明它可能与 CNN 中的早期卷积层具有相似的功能。此外,注意力距离随着网络深度的增加而增加。在全局范围内,我们发现该模型关注与分类语义相关的图像区域(图 6)。
4.6 SELF-SUPERVISION
5 CONCLUSION
我们探索了Transformer 在图像识别中的直接应用。与在计算机视觉中使用自注意力的先前工作不同,除了初始补丁提取步骤之外,我们不会将特定于图像的归纳偏差引入架构中。相反,我们将图像解释为一系列补丁,并通过 NLP 中使用的标准 Transformer 编码器对其进行处理。当与大型数据集的预训练相结合时,这种简单的但可扩展的策略效果很好。因此,Vision Transformer 在许多图像分类数据集上匹配或超过了最先进的技术,同时预训练成本相对较低。
虽然这些初步结果令人鼓舞,但仍有许多挑战。一种是将ViT应用于其他计算机视觉任务,如检测和分割。我们的结果,加上Carion等人(2020)的结果,表明了这种方法的前景。另一个挑战是继续探索自我监督的预训练方法。我们最初的实验表明自监督预训练有所提高,但自监督预训练和大规模监督预训练之间仍然存在很大差距。最后,ViT的进一步缩放可能会导致性能的提高。