最前面是论文翻译,中间是背景+问题+方法步骤+实验过程,最后是文中的部分专业名词介绍(水平线分开,能力有限,部分翻译可能不太准确)
摘要:
尽管Tansformer结构已经成为自然语言处理的事实标准,但是在计算机视觉上的应用还是非常有限。在视觉领域,注意力机制要么和卷积神经网络共用,要么在保持原有结构不变的情况下替换局部的卷积运算。我们证明对CNN的依赖不是必须的,纯Transformer可以直接应用在一系列小块图片上并在分类任务上取得很好的效果。当在大量数据预训练的模型转移到中小型图片识别测试集(ImageNet, CIFAR-100, VTAB, etc)上, 相对最优秀的卷积神经网络,视觉Transformer (ViT)可以取得非常优秀的结果并且大量较少训练的计算资源。
1.介绍
基于自注意力的架构,尤其是Transformer,已经成为自然语言处理(NLP)中选择的模型。主要的方法是在大型文本语料库上进行预训练,然后在较小的任务特定数据集上进行微调。由于Transformer 的计算效率和可扩展性,训练具有超过100B参数的空前规模的模型成为可能。随着模型和数据集的增长,仍然没有表现出饱和的迹象。
然而,在计算机视觉中,卷积架构仍然占主导地位。受到NLP成功的启发,许多作品尝试将CNN类架构与自注意力结合,一些完全取代卷积全部使用自注意力。后一种模型虽然理论上是有效的,缺点:但由于使用了专门的注意力模式,在现代硬件加速器上还没有得到有效的扩展。因此,在大规模图像识别中,经典的ResNetlike架构仍然是最先进的技术。
受NLP中Transformer缩放成功的启发,我们尝试将标准Transformer直接应用于图像,并尽可能减少修改。为此,我们将图像分割为多个小块,并将这些小块的线性嵌入序列作为Transformer的输入。图像补丁的处理方式与NLP应用程序中的标记(单词)相同。我们以监督的方式训练模型进行图像分类。
当在中等规模的数据集(如ImageNet)上进行训练时,如果没有很强的正则化,这些模型的精度将比同等规模的ResNet低几个百分点。这一看似令人沮丧的结果是可以预料的:Transformer 缺乏CNN固有的一些感应偏差,如平移等变和局部性,因此在数据量不足的情况下,不能很好地进行泛化。
然而,如果模型在更大的数据集(14M-300M图像)上训练,图像就会发生变化。我们发现大规模训练战胜了归纳偏置。我们的视觉Transformer (ViT)在足够规模的预训练和转移到具有更少数据点的任务时取得了优异的结果。当在公共的ImageNet-21k数据集或内部的JFT-300M数据集上进行预训练时,ViT在多个图像识别基准上接近或超过了最先进的水平。其中,最佳模型在ImageNet上达到88.55%,在ImageNet- real上达到90.72%,在CIFAR-100上达到94.55%,在19个任务的VTAB套件上达到77.63%。
2.相关工作
Vaswani等人(2017)提出了用于机器翻译的Transformer ,并已成为许多NLP任务中的最先进方法。大型的基于transformer的模型通常在大型语料库上进行预训练,然后针对手头的任务进行微调:BERT使用去噪的自我监督训练前任务,而GPT工作则使用语言建模作为其训练前任务。
对图像进行单纯的自注意力需要每个像素注意其他像素。由于像素数量为二次元,因此不能按实际输入大小缩放。因此,为了将Transformer 应用于图像处理,过去已经尝试了几种近似方法。Parmar等人(2018)只对每个查询像素的局部邻域应用了自注意力,而不是全局。这种局部多头点积自注意力块可以完全替代卷积。在另一项工作中,稀疏Transformer (采用了可扩展的全局自注意力近似,以便适用于图像。衡量注意力的另一种方法是在不同大小的块上应用注意力,在极端情况下只沿着单个轴。这些专门的注意力架构在计算机视觉任务中展示了很好的结果,但需要复杂的工程在硬件加速器上有效地实现。
与我们最相关的是Cordonnier (2020)的模型,该模型从输入图像中提取大小为2 × 2的patch,并在上面应用完全自注意力。这个模型与ViT非常相似,但我们的工作进一步证明,大规模的预训练可以让vanilla Transformer 与最先进的CNN竞争(甚至更好)。此外,Cordonnier 等人(2020)使用了2 × 2像素的小尺寸patch,这使得该模型仅适用于小分辨率的图像,而我们也适用于中等分辨率的图像。
人们对将卷积神经网络(CNN)与自注意力形式相结合也有很多兴趣,例如通过增强图像分类的特征映射或通过使用自注意力进一步处理CNN的输出,例如用于目标检测,视频处理,图像分类,无监督对象发现,或统一的文本视觉任务。
另一个近期的相关模型是图像GPT (iGPT),它在降低图像分辨率和颜色空间后,将Transformer 应用于图像像素。该模型以一种无监督的方式作为生成模型进行训练,然后可以对产生的表示进行微调或线性探测,以提高分类性能,在ImageNet上达到72%的最大精度。
我们的工作增加了越来越多的论文集,这些论文在比标准ImageNet数据集更大的范围内探索图像识别。使用额外的数据源可以在标准基准上取得最先进的结果。此外,Sun等人(2017)研究了CNN的性能如何随数据集的大小而变化,Kolesnikov等人(2020);Djolonga等人(2020)对CNN从ImageNet-21k和JFT-300M等大规模数据集转移学习进行了经验性探索。我们也关注这两个数据集,但训练Transformers而不是之前工作中使用的基于ResNet的模型。
3.方法
在模型设计中,我们尽可能地遵循最初的Transformer (2017)。这种故意简化的设置的一个优点是,可伸缩的NLP Transformer架构——及其高效实现——几乎可以开箱即用。
3.1视觉transformer(VIT)
图1描述了该模型的概述。标准的Transformer接收一个1D符号嵌入序列作为输入。为了处理2D图像,我们将图像x∈RH×W ×C重构为平坦的2D patch xp∈RN ×(p2·C)序列,其中(H, W)为原始图像的分辨率,C为通道数,(P, P)为每个图像patch的分辨率,N = HW/ p2为得到的patch数,这也是Transformer的有效输入序列长度。Transformer在其所有层中使用恒定的潜在向量大小D,因此我们将补丁平铺并使用可训练的线性投影(公式1)映射到D维。我们将这个投影的输出称为补丁嵌入。

图1:模型概览。我们将图像分割成固定大小的小块,线性嵌入每个小块,添加位置嵌入,并将得到的向量序列输入标准的Transformer编码器。为了进行分类,我们使用标准的方法,在序列中添加一个额外的可学习的“分类标记”。Transformer 编码器的插图的灵感来自Vaswani等人(2017)。
类似于BERT的[类]标记,我们在嵌入补丁序列(z0 0 = xclass)前加上一个可学习的嵌入,其在Transformer编码器(z0L)输出处的状态作为图像表示y (式子4)。在预训练和微调期间,分类头都被附加到z0L上。该分类头在训练前由一个隐含层实现,在微调时由一个线性层实现。
在补丁嵌入中加入位置嵌入以保留位置信息。我们使用标准的可学习的一维位置嵌入,因为我们没有观察到使用更先进的2d感知位置嵌入的显著性能提高(附录D.4)。生成的嵌入向量序列作为编码器的输入。
Transformer编码器(Vaswani等人,2017)由多头自注意力(MSA,见附录A)和MLP块的交替层组成(公式2,3)。在每个区块之前应用Layernorm(LN),在每个区块之后应用剩余连接。MLP包含两个具有GELU非线性的层。


本文探讨了Transformer结构在计算机视觉领域的应用,提出纯Transformer可以直接应用于小块图片进行分类,尤其是在大规模数据预训练后,ViT在ImageNet、CIFAR-100和VTAB等任务上展现出超越卷积神经网络的性能,尽管在小数据集上略逊一筹,但大型数据集训练的优势明显。
最低0.47元/天 解锁文章

1万+

被折叠的 条评论
为什么被折叠?



