【读点论文】AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE(ViT)像处理自然语言那样处理图片

  • 虽然Transformer体系结构已经成为自然语言处理任务一种极具代表性的工作成果,但它在计算机视觉中的应用仍然有限。在视觉中, 注意力要么与卷积网络结合使用,要么用于替换卷积网络的某些组件,同时保持其整体结构不变。
  • 本文认为,这种对CNN的 依赖是不必要的, 直接应用于图像块序列的纯transformer可以在图像分类任务中表现得非常好
  • 对大量数据进行预训练并传输到多个中型或小型图像识别基准(ImageNet、CIFAR-100、VTAB等),Vision Transformer (ViT)与最先进的卷积网络相比取得了出色的结果,而训练所需的计算资源却少得多。
  • CV界也有很多文章将transformer迁移到CV领域,这些文章总的来说可以分为两个大类:
  • 将self-attention机制与常见的CNN架构 结合
  • 用self-attention机制完全 替代CNN。
  • 本文的工作亮点在于尽可能地将NLP领域的transformer 不作修改地搬到CV领域来。但是NLP处理的语言数据是序列化的,而CV中处理的图像数据是三维的(长、宽和channels)。
  • 所以需要一个方式 将图像这种三维数据转化为序列化的数据。在本文的数据处理中图像被切割成一个个patch,这些patch按照一定的顺序排列,就成了序列化的数据。
  • 在实验中观察得, 在中等规模的数据集上(例如ImageNet),transformer模型的表现不如ResNets;而当数据集的规模扩大,transformer模型的效果接近或者超过了目前的一些SOTA结果。作者认为是大规模的训练可以鼓励transformer学到CNN结构所拥有的translation equivariance 和locality.

  • CNN具有两种归纳偏置,一种是局部性(locality/two-dimensional neighborhood structure),即图片上相邻的区域具有相似的特征;一种是平移不变形(translation equivariance),f(g(x))=g(f(x)) ,其中g代表卷积操作,f代表平移操作。当CNN具有以上两种归纳偏置,就有了很多先验信息,需要相对少的数据就可以学习一个比较好的模型

  • ViT是2020年Google团队提出的将Transformer应用在图像分类的模型,虽然不是第一篇将transformer应用在视觉任务的论文,但是因为 其模型”简单”且效果好,可扩展性强(scalable,模型越大效果越好),成为了transformer在CV领域应用的里程碑著作,也引爆了后续相关研究。
  • ViT原论文中最核心的结论是,当拥有足够多的数据进行预训练的时候,ViT的表现就会超过CNN,突破transformer缺少归纳偏置的限制,可以在下游任务中获得较好的迁移效果。
  • 论文:https://arxiv.org/abs/2010.11929v2
  • 跟着bryanyzhu学习:https://www.bilibili.com/video/BV15P4y137jb

  • 基于自注意的架构,尤其是Transformers,已经成为自然语言处理(NLP)中的首选模型。主导方法是 在大型文本语料库上进行预训练,然后在较小的特定任务数据集上进行微调。由于Transformers的计算效率和可扩展性,训练规模空前、参数超过100B的模型成为可能。随着模型和数据集的增长, 性能仍然没有饱和的迹象

  • 然而,在计算机视觉中,卷积架构仍然占主导地位。受NLP成功的启发,还有一些工作是尝试将类似CNN的架构与自注意力相结合,一些完全取代了卷积操作。后一种模型虽然在理论上是有效的, 但由于使用了专门的注意模式,还没有在现代硬件加速器上有效地扩展。因此,在大规模图像识别中,经典的ResNet-like架构仍然是state of the art。
  • 受NLP中Transformer scaling 成功的启发,本文尝试将标准Transformer直接应用于图像,尽可能减少修改。为此, 将图像分割成小块,并提供这些小块的线性嵌入序列作为transformer的输入。在NLP应用程序中,图像补片的处理方式与标记(单词)相同。 以监督的方式训练图像分类模型
  • 当在没有强正则化的中型数据集(如ImageNet)上训练时,这些模型产生的适度精度比可比大小的ResNets低几个百分点。这种看似效果不佳的结果可能是意料之中的: 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%。

  • transformer是由Vaswani等人(2017)提出用于机器翻译的,此后成为许多自然语言处理任务中最先进的方法。基于大型transformer的模型通常在大型语料库上进行预训练, 然后针对手头的任务进行微调:BERT (Devlin等人,2019年)使用去噪自我监督预训练任务,而GPT工作线使用语言建模作为其预训练任务(Radford等人,2018年;2019;布朗等人,2020年)。

  • 将自注意力机制直接地应用到图像上 会要求每个像素都注意其他像素。由于像素数量的quadratic cost,这不能缩放到实际的输入尺寸。因此,为了在图像处理的环境中应用transformer,过去已经尝试了几种近似法。
  • Parmar等人(2018)仅 对每个查询像素的局部邻域应用自注意力机制,而不是全局应用。这样的局部多头点积自注意力模块可以完全替代卷积。
  • Sparse Transformers (Child等人,2019年)采用 可扩展的全局自我注意近似,以便适用于图像
  • 衡量注意力的另一种方法是在不同大小的块中应用注意力(Weissenborn等人,2019),在极端情况下,仅沿单个轴应用注意力。
  • 许多这些专门的注意力结构在计算机视觉任务上展示了有希望的结果,但是需要复杂的工程来在硬件加速器上有效地实现。
  • 与本文最相关的是Cordonnier等人(2020)的模型,该模型 从输入图像中提取大小为2 × 2的小块,并在其上应用完全的自注意力机制。这个模型非常类似于ViT,但本文的工作进一步证明了大规模的预训练使普通transformer与最先进的CNN竞争(甚至更好)。此外,Cordonnier等人(2020)使用2 ×2像素的小块尺寸,这 使得该模型仅适用于小分辨率图像,而本文还可以处理中等分辨率图像
  • 人们对 将卷积神经网络(CNN)与各种形式的自注意力机制相结合也很感兴趣,例如,通过增强用于图像分类的特征图,或 通过使用自注意力机制进一步处理CNN的输出,例如用于对象检测、视频处理、图像分类、无监督对象发现、或统一文本-视觉任务。
  • 另一个最近的相关模型是图像GPT (iGPT),其在降低图像分辨率和色彩空间之后将transformer应用于图像像素。 该模型以无监督的方式作为生成模型进行训练,然后可以对产生的表示进行微调或线性探测分类性能,在ImageNet上实现72%的最大准确度。
  • 本文的工作 增加了在比标准ImageNet数据集更大的规模上探索图像识别的数据集。额外数据源的使用允许在标准基准上实现最先进的结果。此外,孙等人(2017)研究了CNN的性能如何与数据集规模成比例;Djolonga等人(2020)对来自大规模数据集(如ImageNet-21k和JFT-300M)的CNN迁移学习进行了实证研究。本文也关注后两个数据集,但是训练transformer而不是先前工作中使用的基于ResNet的模型。

  • 在模型设计中,本文尽可能遵循原始transformer。这种有意简化的设置的一个优点是,可扩展的NLP transformer架构及其高效实现几乎可以直接使用。

  • ViT将输入图片分为多个patch(16×16),再将每个patch投影为固定长度的向量送入Transformer,后续encoder的操作和原始Transformer中完全相同。但是因为对图片分类,因此在输入序列中加入一个特殊的token,该token对应的输出即为最后的类别预测
  • 视觉transformer(VIT)
  • 该模型的概述如下图所示。标准变换器接收token embeddings的一维序列作为输入。为了处理2D图像,本文将图像x ∈ R H × W × C x ∈ R^{H×W×C}x ∈R H ×W ×C整形为一系列平坦的2D patch x p ∈ R N × ( P 2 ⋅ C ) x_p∈R^{N×(P^2·C)}x p ​∈R N ×(P 2 ⋅C ),其中(H,W)是原始图像的分辨率,C是通道数, (P,P)是每个图像patch的分辨率,N = H W / P 2 N=HW/P^2 N =H W /P 2是得到的patch数,它也用作transformer的有效输入序列长度。transformer通过其所有层使用恒定的潜在向量大小D,因此本文 使用可训练的线性投影(等式)来展平patch并映射到D维。本文将这种投影的输出称为patch embeddings。
    • Model overview.本文将图像分割成固定大小的小块,线性嵌入每个小块,添加位置嵌入, 并将得到的向量序列送到标准的Transformer编码器。为了执行分类,本文使用标准的方法, 向序列添加一个额外的可学习的”分类标记”
  • 类似于BERT的[class]token,本文将可学习的嵌入预先计划到嵌入的patch序列(z 0 0 = x c l a s s z_0^0=x_{class}z 0 0 ​=x c l a s s ​),其在transformer编码器(z L 0 z^0_L z L 0 ​)的输出处的状态用作图像表示y.在预训练和微调期间,z L 0 z^0_L z L 0 ​上都安装了一个分类头。分类头在预训练时由具有一个隐藏层的MLP实现,在微调时由单个线性层实现。
  • 位置嵌入被添加到patch嵌入中以保留位置信息。本文使用标准的可学习一维位置嵌入,因为本文没有观察到使用更高级的2D感知位置嵌入的显著性能增益。嵌入向量的结果序列用作编码器的输入。
  • transformer编码器由多头注意力机制和MLP块.Layernorm (LN)应用于每个块之前,残差连接应用于每个块之后。
  • MLP包含具有GELU非线性的两层:

    • KaTeX parse error: Undefined control sequence: \ at position 99: …{(N+1)*D}}(1)\\̲ ̲z^`l=MSA(LN(z
  • 一个ViT block可以分为以下几个步骤

    • patch embedding:例如输入图片大小为224×224,将图片分为固定大小的patch,patch大小为16×16,则每张图像会生成224×224/16×16=196个patch,即输入序列长度为 196,每个patch维度16x16x3= 768,线性投射层的维度为768xD (D=768),因此输入通过线性投射层之后的维度依然为196×768,即一共有196个token,每个token的维度是768。这里 还需要加上一个特殊字符cls,因此最终的维度是 197×768。到目前为止,已经通过patch embedding将一个视觉问题转化为了一个seq2seq问题.

    • positional encoding(standard learnable 1D position embeddings):ViT同样需要加入位置编码,位置编码可以理解为一张表,表一共有N行,N的大小和输入序列长度相同,每一行代表一个向量,向量的维度和输入序列embedding的维度相同(768)。注意位置编码的操作是sum,而不是concat。加入位置编码信息之后,维度依然是 197×768.

    • LN/multi-head attention/LN:LN输出维度依然是197×768。多头自注意力时,先将输入映射到q,k,v,如果只有一个头,qkv的维度都是197×768,如果有12个头(768/12=64),则qkv的维度是197×64,一共有12组qkv,最后再将12组qkv的输出拼接起来,输出维度是197×768,然后在过一层LN,维度依然是 197×768

    • MLP:将维度放大再缩小回去,197×768放大为197×3072,再缩小变为 197×768
    • 一个block之后维度依然和输入相同,都是197×768,因此可以堆叠多个block。最后会将特殊字符cls对应的输出 z l 0 z_l^0 z l 0 ​ 作为encoder的最终输出 ,代表最终的image presentation(另一种做法是不加cls字符,对所有的tokens的输出做一个平均),如上公式(4),后面接一个MLP进行图片分类。
    • LayerNorm
    • Norm最开始被提出的时候,是用来 解决ICS(Internal Covariate Shift)问题的,而后人的研究发现,Norm起作用的本质是它平滑了Loss,保持了梯度下降过程中的稳定。
    • 若模型输入层数据分布发生变化,则模型在这波变化数据上的表现将有所波动,输入层分布的变化称为Covariate Shift,解决它的办法就是常说的Domain Adaptation。同理,在深度学习中,第L+1层的输入,也可能随着第L层参数的变动,而引起分布的变动。 这样每一层在训练时,都要去适应这样的分布变化,使得训练变得困难。这种层间输入分布变动的情况,就是Internal Covariate Shift
    • ICS所带来的问题
      • 在过激活层的时候,容易陷入激活层的梯度饱和区,降低模型收敛速度
      • 需要采用更低的学习率,这样同样也降低了模型收敛速度
    • 由于 ICS 问题的存在,x 的分布可能相差很大。要解决独立同分布的问题,”理论正确” 的方法就是 对每一层的数据都进行白化操作。然而标准的白化操作代价高昂,且不可微不利于反向传播更新梯度。因此,以 BN 为代表的 Normalization 方法退而求其次,进行了简化的白化操作。Batch Normalization(以下简称BN)的方法最早由offe&Szegedy在2015年提出,主要用于解决在深度学习中产生的ICS(Internal Covariate Shift)的问题。
    • 白化(Whitening)是机器学习里面常用的一种规范化数据分布的方法,主要是PCA白化与ZCA白化。白化是对输入数据分布进行变换,进而达到以下两个目的:
      • 使得输入特征分布具有相同的均值与方差。其中PCA白化保证了所有特征分布均值为0,方差为1;而ZCA白化则保证了所有特征分布均值为0,方差相同。
      • 去除特征之间的相关性。
    • 基本思想是:在将 x 送给神经元之前, 先对其做平移和伸缩变换, 将 x 的分布规范化成在固定区间范围的标准分布
      • h = f ( g ⋅ x − μ δ + b ) , 最 终 得 到 的 数 据 符 合 均 值 为 b 、 方 差 为 g 平 方 的 分 布 。 h=f(g·\frac{x-μ}{\delta}+b),最终得到的数据符合均值为 b、方差为g平方的分布。h =f (g ⋅δx −μ​+b ),最终得到的数据符合均值为b 、方差为g 平方的分布。
      • 第一步的规范化会将 几乎所有数据映射到激活函数的非饱和区(线性区),仅利用到了线性变化能力,从而降低了神经网络的表达能力。而进行再变换,则可以将数据从线性区变换到非线性区,恢复模型的表达能力。
    • BN在batch维度的归一化,也就是对于每个batch,该层相应的output位置归一化所使用的mean和variance都是一样的。BN的学习参数包含rescale和shift两个参数。
      • 1、BN在单独的层级之间使用比较方便,比如CNN。得像RNN这样层数不定,直接用BN不太方便,需要对每一层(每个time step)做BN,并保留每一层的mean和variance。不过由于RNN输入不定长(time step长度不定),可能会有validation或test的time step比train set里面的任何数据都长,因此会造成mean和variance不存在的情况。
      • 2、BN会引入噪声(因为是mini batch而不是整个training set),所以对于噪声敏感的方法(如RL)不太适用。
    • BN的优势总结
      • 通过解决ICS的问题, 使得每一层神经网络的输入分布稳定,在这个基础上可以使用较大的学习率,加速了模型的训练速度
      • 起到一定的正则作用,进而减少了dropout的使用。当我们通过BN规整数据的分布以后,就 可以尽量避免一些极端值造成的overfitting的问题
      • 使得数据不落入饱和性激活函数(如sigmoid,tanh等)饱和区间,避免梯度消失的问题
    • LayerNorm实际就是对隐含层做层归一化,即对某一层的所有神经元的输入进行归一化。(每hidden_size个数求平均/方差)
    • 整体做法类似于BN,不同的是LN不是在特征间进行标准化操作(横向操作),而是在整条数据间进行标准化操作(纵向操作)。
      • LN使得各条数据间在进行标准化的时候相互独立,因此LN在训练和测试过程中是一致的。LN不需要保留训练过程中的 μ , σ 2 \mu,\sigma^2 μ,σ2 ,每当来一条数据时,对这条数据的指定范围内单独计算所需统计量即可。
      • l a y e r N o r m ( x ) = α ⊙ x − μ σ 2 + ε + β 其 中 层 计 算 均 值 : μ l = 1 H ∑ i = 1 H x i l , 其 中 x l = w i l h l 方 差 : σ l = 1 H ∑ i = 1 H ( x i l − μ l ) 2 layerNorm(x)=α\odot\frac{x-μ}{\sqrt{\sigma^2+\varepsilon}}+\beta\ 其中层计算均值:μ^l=\frac{1}{H}\sum_{i=1}^Hx_i^l,其中x^l=w_i^lh^l\ 方差:\sigma^l=\sqrt{\frac{1}{H}\sum_{i=1}^H(x_i^l-μ^l)^2}l a y e r N o r m (x )=α⊙σ2 +ε​x −μ​+β其中层计算均值:μl =H 1 ​i =1 ∑H ​x i l ​,其中x l =w i l ​h l 方差:σl =H 1 ​i =1 ∑H ​(x i l ​−μl )2 ​
    • Inductive bias.
  • 本文注意到, 视觉transformer比CNN具有更少的图像特定感应偏差。在细胞卷积神经网络中,局部性、二维邻域结构和平移等价性贯穿于整个模型的每一层。在ViT中, 只有MLP层是局部的,而且translation equivariance ,而自注意力层是全局的。二维邻域结构的使用非常少:在模型开始时将图像切割成小块, 在微调时调整不同分辨率图像的位置嵌入。除此之外, 初始化时的位置嵌入不携带关于patch的2D位置的信息,并且patch之间的所有空间关系必须从零开始学习
  • Hybrid Architecture.

  • 作为原始图像补片的替代,输入序列可以由CNN的特征图形成。在这个混合模型中,patch嵌入投影E应用于从CNN特征图提取的patch。作为一种特殊情况, patch可以具有1×1的空间大小,这意味着输入序列是通过简单地展平特征图的空间维度并投影到transformer维度而获得的。如上所述添加cls输入嵌入(对标NLP数据输入)和位置嵌入。

  • FINE-TUNING AND HIGHER RESOLUTION
  • 通常,在大型数据集上预先训练ViT,并针对(较小的)下游任务进行微调。为此,本文去掉预训练的预测头,附加一个零初始化的D × K前馈层,其中K是下游类的个数。
  • 比预训练更高的分辨率下进行微调通常是有益的。当输入更高分辨率的图像时,本文保持patch大小不变,这导致更大的有效序列长度。视觉transformer可以处理任意的序列长度(直到存储器限制), 但是,预先训练的位置嵌入可能不再有意义。因此, 根据它们在原始图像中的位置,对预训练的位置嵌入执行2D插值。注意,这种 分辨率调整和碎片提取是关于图像的2D结构的感应偏差被手动注入视觉transformer的关键点
  • 本文评估了ResNet、视觉transformer(ViT)和混合模型的表征学习能力。为了解每个模型的数据需求,本文在不同大小的数据集上进行预训练,并评估许多基准测试任务。 当考虑预训练模型的计算成本时,ViT表现非常好,以较低的预训练成本在大多数识别基准上达到了最先进的水平。最后,本文进行了一个使用自我监督的小实验,并表明自我监督的ViT具有未来的希望。
  • SETUP
  • Datasets.

    • 为了探索模型的可扩展性,本文使用了具有1千个类和130万图像的ILSVRC-2012 ImageNet数据集,其具有21000类和1400万图像的超集ImageNet-21k,以及具有18000类和3.03亿高分辨率图像的。
    • 本文根据科列斯尼科夫等人(2020)的下游任务测试集, 对预训练数据集进行重复删除。本文将这些数据集上训练的模型转移到几个基准任务:原始验证标签和清理后的真实标签上的ImageNet,CIFAR-10/100,Oxford-IIIT Pets ,以及Oxford Flowers-102 。对于这些数据集,预处理遵循科列斯尼科夫等人(2020,Big transfer (BiT): General visual representation learning)。
    • 本文还对19任务VTAB分类套件进行了评估。VTAB评估不同任务的低数据传输,每个任务使用1000个训练示例。任务分为三组:自然任务,如上述任务,宠物,CIFAR等。专业化的任务——医疗和卫星图像,以及结构化的任务——需要像定位这样的几何理解。
    • Model Variants.

    • 本文基于BERT 所用的ViT配置,如下表所示。”基本”和”大”模型直接采用了BERT的模型,本文添加更大的”巨大”模型。

    • Vision Transformer型号变体的详细信息。
    • 在下文中,本文使用简单的符号来表示模型大小和输入patch大小:例如,ViT-L/16表示具有16 × 16输入面片大小的”大”变体。请注意,transformer的序列长度与patch大小的平方成反比,因此patch大小越小的模型计算成本越高。
    • 对于基于卷积神经网络的模型,本文使用ResNet,但用Group Normalization(Wu & He,2018年)替换批归一化层(Ioffe和Szegedy,2015年), 并使用标准化卷积。这些修改改善了transfer,本文将修改后的模型称为”ResNet (BiT)”。
    • 对于混合图,本文将中间特征图以一个”像素”的块大小送入ViT。为了试验不同的序列长度,本文
    • (1)或者获取常规ResNet50的阶段4的输出
    • (2)或者移除阶段4,在阶段3中放置相同数量的层(保持总层数),并获取该扩展阶段3的输出。
    • 对于选项(2)导致4倍的序列长度,以及更昂贵的ViT型号。
    • Training & Fine-tuning.

    • 本文使用Adam训练所有模型,包括resnet,其中β1 = 0.9,β2 = 0.999,批量大小为4096,并应用0.1的高权重衰减,本文发现这对于所有模型的迁移都是有用的(与常见做法相比,在本文的设置中,Adam对于resnet的效果略好于SGD)。

    • 本文使用 线性学习率预热和衰减。对于微调,本文使用具有动量的SGD,批量为512。对于下表中的ImageNet结果,本文以更高的分辨率进行了微调:ViT-L/16为512,ViT-H/14为518,并且还使用了系数为0.9999的平均值。
    • Metrics.

    • 本文通过 few-shot or fine-tuning 精度来调整下游数据集的结果。微调精确度在对相应数据集进行微调后,捕捉每个模型的性能。通过求解将训练图像子集的(冻结)表示映射到{ − 1 , 1 } K {-1,1}^K {−1 ,1 }K个目标向量的正则化最小二乘回归问题,获得了Few-shot精度。

    • 这个公式允许恢复封闭形式的精确解。虽然本文主要关注微调性能,但有时本文会使用线性少量采样精度进行快速即时评估,因为微调成本太高。
    • COMPARISON TO STATE OF THE ART
    • 首先将本文最大的模型型号ViT-H/14和ViT-L/16与目前其它工作文献中最先进的CNN进行比较。第一个比较点是Big Transfer(BiT),它用大ResNets执行监督迁移学习。第二个是Noisy Student,这是一个大规模的EfficientNet,使用ImageNet和JFT300M上的半监督学习进行训练,去除了标签。
    • 目前,”Noisy Student”在ImageNet上是最先进的,BiT-L 在这里提及的其他数据集上是最好的。所有模型都在TPUv3硬件上进行了训练,本文报告了对每个模型进行预训练所需的TPUv3内核天数,即用于训练的TPU v3内核数(每个芯片2个)乘以训练天数。
    • 下表显示了结果。在JFT-300M上预训练的较小的ViT-L/16模型在所有任务上都优于BiT-L(在同一数据集上预训练),同时需要少得多的计算资源来训练。更大的模型ViT-H/14进一步提高了性能,尤其是在更具挑战性的数据集上ImageNet、CIFAR-100和VTAB suite。
    • Comparison with state of the art on popular image classification benchmarks.

    • 本文报告三次微调运行的平均值和标准偏差。在JFT-300M数据集上预训练的Vision Transformer模型在所有数据集上都优于基于ResNet的基线,而预训练所需的计算资源却少得多。在较小的公共ImageNet-21k数据集上预训练的ViT也表现良好。表中的*号表示Touvron等人(2020年)报告的结果略有改善,为88.5%。

    • 有趣的是,与现有技术相比, 该模型进行预训练所需的计算量仍然少得多。然而,本文注意到, 预训练效率不仅会受到架构选择的影响,还会受到其他参数的影响,如训练计划、优化器、权重衰减等。本文提供了不同架构的性能与计算的对照研究。最后,在公共ImageNet-21k数据集上预训练的ViT-L/16模型在大多数数据集上也表现良好,同时预训练所需的资源更少:它可以使用具有8个核心的标准云TPUv3在大约30天内进行训练。
    • 下图将VTAB任务分解到各自的组中,并在此基准上与以前的SOTA方法进行比较:BiT、是一个在ImageNet和Youtube上共同训练的ResNet,以及是ImageNet上的监督加半监督学习。在自然和结构化任务上,ViT-H/14优于BiT-R152x4和其他方法。在专业化任务上,前两种模式的表现是相似的。
    • VTAB在自然、专业和结构化任务组中的表现细分。
    • PRE-TRAINING DATA REQUIREMENTS
    • 视觉transformer在大型JFT-300M数据集上进行预训练时表现良好。与ResNets相比,视觉的归纳偏差更少,数据集的大小有多重要?本文进行了两个系列的实验。
    • 首先,本文在不断增加的数据集上预训练ViT模型:ImageNet、ImageNet-21k和JFT300M。为了提高较小数据集的性能,本文优化了三个基本的正则化参数——权重衰减、损失函数和label smoothing。
    • 下图显示了微调到ImageNet后的结果(其他数据集的结果如下表所示)。当在最小的数据集ImageNet上进行预训练时, 尽管进行了(适度的)正则化,但ViT-Large模型的表现不如ViT-Base模型。用ImageNet-21k预训练,他们的表现差不多。只有使用JFT-300M,才能看到大型机型的全部优势。下图还显示了不同尺寸的位模型所跨越的性能区域。在ImageNet上,比特CNN优于ViT,但是在更大的数据集上,ViT超过了它。
    • Transfer to ImageNet. 虽然在小数据集上进行预训练时,大型ViT模型的性能比BiT ResNets(阴影区域)差,但在大型数据集上进行预训练时,它们会大放异彩。同样,随着数据集的增长,较大的ViT变体会超过较小的。
    • 在ImageNet、ImageNet-21k或JFT300M上进行预训练时,Vision Transformer在各种数据集上的最高准确率(百分比)。这些值对应于正文中的上图。模型微调为384分辨率。请注意,ImageNet结果是在没有使用额外技术(Polyak平均和512分辨率图像)的情况下计算的。
    • Polyak平均
    • 会平均优化算法在参数空间访问轨迹中的几个点。
    • 如果t次迭代梯度下降访问了点θ ( 1 ) , … , θ ( t ) ,那么Polyak平均算法的输出是$\hat{\boldsymbol{\theta}}^{(t)}=\frac{1}{t} \sum_{i} \boldsymbol{\theta}^{(i)} $,在某些问题中,如梯度下降应用于凸问题时,这种方法具有较强的收敛保证。
    • 当应用Polyak平均于非凸问题时,通常会使用指数衰减计算平均值:θ ( t ) ^ = α θ ( t − 1 ) ^ + ( 1 − α ) θ ( t ) \hat{\theta^{(t)}}=α\hat{θ^{(t−1)}}+(1−α)θ^{(t)}θ(t )^=αθ(t −1 )^+(1 −α)θ(t )。
    • 其次,本文在900万、3000万和9000万的随机子集以及完整的JFT300M数据集上训练本文的模型。在这里不对较小的子集执行额外的正则化,并对所有设置使用相同的超参数。
    • 这样,评估固有的模型属性,而不是正则化的效果。然而,在这里确实使用了early-stopping,并报告了在训练期间达到的最佳验证准确性。为了节省计算,本文报告少量线性精度,而不是完全微调精度。
    • 下图包含了结果。在较小的数据集上,Vision Transformers比ResNets具有更高的计算成本。比如ViT-B/32比ResNet50略快;它在900万子集上表现差得多,但在9000万+子集上表现更好。ResNet152x2和ViT-L/16也是如此。这个结果进一步验证了这样一种猜想,即卷积归纳偏差对于较小的数据集是有用的,但是对于较大的数据集, 直接从数据中学习相关的模式是足够的,甚至是更好的
    • Linear few-shot evaluation on ImageNet versus pre-training size. 。ResNets在较小的预训练数据集下表现更好,但比ViT更快达到稳定,ViT在较大的预训练数据集下表现更好。ViT-b是所有隐藏尺寸减半的ViT-B。
    • 总体而言,ImageNet上的few-shot结果(上图)以及VTAB上的低数据结果(上表Comparison with state of the art on popular image classification benchmarks.)似乎有望实现极低数据传输。进一步分析ViT的few-shot特性是未来工作的一个令人兴奋的方向。
    • SCALING STUDY
    • 本文通过评估JFT-300M的迁移学习性能,对不同的模型进行了控制缩放研究。在这种情况下,数据大小不会成为模型性能的瓶颈,本文会 根据每个模型的预训练成本来评估性能。模型集包括:7个ResNets,R50x1,R50x2 R101x1,R152x1,R152x2,预训练7个epochs,加上R152x2,R200x3预训练14个epochs;6个Vision Transformers,,ViT-B/32,B/16,L/32,L/16,预训练7个epochs,加上L/16和H/14预训练14个epochs;和5个hybrids,R50+ViT-B/32、B/16、L/32、L/16预训练7个epochs,加上R50+ViT-L/16预训练14个epochs(对于混合,模型名称末尾的数字代表的不是补丁大小,而是ResNet主干中的总dowsampling比率)。
    • 下图包含迁移性能与总预训练计算的对比。下表提供了每个型号的详细结果。可以观察到一些模式。
    • Detailed results of model scaling experiments.这些对应于主要论文中的下图。本文在上述几个数据集上展示了迁移准确性,以及预训练计算(以exaFLOPs为单位)。
    • 不同架构的性能与预训练计算对比:Vision Transformers、ResNets和hybrids。在计算预算相同的情况下,Vision Transformers 的性能通常优于ResNets。对于较小的型号,Hybrids transformer比纯transformer有所改进,但是对于较大的型号,这种差距就消失了。
    • 首先, Vision Transformers在性能/计算权衡方面占据主导地位。ViT使用大约24倍的计算量来获得相同的性能(5个数据集的平均值)。第二,在小的计算预算下,Hybrids比ViT略胜一筹,但是 对于较大的模型,这种差异就消失了。这个结果有点令人惊讶,因为人们可能期望卷积局部特征处理在任何尺寸下都有助于ViT。第三,Vision Transformers 似乎 没有在尝试的范围内饱和,激励了未来的扩展努力。
    • INSPECTING VISION TRANSFORMER
    • 为了开始理解Vision Transformer 如何处理图像数据,本文分析了其内部表示。Vision Transformer的第一层将展平的patch线性投影到低维空间.下图(左)显示了学习嵌入滤波器的顶部主要组件。这些分量类似于每个小块内精细结构的低维表示的似是而非的基函数。
    • 左图:ViT-L/32的RGB值初始线性嵌入的滤镜。
    • 中图:ViT-L/32位置嵌入的相似性。平铺显示了具有所指示的行和列的补片的位置嵌入和所有其他补片的位置嵌入之间的余弦相似性。
    • 右图:按头部和网络深度划分的受关注区域的大小。每个点显示了一层中16个头部中的一个的平均注意力距离。
    • 在投影之后,学习的位置嵌入被添加到patch表示中。上图(中间)示出了 该模型学习在位置嵌入的相似性中对图像内的距离进行编码,即更近的片趋向于具有更相似的位置嵌入。进一步,出现行列结构;同一行/列中的小块具有相似的嵌入。
    • 最后,对于较大的网格,正弦结构有时很明显。 位置嵌入学习表示2D图像拓扑解释了为什么手工制作的2D感知嵌入变体不能产生改进
    • 自注意力机制允许ViT整合整个图像的信息,即使是在最底层。本文调查网络在多大程度上利用了这种能力。具体来说,本文根据注意力权重计算图像空间中整合信息的平均距离(上图,右)。
    • 这个”注意距离”类似于中枢神经系统中感受野的大小。本文发现一些头部已经注意到最底层的大部分图像,这表明模型确实使用了全局整合信息的能力。其他注意头在低层的注意距离一直很小。
    • 这种高度局部化的注意力在transformer之前应用ResNet的混合模型中不太明显(上图右),这表明它可能与CNN中的早期卷积层具有类似功能。此外, 注意距离随着网络深度而增加。总的来说,发现该模型关注与分类语义相关的图像区域(下图)。
    • 注意从输出记号到输入空间的代表性例子。
    • SELF-SUPERVISION
    • transformer在NLP任务中表现出色。然而,他们的成功 不仅源于其出色的可扩展性,还源于大规模的自我监督预训练。本文还模拟BERT中使用的masked语言建模任务,对用于自我监督的masked patch prediction进行了初步探索。
    • 通过自我监督预训练,本文较小的ViT-B/16模型在ImageNet上实现了79.9%的准确率,比从头开始训练提高了2%,但仍比监督预训练低4%。对比预训练的探索对未来工作的影响
  • 本文已经探索了transformer在图像识别中的直接应用。与先前在计算机视觉中使用自我注意的工作不同,除了最初的小块提取步骤之外,本文没有将特定于图像的归纳偏差引入到架构中。相反,将图像解释为一系列的patch,并通过NLP中使用的 标准Transformer编码器对其进行处理

  • 这种简单但可扩展的策略在与大型数据集上的预训练相结合时效果惊人。因此,Vision Transformer在许多图像分类数据集上匹配或超过了现有技术水平,同时预训练成本相对较低。
  • 虽然这些初步成果令人鼓舞,但仍然存在许多挑战。一种是将ViT应用于其他计算机视觉任务,如检测和分割。本文的结果,加上Carion等人(2020,End-to-end object detection with transformers)的结果,表明了这种方法的前景。
  • 另一个挑战是继续探索自监督的预训练方法。本文的初步实验表明自监督预训练有所改进,但自监督预训练与大规模监督预训练之间仍有很大差距。最后,ViT的进一步扩展可能会提高性能。

  • MULTIHEAD SELF-ATTENTION

  • 标准qkv自注意力机制(SA,Vaswani等人(2017)) 是神经架构的一个流行构建块。对于输入序列z ∈ R N × D z∈\Bbb R^{N×D}z ∈R N ×D中的每个元素,计算序列中所有值v的加权和。 注意力权重A i j A_{ij}A i j ​ 基于序列的两个元素之间的成对相似性以及它们各自的查询qi和关键kj表示
    • [ q , k , v ] = z U q k v , U q k v ∈ R D ∗ 3 D h ( 5 ) A = s o f t m a x ( q k T / D h ) , A ∈ R N ∗ N ( 6 ) S A ( z ) = A v ( 7 ) [q,k,v]=zU_{qkv},\space U_{qkv}\in\Bbb R^{D3D_h} \space (5)\ A=softmax(qk^T/\sqrt{D_h}),\space A\in\Bbb R^{NN} \space (6)\ SA(z)=Av (7)[q ,k ,v ]=z U q k v ​,U q k v ​∈R D ∗3 D h ​(5 )A =s o f t m a x (q k T /D h ​​),A ∈R N ∗N (6 )S A (z )=A v (7 )
  • Multihead self-attention (MSA)是SA的扩展,其中并行运行k个自注意力操作,称为”头”,并投影它们的级联输出。为了在改变k时保持计算和参数数量不变,Dh(等式5)通常设置为D/k。
    • M S A ( z ) = [ S A 1 ( z ) ; S A 2 ( z ) ; … … ; S A k ( z ) ] U m s a , U m s a ∈ R k ⋅ D h ∗ D ( 8 ) MSA(z)=[SA_1(z);SA_2(z);……;SA_k(z)]U_{msa} ,U_{msa}\in \Bbb R^{k·D_h*D} \space (8)M S A (z )=[S A 1 ​(z );S A 2 ​(z );……;S A k ​(z )]U m s a ​,U m s a ​∈R k ⋅D h ​∗D (8 )
  • EXPERIMENT DETAILS
  • 下表总结了本文不同模型的训练设置。 在ImageNet上从头开始训练模型时,强正则化是关键。当使用时,除了qkv投影之外,在每个密集层之后,以及在添加位置到patch嵌入之后,直接应用Dropou。混合模型的训练与ViT模型完全相同。最后,所有训练都是根据第224号决议进行的。
  • Hyperparameters for training.所有模型都以4096的批量和10k步的学习率warmup 进行训练。对于ImageNet,本文发现在全局一范数处 额外应用梯度裁剪是有益的。训练分辨率是224。
    • 梯度裁剪(Gradient Clipping)
    • 神经网络是 通过梯度下降来学习的。而梯度爆炸问题一般会随着网络层数的增加而变得越来越明显。如果发生梯度爆炸,那么就是学过了,会直接跳过最优解。所以需要梯度裁剪,避免模型越过最优点。
    • 常见的梯度裁剪有两种
    • 确定一个范围,如果参数的gradient超过了,直接裁剪
    • 根据若干个参数的gradient组成的的vector的L2 Norm进行裁剪,梯度作为一个多维Tensor,计算其L2范数,如果超过最大值则按比例进行裁剪,否则不裁剪。
      • y = { X if norm(X)≤clip_norm c l i p _ n o r m ∗ X n o r m ( X ) if norm(X)>clip_norm 其 中 n o r m ( X ) 代 表 X 的 L 2 范 数 : n o r m ( X ) = ∑ i = 1 n x i 2 y= \begin{cases} X &\text{if norm(X)≤clip_norm}\ \frac{clip_norm*X}{norm(X)} &\text{if norm(X)>clip_norm}\ \end{cases}\ 其中norm(X)代表X的L2范数:norm(X)=\sqrt{\sum_{i=1}^nx_i^2}y ={X n o r m (X )c l i p _n o r m ∗X ​​if norm(X)≤clip_norm if norm(X)>clip_norm ​其中n o r m (X )代表X 的L 2 范数:n o r m (X )=i =1 ∑n ​x i 2 ​​
  • FINE-TUNING
    • 本文使用动量为0.9的SGD微调所有ViT模型。对学习率 进行了小网格搜索,见下表中的学习率范围。为此,本文使用训练集中的小部分(10%用于宠物和花卉,2%用于CIFAR,1%用于ImageNet)作为开发集,并在剩余数据上进行训练。
    • 对于最终结果,本文在整个训练集上进行训练,并在各自的测试数据上进行评估。对于微调ResNets和混合模型,本文使用完全相同的设置,唯一的例外是ImageNet,在学习率扫描中添加了另一个值0.06。此外,对于ResNets,还运行科列斯尼科夫等人(2020)的设置,并选择本文实验运行过的最佳结果。
    • 最后,如果没有另外提到,所有微调实验都以384分辨率运行(以不同于训练的分辨率运行微调是常见的做法)。
    • 当将ViT模型转移到另一个数据集时,本文移除整个头部(两个线性层)并用一个零初始化的线性层代替,输出目标数据集所需的类数。本文发现这比简单地重新初始化最后一层更健壮一些。
    • 对于VTAB,遵循科列斯尼科夫等人(2020)的协议, 并对所有任务使用相同的超参数设置。本文使用0.01的学习率,训练2500步.通过对两个学习率和两个时间表进行小范围的扫描来选择这个设置,并在200个示例验证集上选择具有最高VTAB分数的设置。我们遵循科列斯尼科夫等人(2020)使用的预处理,除了不使用特定任务的输入分辨率。相反,发现Vision Transformer从所有任务的高分辨率(384 × 384)中获益最大。
  • SELF-SUPERVISION
    • 采用掩蔽补丁预测目标进行初步的自监督实验。为此,本文破坏了50%的补丁嵌入, 方法是用可学习的[掩码]嵌入替换它们的嵌入(80%)、随机的其他补丁嵌入(10%)或保持它们原样(10%)。最后,本文使用它们各自的补丁表示来预测每个损坏的补丁的3位平均颜色(即,总共512种颜色)。
    • 本文将自监督模型训练了100万步(大约。14个epochs),在JFT上批量大小为4096。本文使用Adam,基本学习速率为2 ∗ 1 0 − 4 2 *10^{-4}2 ∗1 0 −4,预热为1万步,余弦学习速率衰减。
    • 作为预训练的预测目标,本文尝试了以下设置:
    • 1)仅预测平均的3位颜色(即,512种颜色的1次预测),
    • 2)并行预测具有3位颜色的16 ×16色块的4 × 4缩减版本(即,512种颜色的16次预测),
    • 3)使用L2对完整色块进行回归(即,在3个RGB通道上进行256次回归)。
    • 令人惊讶的是,本文发现所有的工作都很好,虽然L2稍微差一些。本文只报告选项1)的最终结果,因为它显示了最佳的few-shot性能。本文还试验了Devlin等人(2019年)使用的15%的腐败率,但本文的few-shot指标的结果也稍差。
    • 最后,本文想指出的是,本文的掩蔽补丁预测实例化不需要如此大量的预训练,也不需要像JFT这样的大型数据集,以便在ImageNet分类上获得类似的性能增益。也就是说,本文还观察到在100k预训练步骤后下游性能的收益递减,并且在ImageNet上进行预训练时看到类似的收益。
  • ADDITIONAL RESULTS
  • 本文报告了与论文中给出的数字相对应的详细结果。下表与论文中的【Transfer to ImageNet.】图相对应,显示了不同ViT模型的传输性能,这些模型在不断增加的数据集上进行了预训练:ImageNet、ImageNet-21k和JFT-300M。
    • 在ImageNet、ImageNet-21k或JFT300M上进行预训练时,Vision Transformer在各种数据集上的最高准确率(百分比)。这些值对应于正文中的图[Transfer to ImageNet.]。模型微调为384分辨率。ImageNet结果是 在没有使用额外技术(Polyak平均和512分辨率图像)的情况下计算的,以获得表[Comparison with state of the art on popular image classification benchmarks.]中的结果。
  • ADDITIONAL ANALYSES
  • SGD VS. ADAM FOR RESNETS
    • ResNets通常是用SGD训练的,而本文使用Adam作为优化器是非传统的。这里本文展示了激发这一选择的实验。也就是说,本文比较了两个ResNets(50x 1和152×2)的微调性能,这两个resnet在JFT上与SGD和Adam进行了预训练。
    • 对于SGD,本文使用科列斯尼科夫等人(2020)推荐的超参数。结果如下表所示。Adam预训练在大多数数据集和平均水平上都优于SGD预训练。这证明了选择Adam作为优化器用于在JFT上预先训练ResNets是正确的。
    • 使用Adam和SGD对ResNet模型进行微调。
    • 请注意,绝对数字低于科列斯尼科夫等人(2020)报告的数字,因为我们只对7个epochs进行预训练,而不是30个epochs。
  • TRANSFORMER SHAPE
    • 本文对transformer架构的不同尺寸进行了缩放,以找出最适合缩放至超大型模型的尺寸。下图显示了不同配置下ImageNet的5-shot性能。所有配置都基于具有8层的ViT模型,D = 1024,D M L P D_{MLP}D M L P ​ = 2048,并且patch大小为32,即所有线的交点。
    • 缩放视觉transformer的不同模型尺寸。
    • 通过上图可以看到,缩放深度导致最大的改进,直到64层都清晰可见。然而, 收益递减已经在16层之后可见。有趣的是, 扩大网络的宽度似乎会导致最小的变化。在不引入参数的情况下,减少片段大小并因此增加有效序列长度显示出惊人的稳健改进。这些发现表明,计算可能是比参数数量更好的性能预测器,并且缩放应该强调深度而不是宽度(如果有的话)。总的来说, 本文发现按比例缩放所有维度会带来显著的改进
  • HEAD TYPE AND CLASS TOKEN
    • 为了尽可能接近原始的Transformer模型,本文使用了一个额外的[class]标记,作为图像表示。这个token的输出然后通过一个小的多层感知器(MLP)转换成一个类别预测,其中tanh在单个隐藏层中是非线性的。
    • 这种设计继承了文本的Transformer模型,本文在整篇文章中都使用了它。 最初尝试只使用图像补丁嵌入,全局平均池(GAP)它们,然后是线性分类器-就像ResNet的最终特征图-表现非常差。然而,本文还发现这既不是由于额外的token,也不是由于GAP操作。相反, 性能上的差异完全可以用对不同学习速率的要求来解释,见下图
    • 类别标记和全局平均池分类器的比较。两者都工作得很好,但是需要不同的学习速度。
  • POSITIONAL EMBEDDING
    • 本文对使用位置嵌入编码空间信息的不同方式进行了实验。尝试了以下案例:
    • 不提供位置信息:将输入视为一堆patch。
    • 一维位置嵌入:将输入视为一系列顺序的patch序列(本文中所有其他实验的默认设置)。
    • 二维位置嵌入:将输入视为二维patch网格。在这种情况下, 学习两组嵌入,每组用于一个轴,X嵌入和Y嵌入,每组大小为D/2。然后,基于输入中路径上的坐标,本文连接X和Y嵌入,以获得该patch的最终位置嵌入。
    • 相对位置嵌入:考虑小块之间的相对距离来编码空间信息,而不是它们的绝对位置。为此,本文使用1维相对注意,其中定义了所有可能的patch对的相对距离。因此,对于每个给定的对(一个作为查询,另一个作为注意机制中的键/值),还有一个偏移量p q − p k p_q-p_k p q ​−p k ​,其中每个偏移量都与一个嵌入相关联。然后,简单地运行额外的注意,这里本文使用原始查询(查询的内容),但是使用相对位置嵌入作为键。然后, 在应用softmax之前,使用来自相对注意力的逻辑作为偏差项,并将其添加到主要注意力(基于内容的注意力)的逻辑
    • 除了对空间信息进行编码的不同方式之外,本文还尝试了将这些信息合并到本文的模型中的不同方式。对于1维和2维位置嵌入,还尝试了三种不同的情况:
    • (1)紧接在它们的词干模型之后和在将输入馈送到变换器编码器之前将位置嵌入添加到输入;
    • (2)在每一层的开始学习并添加位置嵌入到输入中;
    • (3)在每一层的开始处将学习的位置嵌入添加到输入中(在层之间共享)。
    • 下表总结了ViT-B/16模型消融研究的结果。正如图表所示,虽然没有位置嵌入的模型和有位置嵌入的模型之间的性能有很大的差距,但是 不同的位置信息编码方式之间几乎没有差别
    • 在ImageNet 5-shot linear上评估ViT-B/16模型位置嵌入的消融研究结果。
    • 本文可以推测,由于本文的Transformer编码器 对patch级输入进行操作,而不是像素级输入因此如何对空间信息进行编码的差异不太重要。更准确地说,在patch级输入中,空间维度比原始像素级输入小得多,例如,14 × 14与224 × 224相反,对于这些不同的位置编码策略,学习以这种分辨率表示空间关系同样容易。即便如此,网络学习到的位置嵌入相似性的具体模式取决于训练超参数(下图)。
    • 用不同超参数训练的模型的位置嵌入。
  • EMPIRICAL COMPUTATIONAL COSTS
    • 本文还对硬件上架构的实际速度感兴趣,由于通道宽度和缓存大小等细节,理论上的FLOPs并不总是能很好地预测速度。为此,本文在TPUv3加速器上对感兴趣的主要模型的推理速度进行计时; 推理和反向传播速度之间的差异是一个恒定的模型无关因素
    • 下图(左)显示了在各种输入尺寸下,一个内核每秒可以处理多少幅图像。每一个点都是指在大范围的批量中测得的最高性能。可以看出, 理论上ViT随图像尺寸的双二次缩放仅在最大分辨率的最大模型中开始发生
    • 左图:不同输入规模下各种架构的实际 wall-clock时序。ViT型号的速度可与同类产品相媲美。
    • 右图:最大的每内核批量大小适合具有各种架构的设备的输入大小。ViT型号显然更节省内存。
    • 另一个感兴趣的量是每个模型可以适合核心的最大批量,越大越适合扩展到大型数据集。上图(右)显示了同一组模型的这一数量。这 表明大型ViT模型在内存效率方面比ResNet模型有明显的优势
  • AXIAL ATTENTION
    • 轴向注意力(黄等,2020;Ho等人,2019)是一种简单而有效的技术, 用于对组织为多维张量的大量输入进行自注意力机制。轴向注意的一般思想是 执行多个注意操作,每个操作沿着输入张量的单个轴,而不是将一维注意应用于输入的展平版本。在轴向注意中,每个注意沿着特定的轴混合信息,同时保持沿着其他轴的信息独立。
    • 按照这种思路,Wang等人(2020b)提出了AxialResNet模型,在该模型中, ResNet50中内核大小为3 × 3的所有卷积都被轴向自注意力(即行和列注意)所取代,并 通过相对位置编码进行增强。本文实施了AxialResNet作为基准模型。
    • 此外,本文修改了ViT,以处理二维形状的输入,而不是一维的贴片序列,并加入了轴向transformer块,其中不是自注意力后接MLP,而是a行自注意力加MLP,然后是列自注意力加MLP。
    • 下图显示了在JFT数据集上进行预训练时,Axial ResNet、Axial-ViT-B/32和Axial-ViT-B/16在ImageNet 5shot linear上的性能与预训练计算的对比,包括浮点运算次数和推理时间(每秒示例数)。
    • 基于轴向注意力的模型的性能,在ImageNet 5-shot linear上的最高精度方面,相对于它们在FLOPs数量(左)和推理时间(左)方面的速度。
    • 正如上图所示,在性能方面,Axial-ViT-B/32和Axial-ViT-B/16都比它们的ViT-B同类产品做得更好,但这是以更多的计算为代价的。这是因为在Axial-ViT模型中, 每个具有全局自注意力的transformer块由两个轴向变压器块代替,一个具有行自注意力,一个具有列自注意力,尽管自注意力操作的序列长度在轴向情况下较小,但是每个Axial-ViT块有一个额外的MLP。对于AxialResNet,尽管它在精度/计算权衡方面看起来很合理(上图,左),但在TPUs上的简单实现极其缓慢(上图,右)。
  • ATTENTION DISTANCE
    • 为了理解ViT如何使用自注意力来整合图像中的信息,本文分析了不同层的注意力权重所跨越的平均距离(下图)。
    • Size of attended area by head and network depth. 通过对查询像素和所有其他像素之间的距离进行平均,并通过注意力权重进行加权,来计算128个示例图像的注意力距离。每个点显示了一层中16个head中的一个的平均注意力距离。图像宽度为224像素。
    • 这个”注意力距离”类似于中枢神经系统中感受野的大小。较低层中的头部之间的平均注意力距离变化很大,一些头部关注图像的大部分,而其他头部关注查询位置处或附近的小区域。 随着深度的增加,所有头部的注意力距离都会增加。在网络的后半部分,大多数heads跨token广泛参与进计算。
  • ATTENTION MAPS
    • 为计算注意力从输出标记到输入空间的映射,本文使用Attention Rollout(Abnar & Zuidema,2020)。简而言之,本文 对所有heads的注意力权重ViTL/16进行平均,然后递归地乘以所有层的权重矩阵。这解释通过所有层的标记的注意力的混合。
  • OBJECTNET RESULTS
    • 本文还根据科列斯尼科夫等人(2020年)的评估设置,在ObjectNet基准上评估了本文的flagship ViT-H/14模型,获得了82.1%的前5名准确度和61.7%的前1名准确度。
  • VTAB BREAKDOWN
    • 下表显示了在每个VTAB-1k任务中获得的分数。
    • 跨任务的VTAB-1k性能分析。
  • 电力分析数据集

Original: https://blog.csdn.net/weixin_43424450/article/details/124000968
Author: 羞儿
Title: 【读点论文】AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE(ViT)像处理自然语言那样处理图片

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/519697/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球