摘要
Transformer是一种基于自注意力机制的深度神经网络,于2017年横空出世,谷歌的研究人员将该结构率先应用于自然语言处理领域。自2020年以来,Transformer开始在计算机视觉领域大放异彩:图像分类(ViT、Perceiver、BiT-L),目标检测(DETR,Deformable DETR),语义分割(SETR,MedT)、车道线检测(LSTR)、视频处理(GANsformer)等。与CNN相比,Transformer的自注意力机制可获得长距离信息而非固定且有限的感受野。因此,基于Transformer的模型在各种公开数据集上表现出了更具竞争力的性能。本文以Transformer入手,以图像分类任务为例,对两种Visual Transformer模型——ViT、Perceiver进行讨论,分析其模型特点的同时对Visual Transformer的未来研究方向进行探讨。
引言
Transformer 首先应用于自然语言处理 (NLP) 领域,在性能上取得了显著的突破。Vaswani等人在2017年[1]首次提出了完全基于注意力机制进行机器翻译解析。Devlin等人于2019年提出了考虑到每个单词的上下文信息,可在未标记的文本上预训练Transformer的一种新的语言表示模型BERT[2]。该模型在多个 NLP 任务上均展示了最出色的性能。2020年,OpenAI [3]使用 1750 亿个参数在 45 TB 的压缩文本数据上预训练了一个名为 GPT-3的大规模Transformer模型。这些基于Transformer的模型,凭借其强大的表示能力,在NLP领域得到了广泛的应用并取得了重大的突破。
受到Transformer模型在NLP领域上取得的重大成果的启发,近几年研究人员逐渐将Transformer模型应用于语音和计算机视觉领域,而在本周刚结束的图神经网络竞赛OGB Large-Scale Challenge中,Transformer模型获得了冠军,Ying等人[8]提出并证明了Transformer在图表示学习任务上具有更强的表达能力,各领域关于Transformer的研究都在逐渐升温。
计算机视觉领域中应用Transformer的一个经典模型是Google于2020年提出的图像分类的模型ViT[4],它在多个图像识别基准上取得了最优异的性能。除了图像分类,Transformer 还被用来解决其他计算机视觉问题,包括目标检测、语义分割和视频理解等。由于其卓越的性能,基于Visual Transformer的模型已成为处理视觉任务的一个主流研究方向。本文将重点讨论ViT模型和Perceiver模型。
Transformer简介
Transformer是第一个完全依赖自注意力机制来计算输入和输出表示的模型[5]。Transformer模型中采用的是编码器—解码器(Encoder-Decoder)结构。Encoder将自然语言序列映射到隐藏层,使其含有自然语言序列的数学表达。Decoder将隐藏层再映射为自然语言序列,从而使其应用于情感分析、语义关系抽取和摘要生成等任务。
值得注意的是,在Encoder的Self-Attention模块、Decoder的Self-Attention模块和Encoder-Decoder注意力模块中都使用了多头自注意力机制(Multi-Head Attention)。该注意力机制采用缩放点积注意力(Scaled Dot-Product Attention)的实现方式来计算注意力特征向量。多头自注意力机制将输入向量形成多个子空间,使得模型具备捕捉来自不同位置的子空间信息的能力。在Transformer 的架构中,自注意力并行且独立进行多次计算,输出经过串联并进行线性转换。
Encoder包含两层结构,一层结构为自注意力模块(Self-Attention),另一层为前馈神经网络(Feed Forward Neural Network)。结构数据首先经过自注意力模块得到加权后的特征向量Z,其中Z为公式(1)中的
。将得到的特征向量Z作为前馈神经网络的输入得到如式(2)所示的特征向量
Decoder与Encoder的不同之处在于Decoder多了一个Encoder-Decoder注意力模块(Encoder-Decoder Attention),两个Attention分别用于计算输入和输出的权值。在解码器的第一个Self-Attention模块需添加序列掩码,将特征向量的某些值进行掩盖,使解码输出仅依赖于当前时刻之前的输出。为了能够使得Decoder中的每一项都能够有重点的利用到编码器中所有单词的信息,在Decoder的Self-Attention模块之后,增加了Encoder-Decoder Attention模块。
ViT: Transformers for Image Recognition at Scale
ViT[6]是在谷歌在2020年提出的将Transformer直接应用于图像分类的模型,该模型结构如图1所示。ViT的Embedding过程如下:输入的2D图像记作
,其中H和W分别表示输入图像的高和宽,C表示通道数;通过切块操作得到一系列的图像块记作
,其中
;接着将图像块展平至大小为
的1D特征向量;然后通过线性变换将图像块映射到维度D记为
。由于ViT的自注意力模块(Self-Attention)具有置换不变性,为了降低模型的学习成本,ViT采用可学习的positional embedding来编码图像块的位置信息。除此之外,ViT增加了一个特殊的class embedding,
最终将patch embedding和class embedding进行拼接后与positional embedding求和作为Transformer Encoder的输入
图1 ViT模型架构示意图[6]
ViT的Transformer Encoder由6个Self-attention以及FFN堆叠而成。对于给定的query向量
,通过内积计算来匹配N个key向量
,得到的内积通过softmax函数归一化得到N个权重,则对于query而言Attention的输出实际为N个key向量(
)对应的value向量(
)的加权平均值。对于N个query向量(
),通过矩阵运算的Attention输出如公式(1)所示。
ViT的模型公式表达见公式(3)、(4)、(5)和(6)。
表示Transformer Encoder的输入embedding,包括patch embedding、positional embedding和class embedding。
分别表示MSA和MLP的输出。公式(4)是对class embedding对应的输出做layer norm,最终进行图像分类。
ViT定义了三种不同大小的模型,模型中参数信息如表1所示。
表1 Vision Transformer 不同模型参数信息[6]
实验结果表明:当ViT直接在ImageNet上训练时,同水平的ViT模型效果要比ResNet差,但如果规模较大的数据集上预训练后微调,模型效果可以超越ResNet。例如ViT在Google的300M JFT数据集上预训练后,在ImageNet上的最高Top-1 acc可达88.55%。
ViT是基于图像层面将标准的Transformer迁移于CV领域的创新性尝试。ViT直接应用标准的Transformer,类比NLP自然语言处理的tokens,将输入图像取patch操作并将patch embedding和class embedding进行拼接后与positional embedding求和作为Transformer Encoder的输入来完成有监督的图像分类任务。在没有引入任何的卷积操作到模型中的情况下,取得了不错的分类效果:中等规模的数据集上分类准确率略弱于CNN,大规模数据集上性能更佳。一方面可以看出,ViT充分展示了Transformer模型的通用性,并为后续Encoder-Decoder结构的研究指明了道路。另一方面,ViT受数据集规模影响较大,需要先在大规模数据集上进行预训练后,再迁移到目标数据集上获得较好的分类效果。
Perceiver: General Perception with Iterative Attention
Google DeepMind在2021年发表了Perceiver: General Perception with Iterative Attention[7]这篇文章。目前大多数AI方法,都是局限在“单模态”上,如限于NLP语言,或是限于语音,亦或是限于图像。Perceiver作为更加接近人类感知的算法,在不需要改变模型结构的前提下处理多模态数据。与ViT不同的是,Perceiver直接在图像的像素层面进行注意力计算,其模型结构如图2所示。模型总体上由两大基础结构组成:交叉注意力机制(cross-attention)和Transformer 编码器(latent transformer)。
图2 基于注意力机制的Perceiver模型架构示意图[7]
交叉注意力机制(cross-attention)的结构可参考Transformer解码器的多头注意力机制。输入向量(byte array)由按像素层面展开为1D得到,类比标准Transformer的input,向量长度为M。隐向量(latent array)由随机初始化得到,类比标准Transformer的output,向量长度为
,N为自定的超参数。输入向量通过MLP获得K和V向量,隐向量也通过MLP获得Q向量。Q、K、V通过交叉注意力机制融合后得到长度为N的隐向量,这样将原始输入数据的长度M降低为隐向量的长度N。
可以理解为,隐向量的获得Q向量多次与输入向量进行局部匹配,从而实现对输入向量的压缩。对标准的Transformer而言,直接对像素层面的图像输入进行Attention计算时具有平方复杂度。即一张图像展开为1D向量后的长度为M,需要产生向量
,此时Attention机制中
的计算复杂度为
。而Perceiver的交叉注意力机制引入非对称Q、K、V,即K(
)和V(
)来自byte array,而Q(
)来自latent array,此时Attention机制中
的计算复杂度为
。这使得模型直接处理原始大小的图像成为可能。
Transformer 编码器(latent transformer)包括Multi-head self-attention和FFN。隐向量先经过交叉注意力机制更新,在经过latent transformer更新。由于经过交叉注意力机制处理后的向量长度变为
,再进行Attention计算时的时间复杂度为
。相比于标准的Transformer,复杂度由
下降到
,复杂度大大降低。虽然通过从输入向量中提取K、V向量再送入交叉注意力机制可达到降维目的,但是这样的操作会限制模型从输入数据中捕捉足够的信息。这样多个堆叠的cross-attention和latent transformer这样的结构迭代地从输入数据中获取信息,相邻的cross-attention或者相邻的latent transformer之间进行参数共享,大大提高了参数利用率。
Perceiver将不同模型在ImageNet数据集上进行了分类实验,发现在没有引入任何先验知识的条件下,Perceiver的Top-1分类准确率可以达到最高。同时将数据集中图像的像素分别做相同规则打乱和随机打乱,比较不同模型在不同打乱方式下的Top-1分类准确率。结果表明,当对图像中的像素进行随机打乱时,其余方法的性能大幅度下降,只有基于Transformer和Perceiver方法的性能趋于稳定,并且基于Perceiver方法的Top-1分类准确率可高达76.4%。作者比较了不同模型在AudioSet 数据集上的目标检测的mAP,结果表明不论在单独使用视频或音频,以及两者结合使用,Perceiver都达到了最好的结果。最后,实验分析了不同模型在Model-Net40点云数据集上的分类准确率,得出了在不引入任何额外的几何特征和增强技术的条件下,Perceiver在Model-Net40点云数据集中分类效果是最佳的结论。
一方面与大多数Vision Transformer对原始输入信号的处理方式不同的是,Perceiver直接在图像的像素层面进行注意力计算。Perceiver的交叉注意力机制引入非对称Q、K、V,即K和V向量来自byte array,而V向量来自latent array,此时Attention机制的计算复杂度为
,这使得模型可直接处理原始大小的图像。交叉注意力机制将高维输入向量映射为低维隐向量,Transformer编码器将该低维隐向量的特征空间映射到同维度的另一特征空间,与标准的Transformer相比,时间复杂度大大降低。
另一方面,虽然Perceiver引入非对称机制可以在一定程度上降低计算复杂度,但该操作会限制模型从输入数据中捕捉足够的信息。所以Perceiver堆叠了多个cross-attention和Transformer的模块不断迭代来充分挖掘输入向量的信息。总体来说,Perceiver在几乎没有做任何关于输入数据之间关系的结构性假设的前提下,可以扩展处理多种模态的高维数据。该方法的提出不仅提供处理多模态数据的新思路,也是对已有的Vision Transformer的进一步扩展。
结论与思考
本文就ViT及Perceiver讨论了Visual Transformer类模型的特点,并对Visual  Transformer的未来研究方向进行探讨。总体来说,Transformer凭借其与 CNN 相比的性能竞争力和巨大潜力,正在成为计算机视觉领域的热门话题。目前大多数应用都保留了Transformer在NLP任务中的原始形态,这一形态在未来是否会有更加适合视觉任务的改进版本尚且未知。除此之外,Transformer需要先在大规模数据集上进行预训练后,再迁移到目标数据集上获得较好的效果。未来Visual Transformer模型可能朝向通用性的模型框架发展,强调性能的同时进行高效的部署与运行。
参考文献
[1] Ashish Vaswani, Noam Shazeer, NikiParmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, Łukasz Kaiser, and Illia Polosukhin. Attention is all you need. Advances in neural information processing systems, 30:5998–6008, 2017.
[2] Jacob Devlin, Ming-Wei Chang, KentonLee, and Kristina Toutanova. Bert: Pre-training of deep bidirectional transformers for language understanding. In NAACL-HLT (1), 2019.
[3] Tom B Brown, Benjamin Mann, Nick Ryder, Melanie Subbiah, Jared Kaplan, Prafulla Dhariwal, Arvind Neelakantan, PranavShyam, Girish Sastry, Amanda Askell, et al. Language models are few-shot learners. arXiv preprint arXiv:2005.14165, 2020.
[4] Alexey Dosovitskiy, Lucas Beyer, Alexander Kolesnikov, Dirk Weissenborn, Xiaohua Zhai, Thomas Unterthiner, Mostafa Dehghani, Matthias Minderer, Georg Heigold, Sylvain Gelly, et al. Animage is worth 16x16 words: Transformers for image recognition at scale. arXiv preprintarXiv:2010.11929, 2020.
[5] Vaswani, Ashish, et al. "Attention is all you need."Advances in Neural Information Processing Systems. 2017.
[6] Dosovitskiy A, Beyer L, Kolesnikov A, et al. An Image is Worth 16x16 Words: Transformers for Image Recognition atScale[J]. 2020.
[7] Jaegle A, Gimeno F, Brock A, et al.Perceiver: General Perception with Iterative Attention[J]. 2021.
[8] Ying C, Cai T, Luo S, et al. Do Transformers Really Perform Bad for Graph Representation?[J]. arXiv preprint arXiv:2106.05234, 2021.
关于壁仞科技研究院
壁仞科技研究院作为壁仞科技的前沿研究部门,旨在研究新型智能计算系统的关键技术,重点关注新型架构,先进编译技术和设计方法学,并将逐渐拓展研究方向,探索未来智能系统的各种可能。壁仞科技研究院秉持开放的原则,将积极投入各类产学研合作并参与开源社区的建设,为相关领域的技术进步做出自己的贡献。
扫码关注我们
继续阅读
阅读原文