文献阅读(十):AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE
作者:互联网
文献阅读(十):AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE
- 出处:CoRR abs/2010.11929 (2020)
- Google Research
- 主要内容:随着,Transformer[51]在自然语言处理(NLP)领域取得成功,许多研究人员也在探索在CV中是否也可以应用Transformer。Transformer将图像分成patch并形成的linear embedding序列(ViT),替换原本NLP中的tokens作为输入来进行有监督的图像分类实验。
ABSTRACT
虽然Transformer架构已经成为自然语言处理任务的事实上的标准,但它在计算机视觉上的应用仍然有限。在视觉上,注意力不是与卷积网络结合使用,就是在保持卷积网络整体结构不变的同时,代替卷积网络的某些部分。==我们证明了对cnn的依赖是不必要的,直接应用于图像patches序列的纯transformer可以很好地执行图像分类任务。==在大量数据上进行预训练,并将其传输到多个中、小型图像识别基准(ImageNet、CIFAR-100、VTAB等),与最先进的卷积网络相比,视觉转换器(Vision Transformer, ViT)取得了优异的效果,而训练所需的计算资源则大大减少。
1 INTRODUCTION
基于自我注意的架构,特别是Transformers(Vaswani et al., 2017),已经成为自然语言处理(NLP)的选择模型。主要的方法是在一个大型文本语料库上进行预训练,然后在一个较小的特定于任务的数据集上进行微调(Devlin等人,2019)。由于Transformers的计算效率和可扩展性,它已经成为可能训练空前规模的模型,有超过100B个参数。随着模型和数据集的增长,性能仍然没有饱和的迹象。
然而,在计算机视觉中,卷积架构仍然占主导地位(LeCun等人,1989;Krizhevsky等人,2012;He等人,2016)。==受NLP成功的启发,许多作品尝试CNN-like架构与self-attention相结合(Wang et al., 2018;Carion等人,2020),一些人完全替换卷积(Ramachandran等人,2019;Wang et al., 2020a)。后一种模型虽然理论上有效,但由于使用了专门的注意力模式,还没有在现代硬件加速器上得到有效扩展。==因此,在大规模图像识别中,经典的resnet类建筑仍然是最先进的(Mahajan et al.,2018;谢等,2020;科列斯尼科夫等,2020)。
受NLP中Transformer缩放成功的启发,我们尝试将一个标准Transformer直接应用到图像上,尽可能少的修改。为此,我们将图像分割成patches,并提供这些patches的linear embeddings线性嵌入序列作为Transformer的输入。Image patches 的处理方式与NLP中tokens (words)标记(单词)相同。我们以监督的方式训练图像分类模型。
当在中等规模的数据集(如ImageNet)上进行训练时,这些模型的精确度比同等规模的resnet低几个百分点。这一看似令人沮丧的结果可能是意料之中的:Transformer缺乏cnn固有的一些归纳偏差,如平移均衡性和局部性,因此Transformer在数据量不足的情况下训练时不能很好地概括。
然而,如果在更大的数据集(1400 -300万张图像)上训练模型,图像就会发生变化。我们发现大规模的训练可以战胜归纳偏见。==当我们的视觉转换器(ViT)在足够的规模上进行预先训练,并转移到具有较少数据点的任务时,可以获得出色的结果。==当在公共ImageNet-21k数据集或内部JFT-300M数据集上进行预先训练时,ViT在多个图像识别基准上接近或超过了最先进的水平。其中,最佳模型在ImageNet上的准确率为88.55%,在ImageNet-real上的准确率为90.72%,在CIFAR-100上的准确率为94.55%,在19个任务的VTAB套件上的准确率为77.63%。
2 RELATED WORK
Transformers是由Vaswani et al.(2017)提出用于机器翻译的,并已成为许多自然语言处理任务中最先进的方法。基于Transformers的大型模型通常在大型语库上进行预训练,然后针对当前的任务进行微调:BERT (Devlin等人,2019)使用去噪的自我监督预训练任务,而GPT工作线使用语言建模作为其预训练任务(Radford等人,2018;2019;Brown等人,2020年)。
单纯地对图像进行自我注意需要每个像素关注其他像素。使用像素数的二次成本,这不能按实际输入大小缩放。因此,为了在图像处理的背景下应用Transformers,过去已经尝试了几种近似方法:
Parmar等人(2018)只对每个查询像素应用了局部邻域的自我注意,而不是全局的。这种 local multi-head dot-product self attention blocks可以完全取代卷积(Ramachandran et al., 2019;Cordonnier等人,2020年;赵等,2020)。
另外,Sparse Transformers 等作品(Child等,2019)采用可扩展的近似全局自我注意,以便适用于图像。衡量注意力的另一种方法是将其应用于不同大小的块中(Weissenborn等人,2019),在极端情况下,仅沿着单个轴(Ho等人,2019;Wang et al., 2020a)。这些专门的注意力架构在计算机视觉任务中表现出了很好的效果,但需要在硬件加速器上有效地实现复杂的工程。
也有很多的兴趣结合卷积神经网络(CNN) self-attention形式,如:通过增加特征图的图像分类(贝洛et al ., 2019)或进一步处理的输出使用self-attention CNN,例如对象检测(胡et al ., 2018;Carion等,2020),视频处理(Wang等,2018;Sun et al., 2019),图像分类(Wu et al., 2020),无监督对象发现(Locatello et al., 2020),或统一的文本视觉任务(Chen et al., 2020c;Lu等,2019;Li et al., 2019)。
我们不知道以前有过将具有全局自我关注的变压器应用于全尺寸图像的情况。与我们的模型最接近的是==iGPT (Chen et al., 2020a),它在降低图像分辨率和颜色空间后,对图像像素使用变压器。==该模型以一种无监督的方式作为生成模型进行训练,然后可以对结果表示进行微调或线性探测以提高分类性能,在ImageNet上实现72%的最大精度。
我们的工作增加了收集论文,在比标准ImageNet数据集更大的规模上探索图像识别。使用额外的数据源可以在标准基准上实现最先进的结果(Mahajan等人,2018;Touvron等人,2019;谢等,2020)。此外,Sun等人(2017)研究了CNN的性能如何随数据集大小而缩放,Kolesnikov等人(2020);Djolonga等人(2020)从大型数据集(如ImageNet-21k and JFT-300M.)进行了CNN迁移学习的实证研究。我们也将重点放在后两个数据集上,但是我们训练Transformers替代先前工作中使用的基于resnet的模型。
3 METHOD
在模型设计中,我们尽可能地遵循原变压器(Vaswani et al., 2017)。这种故意简单设置的一个优点是,可扩展的NLP变压器架构——及其有效的实现——几乎可以开箱即用。
3.1 VISION TRANSFORMER (VIT)
图1描述了该模型的概述。标准Transformer接收一个token embeddings的一维1D序列作为输入。
我们reshape处理2D图像,(H×W×C)成2D patches N×(P×P×C),(H,W)为原始图像的分辨率,C为通道数,(P,P)为每个图像patch的分辨率,N =HW/P2为生成的patch数,也作为变压器的有效输入序列长度。
Transformer在其所有层中都使用恒定的潜在向量大小D,所以我们将patches压平,并通过一个可训练的线性投影映射到D维(Eq. 1)。我们将这个投影的输出称为patch embeddings。
类似于BERT的 [class] token,我们预先考虑可学的embedding 的embedded patches(z0 = xclass),在Transformer的输出编码器的状态(z0L)作为图像表示y (Eq 4)。在预训练和微调,是主管一个分类——z0L环节。分类头由一个MLP实现,在训练前有一个隐含层,在微调时有一个线性层。
Position embeddings被添加到patch embeddings中以保留位置信息。我们使用标准的可学习的1D position embeddings,因为我们没有观察到使用更先进的2D-aware position embeddings 的显著性能提高(附录D.3)。所得到的嵌入向量序列作为编码器的输入。
Transformer encoder(Vaswani et al., 2017)由多头自我注意(MSA,见附录A)和MLP块(Eq. 2,3)的交替层组成。每个块之前应用Layernorm (LN),每个块之后应用残余连接(Wang et al., 2019;Baevski & Auli, 2019)。MLP包含两层,具有GELU non-linearity.。
混合架构。作为原始图像补丁的替代,输入序列可以由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大小,从而得到了更大的有效序列长度。视觉转换器可以处理任意序列长度(达到内存限制),然而,预先训练的位置嵌入可能不再有意义。因此,我们根据预先训练好的位置嵌入在原始图像中的位置,对其进行二维插值。请注意,这种分辨率调整和斑块提取是人工将图像二维结构的感应偏差注入视觉转换器的唯一点。
4 EXPERIMENTS
我们评估了ResNet、Vision Transformer (ViT)和hybrid的表示学习能力。为了了解每个模型的数据需求,我们对不同大小的数据集进行了预训练,并评估了许多基准任务。在考虑模型预训练的计算成本时,ViT表现得非常好,以较低的预训练成本在大多数识别基准上达到了最先进的水平。最后,我们利用自我监督进行了一个小实验,结果表明,自我监督的虚拟智能信息技术对未来的发展是有希望的。
4.1 SETUP
数据集。
探索模型的可伸缩性,我们使用:
ILSVRC-2012 ImageNet数据集1 k类和1.3个图像(我们把它称为ImageNet在下面)。
超集 ImageNet-21k数据集 21k classes and 14M images图像(邓et al ., 2009)。
JFT(太阳et al ., 2017)和18 k类和303高分辨率图像。
我们在Kolesnikov等人(2020)的下游任务的测试集上对训练前的数据集进行去重复。我们将在这些数据集上训练的模型转移到几个基准任务:原始验证标签上的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评估不同任务的低数据传输,每个任务使用1000个训练示例。任务分为三组:
Natural 自然任务– tasks like the above, Pets, CIFAR, etc.
Specialized专门的 – medical and satellite imagery.
Structured结构化的 – tasks that require geometric understanding like localization.
模型变体。
我们基于BERT使用的ViT配置(Devlin等人,2019),如表1所示。““Base” and “Large” models 直接借鉴了BERT的理论,并加入了更大的“Huge” 模型。下面我们用简短的表示法来表示模型大小和输入patch大小:例如: ViT-L/16表示输入patch大小为16 × 16的“Large” 变量。注意,Transformer的序列长度与 patch 大小的平方成反比,因此 patch 尺寸较小的模型在计算上更昂贵。
对于baseline CNNs,,我们使用ResNet (He et al., 2016),但用组归一化替换批归一化层(Ioffe & Szegedy, 2015) (Wu & He, 2018),并使用标准化卷积(Salimans & Kingma, 2016)。这些修改改善了传输(科列斯尼科夫等人,2020年),我们表示修改后的模型“ResNet (BiT)”。
对于 hybrids混合,我们将中间特征映射以一个pixel的patch大小输入到ViT中。为了试验不同的序列长度,我们要么(i)取常规ResNet50的第4阶段的输出;要么(ii)删除第4阶段,在第3阶段放置相同数量的层(保持层的总数量),并取这个扩展阶段3的输出。(ii)导致序列长度增加4倍,而且ViT模型更昂贵。
训练和微调。我们训练所有的模型,包括ResNets,用Adam:β1 = 0.9,β2 = 0.999
一个批处理大小batch size=4096
high weight decay=0.1。
我们发现对于转换所有模型(附录D.1表明,相比常见的做法,Adam略优于SGD适合ResNets在我们的设置)。我们使用线性学习率预热和衰减decay,,详见附录B.1。
对于微调,我们使用SGD with momentum,batch size=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
我们首先比较我们最大的模型ViT-H/14 and ViT-L/16和 最先进的cnn。第一个比较点是大迁移(BiT) (Kolesnikov et al., 2020),它使用大ResNets执行监督迁移学习。第二种是Noisy Student (Xie et al., 2020),这是一个大型的EfficientNet,使用去除标签的ImageNet和JFT- 300M上的半监督学习进行训练。目前,Noisy Student是其他数据集中最先进的。所有模型都在TPUv3硬件上进行训练,我们报告每个模型进行预训练所花费的TPUv3-core-days数,即用预训练的TPUv3核数(每个芯片2个)乘以训练时间,以天为单位。
表2显示了结果。在JFT-300M上预先训练的较小的ViT-L/16模型在所有任务上都优于BiT-L(它是在同一数据集上预先训练的),而训练所需的计算资源则大大减少。更大的模型ViT-H/14进一步提高了性能,特别是在更具挑战性的数据集上- ImageNet, CIFAR-100和VTAB suite。有趣的是,与之前的技术相比,这个模型在训练前的计算量仍然少得多。然而,我们注意到训练前的效率不仅会受到架构选择的影响,还会受到其他参数的影响,如训练计划、优化器、重量衰减等。在第4.4节中,我们对不同架构的性能与计算进行了受控研究。最后,在公共ImageNet-21k数据集上预训练的ViT-L/16 模型在大多数数据集上也表现良好,同时需要更少的资源进行预训练:它可以大约使用标准的8核云TPUv3进行训练——大约30天。
图2将VTAB任务分解为各自的组,并在此基准上与之前的SOTA方法进行比较:BiT、VIVI - ImageNet和Youtube上共同训练的ResNet (Tschannen et al., 2020)和S4L -supervised plus semi-supervised learning在ImageNet上(Zhai et al., 2019a)。ViT-H/14优于BiT-R152x4和其他方法,在自然和结构化任务。在专门化上,前两款的性能是相似的。
4.3 PRE-TRAINING DATA REQUIREMENTS
在一个大的JFT-300M数据集上进行预先训练时,视觉转换器表现良好。与ResNets相比,视觉的归纳偏差更少,数据集大小有多重要?我们进行了两组实验。
首先,我们在ImageNet、ImageNet-21k和JFT- 300M不断增长的数据集上预训练ViT模型。为了在较小的数据集上获得最好的性能,我们优化了三个正则化参数-权重衰减、衰减和标签平滑。图3显示了对ImageNet进行微调后的结果(其他数据集的结果如表5所示)图3包含了在ImageNet上进行微调的结果。当在最小的数据集上进行预训练时,ImageNet、vita - large模型与vita - base模型相比表现不佳,尽管有大量的正则化。然而,使用ImageNet-21k预训练,它们的性能是相似的。只有在JFT-300M上,我们才能看到大型模型的全部优点。图3还显示了不同大小的BiT 模型跨越的性能区域。在ImageNet上,比特cnn优于ViT(尽管进行了正则化优化),但在更大的数据集上,ViT超过了它。
其次,我们在9M、30M和90M的随机子集以及完整的JFT- 300M数据集上训练我们的模型。我们不会对较小的子集执行额外的正则化,并对所有设置使用相同的超参数。这样,我们评估的是模型的内在属性,而不是正则化的效果。然而,我们使用早期停止,并报告在训练期间达到的最佳验证准确性。为了节省计算,我们报道的是少量的线性精度,而不是全微调精度。图4包含了结果。在较小的数据集上,视觉变形器比重置网多,且计算成本相当。例如,vitt - b /32比ResNet50略快;它在900万个子集上的表现要差得多,但在9000万个以上子集上的表现要好得多。同样适用于ResNet152x2和vitt - l /16。这一结果强化了一种直觉,即卷积归纳偏差对于较小的数据集是有用的,但对于较大的数据集,学习相关模式就足够了,甚至是有益的。
总体而言,ImageNet上的少量结果(图4)以及VTAB上的低数据结果(表2)似乎对非常低数据传输很有希望。进一步分析ViT的少弹特性是未来工作的一个重要方向。
4.4 SCALING STUDY
我们对不同模型进行了控制尺度研究,评估了从JFT-300M传输的性能。在这种情况下,数据大小不会影响模型的性能,我们会根据每个模型的训练前成本来评估性能。模型集包括:7个ResNets, R50x1, R50x2, R101x1, R152x1, R152x2
预训练7个epoch,加上R152x2, R200x3预训练14个epoch;
6个Transformers,vitb /32, B/16, L/32, L/16,预训练7个时代,加上L/16和H/14预训练14个时代;R50+ vitt -B/32、B/16、L/32、L/16预训练7个期,加上R50+ vitt -L/16预训练14个期(对杂交种来说,模型名称后面的数字不代表补丁大小,而是代表ResNet骨干中dowsampling的总比率)。
图5包含了传输性能与总的训练前计算的对比(有关计算成本的详细信息,请参见附录D.4)。每个模型的详细结果在附录的表6中提供。可以观察到一些模式。首先,Vision Transformers在性能/计算权衡上占主导地位。ViT使用大约2 - 4倍的计算来获得相同的性能(平均超过5个数据集)。第二,hybrids在小的计算预算略优于ViT,但差异消失较大的模型。这个结果有些令人惊讶,因为人们可能认为卷积局部特征处理可以帮助任何大小的ViT。第三,视觉变形器在尝试的范围内似乎没有饱和,这激发了未来的缩放努力。
4.5 INSPECTING VISION TRANSFORMER
为了开始理解视觉转换器如何处理图像数据,我们分析了它的内部表示。视觉转换器的第一层线性地将平坦的小块投影到一个低维空间(Eq. 1)。图7(左)显示了已学习的嵌入滤波器的顶部主成分。这些成分类似于可信的基函数,用于对每个斑块内的精细结构进行低维表示。
投影完成后,将学习到的位置嵌入添加到patch表示中。图7(中)显示,模型学习了在位置埋藏层相似的情况下对图像内的距离进行编码,即越近的斑块往往有越相似的位置埋藏层。进一步,出现行-列结构;同一行/列中的贴片具有类似的嵌入。最后,对于较大的网格,正弦结构有时是显而易见的(附录D)。位置嵌入学习表示2D图像拓扑解释了为什么手工制作的2D感知嵌入变体不能产生改进(附录D.3)。
自我关注让ViT能够整合整个图像的信息,即使是在最下层。我们调查网络在多大程度上利用了这种能力。具体来说,我们根据注意力权重(图7,右)计算整合信息的图像空间中的平均距离。这种“注意距离”类似于cnn中的接收野大小。我们发现有些人会注意到大部分已经在最底层的图像,这表明模型确实使用了整合全局信息的能力。其他注意头在低层次的注意距离始终较小。在混合模型中,这种高度局域化的注意力不太明显,在变压器前应用了一个renet(图7,右),这表明它可能与cnn中早期的卷积层具有类似的功能。注意距离随网络深度的增加而增加。总的来说,我们发现模型处理与分类在语义上相关的图像区域(图6)。
4.6 SELF-SUPERVISION
变压器在NLP任务中表现出令人印象深刻的性能。然而,他们的成功在很大程度上不仅源于其出色的可伸缩性,还源于大规模自我监督的预培训(Devlin等人,2019;Radford等,2018)。我们还模仿BERT中使用的掩蔽语言建模任务,对用于自我监督的掩蔽补丁预测进行了初步探索。通过自我监督的预训练,我们较小的ViT-B/16模型在ImageNet上达到了79.9%的准确率,比从小到大的训练显著提高了2%,但仍然比监督的预训练低4%。附录B.1.2包含了进一步的细节。我们放弃对对比性训练前的探索(Chen et al., 2020b;He等人,2020年;Bachman等,2019;他́naff等人,2020)的未来工作。
5 CONCLUSION
探讨了Transformers在图像识别中的直接应用。不同于以往在计算机视觉中使用自我注意的工作,我们没有引入任何图像特定的归纳偏见到架构中。相反,我们将图像解释为一系列patches,并使用在NLP中使用的standard Transformer encoder来处理它。这种简单但可扩展的策略,在与大型数据集的预训练相结合时,效果惊人地好。因此,Vision Transformer 在许多图像分类数据集上匹配或超过了最先进的水平,同时相对便宜地进行预训练。
虽然这些初步结果令人鼓舞,但仍然存在许多挑战。一种是将ViT应用于其他计算机视觉任务,如检测和分割。我们的研究结果,以及Carion等人(2020年)的研究结果,表明了这种方法的前景。另一个挑战是继续探索自我监督的预训练方法。我们的初步实验表明,自我监督的预训练有所改善,但自我监督的预训练与大规模监督的预训练之间仍有很大的差距。最后,进一步扩展ViT可能会提高性能。
标签:SCALE,TRANSFORMERS,训练,IMAGE,al,ViT,ImageNet,et,模型 来源: https://blog.csdn.net/qq_37486501/article/details/115748901