An Image is worth 16*16 words: Transformers for image recognition at scale.

An Image is worth 16*16 words: Transformers for image recognition at scale.

Abstract

虽然Transformer架构已经成为自然语言处理任务的事实标准,但它在计算机视觉方面的应用仍然有限。在视觉上,注意力要么与卷积网络结合使用,要么用来替换卷积网络的某些组件,同时保持它们的整体结构不变。我们表明,这种对CNN的依赖是不必要的,直接应用于图像块序列的纯转换器可以很好地执行图像分类任务。在对大量数据进行预训练并转移到多个中型或小型图像识别基准(ImageNet、CIFAR-100、VTAB等)时,视觉转换器(VIT)与最先进的卷积网络相比取得了优异的效果,而训练所需的计算资源要少得多。

Introduction

基于自我注意的架构,特别是Transformers(V Aswani等人,2017年),已经成为自然语言处理(NLP)的首选模型。主要的方法是在大型文本语料库上进行预训练,然后在较小的特定于任务的数据集上进行微调(Devlin等人,2019年)。由于Transformers的计算效率和可伸缩性,训练具有超过100B参数的史无前例大小的模型成为可能。随着模型和数据集的增长,仍然没有性能饱和的迹象。
然而,在计算机视觉中,卷积架构仍然占主导地位(LeCun等人,1989年;Krizhevsky等人,2012年;他等人,2016年)。受NLP成功的启发,多部作品试图将类似CNN的架构与自我注意机制结合起来(Wang等人,2018年;Carion等人,2020年),一些作品完全取代了卷积(Ramachandran等人,2019年;Wang等人,2020a)。后一种模型虽然在理论上是有效的,但由于使用了专门的注意力模式,在现代硬件加速器上还没有得到有效的扩展。因此,在大规模图像识别中,经典的ResNetlike架构仍然是最先进的(Mahajan等人,2018;谢等人,2020;Kolesnikov等人,2020)。
受NLP中transformer缩放成功的启发,我们尝试将标准transformer直接应用于图像,并尽可能少地进行修改。为此,我们将图像分割成多个块,并提供这些块的线性嵌入序列作为Transformer的输入。在NLP应用程序中,图像补丁的处理方式与令牌(单词)相同。我们用有监督的方式对模型进行图像分类训练。
当在中等规模的数据集(如ImageNet)上进行训练时,此类模型产生的精度比同等大小的ResNet略低几个百分点。这一看似令人沮丧的结果可能是意料之中的:transformer缺乏CNN固有的一些归纳偏差,如翻译等价性和局部性,因此在数据不足的情况下进行训练时,不能很好地进行泛化。
然而,如果模型是在更大的数据集(14M-300M图像)上训练的,则情况会发生变化。我们发现大规模训练胜过归纳偏差。我们的视觉转换器(VIT)在进行足够规模的预训练并转移到数据点较少的任务时,取得了很好的效果。在公共ImageNet-21k数据集或内部JFT-300M数据集上进行预培训时,VIT在多个图像识别基准上接近或超过最先进的水平。特别是,最优模型在ImageNet上达到了88.55%的准确率,在ImageNet-REAL上达到了90.72%,在CIFAR-100上达到了94.55%,在VTAB套件上达到了77.63%

Related Work

Transformer是由V·Aswani等人提出的(2017),用于机器翻译,此后已成为许多NLP任务中最先进的方法。基于大型transformer的模型通常在大型语料库上进行预培训,然后针对手头的任务进行微调:Bert(Devlin等人,2019年)使用去噪自我监督的预培训任务,而GPT等人使用语言建模作为其预培训任务(Radford等人,2018年;2019年;Brown等人,2020年)。
对图像进行自我关注的简单应用需要每个像素关注其他像素。使用像素数的平方成本时,这不会缩放到真实的输入大小。因此,为了将transformer应用于图像处理,过去已经尝试了几种近似方法:Parmar等人(2018)对每个查询像素只在局部社区应用自我注意,而不是全局应用自我注意。这种局部多头点积自我注意块可以完全取代卷积(Ramachandran等人,2019年;Cordonnier等人,2020年;赵等人,2020年)。或者,像《Sparse Transformers》(Child et al.,2019年)这样的作品采用了可缩放的近似方式来实现全局自我注意,以便将其应用于图像。另一种方法是注意在不同大小的区块中应用(Weissenbornet.,2019年),在极端情况下只应用单个轴线(Ho等人,2019年;Wang等人,2020a)。其中许多专门的注意力架构在计算机视觉任务上展示了良好的结果,但需要在硬件加速器上有效地实施复杂的工程。
卷积神经网络(CNN)与自我注意形式的结合也引起了人们的极大兴趣,例如通过增加用于图像分类的特征图(Bello等人,2019年),或者通过使用自我注意进一步处理CNN的输出,例如用于对象检测(Hu等人,2018年;Carion等人,2020年)、视频处理(Wang等人,2018年;Sun等人,2019年)、图像分类(Wu等人,2020)、无监督对象发现(LocatatedObject Discovery)(LocatedObject Discovery)(Locaton等人,2020)、视频处理(Wang等人,2018;Sun等人,2019年)、图像分类(Wu等人,2020)、无监督对象发现(LocatedObject Discovery。Lu等人,2019年;Li等人,2019年)。
我们不知道之前有没有全局自注意全尺寸图像的transformer的应用。与我们的模型最接近的是iGPT(Chen等人,2020a),它在降低图像分辨率和颜色空间后将transformer应用于图像像素。该模型以一种无监督的方式训练为产生式模型,然后可以对所得到的表示进行微调或线性探测以获得分类性能,在ImageNet上实现了72%的最大准确率。
我们的工作增加了越来越多的论文,这些论文探讨了比标准ImageNet数据集更大规模的图像识别。使用额外的数据源可以在标准基准上获得最先进的结果(Mahajan等人,2018年;Touvron等人,2019年;谢等人,2020年)。此外,Sun et al.。(2017)研究CNN的性能如何随数据集的大小而变化,Kolesnikov等人。(2020);Djolonga等人。(2020)从ImageNet-21k和JFT-300m等大规模数据集对CNN迁移学习进行了实证探索。我们也关注后两个数据集,但训练变形金刚,而不是以前工作中使用的基于ResNet的模型。

Method

在模型设计中,我们尽可能地遵循原始的Transformer(V Aswani等人,2017年)。这种特意简单的设置的一个优点是,几乎可以开箱即用地使用可伸缩的NLP Transformer体系结构及其高效实现。
图1
图1:模型概述。我们将图像分割成固定大小的块,线性嵌入每个块,添加位置嵌入,并将生成的向量序列提供给标准Transformer编码器。为了执行分类,我们使用标准方法,即在序列中添加额外的可学习“分类标记”。Transformer编码器的插图灵感来自Vaswani等人。(2017年)。

3.1 Vision Transformer(ViT)

图1中描绘了模型的概述。标准transformer接收输入为1D令牌嵌入的1D序列。要处理2D图像,我们重塑图像x∈Rh×w×c成一系列扁平的2d patch xp∈R^n×(p 2·c)^,其中(h,w)是原始图像的分辨率,c是数字通道,(P,P)是每个图像patch的分辨率,n = HW / P2是由此产生的patch数量,其也用作transformer的有效输入序列长度。transformer在其所有层中使用恒定的潜在矢量尺寸D,因此我们将patch展平,并通过可培训的线性投影(EQ.1)将patch和map映射到D尺寸。我们把此投影的输出称为Patch Embeddings。
与BERT的[class]令牌类似,我们在嵌入patch序列(z0 0= Xclass)中添加一个可学习的嵌入,其在transformer编码器(z0 L)输出时的状态作为图像表示y (Eq. 4)。在预训练和微调过程中,分类头附加在z0L上,分类头由一个MLP实现,在训练前是一个隐含层,在微调时是一个线性层。
位置嵌入被添加到patch嵌入中以保留位置信息。我们使用标准的可学习的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非线性。
公式1、2、3、4
Hybrid Architecture(混合架构) 作为原始图像patch的替代,输入序列可以由CNN的特征图组成(LeCun et al., 1989)。在这个混合模型中,将patch embedding projection E (Eq. 1)应用于从CNN feature map中提取的patches。作为一种特殊情况,patches的空间尺寸可以是1x1,即简单地将feature map的空间尺寸平坦化,并投影到Transformer的尺寸即可得到输入序列。如上所述添加分类输入嵌入和位置嵌入。

3.2 Fine-Tuning and higher resolution(微调和更高分辨率)

通常,我们在大型数据集上预训练ViT,并微调到(较小的)下游任务。为此,我们去掉预先训练的预测头,并附加一个零初始化的D × K前馈层,其中K为下游类数。通常,在比训练前更高的分辨率下进行微调是有益的(Touvron等人,2019;科列斯尼科夫等,2020)。在输入高分辨率的图像时,我们保持了相同的patch大小,从而得到了更大的有效序列长度。Vision Transformer可以处理任意序列长度(达到内存限制),然而,预先训练的位置嵌入可能不再有意义。因此,我们根据预先训练好的位置嵌入在原始图像中的位置,对其进行二维插值。请注意,这种分辨率调整和patch提取是人工将图像二维结构的感应偏差注入Vision Transformer的唯一点。

Experiments

我们评估了ResNet、Vision Transformer (ViT)和混合网络的表示学习能力。为了了解每个模型的数据需求,我们对不同大小的数据集进行了预训练,并评估了许多基准任务。在考虑模型预训练的计算成本时,ViT表现得非常好,以较低的预训练成本在大多数识别基准上达到了最先进的水平。最后,我们利用自我监督进行了一个小实验,结果表明,自我监督的ViT对未来的发展是有希望的。

4.1 SetUp

Datasets
为了探索模型的可扩展性,我们使用了具有1k类和130万幅图像的ILSVRC-2012 ImageNet数据集(我们在下文中将其称为ImageNet),其具有21k类和1400万幅图像的超集ImageNet-21k(邓等人,2009年),以及具有18k类和303M高分辨率图像的JFT(Sun等人,2017年)。我们对训练前的数据集w.r.t.进行重复数据删除。遵循Kolesnikov等人的下游任务的测试集。(2020)。我们将在这些数据集上训练的模型转移到几个基准任务:关于原始验证标签和清理后的真实标签的ImageNet(Beyer等人,2020年)、CIFAR-10/100(Krizhevsky,2009)、Oxford-IIIT宠物(Parkhi等人,2012年)和Oxford Flowers-102(Nilsback&Zisserman,2008年)。对于这些数据集,预处理遵循Kolesnikov等人的方法。(2020)。
我们还在19个任务的VTAB分类套件上进行了评估(翟田田等人,2019b)。VTAB使用每个任务1000个训练示例来评估向不同任务传输低数据的情况。这些任务分为三组:自然任务,如上述任务、宠物任务、CIFAR任务等。专业医学和卫星图像任务,以及结构化任务,如定位等需要几何理解的任务。
Model Variants
我们以BERT使用的VIT配置为基础(Devlin等人,2019年),如表1所述。“Base”和“Large”模型直接采用自Bert,我们添加了更大的“Height”模型。在下面的内容中,我们使用简短的符号来表示模型大小和输入patch大小:例如,VIT-L/16表示具有16×16输入patch大小的“大”变体。请注意,Transformer的序列长度与patch大小的平方成反比,因此patch大小较小的模型计算成本较高。
对于基线CNN,我们使用ResNet(他等人,2016年),但用Group Normalization(Wu&He,2018)取代Batch Normalization layers(Ioffe&Szegedy,2015),并使用标准化卷积(Salimans&Kingma,2016)。这些修改改进了传输(Kolesnikov等人,2020年),我们将修改后的模型称为“ResNet(BiT)”。对于混合体,我们将中间特征图以一个“像素”的大小送入ViT。为了试验不同的序列长度,我们或者(i)采用常规ResNet50的阶段4的输出,或者(ii)移除阶段4,在阶段3中放置相同数量的层(保持总层数),并采用该扩展阶段3的输出。选项(ii)导致序列长度延长4倍,并且VIT模型更加昂贵。
Training & Fine-tuning
我们训练所有的模型,包括ResNets,用β1 = 0.9,β2 = 0.999的Adam优化器,一个批处理大小为4096和权重衰减为0.1,我们发现对于所有transfor模型(附录D.1表明,相比常见的做法,Adam略优于SGD,在我们的设置中更适合ResNets)。我们使用线性学习率预热和衰减,详见附录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)。
Metrics
我们通过少量或微调精度报告下游数据集的结果。在各自的数据集上进行微调后,微调精度捕获每个模型的性能。通过将训练图像子集的(冻结)表示映射到{−1,1}k目标向量的正则化线性回归问题,获得了少量射击精度。虽然我们主要关注微调性能,但我们有时会使用线性少拍精度来快速实时评估,因为微调成本太高。

4.2 Comparison to state of the art

我们首先比较我们最大的模型ViT-H/14、ViT-L/16和文献中最先进的CNN。第一个比较点是Big Transfer(BiT) (Kolesnikov et al., 2020),它用大型ResNet执行有监督的迁移学习。第二个是Noise Student(谢等人,2020),这是一个大型的EfficientNet,它使用ImageNet和JFT300M上的半监督学习进行训练,去掉了标签。目前,Noise Student是ImageNet和这里报告的其他数据集上的Bit-L的最新状态。所有模型都在TPUv3硬件上进行了培训,我们报告了每个模型进行预培训所需的TPUv3核心天数,即用于培训的TPU v3核心数量(每个芯片2个)乘以培训时间(以天为单位)。
表2显示了结果。在JFT-300M上预先训练的较小的VIT-L/16模型在所有任务上都优于BIT-L(在相同的数据集上预先训练),同时需要的计算资源要少得多。更大的型号VIT-H/14进一步提高了性能,特别是在更具挑战性的数据集-ImageNet、CIFAR-100和VTAB套件上。有趣的是,与现有技术相比,该模型进行预训练所需的计算仍然要少得多。然而,我们注意到,预培训效率不仅可能受到体系结构选择的影响,还可能受到其他参数的影响,如培训时间表、优化器、权重衰减等。在第4.4节中,我们提供了不同体系结构的性能与计算的对照研究。最后,在公共ImageNet-21k数据集上预先训练的VIT-L/16模型在大多数数据集上也表现良好,而预先训练所需的资源更少:它可以在大约30天内使用具有8个核心的标准云TPUv3进行训练。

图1和图2
表2:与当前流行的图像分类基准的比较。我们报告的平均值和标准偏差的准确性,平均三微调运行。在JFT-300M数据集上预先训练的视觉转换器模型优于所有数据集上基于resnet的基线,同时预先训练所需的计算资源大大减少。在较小的公共ImageNet-21k数据集上预先训练的ViT也表现良好。在Touvron等人(2020)中报告的∗略微提高了88.5%的结果。

4.3 Pre-training data requirements

当在大型JFT-300米数据集上进行预训练时,视觉转换器表现良好。由于对视觉的归纳偏差比ResNets少,数据集的大小有多重要?我们进行了两个系列的实验。
首先,我们在不断增大的数据集上预训练ViT模型:ImageNet、ImageNet-21k和JFT300M。为了在较小的数据集上获得最佳性能,我们优化了三个正则化参数-权重衰减、dropout和标签平滑。图3显示了对ImageNet进行微调后的结果(其他数据集的结果如表5所示)2。图3包含了对ImageNet进行微调的结果。当在最小的数据集ImageNet上进行预训练时,Vit-Large模型比Vit-Base模型表现不佳,尽管有很大的正则化。然而,在ImageNet-21k预训的情况下,他们的表现是相似的。只有有了JFT-300M,我们才能看到更大型号的全部好处。图3还显示了不同大小的BIT模型所跨越的性能区域。比特CNN在ImageNet上的性能优于VIT(尽管进行了正则化优化),但对于更大的数据集,VIT超过了VIT。
图3
图3 Transfer to ImageNet。虽然大型ViT模型在小数据集上预训练时的性能比BiT ResNet(阴影区域)差,但在较大数据集上预训练时它们表现出色。同样,随着数据集的增长,较大的ViT变体会取代较小的变体。
图4:ImageNet上的线性少量评估与培训前规模对比。ResNet在训练前数据集较小的情况下表现得更好,但与ViT相比,平台期更快,ViT在训练前的数据集较大时表现得更好。ViT-b是ViT-B,所有隐藏维度减半。
其次,我们在9M、30M和90M的随机子集以及完整的JFT300M数据集上训练我们的模型。我们不对较小的子集执行额外的正则化,并且对所有设置使用相同的超参数。这样,我们评估的是模型的内在属性,而不是正则化的效果。然而,我们确实使用了提前停止,并报告了在训练期间达到的最佳验证准确率。为了节省计算量,我们报告了极少的线性精度,而不是完全的微调精度。图4包含结果。在较小的数据集上,Vision Transformers比ResNet具有更多的计算成本。例如,ViT-B/32略快于ResNet50;它在9M子集上的性能要差得多,但在90M以上子集上的性能要好得多。ResNet152x2和ViT-L/16也是如此。这一结果强化了这样的直觉,即卷积感应偏向对于较小的数据集是有用的,但对于较大的数据集,学习相关模式是足够的,甚至是有益的。
总体而言,ImageNet上的少量结果(图4)以及VTAB上的低数据结果(表2)对于非常低的数据传输似乎很有希望。进一步分析VIT的少发特性是今后工作的一个令人振奋的方向。
图5
图5:不同架构的性能与成本之比:Vision Transformers、ResNet和混合架构。在相同的计算预算下,Vision Transformers通常比ResNet表现更好。在较小尺寸的模型上混合模型比纯transformer有所改进,但对于较大的模型,差距就消失了。

4.4 Scaling Study

我们通过评估JFT-300M的传输性能,对不同模型进行了受控比例研究。在这种情况下,数据大小不是模型性能的瓶颈,我们评估每个模型的性能和训练前成本。模型集包括:7个ResNet,R50x1,R50x2,R101x1,R152x1,R152x2,预训练7个epoch,加上R152x2和R200x3,预训练14个epoch;6个transformers,ViT-B/32,B/16,L/32,L/16,预训练7个epoch,加上L/16和H/14,预训练14个epoch;5个混合模型,R50+ViT-B/32、B/16、L/32、L/16预训练7个epoch,加上R50+ViT-L/16预训练14个epoch(对于混合模型,模型名称末尾的数字不代表patch大小,而代表ResNet主干中的总下采样率)。
图5包含转学绩效与培训前总计算值的对比(有关计算成本的详细信息,请参阅附录D.4)。附录中的表6提供了每个型号的详细结果。可以观察到几种模式。首先,Vision Transformers在性能/计算权衡上主导ResNet。ViT使用大约2/4的−计算量即可获得相同的性能(平均超过5个数据集)。其次,在较小的计算预算下,混合模型的表现略优于ViT,但对于较大的模型,这种差异就消失了。这一结果有些令人惊讶,因为人们可能认为卷积局部特征处理有助于任何大小的ViT。第三,Vision Transformer似乎不会在尝试的范围内饱和,这将激励未来的扩展努力。
图7
图7:左:ViT-L/32的RGB值的初始线性嵌入的滤波器。中心:ViT-L/32位置嵌入相似度。平铺显示带有指定行和列的面片的位置嵌入与所有其他面片的位置嵌入之间的余弦相似性。右图:按头数和网络深度划分的出席区域大小。每个点显示了一层16个头中的一个人在图像上的平均注意距离。详情见附录D.6。

4.5 Inspecting Vision Transformer

为了开始理解Vision Transformer是如何处理图像数据的,我们分析它的内部表示。视觉变压器的第一层线性地将扁平的补丁投影到较低维度的空间(等式)。1)。图7(左)显示了学习的嵌入过滤器的顶部主成分。这些分量类似于每个贴片内精细结构的低维表示的似是而非的基函数。
在投影之后,学习位置嵌入被添加到面片表示。图7(中)显示了该模型学习在位置嵌入的相似性中对图像内的距离进行编码,即越接近的补丁倾向于具有更相似的位置嵌入。此外,出现行-列结构;同一行/列中的补丁具有类似的嵌入。最后,对于较大的网格,正弦结构有时是明显的(附录D)。位置嵌入学习表示2D图像拓扑解释了为什么手工制作的2D感知嵌入变体不会产生改进(附录D.3)。
自我关注使ViT能够整合整个图像中的信息,甚至在最低层也是如此。我们调查网络利用此功能的程度。具体地说,我们根据注意力权重计算图像空间中信息集成的平均距离(图7,右侧)。这一“注意距离”类似于CNN中的接受场大小。我们发现,一些头部负责已经在最低层的大部分图像,这表明该模型确实使用了全局集成信息的能力。其他注意力集中的人在低层的注意力距离一直很小。这种高度局部化的关注在混合模型中不那么明显,在变压器之前应用ResNet(图7,右),这表明它可能起到与CNN中早期卷积层类似的功能。此外,注意距离随着网络深度的增加而增大。从整体上看,我们发现该模型关注的是语义上与分类相关的图像区域(图6)。

4.6 Self-supervision

Transformer在NLP任务中表现出令人印象深刻的表现。然而,它们的成功在很大程度上不仅源于它们出色的可扩展性,还源于大规模的自我监督预培训(Devlin等人,2019年;Radford等人,2018年)。我们还模仿了BERT中使用的掩蔽语言建模任务,对用于自我监督的掩蔽补丁预测进行了初步的探索。在自监督预训练的情况下,我们较小的ViT-B/16模型在ImageNet上的准确率达到了79.9%,比从头开始训练的准确率有了2%的显著提高,但仍比监督预训练提高了4%。附录B.1.2包含更多详细信息。我们将对比性预培训的探索(Chen等人,2020b;He等人,2020年;Bachman等人,2019年;Hénaff等人,2020年)留给未来的工作。

Conclusion

我们探索了transformer在图像识别中的直接应用。与以前在计算机视觉中使用自我注意的工作不同,我们没有在体系结构中引入任何特定于图像的归纳偏差。相反,我们将图像解释为一系列patch,并使用NLP中使用的标准Transformer编码器对其进行处理。这一简单但可伸缩的策略在配合大型数据集的预培训时效果出奇地好。因此,Vision Transformer在许多图像分类数据集上达到或超过了最先进的水平,同时预先训练的成本相对较低。
虽然这些初步结果令人鼓舞,但仍然存在许多挑战。一种是将ViT应用于其他计算机视觉任务,例如检测和分割。我们的结果,再加上Carion等人的结果。(2020),表明了这一做法的前景。另一个挑战是继续探索自我监督的预训方法。我们的初步实验表明,自监督预训练比自监督预训练有所改善,但与大规模监督预训练相比仍有较大差距。最后,ViT的进一步扩展可能会提高性能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值