Transformer|【论文翻译】VIT:An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale


VIT

  • 摘要
  • 介绍
  • 相关工作
  • 模型
    • VISION TRANSFORMER (VIT)
    • 微调和高分辨率
  • 实验
  • 结论

摘要 虽然Transformer架构在自然语言处理任务中已经成为事实标准,但是它在计算机视觉领域的应用仍然受限。在视觉领域,注意力要么和卷积网络结合使用,要么替换卷积网络中的某些部分,同时保持整体结构不变。本文表明对CNNs的依赖不是必要的,纯转换器(pure transformer)直接应用于图像块(image patches)序列在图像分类任务中能发挥很好的作用。当对大量数据进行预训练并把它转移到多个中型或者小型图像识别基准(ImageNet,CIFAR-100,VTAB,etc.)中,与SOTA卷积网络相比,Vision Transformer(ViT)获得了出色的结果,同时训练时需要更少的计算资源。
介绍 基于自我注意力的架构,尤其是Transformers(Vaswani et al., 2017),已经成为自然语言处理(NLP)中首选模型。主要方法是在大型文本语料库上进行预训练,然后在较小的特定任务数据集上进行微调。因为Transformers较好的计算效率和可扩展性,训练具有100B参数的前所未有的模型成为可能。随着模型和数据集的发展,性能还有很大的提升空间。
在计算机视觉领域,卷积结构仍然占主导地位。受NLP成功的启发,多项工作都尝试将类似CNN的结构与注意力机制结合,有些甚至取代了卷积。这种直接取代卷积虽然理论上可行,但是由于使用专门的注意力模式,还没有在现代硬件加速器上有效扩展。因此,在大规模图像识别中,经典的类似ResNet架构仍然是最好的。
受NLP中Transformer缩放成功的启发,本文尝试将标准的Transformer直接应用于图像,尽可能减少修改。为此,将图像分割成图像块(patches),然后将这些图像块的线性嵌入序列提供给Transformer作为输入。图像块被视为NLP中的单词。本文以监督的方式训练图像分类模型。
在中等规模数据集(ImageNet)上训练时,精度要比同等规模的ResNet低几个百分点。这种结果产生也是预料之中的:Transformers缺少一些CNNs固有的归纳偏置(inductive biases),如平移不变性和局部性。因此,在数据集不足的情况下,不能很好的概括。
然而在更大的数据集(14M-300M images)上进行训练,大规模训练胜过归纳偏置(inductive biases)。本文的Vision Transformer (ViT)在进行足够规模的预训练并转移到较少数据的任务时,可以获得出色的结果。当在公共ImageNet-21k数据集或内部JFT-300M数据集上进行预训练时,ViT在多个图像识别基准上达到或超越了最新水平。特别是,最佳模型在ImageNet上达到88.55%的精度,在ImageNet-ReaL上达到90.72%的精度,在CIFAR-100上达到94.55%的精度,在19个任务的VTAB上达到77.63%的精度。
相关工作 【Transformer|【论文翻译】VIT:An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale】Transformers是2017年由Vaswani等人提出的机器翻译方法,至此成为很多NLP任务中最先进的方法。大型的基于Transformer的模型大多是先在大型语料库上进行预训练,然后对特定任务进行微调:BETR使用去噪自监督预训练任务,GPT使用语言建模作为预训练任务。对图像进行自我注意力的简单应用需要每个像素关注其他像素。由于像素的二次成本,这并不符合实际输出大小。因此,在图像处理领域应用Transformers,过去尝试了一些方法:在每个像素的局部邻域中用自注意力机制(self-attention),不是在全局范围内。这样的局部多头点积(multi-head dot-product)自注意力模块可以完全替代卷积网络。或者像Sparse Transformers采用全局自我注意力的可扩展的近似值来应用于图像。一种替代方法用于计算大小不同的块。许多专门的注意力机制在计算机视觉任务中展现了出色的结果,但是需要复杂的工程才能在硬件加速器上使用。
人们对注意力机制与卷积神经网络的结合也很感兴趣,比如通过增强用于图像分类的特征图或者通过使用自我注意力进一步处理CNN的输出,例如目标检测、视频处理、图像分类、无监督的目标发现、或者统一的文本视觉任务(unified text-vision tasks)
我们并不了解之前全局自我注意力的Transformers对全尺寸图像的应用。和我们模型最接近的是iGPT,在降低图像分辨率和颜色空间后,把Transformers应用于图像像素。该模型以无监督的方式作为生成模型进行训练,然后可以对结果表示进行微调或线性探测,来提高分类的性能,在ImageNet中实现72%的最大精确率。
我们的工作增加了一些论文的收集,这些论文是在比ImageNet数据集更大规模的图像识别。使用额外的数据源可以在标准基准上获得最先进的结果。此外sun等人研究了CNN的性能如何随数据集大小而扩展。Djolonga等人从大规模数据集对CNN迁移学习进行实证探索。我们关注大规模数据集,训练Transformers代替之前工作中使用的基于ResNet的模型。
模型 在模型的设计中,尽可能接近最原始的Transformer。这个好处是可以立即使用可拓展的NLP Transformer及其高效的实现。
VISION TRANSFORMER (VIT) 标准的Transformer是把token embeddings的1维序列作为输入。为了处理2维的图像,我们把HWC的图像变成flattened 2维的图像块序列,(H,W)为原始图像的分辨率,C为通道数,(P,P)是图像块的分辨率,N是块数,也是Transformer有效输入序列长度。这个Transformer通过其所有层使用恒定的潜在向量大小D,因此我们展平图像块,并用可训练的线性投影映射到D维(等式1),把投影的输出叫做patch embedding。
Transformer|【论文翻译】VIT:An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale
文章图片

与BETR[class]token相似,我们在embedded patches序列前添加一个可学习的embedding,其在Transformer编码器输出端的状态作为图像表示y(公式4)。在预训练和微调阶段,一个分类头都连接到编码器。分类头在预训练时由具有一个隐藏层的MLP实现,在微调时由单个线性层实现。
位置embedding被添加到patch embedding来保持位置信息,我们使用标准的可学习的1维位置 embedding,因为我们没有观察到使用更加先进的2D-aware 位置 embedding。这个embedding 向量的结果序列用作编码器的输入。
这个Transformer编码器包括多层自注意力和MLP块(公式2,3),LN应用于每个区块之前,以及每个区块之后的剩余连接。MLP包含两层,具有GELU 非线性。
Transformer|【论文翻译】VIT:An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale
文章图片

混合架构
作为原始图像块的替代,输入序列可以由CNN的feature map形成。在这个混合架构中,这个patch embedding投影应用于从CNN feature map提取的patch。作为一种特殊情况,这个patch的空间大小可以为1*1,意味着输入序列可以通过简单的展平特征图的空间尺寸并投影到Transformer尺寸获得。
微调和高分辨率 通常,我们在大数据集上预训练ViT,在小的下游任务(downstream)进行微调。对此,我们先移除预训练的头,并加上一个零初始化的D*K的前馈层,其中K是downstream类的数量。比预训练更高的分辨率是有益的。当反馈高分辨率的图像时,我们patch size不变,则序列长度更大了。这个Vision Transformer可以处理任意长度的序列(不超出内存限制),然而,预训练的位置嵌入可能不再有意义。因此,我们根据预训练图像的初始位置,展现预训练位置嵌入的2维插值。注意,分辨率调整和patch的调整中,将图像2维结构的归纳偏置注入Vision Transformer。
实验 略
结论 我们已经探索了transformer在图像识别中的直接应用。不同于以前在计算机视觉中使用自我注意的工作,我们没有在架构中引入任何图像特定的归纳偏差。相反,我们将图像解释为一系列面片,并通过NLP中使用的标准Transformer编码器对其进行处理。当与大数据集上的预训练相结合时,这种简单但可扩展的策略的效果出奇地好。因此,视觉转换器在许多图像分类数据集上匹配或超过了现有技术水平,同时预训练相对便宜。虽然这些初步结果令人鼓舞,但许多挑战依然存在。一是将ViT应用于其他计算机视觉任务,如检测和分割。我们的结果,加上Carion等人(2020年)的结果,表明了这种方法的前景。另一个挑战是继续探索自我监督的预训练方法。我们的初步实验表明,自监督预训练有所改进,但自监督预训练与大规模监督预训练仍有很大差距。最后,进一步扩展ViT可能会提高性能。

    推荐阅读