目录
4.5 INSPECTING VISION TRANSFORMER
0. 论文基本信息
1. Paper:https://arxiv.org/pdf/2010.11929.pdf
2. Code:https://github.com/google-research/vision_transformer
3. [引用] Dosovitskiy A, Beyer L, Kolesnikov A, et al. An image is worth 16x16 words: Transformers for image recognition at scale[J]. arXiv preprint arXiv:2010.11929, 2020.
4. 摘要 — 尽管Transformer架构已成为自然语言处理任务的事实标准,但它在计算机视觉中的应用仍然有限。在视觉领域,注意力机制通常与卷积网络结合使用,或者用来替代卷积网络的某些组件,同时保持其整体结构不变。我们展示了在图像分类任务上,不必依赖卷积神经网络(CNNs),而直接将纯Transformer应用于图像块序列,可以表现出色。当在大量数据上进行预训练并迁移到多个中等规模或小规模图像识别基准测试(如ImageNet、CIFAR-100、VTAB等)时,Vision Transformer(ViT)相对于最先进的卷积网络,取得了出色的结果,同时需要的计算资源大大减少。
5. 关键词 — Visual Transformer
6. arXiv(2021)
1. 背景介绍
自注意力架构,特别是Transformer(Vaswani等,2017),已经成为自然语言处理(NLP)中的首选模型。主要方法是在大型文本语料库上进行预训练,然后在较小的任务特定数据集上进行微调(Devlin等,2019)。由于Transformer的计算效率和可扩展性,现在可以训练具有超过1000亿参数的前所未有的大型模型(Brown等,2020;Lepikhin等,2020)。随着模型和数据集的不断增长,性能仍然没有达到饱和。
然而,在计算机视觉领域,卷积架构仍然占主导地位(LeCun等,1989;Krizhevsky等,2012;He等,2016)。受NLP成功的启发,一些工作尝试将类似CNN的架构与自注意力相结合(Wang等,2018;Carion等,2020),有些甚至完全替代卷积(Ramachandran等,2019;Wang等,2020a)。然而,尽管理论上高效,但这些后者模型在现代硬件加速器上尚未有效扩展,因为它们使用了专门的注意力模式。因此,在大规模图像识别中,经典的ResNet类似架构仍然是最先进的(Mahajan等,2018;Xie等,2020;Kolesnikov等,2020)。
受NLP中Transformer的扩展成功启发,我们尝试将标准的Transformer直接应用于图像,进行尽可能少的修改。为此,我们将图像分成小块,并将这些块的线性嵌入的序列提供给Transformer作为输入。图像块与NLP应用中的标记(单词)被处理方式相同。我们以监督方式在图像分类上对模型进行训练。
当在中等规模的数据集(例如ImageNet)上进行训练时,这些模型在没有强有力的正则化的情况下,产生的准确度稍低于相同大小的ResNet。这种看似令人沮丧的结果可能是可以预期的:与CNN固有的一些归纳偏差相比,Transformer缺乏一些归纳偏差,例如平移等变性和局部性,因此在训练数据不足时不容易泛化。
然而,如果模型在更大的数据集(1400万至3亿张图像)上进行训练,则情况就会改变。我们发现大规模培训胜过归纳偏差。我们的Vision Transformer(ViT)在足够大规模上进行预训练,并在数据点较少的任务上进行迁移时,取得了出色的结果。在公共ImageNet-21k数据集或公司内部的JFT-300M数据集上进行预训练后,ViT在多个图像识别基准测试上接近或超越了最先进的水平。特别是最佳模型在ImageNet上达到了88.55%的准确度,在ImageNet-ReaL上达到了90.72%的准确度,在CIFAR-100上达到了94.55%的准确度,以及在VTAB的19项任务中达到了77.63%的准确度。
2. 相关工作
Transformer模型最初由Vaswani等人(2017)提出用于机器翻译,并且后来成为许多自然语言处理(NLP)任务的最先进方法。大型基于Transformer的模型通常在大型语料库上进行预训练,然后针对具体任务进行微调:BERT(Devlin等人,2019)使用去噪自监督的预训练任务,而GPT系列则使用语言建模作为其预训练任务(Radford等人,2018;2019;Brown等人,2020)。
将自注意力朴素地应用于图像将要求每个像素都要关注每个其他像素。由于像素数量的二次成本,这在实际输入大小上是不可扩展的。因此,在图像处理的背景下应用Transformer,过去已尝试了几种近似方法。Parmar等人(2018)仅在每个查询像素的本地邻域而不是全局上应用自注意力。这种局部多头点积自注意力块可以完全替代卷积(Hu等人,2019;Ramachandran等人,2019;Zhao等人,2020)。在不同的工作线路中,Sparse Transformers(Child等人,2019)采用可扩展的近似方法来实现全局自注意力,以便应用于图像。扩展注意力的另一种方法是将其应用于不同大小的块(Weissenborn等人,2019),在极端情况下,仅沿着各个轴进行应用(Ho等人,2019;Wang等人,2020a)。许多这些专门的注意力架构在计算机视觉任务上表现出有希望的结果,但需要复杂的工程来在硬件加速器上高效实现。
与我们的工作最相关的是Cordonnier等人(2020)的模型,该模型从输入图像中提取大小为2x2的块,然后在其上应用全自注意力。这个模型与ViT非常相似,但我们的工作进一步证明了大规模预训练使得纯Transformer模型在与(甚至更好)现有最先进的CNN竞争时具有竞争力。此外,Cordonnier等人(2020)使用了小的2x2像素块,这使得该模型仅适用于小分辨率图像,而我们也处理中分辨率图像。
还有很多研究致力于将卷积神经网络(CNNs)与各种自注意力形式相结合,例如通过增强用于图像分类的特征图(Bello等人,2019)或通过使用自注意力进一步处理CNN的输出,例如用于目标检测(Hu等人,2018;Carion等人,2020),视频处理(Wang等人,2018;Sun等人,2019),图像分类(Wu等人,2020),无监督目标发现(Locatello等人,2020)或统一的文本-视觉任务(Chen等人,2020c;Lu等人,2019;Li等人,2019)。
另一个最近相关的模型是图像GPT(iGPT)(Chen等人,2020a),它在降低图像分辨率和颜色空间后将Transformer应用于图像像素。该模型以无监督的方式作为生成模型进行训练,然后可以对分类性能进行微调或线性探测,达到ImageNet上的最高准确度为72%。
我们的工作增加了探索比标准ImageNet数据集更大规模的图像识别的论文集合。使用额外的数据来源使得在标准基准测试上实现了最先进的结果(Mahajan等人,2018;Touvron等人,2019;Xie等人,2020)。此外,Sun等人(2017)研究了CNN性能随数据集大小的变化,Kolesnikov等人(2020)和Djolonga等人(2020)从大规模数据集(如ImageNet-21k和JFT-300M)进行了CNN迁移学习的经验性探索。我们专注于这两个后者的数据集,并在先前的研究中使用的ResNet-based模型之外,训练了Transformer模型。
要将Transformer模型应用于图像,通常需要将图像分成块并将这些块的线性嵌入序列作为Transformer的输入。图像块在这里与NLP应用中的标记(单词)相同。我们通过监督方式对模型进行图像分类训练。在中等大小的数据集(如ImageNet)上进行训练时,这些模型的准确性较低,比相同大小的ResNet模型低几个百分点。这种看似令人沮丧的结果可能是可以预期的:Transformers缺乏CNN固有的一些归纳偏差,如平移等变性和局部性,因此在训练数据不足时无法很好地进行泛化。
然而,如果模型在较大的数据集(14M-300M图像)上进行训练,情况就会改变。大规模训练优于归纳偏差。我们的Vision Transformer(ViT)在足够规模的预训练和转移到具有更少数据点的任务时表现出色。当在公共ImageNet-21k数据集或内部JFT-300M数据集上进行预训练时,ViT在多个图像识别基准上接近或超越了最先进的水平。特别是,最佳模型在ImageNet上达到了88.55%的准确率,在ImageNet-ReaL上达到了90.72%,在CIFAR-100上达到了94.55%,在VTAB的19项任务套件上达到了77.63%的准确率。
3. 方法论
在模型设计中,我们尽量紧密地遵循原始的Transformer(Vaswani等人,2017)。这种故意简化的设置的优点是,可扩展的NLP Transformer架构及其高效的实现几乎可以直接使用。
3.1 Vision Transformer(ViT)
模型概述如图1所示。标准Transformer接收1D令牌嵌入的序列作为输入。为了处理2D图像,我们将图像x重塑为平坦的2D块序列xp,其中(H;W)是原始图像的分辨率,C是通道数,(P;P)是每个图像块的分辨率,N = HW / P2是生成的块数量,也是Transformer的有效输入序列长度。 Transformer在所有层中使用恒定的潜在向量大小D,因此我们将这些块展平并通过可训练的线性投影(公式1)映射到D维。我们将这个投影的输出称为块嵌入。
与BERT的[class]标记类似,我们在嵌入块序列的开始处添加一个可学习的嵌入(z00=xclass),其在Transformer编码器的输出(z0L)处的状态用作图像表示y(公式4)。在预训练和微调期间,通过MLP的分类头连接到z0L。在预训练时,分类头由一个具有一个隐藏层的MLP实现,在微调时,由一个单一的线性层实现。
位置嵌入被添加到块嵌入中以保留位置信息。我们使用标准的可学习1D位置嵌入,因为我们没有观察到使用更先进的2D感知位置嵌入(附录D.4)会带来显著的性能提升。生成的嵌入向量序列用作编码器的输入。
Transformer编码器(Vaswani等人,2017)由多头自注意(MSA,见附录A)和MLP块(公式2,3)的交替层组成。在每个块之前应用层归一化(LN),并在每个块之后应用残差连接(Wang等人,2019; Baevski&Auli,2019)。
归纳偏差。我们注意到,Vision Transformer的图像特定归纳偏差比CNN少得多。在CNN中,局部性,二维邻域结构和平移等变性嵌入到整个模型的每一层中。在ViT中,只有MLP层是局部的和平移等变的,而自我注意层是全局的。二维邻域结构被非常节制地使用:在模型的开始部分,通过将图像切成块,以及在微调时,用于调整不同分辨率图像的位置嵌入(如下所述)。除此之外,初始化时的位置嵌入不包含关于块的2D位置的信息,所有块之间的空间关系都必须从头开始学习。
混合体系结构。作为原始图像块的替代,输入序列可以由CNN的特征图形成。在这种混合模型中,块嵌入投影E(公式1)应用于从CNN特征图中提取的块。作为一种特殊情况,块可以具有1x1的空间大小,这意味着输入序列是通过简单地展平特征图的空间维度并投影到Transformer维度来获得的。如上所述,添加了分类输入嵌入和位置嵌入。
3.2 微调和更高分辨率
通常情况下,我们首先在大型数据集上对 ViT 进行预训练,然后对(较小的)下游任务进行微调。为了实现这一点,我们移除了预训练的预测头部,并附加了一个初始化为零的 D x K 前馈层,其中 K 是下游任务类别的数量。通常情况下,进行微调时以更高的分辨率处理图像是有益的(Touvron 等人,2019;Kolesnikov 等人,2020)。当输入更高分辨率的图像时,我们保持图像块的大小不变,这导致了更大的有效序列长度。Vision Transformer 可以处理任意长度的序列(受内存限制),但是预训练的位置嵌入可能不再有意义。因此,我们根据它们在原始图像中的位置执行预训练的位置嵌入的 2D 插值。请注意,这种分辨率调整和图像块提取是手动注入到 Vision Transformer 中的唯一关于图像二维结构的感知偏差的点。
4.实验
我们评估了ResNet、Vision Transformer(ViT)和混合模型的表示学习能力。为了了解每个模型的数据需求,我们在不同大小的数据集上进行了预训练,并评估了许多基准任务。考虑到预训练模型的计算成本,ViT在大多数识别基准测试中表现非常出色,以较低的预训练成本达到了与ResNet相媲美的水平。最后,我们进行了一个小型的自监督实验,并展示了自监督ViT在未来具有潜力。
4.1 设置
数据集。为了探索模型的可扩展性,我们使用了包含1k类和130万张图像的ILSVRC-2012 ImageNet数据集(我们在以下内容中将其称为ImageNet),以及包含21k类和1400万张图像的其超集ImageNet-21k(Deng等人,2009),以及包含18k类和3.03亿张高分辨率图像的JFT(Sun等人,2017)。我们根据Kolesnikov等人的方法(2020)对预训练数据集进行了去重,以适应下游任务的测试集。我们将在这些数据集上训练的模型转移到多个基准任务上:ImageNet上的原始验证标签和清理后的ReaL标签(Beyer等人,2020)、CIFAR-10/100(Krizhevsky,2009)、Oxford-IIIT宠物(Parkhi等人,2012)以及Oxford Flowers-102(Nilsback&Zisserman,2008)。对于这些数据集,预处理遵循Kolesnikov等人的方法(2020)。 我们还在包含19个任务的VTAB分类套件(Zhai等人,2019b)上进行了评估。VTAB评估了向多样化任务的低数据传输,每个任务使用1000个训练示例。这些任务分为三组:自然任务,如上述任务、宠物、CIFAR等;专业任务,包括医学和卫星图像;结构任务,需要几何理解,如定位。
模型变种。我们基于用于BERT(Devlin等人,2019)的配置,如表1所示。 "Base"和"Large"模型直接采用了BERT的配置,我们还添加了更大的"Huge"模型。在接下来的内容中,我们使用简洁的符号来表示模型的大小和输入块的大小:例如,ViT-L/16表示带有16×16输入块大小的"Large"变体。请注意,Transformer的序列长度与块大小的平方成反比,因此具有较小块大小的模型在计算上更昂贵。 对于基线CNN,我们使用ResNet(He等人,2016),但用Group Normalization(Wu&He,2018)替换Batch Normalization层(Ioffe&Szegedy,2015),并使用标准化卷积(Qiao等人,2019)。这些修改改进了模型的传递性(Kolesnikov等人,2020),我们将修改后的模型称为"ResNet(BiT)"。对于混合模型,我们将中间特征映射馈送到具有像素大小的ViT中。为了尝试不同的序列长度,我们要么(i)取常规ResNet50的第4阶段的输出,要么(ii)移除第4阶段,将相同数量的层放置在第3阶段(保持总层数不变),并取扩展后的第3阶段的输出。选项(ii)导致序列长度增加4倍,以及更昂贵的ViT模型。
训练和微调。我们使用Adam(Kingma&Ba,2015)来训练所有模型,包括ResNets,设置参数为1=0.9、2=0.999,批处理大小为4096,并应用高权重衰减0.1,我们发现对于所有模型的传递来说是有用的(附录D.1显示,与常见做法相反,Adam在我们的环境中与SGD相比效果稍好)。我们使用线性学习率预热和衰减,详见附录B.1。对于微调,我们使用带动量的SGD,批处理大小为512,对于所有模型,详见附录B.1.1。对于表2中的ImageNet结果,我们在更高分辨率上进行了微调:ViT-L/16为512,ViT-H/14为518,并使用Polyak&Juditsky(1992)平均值(Ramachandran等人,2019;Wang等人,2020b)的因子为0.9999。
度量标准。我们报告了下游数据集的结果,要么通过少样本要么通过微调准确性。微调准确性捕捉了每个模型在在相应数据集上微调后的性能。通过求解一个将训练图像子集的(冻结的)表示映射到f1;1gK目标向量的正则化最小二乘回归问题,可以获得少数样本准确性。这个公式允许我们以封闭形式恢复精确解。尽管我们主要关注微调性能,但有时候我们使用线性少样本准确性进行快速的即时评估,其中微调成本太高。
4.2 与现有技术的比较
首先,我们将最大的模型ViT-H/14和ViT-L/16与文献中的最先进的CNN进行比较。第一个比较点是Big Transfer(BiT)(Kolesnikov等人,2020),它使用大型ResNets进行监督迁移学习。第二个是Noisy Student(Xie等人,2020),它是使用去除了ImageNet和JFT-300M标签的半监督学习在ImageNet和JFT-300M上训练的大型EfficientNet。目前,Noisy Student是ImageNet上的最先进技术,而其他数据集上是BiT-L。所有模型都是在TPUv3硬件上进行训练的,我们报告了用于预训练每个模型所需的TPUv3核心天数,即用于训练的TPU v3核心数(每个芯片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模型在大多数数据集上表现良好,同时需要较少的计算资源进行预训练:可以在标准云TPUv3上使用8个核心在约30天内进行训练。
图2将VTAB任务分解为各自的组,并与此基准测试的先前SOTA方法进行比较:BiT、VIVI - 在ImageNet和Youtube上共同训练的ResNet(Tschannen等人,2020)以及S4L - 在ImageNet上进行监督和半监督学习(Zhai等人,2019a)。ViT-H/14在自然任务和结构任务上优于BiT-R152x4和其他方法。在专业任务上,前两名模型的性能相似。
4.3 预训练数据要求
当在大型JFT-300M数据集上进行预训练时,Vision Transformer表现出色。与ResNets相比,Vision Transformer对视觉的归纳偏差较少,那么数据集大小有多重要呢?我们进行了两系列实验。
首先,我们在数据集大小逐渐增加的数据集上对ViT模型进行预训练:ImageNet、ImageNet-21k和JFT-300M。为了提高在较小数据集上的性能,我们优化了三个基本的正则化参数 - 权重衰减、丢失和标签平滑。图3显示了在对ImageNet进行微调后的结果(其他数据集的结果见表5)。当在最小的数据集ImageNet上进行预训练时,尽管进行了(适度的)正则化,ViT-Large模型的性能低于ViT-Base模型。通过ImageNet-21k预训练,它们的性能相似。只有在JFT-300M上,我们才能看到更大模型的全部好处。图3还显示了不同大小的BiT模型所覆盖的性能区域。BiT CNN在ImageNet上表现优越,但在更大的数据集上,ViT领先。
其次,我们对JFT-300M的9M、30M、90M以及完整数据集的随机子集进行模型训练。对于较小的子集,我们不进行额外的正则化,并使用相同的超参数设置。但我们使用提前停止,并报告了训练期间获得的最佳验证准确性。为了节省计算资源,我们报告了线性few-shot准确性,而不是完整的微调准确性。
图4包含了结果。在ImageNet的few-shot结果(图4)以及VTAB的低数据结果(表2)都显示出在非常低数据迁移方面ViT的前景。进一步分析ViT的few-shot特性是未来工作的一个令人兴奋的方向。
4.4 规模研究
我们进行了一项受控的规模研究,通过评估从JFT-300M迁移的不同模型的性能来进行。在这种情况下,数据大小不会限制模型的性能,我们评估了每个模型的性能与预训练成本之间的关系。模型集包括:7个ResNets,R50x1、R50x2、R101x1、R152x1、R152x2,经过7个时期的预训练,以及R152x2和R200x3,经过14个时期的预训练;6个Vision Transformers,ViT-B/32、B/16、L/32、L/16,经过7个时期的预训练,以及L/16和H/14,经过14个时期的预训练;以及5个混合模型,R50+ViT-B/32、B/16、L/32、L/16,经过7个时期的预训练,以及R50+ViT-L/16,经过14个时期的预训练(对于混合模型,模型名称末尾的数字不代表补丁大小,而是ResNet骨干中的总下采样比例)。
图5显示了性能与总预训练计算的关系(有关计算成本的详细信息,请参见附录D.5)。附录中提供了每个模型的详细结果。 可以观察到一些模式。首先,Vision Transformers在性能/计算权衡方面占优势。ViT使用的计算资源约为2到4倍,以达到相同的性能(在5个数据集上的平均值)。其次,在小型计算预算下,混合模型在性能上略优于ViT,但对于较大的模型,差异会消失。这个结果有点令人惊讶,因为人们可能期望卷积局部特征处理在任何大小的ViT上都有所帮助。第三,Vision Transformers似乎在尝试的范围内没有达到饱和,这激发了未来的规模化努力的动力。
4.5 Inspecting vision transformer
为了开始理解Vision Transformer处理图像数据的方式,我们分析了它的内部表示。Vision Transformer的第一层将扁平化的图像块线性投影到一个低维空间中(Eq. 1)。图7(左侧)显示了学习到的嵌入滤波器的前几个主要成分。这些成分类似于对每个图像块内的细微结构进行低维表示的合理基函数。
在投影之后,模型会添加一个学习到的位置嵌入到图像块的表示中。图7(中间)显示模型学会了在位置嵌入的相似性中编码图像内的距离,即较近的图像块倾向于具有更相似的位置嵌入。此外,行列结构也出现在其中;位于同一行/列的图像块具有相似的嵌入。最后,对于较大的网格,有时可以看到正弦结构(附录D中有更多信息)。位置嵌入学会表示2D图像拓扑结构的事实解释了为什么手工制作的2D感知嵌入变体不会带来改进(附录D.4)。
自注意力使ViT能够在最底层甚至整合整个图像的信息。我们研究了网络在多大程度上利用了这一能力。具体来说,我们根据注意力权重计算信息在图像空间中整合的平均距离(图7,右侧)。这种“注意距离”类似于CNN中的感受野大小。我们发现在最底层,一些注意头已经在大部分图像上进行了注意力整合,这表明模型确实利用了整合信息的能力。其他注意头在低层次中的关注距离始终很小。这种高度局部化的注意力在在Transformer之前应用了ResNet的混合模型中不太明显(图7,右侧),这表明它可能具有类似于CNN中的早期卷积层的功能。此外,随着网络深度的增加,注意距离也增加。总的来说,我们发现模型会关注与分类相关的图像区域(图6)。
4.6 自监督
Transformer在NLP任务上表现出色。然而,它们的成功很大程度上不仅来自于其出色的可扩展性,还来自于大规模的自监督预训练(Devlin et al., 2019; Radford et al., 2018)。我们也进行了关于自监督的初步探索,使用遮挡图像块预测的方法,模仿了BERT中使用的遮挡语言建模任务。通过自监督预训练,我们较小的ViT-B/16模型在ImageNet上达到了79.9%的准确率,相比从头开始训练提高了2%,但仍然比监督预训练低4%。附录B.1.2包含了更多细节。我们将对对比性预训练方法(Chen et al., 2020b; He et al., 2020; Bachman et al., 2019; H´enaff et al., 2020)的探索留给未来的工作。
5.总结
我们已经探索了将Transformer直接应用于图像识别的方法。与以前的使用自注意力的计算机视觉工作不同,我们除了初始的图像块提取步骤外,没有引入图像特定的归纳偏差到架构中。相反,我们将图像解释为一系列图像块,并通过标准的Transformer编码器(与
NLP中使用的相同)对其进行处理。这种简单但可扩展的策略在与大型数据集的预训练相结合时效果出奇的好。
因此,Vision Transformer在许多图像分类数据集上达到或超越了现有技术的水平,同时相对较低的预训练成本。
虽然这些初步结果令人鼓舞,但仍然存在许多挑战。其中之一是将ViT应用于其他计算机视觉任务,如目标检测和分割。我们的结果与Carion等人(2020)的结果一起表明了这种方法的前景。另一个挑战是继续探索自监督预训练方法。我们的初步实验显示,自监督预训练可以提高性能,但自监督和大规模监督预训练之间仍然存在很大差距。最后,进一步扩展ViT可能会导致更好的性能。
这篇论文的翻译至此结束。如果您有任何其他问题或需要进一步的翻译,请随时告诉我。