bilibili_limu: https://www.bilibili.com/video/BV15P4y137jb?spm_id_from=333.999.0.0

以下是根据论文和视频中大牛讲的内容来做的笔记。

Abstract

虽然Transformer架构已经成为自然语言处理任务的标准,但它对计算机视觉的应用仍然有限。在视觉上,注意力要么与卷积网络一起应用,要么用于替换卷积网络的某些组件,同时保持其整体结构不变。我们表明,这种CNN的依赖是不必要的,直接应用于图像 patches 序列的 pure transformer 可以很好地执行图像分类任务。当对大量数据进行预训练并将其传输到多个中小型图像识别的benchmarks(ImageNet、CIFAR-100、VTAB等)时,与最先进的卷积网络相比,Vision Transformer (ViT)获得了出色的结果,同时所需的计算资源大大减少。

<aside> 💡 这里说得所需计算资源大大减少是相对于巨大的计算资源,毕竟他都说ImageNet算中小型数据集了。

</aside>

1 INTRODUCTION

基于自我注意的架构,尤其是Transformer (Vaswani et al., 2017),已经成为自然语言处理(NLP)的 model of choice。主要的方法是在大型文本语料库上进行预训练,然后在较小的特定任务数据集上进行微调 (Devlin et al., 2019)。得益于Transformer 的计算效率和可扩展性,训练具有超过100B参数的空前规模的模型成为可能 (Brown et al., 2020; Lepikhin et al., 2020)。随着模型和数据集的增长,仍然没有饱和性能的迹象。 ( 太可怕了,只要有更多的数据,就会一直提升性能

然而,在计算机视觉中,卷积架构仍然占主导地位 (LeCun et al., 1989; Krizhevsky et al., 2012; He et al., 2016)。受NLP成功的启发,多个工作尝试将类似CNN的架构与自我注意相结合 (Wang et al., 2018; Carion et al., 2020),有一些工作是完全取代了卷积 (Ramachandran et al., 2019; Wang et al., 2020a)。后者在理论上是有效的,但由于使用了特殊的注意力模式,还没有在现代硬件加速器上有效缩放。因此,在大规模图像识别中,经典的ResNet架构仍然是最先进的 (Mahajan et al., 2018; Xie et al., 2020; Kolesnikov et al., 2020)。

<aside> 💡 Transformer的复杂度是序列长度的平方,一般是几百或者几千,如果直接将图片中的像素点拉平当作一个序列,那复杂度是不可承受的。

</aside>

受Transformer在NLP中缩放成功的启发, 我们尝试将标准Transformer直接应用于图像,并尽可能少地进行修改。为此,我们将图像分割为多个 patches ,并提供这些 patches 的 linear embedding 的序列,作为Transformer的输入。在NLP应用程序中,图像补丁被视为 tokens (单词)。我们以有监督的方式训练模型进行图像分类 ( 这里是因为基线都为有监督的,分类也很难利用无监督的数据吧? )。

当在没有强正则化约束的中等规模数据集(如 ImageNet)上进行训练时,这些模型产生的准确度比同等规模的 ResNets 低几个百分点。 这种看似令人沮丧的结果可能是意料之中的:Transformers 缺乏 CNN 固有的一些归纳偏差,例如平移等方差和局部性,因此当在数据量不足的情况下训练时不能很好地概括。( 这些归纳偏置可以让CNN具有良好的先验信息

<aside> 💡 CNN中一般有两个归纳偏置 inductive biases :一是 locality,意指相邻像素应该是相似的;二是 translation equivariance(平移同变性),即图片中的物体移动到什么地方,卷积核都能把其识别出来。

</aside>

但是,如果模型在更大的数据集(14M-300M 图像)上训练,结果会发生变化。 我们发现大规模训练胜过归纳偏差。 我们的 Vision Transformer (ViT) 在经过足够规模的预训练并转移到具有较少数据点的任务时获得了出色的结果。 当在公共 ImageNet-21k 数据集或 in-house JFT-300M 数据集上进行预训练时,ViT 在多个图像识别基准上接近或击败了最先进的技术。 特别是,最佳模型在 ImageNet 上的准确率达到了 88.55%,在 ImageNet-ReaL 上达到了 90.72%,在 CIFAR-100 上达到了 94.55%,在 VTAB 套件的 19 个任务上达到了 77.63%。

<aside> 💡 VTAB套件是作者提出的融合了19个任务的数据集,主要评测ViT的稳健性。

</aside>

2 RELATEDWORK

Transformer由 Vaswani et al. (2017) 提出用于机器翻译,并自此成为许多NLP任务中最先进的方法。基于transformer的大型模型通常在大型语料库上进行预训练,然后针对手头的任务进行微调:BERT (Devlin et al., 2019) 使用去噪的自·监督预训练任务,而GPT工作使用语言建模 LM 作为其预训练任务 (Radford et al., 2018; 2019; Brown et al., 2020)。

简单地将自注意应用于图像将要求每个像素关注其他所有的像素。成本为像素数量的平方,这并不能缩放到可行的输入大小。因此,在图像处理的背景下应用Transformer,以往尝试了几种近似的方法来执行。Parmar et al.(2018) 对每个查询像素只应用了局部邻域的自注意,而不是全局的自注意。这种 local multi-head dot-product self attention blocks 可以完全替代卷积(Hu et al., 2019; Ramachandran et al., 2019; Zhao et al., 2020)。在一个不同的工作中,Sparse transformer (Child et al.,2019) 采用可扩展的近似全局自我注意,以适用于图像。另一种扩大注意力的方法是在不同大小的块中应用它 (Weissenborn et al.,2019),在最极端的情况下仅沿单个轴 (Ho et al., 2019; Wang et al., 2020a)。这些特殊的注意力体系结构在计算机视觉任务上展示了有前景的结果,但需要在硬件加速器上高效地实现复杂的工程。

与我们最相关的是Cordonnier et al.(2020) 的模型,该模型从输入图像中提取 size 2×2的patch,并在顶部应用 full self-attention。这个模型与ViT非常相似,但我们的工作进一步证明了大规模的预训练可以使普通的Transformer与最先进的CNN竞争(甚至更好)。此外,Cordonnier et al.(2020)使用了一个较小的patch size of 2×2 pixels,这使得该模型仅适用于小分辨率图像,而我们也可以处理中分辨率图像。

也有很多结合 CNN 与 self-attention 的其他工作,by augmenting feature maps for image classification (Bello et al., 2019) or by further processing the output of a CNN using self-attention, e.g. for object detection (Hu et al., 2018; Carion et al., 2020), video processing (Wang et al., 2018; Sun et al., 2019), image classification (Wu etal.,2020), unsupervised object discovery (Locatello et al., 2020), or unified text-vision tasks (Chen et al., 2020c; Lu et al., 2019; Li et al., 2019).

另一个最新的相关模型是图像GPT (iGPT) (Chen et al., 2020a),它在降低图像分辨率和颜色空间后,将 Transformer 应用于图像像素。该模型以无监督的方式作为生成模型进行训练,然后可以对得到的表示进行微调或线性检测,以提高分类性能,在ImageNet上实现72%的最大精度。