<<视觉Transformer>>2021:An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale


本专栏只研究vision Transformer的原理,对实验不做过多研究。 


目录

摘要:

一、介绍

二、相关工作

三、方法

3.1 VISIONTRANSFORMER(VIT)

3.2 FINE-TUNING ANDHIGHERRESOLUTION

四、结论


摘要:

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

一、介绍

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

        然而,在计算机视觉中,卷积体系结构仍然占主导地位,受NLP成功的启发,多个工作尝试将cnn类架构与自注意力相结合,有些甚至完全替代了卷积。在大规模图像识别中,经典的ResNet架构仍然是最先进的。

        我们尝试将标准Transformer直接应用于图像,并且尽可能少地进行修改。为此,我们将图像分割成小块,并将这些小块的线性嵌入序列作为Transformer的输入。图像patch的处理方式与NLP中的token(单词)相同,我们以有监督的方式训练图像分类模型。

        当在中等规模的数据集(如ImageNet)上,没有强正则化,进行训练时,这些模型的精度比同等规模的ResNets低几个百分点。Transformer缺乏一些cnn固有的归纳偏见,比如平移不变性和局部性,因此当在数据量不足的情况下训练时,它不能很好地进行泛化。

        然而,如果在更大的数据集(14M-300M图像)上训练模型,结果会发生变化。我们发现大规模的训练战胜了cnn归纳偏见。我们的(ViT)模型在充分规模的预训练和迁移到具有较少数据集的任务时获得了优异的结果。当在公共的ImageNet-21k数据集或内部的JFT-300M数据集上进行预训练时,ViT在多个图像识别基准上接近或击败了最先进的水平。

二、相关工作

        Transformer已成为许多NLP任务中最先进的方法,基于大型Transformer的模型通常在大型语料库上进行预训练,然后根据下游的小任务进行微调:BERT使用降噪自监督的预训练任务,而GPT工作则使用语言建模作为其预训练任务。

        对图像进行自注意可以将每个像素对每个其他像素进行处理,代价是像素数量的二次方,这就限制了输入图像不能过大。因此,为了在图像处理的背景下应用Transformer,过去已经尝试了几种近似方法。Parmar等人(2018)对每个查询像素只将自我注意应用于局部邻域,而不是全局,这种局部多头点积自注意块可以完全取代卷积。另一种扩大注意力的方法是在不同大小的block中应用注意力,在极端情况下仅沿着单个轴。许多这些专门的注意力架构在计算机视觉任务上显示出了很有前景的结果,但需要复杂的工程才能在硬件加速器上有效地实现。

        与我们最相关的是Cordonnier等人(2020)的模型,该模型从输入图像中提取2×2的patches,并在上面应用全局自注意力,这个模型与ViT非常相似,但我们的工作进一步证明,大规模的预训练可以使普通的Transformer与最先进的cnn竞争(甚至比后者更好)。此外,Cordonnier等人(2020)使用了一个小的patch大小2×2像素,这使得该模型只适用于小分辨率的图像,而我们也可以处理中等分辨率的图像。

        也有很多的工作结合卷积神经网络(CNN)和self-attention的形式,如通过增加特征图进行图像分类或对CNN的输出进一步使用自注意力。另一个最近的相关模型是图像GPT (iGPT) (Chen et al., 2020a),该模型在降低图像分辨率和颜色空间后,将transformer应用于图像像素。该模型以无监督的方式作为生成模型进行训练。

        我们的工作增加了在比标准ImageNet数据集更大尺度上探索图像识别,使用额外的数据源可以在标准基准上实现最先进的结果。

三、方法

        在模型设计中,我们尽可能地遵循最初的Transformer。这种有意为之的简单设置的一个优点是:可伸缩的NLP Transformer体系结构——及其高效的实现——几乎可以开箱即用。

3.1 VISIONTRANSFORMER(VIT)

        图1描述了模型的概述。标准Transformer接收的输入是token嵌入的一维序列,为了处理二维图像,我们将图像展平为,(H, W)是原始图像的分辨率,C是通道的数量,(P, P)是每个图像pacth的分辨率,是patch的数量,也作为有效的transformer的输入序列长度。Transformer在所有层中使用相同的隐含层维度D,因此我们将patch平坦化,并使用可训练的线性投影(公式1)映射到D维,我们将这个投影的输出称为patch嵌入。 

        与BERT的[class]token相似,我们在嵌入的patch序列前添加了一个可学习嵌入,其在Transformer编码器输出处的状态作为图像表示(公式4),无论是在预训练还是微调中,都有一个分类头,分类头在预训练由一个具有隐藏层的MLP实现,在微调时由一个单一的线性层实现。

        在patch embeddings中加入位置嵌入以保留位置信息,我们使用标准的可学习1D位置嵌入,因为我们没有观察到使用更高级的2d感知位置嵌入有显著的性能增益。所得到的嵌入向量序列作为编码器的输入。Transformer编码器由多头自注意的交替层(MSA,见附录A)和MLP块(Eq. 2, 3)组成,(LN)在每个块之前应用,在每个块之后应用残差连接,MLP包含两个具有GELU非线性的层。

        Inductive bias 我们注意到Vision Transformer比cnn具有更少的图像特异性归纳偏差,在cnn中,局部性、二维邻域结构和平移不变性被融入到整个模型的每一层中,在ViT中,只有MLP层是局部的、平移不变的,而自注意层是全局的。二维邻域结构的使用非常少,在模型的开始通过将图像分割成小块,在微调时间调整不同分辨率图像的位置嵌入(如下所述)。除此之外,初始化时的位置嵌入不携带关于patch二维位置的信息,并且patch之间的所有空间关系都需要从头学习。

        Hybrid Architecture 作为原始图像块的替代方法,输入序列可以由CNN的特征图形成,在该混合模型中,patch embedding映射应用于从CNN特征图中提取的patches。作为一种特殊情况,patches的空间大小可以是1x1,这意味着输入序列是通过简单地平坦feature map的空间维度并投射到Transformer维度来获得的。

3.2 FINE-TUNING ANDHIGHERRESOLUTION

        通常,我们在大型数据集上对ViT进行预训练,并对(较小的)下游任务进行微调。当输入更高分辨率的图像时,我们保持patch的大小不变,从而得到更大的有效序列长度。Vision Transformer可以处理任意序列长度(根据内存限制),然而,预训练的位置嵌入可能不再有意义。因此,我们根据预训练的位置嵌入在原始图像中的位置,对其进行二维插值。

四、结论

        我们探索了Transformers在图像识别中的直接应用,与之前在计算机视觉中使用自注意的工作不同,除了最初的patch提取步骤外,我们没有在架构中引入特定图像的归纳偏差。相反,我们将图像解释为一系列pacth,并使用NLP中使用的标准Transformer编码器对其进行处理。这种简单的、可扩展的策略在与大型数据集的预训练相结合时效果惊人地好。因此,Vision Transformer在许多图像分类数据集上都达到或超过了目前的技术水平,而且预训练成本相对较低。

        虽然这些初步结果令人鼓舞,但仍存在许多挑战,一是将ViT应用于其他计算机视觉任务,如检测和分割。我们的研究结果,加上Carion等人(2020)的研究结果,表明了这种方法的前景。另一个挑战是继续探索自监督的预训练方法。我们的初步实验表明,自监督预训练的效果有所改善,但与大规模监督预训练相比仍存在较大差距。最后,ViT的进一步扩展可能会提高性能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值