AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE论文翻译

论文地址:AN IMAGE IS WORTH 16X16 WORDS:TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE

摘要

虽然Transformer架构已经成为自然语言处理任务的事实标准,但它在计算机视觉上的应用仍然有限。在视觉上,注意力要么与卷积网络一起应用,要么用来替换卷积网络的某些组成部分,同时保持其整体结构不变。我们证明了这种对 CNN的依赖是没有必要的,一个纯粹的transformer直接应用于图像块序列可以很好地完成图像分类任务。当对大量数据进行预训练并将其传输到多个中小型图像识别基准(ImageNet, CIFAR-100, VTAB,等等)时,Vision Transformer (ViT)与最先进的卷积网络相比获得了优异的结果,同时训练所需的计算资源大大减少。

1.介绍

基于自注意的架构,特别是transformer(Vaswani et al., 2017),已经成为自然语言处理(NLP)的选择模型。主要的方法是先在大型文本语料库上进行预训练,然后在较小的特定任务数据集上进行微调(Devlin et al., 2019)。多亏了transformer的计算效率和可扩展性,它可以训练出具有超过100B个参数的空前规模的模型。随着模型和数据集的增长,仍然没有表现出饱和的迹象。
然而,在计算机视觉中,卷积架构仍然占主导地位(LeCun et al., 1989;Krizhevsky等,2012;He等,2016)。受NLP成功的启发,许多作品尝试将类似cnn的架构与自注意力相结合(Wang et al., 2018;Carion等人,2020年),一些完全替换卷积(Ramachandran等人,2019年;Wang等,2020a)。后一种模型,虽然理论上有效,但由于使用了专门的注意模式,尚未在现代硬件加速器上有效地运用。因此,在大规模图像识别中,经典的ResNet及其变种架构仍处于先进水平(Mahajan et al., 2018;谢等,2020;科列斯尼科夫等人,2020年)
受NLP中Transformer的成功的启发,我们尝试将一个标准的Transformer直接应用到图像上,修改最少。为此,我们将图像分割成小块,并提供这些小块的线性嵌入序列作为transformer的输入。在NLP应用程序中,图像块的处理方式与标记(单词)相同。我们以监督的方式训练模型进行图像分类。
在ImageNet等中等规模的数据集上进行训练时,这些模型的精确度比同等规模的ResNets低几个百分点。这种看似令人沮丧的结果是可以预料的:transformer缺少cnn固有的一些归纳偏差,例如平移等变和局部性,因此当训练的数据量不足时,不能很好地泛化。
然而,如果模型在更大的数据集(14M- 300M图像)上训练,图像就会发生变化。我们发现大规模训练优于归纳偏差。预先在足够的规模训练和转移到任务与较少的数据点时,我们的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 et al., 2019)使用去噪自监督的预训练任务,而GPT工作线使用语言建模作为其预训练任务(Radford et al., 2018;2019;(布朗等,2020)。
对图像进行自注意力的单纯应用会要求每个像素相互关注,由于代价是像素数的二次值,这不能缩放到实际的输入大小。因此,为了在图像处理中应用transformer,过去曾尝试过几种近似方法:Parmar等人(2018)仅在每个查询像素的局部邻域中应用了自注意,而不是在全局中。这种局部多头点积自注意块可以完全替代卷积(Ramachandran et al., 2019;Cordonnier等人,2020年;赵等,2020)。或者,像稀疏transformer(Child等,2019)这样的工作采用可伸缩的近似来实现全局自我关注,从而适用于图像。缩放注意力的另一种方法是将其应用于不同大小的块(Weissenborn等人,2019),在极端情况下仅沿单个轴(Ho等人,2019;Wang等,2020a)。许多这些专门的注意力架构在计算机视觉任务上显示出有前途的结果,但需要复杂的工程来有效地在硬件加速器上实现。
也有很多的兴趣结合卷积神经网络(CNN) 和self-attention形式, 如通过增强特征图来进行图像分类(贝洛et al ., 2019)或使用self-attention进一步处理CNN的输出 , 例如目标检测(胡et al ., 2018;Carion等,2020),视频处理(Wang等,2018;Sun等,2019),图像分类(Wu等,2020),无监督对象发现(Locatello等,2020),或统一的文本-视觉任务(Chen等,2020c;Lu等人,2019年;Li等,2019)。
我们不知道之前应用的transformer对全尺寸图像具有全局自注意。与我们的模型最接近的是iGPT (Chen et al., 2020a),transformer在降低图像分辨率和色彩空间后对图像像素进行处理。该模型以无监督的方式作为生成模型进行训练,然后可以对得到的表示进行微调或线性探测,以提高分类性能,在ImageNet上获得72%的最高准确率。
我们的工作增加了在比标准ImageNet数据集更大尺度上探索图像识别的论文的收集。使用额外的数据源可以在标准基准上实现最新的结果(马哈詹等人,2018年;Touvron等人,2019年;谢等,2020)。此外,Sun et al.(2017)和Kolesnikov et al.(2020)研究了CNN的性能如何随数据集大小而变化;Djolonga等人(2020)从ImageNet-21k和JFT-300M等大规模数据集中对CNN迁移学习进行了实证探索。我们也关注后两个数据集,但训练transformer,而不是在以前的工作中使用的基于resnet的模型。

3.方法

在模型设计中,我们尽可能地遵循原始transformer(Vaswani et al., 2017)。这种有意的简单设置的一个优点是,可扩展的NLP transformer架构及其高效实现几乎可以开箱即用。

3.1 VISION TRANSFORMER (VIT)

在这里插入图片描述
图1描述了该模型的概述。标准transformer接收一个标志嵌入的1D序列作为输入。处理2d图像,我们重塑形象x ∈RWxCxH成扁平的2 d序列块x∈ R^N (PxPxC)^,在(H, W)是原始图像的分辨率,C是通道的数量,(P, P)是每个图像块的分辨率, 和N = HW / P2是块的数量, 也可以作为有效的transformer的输入序列长度。transformer它的所有层使用恒定的潜在向量大小D,因此,我们采用可训练的线性映射(Eq. 1)将patch进行平化,映射到D维上。我们将这个映射的输出称为块(patch)嵌入。
类似于BERT的[class]标志, 我们预先为序列嵌入块(z00 = xclass)考虑可学习的嵌入,在transformer编码器的输出的状态(z0L)作为图像表示y (Eq.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非线性的层。
在这里插入图片描述
混合结构. 作为对原始图像patch的替代,输入序列可以由CNN的feature maps构成(LeCun et al., 1989)。 在该混合模型中,将patch embedding 映射 E (Eq. 1)应用于从CNN feature map中提取的patch。作为一种特例,patch的空间大小可以是1x1,这意味着输入序列可以通过简单的将feature map的空间维度展开,映射到Transformer维度上的方式得到。如上所述添加分类输入嵌入和位置嵌入。

3.2微调和更高的分辨率

通常,我们在大型数据集上对ViT进行预培训,然后对(较小的)下游任务进行微调。为此,我们删除了预先训练好的预测头,并附加了一个零初始化的D × K的feedforward层,其中K是下游任务类的数量。与预训练相比,在更高分辨率下进行微调通常是有益的(Touvron et al., 2019;Kolesnikov等人,2020)。在处理高分辨率图像时,保持patch大小不变,有效序列长度更大。Vision Transformer可以处理任意序列长度(直到内存限制),然而,预训练的位置嵌入可能不再有意义。因此,我们根据预先训练好的位置嵌入在原始图像中的位置,对其进行二维插值。 请注意,请注意,这种分辨率调整和patch提取是对图像的二维结构产生归纳偏差的唯一点,需要手动输入到Vision Transformer。

4.实验

我们评估了ResNet、Vision Transformer (ViT)和hybrid的表示学习能力。为了理解每个模型的数据需求,我们对不同规模的数据集进行预训练,并评估许多基准任务。考虑到预训练模型的计算成本,ViT的表现非常好,以较低的预训练成本达到大多数识别基准的SOTA。最后,我们用自监督的方法进行了一个小实验,证明了自监督的ViT在未来的发展前景。

4.1设置

数据集. 探索模型的可伸缩性,我们使用iILSVRC-2012 ImageNet数据集1 k类和1.3M图像(在下面我们把它称为ImageNet),与他的超集ImageNet-21k 包含k类和14M图像(邓et al ., 2009),和JFT((Sun et al ., 2017)和18k类和303M高分辨率图像。按照Kolesnikov等人(2020)的方法,我们对预训练的数据集和下游任务的测试集进行重复。我们将在这些数据集上训练的模型转移到几个基准测试任务中:ImageNet处理原始验证标签和清理后的真实标签(Beyer et al., 2020),CIFAR-10/100 (Krizhevsky, 2009)、Oxford-IIIT Pets (Parkhi et al., 2012)和Oxford flower -102 (Nilsback & Zisserman, 2008)。对于这些数据集,按照Kolesnikov等人(2020)的方法进行预处理。
我们还对19个任务的VTAB分类套件进行了评估(Zhai et al., 2019b)。VTAB评估对不同任务的低数据传输,每个任务使用1000个训练示例。任务分为三组:自然任务,如上述,Pets,CIFAR等。特定任务,医疗和卫星图像,以及需要几何理解的结构化任务,如定位。
模型变种. 我们基于BERT使用的ViT配置(Devlin et al., 2019),如表1所示。直接采用了BERT的Base模型和Large模型,我们添加了较大的Huge模型。下面我们使用简单的符号来表示模型大小和输入的patch大小:例如,ViT-L/16表示输入patch大小为16的Large变种。请注意,transformer的序列长度与patch大小的平方成反比,因此较小的patch大小的模型在计算上更昂贵。
在这里插入图片描述

对于cnn的baseline,我们使用ResNet (He et al., 2016),但将Batch Normalization层(Ioffe & Szegedy, 2015)替换为 Group Normalization(Wu & He, 2018),并使用标准化卷积(Salimans & Kingma, 2016)。这些修改改进了迁移(Kolesnikov等人,2020),我们表示修改后的模型ResNet (BiT)。对于混合模型,我们将中间特征图以一个像素的patch大小填充到ViT中。为了进行不同序列长度的实验,我们可以(i)取常规ResNet50的第4阶段的输出,或者(ii)去掉第4阶段,将相同数量的层放在第3阶段(保持层的总数),然后取这个扩展后的第3阶段的输出。选项(ii)的结果是4倍的序列长度,和一个更昂贵的ViT模型。
训练&微调. 我们训练了所有的模型,包括ResNets,使用adam,β1 = 0.9,β2 = 0.999,批次大小为4096,并应用0.1的高权重衰减,我们发现这些设置对全部模型的迁移很有用(附录D.1显示,与常见的做法相比,在我们的设置中,对于ResNets, Adam的工作效果略好于SGD)。我们使用线性学习速率的热身和衰减,详见附录B.1。为了进行微调,我们对所有模型使用带动量的SGD,批量大小为512,见附录B.1.1。对于表2中的ImageNet结果,我们在更高的分辨率上进行了微调:viti - l /16为512,viti - h /14为518,并且还使用了Polyak和Juditsky(1992)的平均(系数=0.9999)(Ramachandran et al., 2019;Wang等,2020b)。
在这里插入图片描述

指标. 我们报告下游数据集的结果,要么通过few-shot或微调的精度。微调精度捕获每个模型在各自数据集上进行微调后的性能。通过求解正则化线性回归问题,将训练图像的子集(冻结)表示映射到{-1,1}K目标向量,可以获得Few-shot精度。虽然我们主要关注于微调性能,但我们有时会使用线性Few-shot精度来进行快速的实时评估,因为在这种情况下,微调成本太高。

4.2 与SOTA的比较

我们首先将我们最大的模型ViT-H/14和ViT-L/16与文献中最先进的CNNs进行比较。第一个比较点是Big Transfer (BiT) (Kolesnikov et al., 2020),它使用大型ResNets执行监督迁移学习。第二个是Noisy Student(Xie et al., 2020),这是一个在ImageNet和JFT300M上使用去除标签的半监督学习训练的大型高效网络。目前,Noisy Student是最先进的ImageNet和BiT-L在其他数据集报告这里。所有模型都是在TPUv3硬件上进行培训的,我们报告了预训练每一个模型所花费的TPUv3-core-days,即用于训练的TPUv3核数(每个芯片2个)乘以一天的训练时间。
表2显示了结果,在JFT-300M上预训练的较小的ViT-L/16模型在所有任务上的性能都优于BiT-L模型(BiT-L模型是在同一个数据集上预训练的),同时训练所需的计算资源要少得多。更大的型号, ViT-H/14,进一步提高了性能,特别是在更具有挑战性的数据集ImageNet、CIFAR-100和VTAB套件上。有趣的是,与之前的技术相比,这个模型在预训练的计算量仍然大大减少。然而,我们注意到,预训练的效率不仅会受到架构选择的影响,还会受到其他参数的影响,比如训练计划、优化器、权重衰减等。我们将在4.4节中对不同架构的性能和计算进行控制研究。最终,在公开ImageNet-21k数据集上预训练的ViT-L/16模型在大多数数据集上也表现良好,在进行预训练时占用的资源更少:可以使用8个核的标准云TPUv3在大约30天内对其进行训练。
图2将VTAB任务分解成各自的组,并在此基准上与之前的SOTA方法进行比较:BiT、VIVI-a ResNet在ImageNet和Youtube上共同训练(Tschannen et al., 2020)和S4L在ImageNet上监督+半监督学习(Zhai et al., 2019a)。在自然任务和结构化任务上,ViT-H/14优于BiT-R152x4和其他方法。在特定领域表现最好的两个模型是相似的。
在这里插入图片描述

4.3训练的数据需求

在大型JFT-300M数据集上进行预训练后,Vision Transformer表现良好。由于与ResNets相比,视觉上的归纳偏差更少,数据集的大小有多重要?我们进行了两个系列的实验。
首先,我们在不断增大的数据集(ImageNet, ImageNet-21k, JFT300M)上对ViT模型进行预训练。为了在较小的数据集上获得最好的性能,我们优化了三个正则化参数:权重衰减、dropout和标签平滑。图3显示了对ImageNet进行微调后的结果(表5显示了其他数据集上的结果)。图3包含了在ImageNet上进行微调的结果。在最小数据集ImageNet上进行预训练后,尽管进行了大量的正则化,但与基于ViT的模型相比,ViT-Large模型的性能较差。但是,在ImageNet-21k预训练中,它们的表现是相似的。只有使用 JFT-300M,我们才能看到更大模型的全部好处。图3还显示了不同大小的BiT模型所跨越的性能区域。BiT CNNs在ImageNet上胜过ViT(尽管进行了正则化优化),但在更大的数据集上,ViT更胜一筹。
在这里插入图片描述
然后,我们在9M、30M和90M的随机子集以及完整的JFT300M数据集上训练我们的模型。我们不对较小的子集执行额外的正则化,并对所有设置使用相同的超参数。这样,我们评估了模型的内在属性,而不是正则化的影响。然而,我们确实使用了 early-stopping,并报告了在训练中获得的最佳验证准确性。为了节省计算,我们报告了 few-shot线性精度而不是完全微调精度。图4包含了结果。在较小的数据集上以及相似的计算成本,Vision Transformers比ResNets更容易过拟合。例如,ViT-B/32比ResNet50略快,它在9M子集上的性能要差得多,但在90M以上的子集上性能更好。ResNet152x2和ViT-L/16也是如此。这一结果强化了卷积归纳偏差对小数据集有用的直觉,但对于大数据集,学习相关的模式就足够了,甚至是有益的。
总的来说,ImageNet上的few-shot结果(图4)和VTAB上的少数据结果(表2)对于少数据迁移来说似乎很有前途。进一步分析ViT的few-shot性能是今后研究的一个令人兴奋的方向。

4.4 scale研究

通过评估JFT-300M的迁移性能,我们对不同的模型进行了控制缩放研究。在这种设置中,数据的大小不会限制模型的性能,我们将评估每个模型的性能和预训练的成本。模型集包括:7个ResNets, R50x1, R50x2, R101x1, R152x1, R152x2,预训练7 epochs,加上预训练14 epochs R152x2, R200x3; 6个Vision 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主干中总的dowsampling比率)。
图5包含了迁移性能与预训练总计算(参见附录D.4计算成本的细节)。每个模型的详细结果见附录中的表6。可以观察到一些模式,首先,Vision Transformers在性能/计算权衡方面主导ResNets。ViT少使用大约2~4倍计算,以获得相同的性能(平均超过5数据集)。其次,混合模型在小的计算预算上略优于ViT,但这种差异在大的模型上就消失了。这个结果有点令人吃惊,因为人们可能期望卷积局部特征处理能够帮助任何大小的ViT。第三,Vision Transformers 在范围内的尝试似乎没有饱和,推动了未来的缩放努力。
在这里插入图片描述
在这里插入图片描述

4.5 审视VISION TRANSFORMER

在这里插入图片描述
为了了解Vision Transformer是如何处理图像数据的,我们分析了它的内部表现。Vision Transformer的第一层将拉伸的patch线性地投射到一个低维空间中(Eq. 1)。图7(左)显示了学习过的嵌入滤波器的顶部主成分。这些组件类似于每个patch内部精细结构的低维表示的可信基函数。
映射完成后,在patch表示中加入一个学习到的位置嵌入。图7 (center)显示,模型在位置嵌入的相似性上学习了对图像内的编码距离,即距离越近的patch,其位置嵌入的相似度越高。此外,出现行-列结构;在同一行/列中的patch有类似的嵌入。最后,对于更大的网格,正弦结构有时是明显的(附录D)。位置嵌入学习表示二维图像拓扑解释了为什么手工制作的2D感知嵌入变体不能产生改进(附录D.3)。
自注意力允许ViT整合信息在整个图像,甚至在最低层。我们将调查网络在多大程度上利用了这种能力。具体来说,我们根据注意力权重计算信息在图像空间中的平均距离(图7,右)。这种注意距离类似于神经网络中感受野的大小。我们发现,一些头部关注的大部分图像已经在最低层,这表明,全局整合信息的能力确实被模型使用。其他的注意力头在低层次有持续的小注意力距离。在transformer之前应用ResNet的混合模型中,这种高度局部的注意力不太明显(图7,右),这表明它可能与CNNs中的早期卷积层具有类似的功能。注意距离随着网络深度的增加而增加。总的来说,我们发现模型只关注与分类语义相关的图像区域(图6)。

在这里插入图片描述

4.6 自监督

transformer在NLP任务中的表现令人印象深刻。然而,它们的成功在很大程度上不仅源于卓越的可扩展性,还源于大规模的自我监督的预训练(Devlin et al., 2019;Radford等,2018年)。我们还模仿BERT中使用的mask语言建模任务,对自我监督的masked patch prediction进行了初步探索。通过自监督的预训练,我们较小的 ViT-B/16模型在ImageNet上实现了79.9%的准确率,比从头训练显著提高了2%,但仍比有监督的预训练低4%。附录B.1.2包含进一步的细节。我们把对比的预训练探索留了下来(Chen等,2020b;He等人,2020年;Bachman等人,2019年;Henaff等人,2020)到未来的工作。

5.结论

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

  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值