[翻译]AN IMAGE IS WORTH 16X16 WORDS:TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE

 翻译的vision transformer原论文

一张图像相当于16x16个单词:用于大规模图像识别的Transformer

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

1.引言

基于自我关注的架构,特别是Transformers,已经成为自然语言处理(NLP)的首选模型。主要的方法是在大型文本语料库上进行预训练,然后在较小的任务特定数据集上进行微调。由于Transformers的计算效率和可扩展性,它可以训练前所未有的模型,具有超过100B个大小的参数。随着模型和数据集的增长,仍然没有出现性能饱和的迹象。

然而,在计算机视觉中,卷积架构仍然占主导地位。受NLP成功的启发,许多作品尝试将类似CNN的架构与自关注相结合,有些完全取代了卷积。后一种模型虽然在理论上是有效的,但由于使用了专门的注意力模式,还没有在现代硬件加速器上有效地扩展。因此,在大规模图像识别中,经典的类ResNet架构仍然是最先进的。

受NLP中Transformer缩放成功的启发,我们尝试将标准Transformer直接应用于图像,并尽可能减少修改。为此,我们将图像分割成小块,并提供这些小块的线性嵌入序列作为Transformer的输入。在NLP应用程序中,图像补丁的处理方式与token(单词)相同。我们以监督的方式对模型进行图像分类训练。

当在中等规模的数据集(如ImageNet)上进行训练时,没有进行强正则化,这些模型产生的精度比同等规模的ResNets低几个百分点。这个看似令人沮丧的结果是可以预料到的:Transformers缺乏一些CNNs网络所固有的归纳偏差,如翻译等方差和局部性,因此在数据量不足的情况下不能很好地泛化。

然而,如果模型在更大的数据集(14M-300M图像)上训练,图像就会发生变化。我们发现大规模训练胜过归纳偏。我们的视觉转换器(ViT)在足够的规模上进行预训练并转移到具有更少数据点的任务时获得了出色的结果。当在公共ImageNet-21k数据集或内部JFT-300M数据集上进行预训练时,ViT在多个图像识别基准上接近或超过了最先进的水平。特别是,最佳模型在ImageNet上达到88.55%的准确率,在ImageNet- Real上达到90.72%,在CIFAR-100上达到94.55%,在VTAB套件的19个任务上达到77.63%。

2.相关工作

Transformers由Vaswani等人2017提出用于机器翻译,并且已经成为许多NLP任务中最先进的方法。基于大型Transformer的模型通常在大型语料库上进行预训练,然后针对手头的任务进行微调:BERT使用去噪自监督预训练任务,而GPT的工作线使用语言建模作为其预训练任务。

对图像进行自我关注的天真应用会要求每个像素都关注其他像素。由于像素数量的代价是二次的,因此不能按实际的输入大小进行缩放。因此,为了在图像处理的背景下应用变形,过去已经尝试了几种近似方法。Parmar等人在2018年仅在局部邻域对每个查询像素应用自关注,而不是全局。这种局部多头点积自注意块可以完全取代卷积。在不同的工作中,稀疏变形器采用可扩展的全局自关注近似,以便适用于图像。另一种扩展注意力的方法是将其应用于不同大小的块,在极端情况下,仅沿着单个轴。许多这些专门的注意力架构在计算机视觉任务上显示出有希望的结果,但需要复杂的工程才能在硬件加速器上有效地实现。

与我们最相关的是Cordonnier等人在2020年实现的模型,该模型从输入图像中提取大小为2×2的斑块,并在其上应用完全的自关注。这个模型与ViT非常相似,但我们的工作进一步证明了大规模的预训练使香草变形与最先进的CNN做竞争(甚至是达到更好的效果)。此外,Cordonnier等人使用了2×2像素的小补丁尺寸,这使得该模型仅适用于小分辨率图像,而我们也可以处理中分辨率图像。

将卷积神经网络(CNN)与自注意形式相结合也引起了很多兴趣,例如通过增强图像分类的特征映射或通过使用自注意进一步处理CNN的输出,例如用于对象检测,视频处理、图像分类、无监督对象发现或统一文本视觉任务。

另一个最近的相关模型是图像GPT(iGPT),该模型在降低图像分辨率和色彩空间后,将Transformer应用于图像像素。该模型以无监督的方式作为生成模型进行训练,然后可以对结果表示进行微调或线性探测以获得分类性能,在ImageNet上实现72%的最大准确率。

我们的工作增加了越来越多的论文,这些论文探索了比标准ImageNet数据集更大规模的图像识别。使用额外的数据源可以在标准基准上获得最先进的结果。

此外,Sun等人在2017年研究了CNN性能如何随数据集大小而扩展,Kolesnikov等人Djolonga等人在ImageNet-21k和JFT-300M等大规模数据集上对CNN迁移学习进行了实证探索。我们也关注后两个数据集,但是训练的是基于Transformer的模型而不是在之前的作品中使用的基于ResNet的模型。

图1:模型概述。我们将图像分割成固定大小的补丁,线性嵌入每个补丁,添加位置嵌入,并将结果向量序列馈送到标准Transformer编码器。为了执行分类,我们使用标准方法向序列中添加一个额外的可学习的“分类令牌”。变压器编码器的插图受到Vaswani等人(2017)的启发。

3.方法

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

3.1 Vision Transformers

该模型的概述如图1所示。标准Transformer接收作为输入的token嵌入的1D序列。为了处理二维图像,我们将图像x∈RH×W×C重塑为一个平坦的二维补丁序列xp∈R (P·P·C),其中(H, W)为原始图像的分辨率,C为通道数,(P, P)为每个图像补丁的分辨率,N = HW/P2为得到的补丁数,这也是Transformer的有效输入序列长度。Transformer在其所有层中使用恒定的潜在向量大小D,因此我们将patch平坦化并使用可训练的线性投影映射到D维度(公式1)。我们将该投影的输出称为patch embedding。

与BERT的token类似,我们在嵌入的patch序列(Z=Xclass)前添加一个可学习的嵌入,其在Transformer编码器输出(ZL)的状态作为图像表示y (公式4)。在预训练和微调期间,分类头都附加到ZL。分类头在预训练时由一个隐藏层的MLP实现,在微调时由一个线性层实现。

将位置嵌入添加到补丁嵌入中以保留位置信息。我们使用标准的可学习的1D位置嵌入,因为我们没有观察到使用更先进的2D感知位置嵌入的显著性能提升(附录D.4)。得到的嵌入向量序列作为编码器的输入

Transformer编码器由多头自注意(MSA,见附录A)和MLP块(公式2和3)的交替层组成。在每个块之前应用层模(LN),并在每个块之后应用残差连接。

MLP包含两个具有GELU非线性的层。

 

归纳的偏置。我们注意到视觉变压器比CNN具有更少的图像特定的感应偏置。在CNN中,局部性、二维邻域结构和平移等方差被嵌入到整个模型的每一层中。在ViT中,只有MLP层是局部和平移等变的,而自注意层是全局的。二维邻域结构的使用非常少:在模型开始时通过将图像切割成小块,以及在微调时用于调整不同分辨率图像的位置嵌入(如下所述)。除此之外,初始化时的位置嵌入不携带关于patch的二维位置信息,所有patch之间的空间关系都需要从头学习。

混合架构。作为原始图像补丁的替代方案,输入序列可以由CNN的特征映射形成。在该混合模型中,将patch embedding投影E (公式1)应用于从CNN特征图中提取的patch。作为一种特殊情况,patch的空间大小可以是1x1,这意味着输入序列是通过简单地将特征图的空间维度平坦化并投影到Transformer维度来获得的。如上所述添加分类输入嵌入和位置嵌入。

3.2微调和更高的分辨率

通常,我们在大型数据集上预训练ViT,并对(较小的)下游任务进行微调。为此,我们移除预训练的预测头,并附加一个零初始化的D×K前传层,其中K是下游类的数量。与预训练相比,在更高分辨率下进行微调通常是有益的。当输入更高分辨率的图像时,我们保持patch大小不变,从而获得更大的有效序列长度。Vision Transformer可以处理任意序列长度(直到内存限制),但是,预训练的位置嵌入可能不再有意义。因此,我们根据预训练的位置嵌入在原始图像中的位置对其进行二维插值。请注意,此分辨率调整和补丁提取是将图像的2D结构的感应偏置手动注入Vision Transformer的唯一点。

4 实验

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

4.1 设置

数据集。为了探索模型的可扩展性,我们使用了ILSVRC-2012 ImageNet数据集,其中包含1k个类和130万张图像(我们将其称为ImageNet),其超集ImageNet-21k包含21k个类和14M张图像,以及JFT包含18k个类和303M张高分辨率图像。我们在Kolesnikov等人之后,对下游任务的测试集进行了预训练数据集的去重复处理。我们将在这些数据集上训练的模型转移到几个基准任务:原始验证标签和清理后的ReaL标签上的ImageNet、CIFAR-10/100 、Oxford- iiit Pets和Oxford flower -102。对于这些数据集,预处理遵循Kolesnikov等人的处理方式

我们还对19个任务的VTAB分类套件进行了评估。VTAB评估低数据传输到不同任务,每个任务使用1000个训练示例。任务分为三组:自然任务,如上述任务,宠物,CIFAR等。专业的——医学和卫星图像,以及结构化的——需要几何理解的任务,比如定位。

 

表1:Vision Transformer模型变体的详细信息。

模型变体。我们基于BERT使用的ViT配置,如表1所示。“Base”和“Large”模型直接取自BERT,我们加入了较大的“Huge”模型。在接下来的内容中,我们使用简短的符号来表示模型大小和输入补丁大小:例如,ViT-L/16表示具有16×16输入补丁大小的“大”变体。请注意,Transformer的序列长度与补丁大小的平方成反比,因此具有较小补丁大小的模型在计算上更昂贵。

对于基线CNN,我们使用ResNet,但用群归一化取代批归一化层,并使用标准化卷积。这些修改改善了迁移,我们将修改后的模型命名为“ResNet (BiT)”。对于混合模型,我们将中间特征映射以一个“像素”的patch大小馈送到ViT中。为了实验不同的序列长度,我们要么取常规ResNet50的阶段4的输出,要么删除阶段4,在阶段3中放置相同数量的层(保持层总数),并取这个扩展阶段3的输出。后一种选项的结果是4倍长的序列长度和更昂贵的ViT模型。

培训和微调。我们使用Adam优化器训练所有模型,包括ResNets,其中β1=0.9, β2=0.999,批大小为4096,并应用0.1的高权重衰减,我们发现这对所有模型的转移都很有用(附件D.1显示,与常规做法相比,Adam在我们的设置中比SGD对ResNets的效果略好)。我们使用线性学习率预热和衰减,详见附录B.1。对于微调,我们使用SGD动量,批大小512,所有模型,见附录B.1.1。对于表2中的ImageNet结果,我们在更高的分辨率下进行了微调:ViT-L/16为512,ViT-H/14为518,并且还使用Polyak和Juditsky平均系数为0.9999。

指标。我们通过少量或微调精度报告下游数据集的结果。微调精度捕获每个模型在各自的数据集上进行微调后的性能。通过求解正则化最小二乘回归问题,将训练图像子集的表示映射到{−1,1}K个目标向量,获得少量识别精度。这个公式使我们可以得到封闭形式的精确解。虽然我们主要关注微调性能,但我们有时会使用线性的少量精度来进行快速的动态评估,因为微调的成本太高。

4.2与技术水平的比较

我们首先将我们最大的模型-ViT-H/14和ViT-L/16与文献中最先进的CNN进行比较。第一个比较点是Big Transfer (BiT),它使用大型ResNet执行监督迁移学习。第二个是Noisy Student,它是一个大型的高效网络,使用半监督学习在ImageNet和JFT300M上进行训练,去掉了标签。目前,Noisy Student在ImageNet上是最先进的,BiT-L在这里报道的其他数据集上是最先进的。所有模型都在TPUv3硬件上进行训练,我们报告预训练每个模型所需的TPUv3核数-天,即用于训练的TPUv3核数(每个芯片2个)乘以训练时间(天)。

表2显示了结果。在JFT-300M上预训练的较小的ViT-L/16模型在所有任务上都优于BiT-L(在相同的数据集上预训练),同时需要更少的计算资源来训练。更大的模型ViT-H/14进一步提高了性能,特别是在更具挑战性的数据集- ImageNet, CIFAR-100和VTAB套件上。有趣的是,这与之前的技术相比,模型在预训练上花费的计算仍然少得多。然而,我们注意到预训练效率可能不仅受到体系结构选择的影响,还受到其他参数的影响,如训练计划、优化器、权值衰减等。在第4.4节中,我们对不同架构的性能与计算进行了对照研究。最后,在公共ImageNet-21k数据集上预训练的ViT-L/16模型在大多数数据集上也表现良好,同时需要较少的资源进行预训练:它可以使用标准的8核云TPUv3在大约30天内进行训练。

图2将VTAB任务分解为各自的组,并在此基准上与之前的SOTA方法进行比较:BiT, VIVI -在ImageNet和Youtube上共同训练的ResNet,以及S4L-在ImageNet上监督和半监督学习。

在自然任务和结构化任务上,ViT-H/14优于BiT-R152x4和其他方法。在专门化方面,前两个模型的性能差不多。

 

表2:与目前流行的图像分类基准的比较。我们报告精度的平均值和标准偏差,平均在三个微调运行。在JFT-300M数据集上预训练的Vision Transformer模型在所有数据集上的表现都优于基于resnet的基线,同时预训练所需的计算资源大大减少。在较小的公共ImageNet-21k数据集上预训练的ViT也表现良好。Touvron等人(2020)报告的结果略微改善88.5%。

 

图2:VTAB在自然、专门化和结构化任务组中的性能分解

4.3预训练数据要求

Vision Transformer在大型JFT-300M数据集上进行预训练时表现良好。与ResNets相比,对于视觉的归纳偏差更少,那么数据集的大小有多重要呢?我们进行了两个系列的实验。

首先,我们在越来越大的数据集上预训练ViT模型:ImageNet、ImageNet-21k和JFT300M。为了提高在较小数据集上的性能,我们优化了三个基本的正则化参数——权重衰减、Dropout和标签平滑。图3显示了调优到ImageNet后的结果(表5显示了其他数据集上的结果)。当在最小的数据集ImageNet上进行预训练时,尽管(适度)正则化,ViT-Large模型的表现仍不如ViT- Base模型。使用ImageNet-21k预训练,它们的性能是相似的。只有使用JFT-300M,我们才能看到更大型号的全部好处。图3还显示了不同性能大小的BiT模型所跨越的区域。BiT-CNN在ImageNet上的表现优于ViT,但在更大的数据集上,ViT超越了它。

 

图3:传输到ImageNet。虽然在小数据集上进行预训练时,大型ViT模型的表现比BiT ResNets(阴影区域)差,但在大型数据集上进行预训练时,它们表现出色。同样,随着数据集的增长,较大的ViT变量会超过较小的ViT变量。

其次,我们在9M、30M和90M的随机子集以及完整的JFT300M数据集上训练我们的模型。我们没有对较小的子集执行额外的正则化,并对所有设置使用相同的超参数。这样,我们评估的是模型的内在属性,而不是正则化的影响。然而,我们确实使用了早期停止,并报告了在训练期间实现的最佳验证准确性。为了节省计算,我们报告了少镜头线性精度而不是全微调精度。图4包含了结果。在较小的数据集上,Vision Transformer比ResNets过拟合更多,且计算成本相当。例如,ViT-B/32略快于ResNet50;它在9M的子集上表现得更差,但在90M以上的子集上表现得更好。ResNet152x2和ViT-L/16也是如此。这个结果强化了卷积归纳偏差对较小数据集有用的直觉,但对于较大的数据集,直接从数据中学习相关模式是足够的,甚至是有益的。

 

图4:ImageNet上的线性少镜头评估与预训练大小。ResNets在较小的预训练数据集上表现更好,但比ViT更快达到平台期,后者在较大的预训练数据集上表现更好。ViT-B是所有隐藏维度减半的ViT-B

 

图5:不同架构的性能与预训练计算:Vision transformer、ResNets和hybrid。在计算预算相同的情况下,ViT通常优于ResNets。混合模型在较小的模型尺寸上改进了纯Transformers,但在较大的模型上差距就消失了。

总的来说,ImageNet上的少量拍摄结果(图4)以及VTAB上的低数据结果(表2)似乎对非常低的数据传输很有希望。进一步分析ViT的少射特性是未来工作的一个令人兴奋的方向。

4.4标度研究

我们通过评估JFT-300M的传输性能,对不同模型进行了控制缩放研究。在这种情况下,数据大小不会成为模型性能的瓶颈,我们根据每个模型的预训练成本来评估性能。模型集包括:7个,其中ResNets, R50x1、R50x2、R101x1、R152x1、R152x2,预训练了7个epoch,加上预训练了14个epoch的R152x2、R200x3;6类transformer模型其中的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.5有关计算成本的详细信息)。每个模型的详细结果见附录表6。可以观察到一些模式。首先,视觉转换器在性能/计算权衡方面主导着ResNets。ViT使用大约2-4倍的计算来获得相同的性能(平均超过5个数据集)。其次,混合模型在较小的计算预算下略优于ViT,但对于较大的模型,这种差异就消失了。这个结果有些令人惊讶,因为人们可能期望卷积局部特征处理能够帮助任何规模的ViT。第三,Vision Transformer在尝试的范围内似乎没有饱和,这激励了未来的扩展努力。

4.5检查Vision Transformer

为了开始理解视觉转换器如何处理图像数据,我们分析其内部表示。Vision Transformer的第一层将平坦的斑块线性投影到较低维空间。图7(左)显示了学习到的嵌入滤波器的顶部主成分。这些成分类似于每个斑块内精细结构的低维表示的可信基函数。

投影后,将学习到的位置嵌入添加到patch表示中。图7(中)显示,该模型在位置嵌入的相似性中学习对图像内的距离进行编码,即距离越近的patch往往有更多相似的位置嵌入。此外,出现了行-列结构;同一行/列中的补丁具有相似的嵌入。最后,对于较大的网格,正弦结构有时是明显的(附录D)。位置嵌入学习表示2D图像拓扑解释了为什么手工制作的2D感知嵌入变体不会产生改进(附录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载有进一步的细节。我们留下对比预训练的探索对未来的工作。

 

图7:左:ViT-L/32初始线性嵌入RGB值的滤波器。中:viti - l /32的位置嵌入相似度。tile表示具有指示行和列的patch的位置嵌入与所有其他patch的位置嵌入之间的余弦相似度。右:按人头和网络深度划分的出席区域大小。每个点表示在一层的16个头部中的一个在图像上的平均注意距离。详见附录D.7。

5结论

我们探索了Transformer在图像识别中的直接应用。与之前在计算机视觉中使用自注意的工作不同,除了初始补丁提取步骤外,我们没有将特定于图像的归纳偏差引入体系结构。相反,我们将图像解释为一系列补丁,并通过NLP中使用的标准Transformer编码器对其进行处理。当与大型数据集的预训练相结合时,这种简单但可扩展的策略效果出奇地好。

因此,Vision Transformer在许多图像分类数据集上达到或超过了最先进的水平,同时预训练相对便宜。

虽然这些初步结果令人鼓舞,但仍存在许多挑战。一是将ViT应用于其他计算机视觉任务,如检测和分割。我们的结果,加上Carion等人的结果,表明了这种方法的前景。另一个挑战是继续探索自我监督的预训练方法。我们的初步实验显示了自监督预训练的改进,但自监督预训练与大规模监督预训练之间仍有很大差距。最后,进一步扩展ViT可能会提高性能。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱改网络的法式小面包

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值