Transformer在计算机视觉领域的应用

Transformer在计算机视觉领域的应用

  • 发布时间:2021-06-19 11:00
  • 访问量:

【概要描述】自2020年以来,Transformer开始在计算机视觉领域大放异彩。本文分析两种Visual Transformer模型的特点,并对Visual Transformer未来的研究方向进行探讨。

Transformer在计算机视觉领域的应用

【概要描述】自2020年以来,Transformer开始在计算机视觉领域大放异彩。本文分析两种Visual Transformer模型的特点,并对Visual Transformer未来的研究方向进行探讨。

  • 分类:研究院
  • 作者:
  • 来源:
  • 发布时间:2021-06-19 11:00
  • 访问量:
详情

摘要

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)。结构数据首先经过自注意力模块得到加权后的特征向量,其中为公式(1)中的。将得到的特征向量作为前馈神经网络的输入得到如式(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图像记作,其中分别表示输入图像的高和宽,表示通道数;通过切块操作得到一系列的图像块记作,其中;接着将图像块展平至大小为 的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向量,通过内积计算来匹配个key向量,得到的内积通过softmax函数归一化得到个权重,则对于query而言Attention的输出实际为个key向量()对应的value向量()的加权平均值。对于个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,向量长度为。隐向量(latent array)由随机初始化得到,类比标准Transformer的output,向量长度为为自定的超参数。输入向量通过MLP获得K和V向量,隐向量也通过MLP获得Q向量。Q、K、V通过交叉注意力机制融合后得到长度为的隐向量,这样将原始输入数据的长度降低为隐向量的长度。可以理解为,隐向量的获得Q向量多次与输入向量进行局部匹配,从而实现对输入向量的压缩。对标准的Transformer而言,直接对像素层面的图像输入进行Attention计算时具有平方复杂度。即一张图像展开为1D向量后的长度为,需要产生向量,此时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, Niki Parmar, 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, Kenton Lee, 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, Pranav Shyam, 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. An image is worth 16x16 words: Transformers for image recognition at scale. arXiv preprint arXiv: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 at Scale[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.

近期文章

流体力学与物理导引神经网络

流体力学与物理导引神经网络

现代科学中众多复杂的关键应用依赖着对流体运动的精确预测。然而,由于流体力学方程数值求解的复杂性,基于传统数值方法的高分辨率长周期数值模拟运算量大且难以保证数值稳定性。本文将深入介绍PINN方法在流体计算中的应用并分析其与传统数值方法的差别。
2021-10-25
物理导引神经网络方法分析

物理导引神经网络方法分析

随着GPU能力的提升,支撑深度学习的软硬件生态得到了快速发展。通过深度学习来解决科学计算问题成了一种趋势,其中用深度学习来求解偏微分方程的方法也逐渐兴起。尤其引人注意的是一种称为物理导引神经网络的方法,其为科学计算领域注入了新的活力。
2021-10-18

联系我们

这是描述信息

招贤纳士

公众号二维码
这是描述信息

 版权所有   ©   上海壁仞科技有限公司   |    沪ICP备19047354号