【论文精读】AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE

预备知识【Transformer】:http://t.csdn.cn/m2Jat

预备知识【BERT】 http://t.csdn.cn/QCmUK

1 Abstract🍎

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

2 Conclusion🍏

  1. 我们探索了Transformer在图像识别中的直接应用。与之前在计算机视觉中使用自注意力机制的工作不同,除了初始的补丁提取步骤(initial patch extraction step)外,我们没有在架构中引入特定于图像的归纳偏置。相反,我们将图像解释为一系列补丁(a sequence of patches ),并通过NLP中使用的标准Transformer编码器对其进行处理。这种简单但可扩展的策略在与大型数据集上的预训练相结合时效果非常好。因此,Vision Transformer在许多图像分类数据集上达到或超过了最先进的水平,同时预训练成本相对较低。
  2. 尽管这些初步成果令人鼓舞,但仍存在许多挑战。一种是将ViT应用于其他计算机视觉任务,如目标检测和语义分割。我们的结果,加上Carion等人(2020)的结果,表明了这种方法的前景。另一个挑战是继续探索自监督的预训练方法。我们的初步实验表明,自监督预训练有所改善,但自监督预训练与大规模有监督预训练之间仍有较大差距。最后,ViT的进一步扩展可能会提高性能。

3 Introduction🍊

  • 基于自注意力机制的架构,特别是Transformers,已经成为自然语言处理(NLP)的首选模型。主要的方法是在大型文本语料库上进行预训练,然后在较小的特定于任务的数据集上进行微调。得益于Transformers的计算效率和可扩展性,使训练具有超过100B个参数的空前规模的模型成为可能。随着模型和数据集的增长,性能仍然没有饱和的迹象
  • 然而,在计算机视觉中,卷积架构仍然占主导地位。受到NLP成功的启发,多个工作尝试将类似CNN的架构与自注意力机制相结合,一些甚至完全取代卷积。后一种模型虽然理论上是有效的,但由于使用了特殊的注意力机制,还没有在现代硬件加速器上有效地扩展(模型不大)。因此,在大规模图像识别中,经典的ResNet-like架构仍然是最先进的。
  • 受NLP中Transformer可扩展性(scaling)成功的启发,我们尝试将标准Transformer直接应用于图像,并进行最少的修改。为此,我们将图像分割为多个补丁(patches),并将这些补丁的线性嵌入序列作为Transformer的输入。在NLP应用程序中,图像补丁的处理方式与tokens(单词)相同。我们以有监督的方式训练模型进行图像分类。(NLP基于都是无监督的训练方式
  • 当在中型数据集(如ImageNet)上训练时,没有很强的正则化处理(regularization),这些模型产生的精度比同等大小的ResNets低几个百分点。这个看起来令人沮丧的结果可能是意料之中的;Transformers缺乏CNN固有的一些归纳偏置(inductive biases),例如平移等变性(translation equivariance)和局域性(locality),因此在训练数据量不足时性能不是很好
  • locality:假设图片上相邻的区域会有相邻的特征,靠的越近的东西相关性越强。
  • translation equivariancef(g(x))=g(f(x)) 为卷积,g 为平移,无论先做卷积还是平移,卷积核相当于模板(template),不论图片中同样的物体移到哪里,只要是同样的输入进来,遇到同样的卷积核,其输出永远是一样的。
  • 然而,如果模型在更大的数据集(14M-300M图像)上训练,情况就会发生变化。我们发现大规模训练克服了归纳偏置。我们的Vision Transformer(ViT)在足够大规模数据上的预训练和转移到数据点更少的任务时获得了出色的结果。当在公共ImageNet-21k数据集或内部JFT-300M数据集上进行预训练时,ViT在多个图像识别基准(benchmarks)测试中接近或超过了最先进的水平。其中,最佳模型在ImageNet上的准确率为88.55%,在ImageNet- ReaL上的准确率为90.72%,在CIFAR-100上的准确率为94.55%,在VTAB基准包含跨不同领域的19项评估任务的准确率为77.63%。(VATB融合了19个数据集,验证了模型的稳健性)

4 Summary🍋

ViT就是用了一个标准的Transformer模型,只需要对图片做一下预处理,就是把图片打成块,然后送到Transformer里就可以了,别的什么改动都不需要。这样彻底可以把一个计算机视觉问题理解成一个NLP问题,这样CV和NLP这两个领域就大一统了。

5 Difficulty🍒

该怎么把一个二维的图片转换成Transformer的输入呢?或许我们可以把所有像素点(pixel)作为一个输入sequence,如下图所示,一个 3 * 3 大小的图像,转换成一个长度为9的sequence。

但是对于一个 224 * 224 大小的图像而言,进行这样的图像预处理的结果是产生长度为50176的输入sequence,可是我们知道Transformer对于输入的sequence长度是有一定的限制的,在BERT中,输入sequence的长度是512,所以这种方法复杂度太高,训练起来十分困难。 

6 Architecture🍇

  • 在模型设计中,我们尽可能地(as closely as possible)遵循原始的Transformer。
  • 这个有意识的简单设置的优势在于,可扩展的NLP Transformer架构以及它们的高效实现可以几乎直接使用。(不需要魔改模型了

  • 我们将一张图片分成固定大小的块(不再是一个像素点了),对每个块进行线性嵌入,添加位置嵌入(position embeddings),然后将生成的向量序列送到标准Transformer编码器中。
  • 为了进行分类,我们使用添加一个额外的可学习的“分类标记”到序列的标准方法(这一点和BERT中的[CLS]完全一样)。

  • 如上图所示,我们可以把一个图片分解成9个大小相同的块(patches)。(图片分解为类似于NLP中的tokens
  • 再例如一个 224 * 224 大小的图像,按大小为 16 * 16 大小的patch进行分割,就会形成 14 * 14 = 196 个块。
  • 这196个块通过一个全连接层可以转换为一维向量,这就解决上面提到的输入sequence长度过长的问题了,直接用196代替50716
  • 我们知道二维图片是存在空间顺序关系的,所以使用position embedding(位置编码)和经过全连接层的向量直接进行相加操作。
  • 与BERT的[class]令牌类似we prepend a learnable embedding to the sequence of embedded patches ,如下图中的红框所示,其在Transformer编码器输出的结果向量作为图像表征。在预训练和微调期间,分类头附加到Transformer编码器。分类头在预训练时由一个隐含层的MLP实现,在微调时由一个线性层实现。

  • Inductive bias(归纳偏置):我们注意到Vision Transformer比CNN具有更少的图像特定的归纳偏置。在CNN中,局部性、二维邻域结构和平移等变性贯穿整个模型的每一层。在ViT中,只有MLP层是局部的、平移等变的,而自注意力层是全局的。二维邻域结构的使用非常谨慎:在模型开始时,通过将图像切割成块,并在微调时调整不同分辨率图像的位置编码(position embedding)。除此之外,初始化时的位置编码不包含patches的二维位置信息,并且必须从头学习patches之间的所有空间关系。
  • Hybrid Architecture(混合模型):作为原始图像补丁的替代方案,输入序列可以从CNN的特征图中形成。
  • 通常情况下,我们会在大型数据集上预训练ViT,并对(较小的)下游任务进行微调。为此,我们移除预训练的预测头并连接一个零初始化的D×K前馈层,其中K是下游任务的类别数。在较高的分辨率下进行微调往往是有益的。在馈送较高分辨率的图像时,我们保持块的大小不变,这会导致更大的有效序列长度。Vision Transformer可以处理任意序列长度(受内存限制),但是预训练的位置嵌入可能不再有意义。因此,我们根据它们在原始图像中的位置执行预训练位置嵌入的二维插值。分辨率调整和补丁提取是关于图像2D结构的归纳偏置手动注入Vision Transformer的唯一点。

7 Model🍉

ViT-L/16表示使用16×16输入块(patch size)大小的“大型”变体。请注意,Transformer的序列长度与块大小的平方成反比,因此具有较小块大小的模型在计算上更昂贵。

ViT = SOTA + 训练起来更快更便宜

Take home message: ViT在大数据集上表现更好。

在相同的计算预算下,Vision Transformers通常优于ResNets。Hybrids在较小的模型尺寸上优于pure Transformers,但在较大的模型尺寸上差距消失了。

8 Supplement🍓

从全局来看,我们发现该模型关注与分类语义相关的图像区域。

  • 上图可以看出Position embedding确实学习到了一定的位置信息,自注意力机制也学习到了一定的全局信息。
  • Transformers在NLP任务中表现出色。然而,它们的成功不仅来自于出色的可扩展性,还来自于大规模的自监督预训练,我们还对自监督的掩码补丁预测进行了初步探索,模拟BERT中使用的掩码语言建模任务。通过自监督的预训练,我们较小的ViT-B/16模型在ImageNet上的准确率达到了79.9%,比从头开始的训练显著提高了2%,但仍落后于有监督的预训练4%。

  • 我们也可以依旧使用全局平均池化作为最后的预测特征向量,上图是全局平均池化(GAP)和使用类似于BERT中的[CLS],两者的效果相似,但需要不同的学习率。
  • 论文中使用了几种位置编码(Positional Embedding)的方法,进行了消融实验(类似于化学中的控制变量法),效果类似,影响不大。

9 My View🍑

Vision Transformer(ViT)在计算机视觉中的出现具有一定的预见性,主要表现在以下几个方面:

  1. 跨模态迁移能力:ViT的Transformer结构在自然语言处理中已经被广泛应用,并取得了良好的效果,因此将其应用到计算机视觉领域具有一定的预见性。这种跨模态的迁移能力也是未来深度学习研究和应用的趋势。

  2. 对大规模数据的需求:ViT是一种预训练模型,需要大规模的数据进行预训练,这也是目前深度学习研究和应用的趋势之一。ViT的出现预示着未来深度学习将更加注重数据的规模和质量。

  3. 对计算资源的依赖:ViT是一种计算资源密集型的模型,需要较高的计算资源进行训练,这也预示着未来深度学习研究和应用需要更加关注计算资源的分配和利用。

总之,ViT的出现预示着计算机视觉领域将越来越倾向于使用基于Transformer结构的模型,并且需要大规模数据和高计算资源的支持。

  • 5
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

沉淀体育生

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

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

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

打赏作者

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

抵扣说明:

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

余额充值