A Survey on Vision Transformer

A Survey on Vision Transformer

https://arxiv.org/pdf/2012.12556.pdf


摘要-Transformer是一种主要基于自我注意机制的深度神经网络,首次应用于自然语言处理领域。由于其强大的表示能力,研究人员正在寻找将Transformer应用于计算机视觉任务的方法。在各种视觉基准测试中,基于Transformer的模型的性能类似于或优于其他类型的网络,如卷积神经网络和递归神经网络。由于Transformer的高性能和对视觉特定感应偏差的需求,Transformer越来越受到计算机视觉界的关注。在本文中,我们通过将这些视觉Transformer模型分为不同的任务,并分析了它们的优缺点。我们探索的主要类别包括骨干网络、高级视觉、低级视觉和视频处理。我们还包括高效的变压器方法,以推动Transformer到实际的基于设备的应用程序。此外,我们还简要介绍了计算机视觉中的自我注意机制,因为它是Transformer中的基本组件。在本文的最后,我们讨论了视觉Transformer面临的挑战,并提供了进一步的研究方向。

INTRODUCTION

深度神经网络(DNNs)已经成为当今人工智能(AI)系统的基本基础设施。不同类型的任务通常涉及不同类型的网络。例如,多层感知器(MLP)或全连接(FC)网络是经典的神经网络,它由多个线性层和非线性激活堆叠在一起[1],[2]。卷积神经网络(CNNs)引入卷积层和池化层用于处理位移位不变数据,如图像[3]、[4]。递归神经网络(RNNs)利用递归细胞处理序列数据或时间序列数据[5],[6]。Transformer是一种新型的神经网络。它主要利用自注意机制[7]、[8]来提取内在特征[9],在人工智能应用中显示出巨大的广泛应用潜力。Transformer首先应用于自然语言处理(NLP)任务,它取得了显著的改进[9],[10],[11]。例如,Vaswani等人[9]首先提出了基于注意机制的机器翻译和英语选区解析任务。Devlin等人[10]引入了一种名为BERT(BERT的双向编码器表示)的缩写,该模型对未标记文本预训练Transformer,并考虑到每个单词的上下文,因为它是双向的。当BERT发布时,它在11个NLP任务上获得了最先进的性能。Brown等[11]对45TB的压缩明文数据使用1750亿个参数。它在不同类型的下游自然语言任务上取得了很强的性能,而不需要进行任何微调。这些基于Transformer的模型具有较强的表示能力。

受Transformer架构在自然语言处理领域的重大成功的启发,研究人员最近将变压器应用于计算机视觉(CV)任务。在视觉应用中,CNNs被认为是基本的组件[12],[13],但现在的变压器显示它是CNN的一个潜在的替代品。Chen等人[14]训练了一个序列转换器来自动回归预测像素,在图像分类任务上获得了与cnn相当的结果。另一种视觉Transformer模型是ViT,它将一个纯Transformer直接应用于图像补丁序列,对完整图像进行分类。最近由多索维茨基等人提出的[15],它已经在多个图像识别基准上取得了最先进的性能。除了图像分类外,Transformer还被用于解决各种其他视觉问题,包括目标检测[16]、[17]、语义分割[18]、图像处理[19]和视频理解[20]。由于其卓越的性能,越来越多的研究人员正在提出了基于Transformer的模型,以改进广泛的视觉任务。

由于基于Transformer的视觉模型数量的快速增加,跟上新进展的速度变得越来越困难。因此,对现有的工程进行调查是紧迫的,并将有利于社区。在本文中,我们重点介绍了视觉Transformer的最新进展的全面概述,并讨论了进一步改进的潜在方向。为了便于未来对不同主题的研究,我们根据Transformer模型的应用场景对Transformer模型进行了分类,如表1所示。主要类别包括骨干网络、高级视觉、低级视觉和视频处理。高级视觉处理的是对图像[21]中所见的解释和使用,而中级视觉处理的是这些信息如何被组织成我们所经历的物体和表面[22]。鉴于在基于DNN的视觉系统[23]和[24]中,高级和中级视觉之间的差距正变得越来越模糊,我们在这里将它们视为一个单一的类别。解决这些高/中级视觉任务的Transformer模型的一些例子包括DETR [16]、用于目标检测的可变形DETR [17]和用于分割的Max-DeepLab [25]。低级图像处理主要处理从图像中提取描述(这种描述通常用图像本身表示)[26]。低级图像处理的典型应用包括超分辨率、图像去噪和样式传输。目前,只有少数[19]、[27]使用变压器,需要进一步的研究。另一类是视频处理,它在计算机视觉和基于图像的任务中都是重要组成部分。由于视频的顺序特性,Transformer本质上非常适合用于视频任务[20],[28],其中它开始执行与传统的cnn和rnn相当。在这里,我们调查了与基于Transformer的视觉模型相关的工作,以跟踪该领域的进展。图1显示了视觉Transformer的开发时间表——毫无疑问,未来将会有更多的里程碑。

本文的其余部分组织如下。第2节讨论了标准Transformer的制定和自注意机构。第4节是本文的主要部分,我们总结了主干、高级视觉、低级视觉和视频任务的视觉Transformer模型。我们还简要地描述了高效的变压器方法,因为它们与我们的主要主题密切相关。在最后一节中,我们给出了我们的结论,并讨论了几个研究方向和挑战。由于页面的限制,我们在补充材料中描述了NLP中Transformer的方法,因为研究经验可能有利于视觉任务。在补充材料中,我们还回顾了CV作为视觉Transformer模型的补充时的自注意机制。在这次调查中,我们主要包括具有代表性的作品(早期、先锋、小说或启发性的作品),因为在arXiv上有许多预印的作品,我们不能将它们全部包含在有限的页面中。
在这里插入图片描述
图1:Transformer开发过程中的关键里程碑。视觉Transformer型号用红色标记。

FORMULATION OF TRANSFORMER

Transformer[9]首次用于自然语言处理(NLP)领域的机器翻译任务。如图2所示,它由一个编码器和一个解码器和几个相同架构的Transformer块。编码器生成输入的编码,而解码器接受所有的编码,并使用它们合并的上下文信息来生成输出序列。每个变压器块由多头注意层、前馈神经网络、快捷连接和层归一化组成。在下面,我们将详细描述Transformer的每个组件。

Self-Attentiond

在自注意层中,首先将输入向量转换为三个不同的向量:查询向量q、关键向量k和值向量v,维数为 d q = d k = d v = d m o d e l = 512 d_q = d_k = d_v = d_{model} = 512 dq=dk=dv=dmodel=512。然后将来自不同输入的向量打包成三个不同的矩阵,即Q、K和v。随后,计算不同输入向量之间的注意函数如下(如图3左所示):

图2:原Transformer的结构(图像来自[9])。
  • 步骤1:用 S = Q ⋅ K T S = Q·K^T S=QKT计算不同输入向量之间的得分;
  • 步骤2:用 S n = S / √ d k S_n = S/√d_k Sn=S/√dk对梯度的稳定性评分进行归一化处理;
  • 步骤3:用 p = s o f t m a x ( S n ) p=softmax(S_n) p=softmaxSn将分数转换为概率;\
  • 步骤4:得到具有 Z = V ⋅ P Z=V·P Z=VP的加权值矩阵。

该过程可以统一为一个单一的功能:

在这里插入图片描述等式背后的逻辑1是很简单的。步骤1计算每对不同向量之间的分数,这些分数决定了我们在当前位置编码单词时给予其他单词的注意程度。步骤2步标准化分数以增强梯度稳定性以改进训练,步骤3步将分数转化为概率。最后,将每个值向量乘以概率之和。概率较大的向量从以下层获得额外的焦点。

在这里插入图片描述
解码器模块中的编码器-解码器注意层与编码器模块中的自注意层相似,但有以下例外情况:键矩阵K和值矩阵V来自编码器模块,查询矩阵Q来自上一层。

请注意,前面的过程对每个单词的位置都是不变的,这意味着自我注意层缺乏捕捉句子中单词的位置信息的能力。然而,一种语言中句子的顺序性质要求我们在编码中包含位置信息。为了解决这个问题,并允许获得单词的最终输入向量,在原始输入嵌入中添加了一个带有维数数据模型的位置编码。具体来说,该位置用以下公式进行编码:
在这里插入图片描述其中,pos表示单词在句子中的位置,i表示位置编码的当前维度。这样,位置编码中的每个元素都对应于一个正弦曲线,它允许Transformer模型通过相对位置学习参与,并在推理期间推断出更长的序列长度。除了vanilla transformer中的固定位置编码外,学习到的位置编码[48]和相对位置编码[49]也被用于各种模型[10],[15]。

多头注意力多头注意是一种可以用来提高vanilla 自我注意层性能的机制。请注意,对于一个给定的参考词,我们在浏览句子时通常希望关注其他几个单词。单头自我注意层限制了我们专注于一个或多个特定位置的能力,而不会同时影响对其他同样重要的位置的注意力。

图3:(左)自我注意过程。(右)多头注意力。图片来自[9]。

这是通过给注意层不同的表示子空间来实现的。具体来说,对于不同的头部,使用不同的查询矩阵、键矩阵和值矩阵,这些矩阵可以通过随机初始化训练后将输入向量投影到不同的表示子空间中。

为了更详细地说明这一点,给定一个输入向量和头的数量h,首先将输入向量转换为三组不同的向量组:查询组、键组和值组。在每一组中,都有h个向量,维数为在这里插入图片描述。然后,来自不同输入的向量被打包成三组不同的矩阵:{Qi}=1,{Ki}=1和{==1。多头注意过程如下:
在这里插入图片描述

Other Key Concepts in Transformer

前馈网络。在每个编码器和解码器的自注意层之后,应用一个前馈网络(FFN)。由两个线性变换层和其中的一个非线性激活函数组成,可记为以下函数:
在这里插入图片描述
其中, W 1 W_1 W1 W 2 W_2 W2为两个线性变换层的两个参数矩阵,σ表示非线性激活函数,如GELU [50]。隐层的维数为 d h d_h dh = 2048。

编码器和解码器中的残余连接。如图2所示,在编码器和解码器中的每个子层添加残余连接。这加强了信息流,以实现更高的性能。在剩余连接之后进行层归一化[51]。这些操作的输出可以描述为:
在这里插入图片描述
这里,X作为自注意层的输入,查询、键和值矩阵Q、K和V都来自同一个的输入矩阵X。变量层前归一化(Pre-LN)也被广泛用于[52]、[53]、[15]。预ln在剩余连接内部插入层标准化,在多头注意或FFN之前。对于规范化层,有几种替代方案,如批处理规范化[54]。当特征值剧烈地[55]变化时,批量标准化的效果通常更差。本文还提出了其他一些归一化算法[56]、[55]、[57]来改进变压器的训练。

解码器中的最后一层。解码器中的最后一层用于将向量堆栈转换回一个单词。这是通过一个线性层和一个softmax层来实现的。线性层将该向量投影到一个具有dword维数的对数向量中,其中 d w o r d d_{word} dword是词汇表中的单词数。然后使用softmax层将对数向量转换为概率。

当用于CV任务时,大多数Transformer采用原有变压器的编码器模块。这种Transformer可以作为一种新型的特征提取器来处理。与只关注局部特性的cnn相比,Transformer能够捕捉长距离特性,这意味着它可以很容易地获取全局信息。与必须依次计算隐藏状态的rnn相比,Transformer的效率更高,因为自注意层和全连接层的输出可以并行计算,而且很容易加速。由此,我们可以得出结论,进一步研究使用Transformer在计算机视觉和NLP将产生有益的结果。

VISION TRANSFORMER

在本节中,我们将回顾基于Transformer的模型在计算机视觉中的应用,包括图像分类、高/中水平视觉、低水平视觉和视频处理。并简要总结了自注意机制和模型压缩方法在高效Transformer中的应用。

图4:使用卷积和注意度对主干进行分类。

Backbone for Representation Learning

受Transformer在自然语言处理领域取得的成功的启发,一些研究人员探索了类似的模型是否可以学习有用的图像表示。考虑到图像比文本涉及更多的维度、噪声和冗余模态,它们被认为更难进行生成建模。

除了cnn外,该Transformer还可以作为图像分类的主干网络。Wu等人[58]采用ResNet作为一个方便的基线,并使用视觉Transformer来取代卷积的最后阶段。具体来说,它们应用卷积层来提取低级特征,然后将其输入视觉Transformer。对于视觉Transformer,他们使用一个标记发生器将像素分组为少量的视觉标记,每个标记表示图像中的一个语义概念。这些视觉令牌直接用于图像分类,而Transformer则用于建模令牌之间的关系。如图4所示,这些工作可以分为纯使用Transformer进行视觉转换和CNN和变压器相结合。我们在表2和图6中总结了这些模型的结果,以演示骨干的开发。除了监督学习外,在视觉Transformer中也探索了自我监督学习。

Pure Transformer

ViT。视觉变压器(ViT)[15]是一种直接应用于图像补丁序列的图像分类任务。它尽可能地遵循变压器的原始设计。图5显示了ViT的框架。

为了处理二维图像,将图像X∈Rh×w×c重塑为一个扁平的二维补丁Xp∈Rn×(p2·×)序列,使×为通道数。(h、w)为原始图像的分辨率,(p、p)为每个图像补丁的分辨率。因此,变压器的有效序列长度为 n = h w / p 2 n = hw/p^2 n=hw/p2。因为Transformer在其所有层中使用恒定的宽度,可训练的线性投影将每个向量路径映射到模型维d,它的输出称为补丁嵌入。

与BERT的[类]令牌类似,一个可学习的嵌入被应用于嵌入补丁的序列。这种嵌入的状态可以作为图像的表示。在训练前和微调阶段,分类头被附加到相同的大小。此外,一维位置嵌入被添加到补丁嵌入中,以保留位置信息。值得注意的是,ViT只使用了标准Transformer的编码器(除了为层规范化的地方),其输出在一个MLP头之前。在大多数情况下,ViT是在大型数据集上进行预先训练的,然后针对使用较小数据的下游任务进行微调。

当在ImageNet等中等大小的数据集上进行训练时,ViT产生的结果适中,准确率比相当大小的resnet低几个百分点。因为Transformer缺乏一些cnn固有的归纳偏差——如翻译等方差和局部性——当在足够量的数据下训练时,它们不能很好地泛化。然而,作者发现,在大数据集(1400万到3亿张图像)上训练模型超过了归纳偏差。当在足够的规模上进行预训练时,Transformer在具有较少数据点的任务上取得了优异的结果。例如,当在JFT-300M数据集上进行预训练时,ViT在多个图像识别基准上接近甚至超过了最先进的性能。

具体来说,它在ImageNet上达到了88.36%,在VTAB的19个任务套件上达到了77.16%。

Touvron等人[59]提出了一种竞争性的无卷积转换器,称为数据高效图像Transformer(DeiT),通过只在ImageNet数据库上进行训练。参考视觉变压器DeiT-B具有与ViT-B相同的架构,使用了8600万个参数。在强大的数据增强下,DeiTB在没有外部数据的情况下,在ImageNet上达到了83.1%(单作物评估)。此外,作者观察到,使用CNN教师比使用Transformer的性能更好。具体来说,DeiT-B可以通过基于令牌的蒸馏实现前1的准确率84.40%。

图5:ViT的框架(图像来自[15])。

ViT的变体。根据ViT的范式,一系列不同的ViT被提出来提高视觉任务的性能。主要的方法包括提高局部性、自我注意改进和建筑设计。

原始的视觉转换器擅长捕捉斑块之间的长期依赖关系,但忽略了局部特征提取,因为二维斑块被投影到一个向量上,具有简单的线性层。最近,研究人员开始关注提高本地信息[29]、[60]、[61]的建模能力。TNT [29]进一步将补丁划分为多个子块,并引入了一种新的Transformer内Transformer结构,该结构利用内部Transformer块建模子块与外部Transformer块之间的关系,用于补丁级信息交换。双胞胎[62]和CAT [63]交替地逐层地执行局部和全局注意。Swin Transformer[60],[64]在一个窗口内执行局部注意,并为跨窗口连接引入了一种移位的窗口划分方法。洗牌 Transformer[65],[66]进一步利用空间洗牌操作,而不是移动的窗口分区来允许跨窗口连接。区域维[61]从图像生成区域标记和本地标记,本地标记通过区域标记的关注接收全球信息。除了局部关注之外,其他一些工作还提出通过局部特征聚合来提高局部信息,例如T2T [67]。这些工作证明了在视觉Transformer中进行本地信息交换和全局信息交换的好处。

自注意层作为Transformer的关键组成部分,提供了图像斑块之间的全局交互能力。改进自我注意层的计算方法已经吸引了许多研究者。DeepViT [68]提出建立十字头通信,重新生成注意力图,以增加不同层次的多样性。KVT [69]引入了k-NN注意来利用图像斑块的局部性,并通过只计算具有顶部-k个相似标记的注意来忽略噪声标记。更精细的[70]探索了在高维空间中的注意扩展,并应用卷积来增强注意映射的局部模式。XCiT [71]通过特征通道而不是令牌进行自注意计算,这允许高效地处理高分辨率图像。自注意机制的计算复杂度和注意精度是未来优化的两个关键。

网络架构是cnn领域中的一个重要因素。ViT的原始架构是一个相同形状的Transformer块的简单堆栈。视觉Transformer的新架构设计一直是一个有趣的话题。金字塔状结构采用[72]、[60]、[73]、[74]、[75]、[76],包括PVT [72]、HVT [77]、Swin Transformer[60]和PiT [78]。还有其他类型的架构,如双流架构[79]和U-net架构[80],[30]。神经结构搜索(NAS)也被研究以寻找更好的Transformer架构,例如,缩放-ViT[81],ViTAS[82],自动变形器[83]和GLiT [84]。目前,视觉Transformer的网络设计和NAS都主要借鉴了CNN的经验。在未来,我们期望具体的和新颖的架构出现在视觉Transformer的领域。

除上述方法外,还有其他一些进一步改进视觉Transformer的方向,如位置编码[85]、[86]、归一化策略[87]、快捷连接[88]和去除注意力[89]、[90]、[91]、[92]。

Transformer with Convolution

虽然视觉Transformer已经成功地应用于各种视觉任务,因为它们能够捕获输入中的长期依赖关系,但在Transformer 和现有的cnn之间仍存在性能差距。一个主要原因可能是缺乏提取本地信息的能力。除了上述增强局部性的ViT变体外,将变压器与卷积相结合可能是将局部性引入常规变压器的一种更直接的方法。

有很多工作试图增加一个传统的Transformer块或自注意层与卷积。例如,CPVT [85]提出了一种条件位置编码(CPE)方案,该方案以输入令牌的局部邻域为条件,并可适应任意的输入大小,以利用卷积进行精细级特征编码。CvT [96]、CeiT [97]、LocalViT [98]和CMT [94]分析了直接从NLP中借用Transformer架构并将卷积与变压器结合在一起时的潜在缺陷。具体地说,每个变压器块中的前馈网络(FFN)与一个卷积层相结合,这促进了相邻令牌之间的相关性。LeViT [99]重新考察了大量关于cnn的文献中的原理,并将其应用于变压器,提出了一种用于快速推理图像分类的混合神经网络。在BoTNet [100]的最后三个瓶颈块中,用全局自注意取代了空间卷积,并在实例分割和目标检测任务上显著改进了基线,并且具有最小的延迟开销。

此外,一些研究者已经证明,基于Transformer的模型更难获得良好的数据[15]、[101]、[102]的拟合能力,也就是说,它们对优化器、超参数和训练计划的选择都很敏感。

表2:代表性CNN和视觉Transformer模型的ImageNet结果比较。pure Transformer意味着只在杆级上使用几个卷积。CNN +Transformer是指在中间层中使用卷积。在[59],[60]之后,在NVIDIA V100 GPU和Pytouch上测量吞吐量,输入大小为224×224。

视觉[101]显示了两种不同的训练设置下Transformer和cnn之间的差距。第一个是cnn的标准设置,即训练计划更短,数据增强只包含随机裁剪和水平翻转。另一种是在[59]中使用的训练设置,即训练计划更长,数据增强更强。[102]改变了ViT的早期视觉处理,用一个标准的卷积干替换了ViT的嵌入干,并发现这种变化允许ViT更快地收敛,并允许使用AdamW或SGD,而不会显著下降准确性。除了这两个工作,[99],[94]还选择在Transformer的顶部添加卷积杆。

Self-supervised Representation Learning

基于生成的方法。图像生成预训练方法长期存在[103]、[104]、[105]、[106]。Chen等人,[14]重新研究了这类方法,并将其与自我监督的方法相结合。在此之后,提出了[107]、[108]来扩展基于生成的视觉Transformer自监督学习。

我们简要介绍了iGPT [14]来演示其机制。这种方法包括一个训练前阶段,然后是一个微调阶段。在训练前阶段,探索了自回归和BERT目标。为了实现像素预测,采用序列转换架构而不是语言标记(NLP中使用的)。当与早期停止结合使用时,预训练可以被认为是一个有利的初始化或规则化器。在微调阶段,他们会向模型中添加一个小的分类头。这有助于优化一个分类目标,并适应所有的权重。

采用k-均值聚类的方法,将图像像素转换为序列数据。给定一个由高维数据 x = ( x 1 ⋅ ⋅ ⋅ ⋅ x n ) x=(x_1····x_n) x=x1⋅⋅⋅⋅xn组成的未标记数据集X,他们通过最小化数据的负对数似然来训练模型:

在这里插入图片描述
式中, p ( x ) p (x) p(x)为图像数据的概率密度,可以建模为:

在这里插入图片描述这里,对 1 ≤ i ≤ n 1\leq i \leq n 1in采用恒等式排列 π i = i \pi_i=i πi=i,也称为栅格顺序。陈等et al.也考虑了伯特目标,样本子序列M⊂[1,n],这样每个指数我独立的概率0.15出现在M. M被称为伯特面具,和模型训练通过最小化的负对数可能性“蒙面”元素 x M x_M xM条件的“揭露”的 x [ 1 , n ] / M x_{[1,n]}/M x[1n]/M

在训练前阶段,他们选择 L A R L_{AR} LAR L B E R T L_{BERT} LBERT,并尽量减少训练前数据集的损失。

采用了Transformer解码器块的GPT-2 [109]公式。为了确保在训练AR目标时具有适当的条件反射,Chen等人将标准的上三角掩模应用于注意日志的 n × n n×n n×n个矩阵。当使用BERT目标时,不需要注意日志屏蔽: Chen等人在将内容嵌入应用于输入序列后的位置为零。在最后的转换层之后,他们应用一个层范数,并从输出学习投影到对每个序列元素的条件分布的日志。当训练BERT时,他们只是忽略了未隐藏位置的日志。

在微调阶段,他们将跨序列维的最后一层归一化层的输出进行平均池化,以提取每个示例的d维特征向量。他们学习从合并特征到类对数的投影,并使用这个投影来最小化交叉熵损失。实际应用提供了经验证据,表明交叉熵损失和训练前损失(LAR或LBERT)的联合目标效果更好。

iGPT和ViT是将应用变压器应用于视觉任务的两个开创性工作。iGPT和ViT-like模型的区别主要在于3个方面:1)iGPT的输入是聚类像素的调色板序列,ViT均匀地将图像划分为多个局部补丁;2)iGPT的体系结构为编解码器框架,而ViT只有变压器编码器;3) iGPT利用自回归自监督损失进行训练,ViT通过监督图像分类任务进行训练。

基于对比学习的方法。目前,对比学习是计算机视觉中最流行的自我监督学习方式。对比学习已应用于无监督预训练[31],[110],[111]。

Chen等人[31]研究了训练自我监督ViT的几个基本成分的影响。作者观察到,不稳定性是降低准确性的一个主要问题,这些结果确实是部分失败,当训练更稳定时,它们可以得到改进。

他们引入了一个“MoCov3”框架,这是对MoCo [112]的一个增量改进。具体来说,作者在随机数据增强下为每幅图像取两种作物。它们是由两个编码器fq和fk进行编码的,输出向量为q和k。直观地说,q的行为就像一个“查询”,学习的目标是检索相应的“键”。这被表述为最小化一个对比损失函数,它可以写成:

在这里插入图片描述
这里 k + k^+ k+ f k ′ f_k' fk在q在同一图像上的输出,称为q的正样本。集合 k − k^- k f k ′ f_k' fk的输出组成,称为q的负样本。 τ \tau τ l 2 − l_2- l2归一化q,k的温度超参数。MoCo v3使用在同一批中自然共存的密钥,并放弃内存队列,他们发现如果批足够大,内存队列的增益就会递减(例如,4096)。通过这种简化,就可以用一种简单的方式来实现对比损失。编码器 f q f_q fq由一个主干(例如,ViT)、一个投影头和一个额外的预测头组成;而编码器 f k f_k fk具有主干和投影头,但没有预测头。 f k f_k fk f q f_q fq的移动平均数更新,不包括预测头。

MoCo v3表明,不稳定性是训练自监督ViT的一个主要问题,因此他们描述了一个简单的技巧,可以提高各种实验情况下的稳定性。他们观察到没有必要训练贴片投影层。对于标准的ViT补丁大小,补丁投影矩阵是完整的或过完整的。在这种情况下,随机投影应该足以保存原始斑块的信息。然而,这个技巧减轻了这个问题,但并不能解决它。如果学习速率太大,而第一层不太可能是导致不稳定的根本原因,那么该模型仍然可能是不稳定的。

Discussions

视觉Transformer的所有组成部分,包括多层自注意、多层感知器、快捷连接、层归一化、位置编码和网络拓扑结构,在视觉识别中起着关键作用。如上所述,为了提高视觉Transformer的有效性和效率。

从图6的结果可以看出,CNN和变压器的结合取得了更好的性能,表明它们通过本地连接和全局连接相互互补。对主干网络的进一步研究可以改善整个视觉社区。对于视觉转换器的自监督表示学习,我们仍然需要努力在NLP领域中追求大规模预训练的成功。

High/Mid-level Vision

近年来,人们对将Transformer用于高级计算机视觉任务越来越感兴趣,如目标检测[16],[17],[113],[114],[115],车道检测[116]、分割[33],[25],[18]和姿态估计[34],[35],[36],[117].我们将在本节中回顾这些方法。

Generic Object Detection

传统的目标探测器主要建立在cnn的基础上,但基于Transformer的目标检测由于其优越的能力而引起了人们的广泛关注。

一些目标检测方法已经尝试利用Transformer的自注意机制,然后增强了现代检测器的特定模块,如特征融合模块[118]和预测头[119]。我们在补充材料中讨论了这一点。基于Transformer的目标检测方法大致分为两类:基于Transformer的集预测方法[16]、[17]、[120]、[121]、[122]和基于Transformer的骨干方法[113]、[115],如图7所示。与基于cnn的探测器相比,基于Transformer的方法在精度和运行速度方面都表现出了很强的性能。表3显示了前面在COCO 2012 val集上提到的不同的基于Transformer的目标检测器的检测结果。

图7:基于变压器的目标检测的总体框架。

基于Transformer的检测集预测。Carion等人[16]提出的检测Transformer(DETR)是基于Transformer的检测方法的先驱,重新设计了目标检测的框架。DETR是一种简单而完全的端到端对象检测器,它将对象检测任务视为一个直观的集预测问题,消除了传统的手工制作的组件,如锚定生成和非最大抑制(NMS)后处理。如图8所示,DETR从CNN主干开始,从输入图像中提取特征。为了用位置信息补充图像特征,在将特征输入解码器Transformer之前,将平坦的特征添加固定的位置编码。解码器使用来自编码器的嵌入以及N个学习到的位置编码(对象查询),并产生N个输出嵌入。这里的N是一个预定义的参数,通常大于图像中的对象的数量。简单的前馈网络(FFNs)用于计算最终的预测,其中包括边界框坐标和类标签,以指示对象的特定类别(或表示对象不存在)。

与最初的按顺序计算预测的转换器不同,DETR并行解码N个对象。DETR采用二部匹配算法来分配预测对象和地面真实对象。如等式中所示11、匈牙利损失被用来计算所有匹配的对象对的损失函数。
在这里插入图片描述
其中 σ ^ \hat{σ} σ^为最优赋值, c i c_i ci p ^ σ ^ ( i ) ( c i ) \hat{p}_{\hat{σ}(i)}(c_i) p^σ^(i)(ci)分别为目标类标签和预测标签, b i b_i bi b ^ σ ^ ( i ) \hat{b}_{\hat{σ}}(i) b^σ^(i)为地面真值和预测边界框, y = ( c i , b i ) y = {(c_i,b_i)} y=cibi y ^ \hat{y} y^分别为对象的地面真值和预测值。DETR在目标检测方面显示了令人印象深刻的性能,在COCO基准上提供了与流行和良好的更快的R-CNN [13]基线相当的准确性和速度。
在这里插入图片描述
图8:DETR的总体架构(图像来自[16])。
DETR是一种基于Transformer的目标检测框架的新设计,使社区能够开发完整的端到端检测器。然而,香草的DETR带来了几个挑战,特别是,较长的训练计划和较差的性能对小物体。为了解决这些挑战,Zhu等人[17]提出了可变形的DETR,这已成为一种能够显著提高检测性能的流行方法。可变形的注意模块关注参考点周围的一组小的关键位置,而不是像Transformer中原始的多头注意机制那样查看图像特征图上的所有空间位置。该方法大大降低了计算的复杂度,并带来了快速收敛方面的好处。更重要的是,可变形的注意模块可以很容易地应用于融合多尺度特征。可变形的DETR比DETR具有更好的性能,训练成本降低了10×,提高了1.6×的推理速度。通过采用迭代边界盒细化方法和两阶段方案,可变形DETR可以进一步提高检测性能。

还有几种方法可以处理原始DETR的慢收敛问题。例如,Sun等[120]研究了DETR模型收敛速度慢的原因,发现这主要是由于Transformer解码器中的交叉注意模块。为了解决这个问题,提出了一个仅编码器版本的DETR,在检测精度和训练收敛性方面实现了相当大的提高。此外,设计了一种新的训练稳定性和收敛速度更快的二部匹配方案,并提出了两种基于转换的集预测模型TSP-FCOS和TSP-RCNN来改进具有特征金字塔的仅编码器DETR。与原来的DETR模型相比,这些新模型具有更好的性能。Gao等人[123]提出了空间调制共注意(SMCA)机制,通过限制共注意反应在初始估计的边界盒位置附近较高来加速收敛。

通过将所提出的SMCA模块集成到DETR中,在类似的推理代价下,可以用大约10×的训练期获得类似的mAP。

考虑到DETR的高计算复杂度,Zheng等人提出了一种自适应聚类Transformer(ACT)来降低预先训练的DETR的计算成本。ACT使用局部敏感性哈希(LSH)方法自适应地集群查询特征,并将注意力输出广播给所选原型所表示的查询。ACT用于替换预训练的DETR模型的自我注意模块,而不需要任何再训练。这种方法显著降低了计算成本,而精度略有下降。利用多任务知识蒸馏(MTKD)方法可以进一步降低性能下降,该方法利用原始Transformer来提取ACT模块。Yao等人[124]指出,DETR中的随机初始化是需要多解码器层、收敛速度慢的主要原因。为此,他们提出了高效的DETR,通过一个额外的区域建议网络将密集的先验纳入到检测管道中。更好的初始化使他们能够只使用一个解码器层,而不是六层,以通过更紧凑的网络实现具有竞争力的性能。

基于Transformer的检测主干网。与DETR通过Transformer将目标检测重新设计为集合预测任务不同,Beal等人[113]提出利用Transformer作为通用检测框架的骨干,如快速RCNN [13]。将输入图像分成几个补丁,输入一个视觉Transformer,其输出嵌入特征根据空间信息重新组织,然后通过检测头得到最终结果。一个大规模的预训练Transformer骨干可以给拟议的ViT-FRCNN带来好处。也有相当多的方法来探索多功能视觉Transformer主干设计[29],[72],[60],[62],并将这些骨干转移到传统的检测框架,如视网膜网[127]和级联R-CNN [128]。例如,Swin变压器的各种检测框架[60]通过类似的ResNet-50主干获得约4盒AP增益。

基于Transformer的目标检测的预训练。受NLP中Transformer预训练方案的启发,提出了几种方法来探索基于变压器的目标检测[32]、[126]、[129]的不同预训练方案。Dai等人[32]提出了目标检测的无监督预训练(UP-DETR)。具体地说,提出了一种新的无监督借口任务随机查询补丁检测,对DETR模型进行预训练。通过这种无监督的预训练方案,UP-DETR显著提高了在相对较小的数据集(PASCAL VOC)上的检测精度。在具有足够训练数据的COCO基准测试上,UP-DETR的性能仍然优于DETR,证明了无监督的预训练方案的有效性。

Fang等[126]探索了如何将在ImageNet上预训练的纯ViT结构转移到更具挑战性的目标检测任务中,并提出了YOLOS检测器。为了应对目标检测任务,所提出的YOLOS首先在ViT中删除了分类标记,并添加了可学习的检测标记。此外,还利用二部匹配损失对目标进行集合预测。在ImageNet数据集上采用了这个简单的预训练方案,所提出的YOLOS在COCO基准测试上显示出了具有竞争力的目标检测性能。

表3:COCO2017val集上不同基于变压器的目标探测器的比较。运行速度(FPS)是在[17]中报道的NVIDIA Tesla V100 GPU上进行评估的。根据论文中报告的数字估计的速度。ViT骨干在ImageNet-21k上进行了预训练。∗ViT主干网是在一个具有13亿张图像的私有数据集上进行预训练的。
在这里插入图片描述

Segmentation

分割是计算机视觉领域的一个重要课题,广泛包括全视觉分割、实例分割和语义分割等。视觉Transformer在分割领域也显示出了令人印象深刻的潜力。

全景分割用Transformer。DETR [16]可以自然地扩展到全光分割任务中,并通过在解码器上附加一个掩模头来实现竞争的结果。Wang等人[25]提出了Max-DeepLab使用掩模Transformer直接预测全光分割结果,而不涉及盒子检测等替代子任务。与DETR类似,Max-DeepLab以端到端的方式简化了全景分割任务,并直接预测一组不重叠的掩模和相应的标签。模型训练是使用全光质量(PQ)风格的损失进行的,但与之前将Transformer堆叠在CNN主干上的方法不同,MaxDeepLab采用了一个双路径框架,便于结合CNN和变压器。

变压器的实例分割 Transformer,例如分割。Wang等人[33]提出了一种基于Transformer的视频实例分割模型WangTR,用于从一系列输入图像中生成实例预测结果。提出了一种匹配实例序列的策略来分配预测结果。为了获得每个实例的掩码序列,VisTR利用实例序列分割模块从多个帧中积累掩码特征,并用三维CNN对掩码序列进行分割。Hu等人[130]提出了一个实例分割Transformer(ISTR)来预测低维掩模嵌入,并将其与集合损失的地面真实值进行匹配。ISTR采用一种不同于现有的自上而下和自下而上框架的递归细化策略进行检测和分割。Yang等[131]研究了如何在具有挑战性的多目标场景下实现更好、更有效的嵌入学习来解决半监督视频对象分割。

用于语义分割的转换器。Zheng等人[18]提出了一种基于Transformer的语义分割网络(SETR)。SETR利用一个类似于ViT [15]的编码器作为编码器,从输入图像中提取特征。采用多层特征聚合模块进行像素级分割。Strudel等人[134]介绍了分段器,它依赖于图像补丁对应的输出嵌入,并通过点线性解码器或掩码Transformer解码器获得类标签。Xie等人[135]提出了一个简单、高效而强大的语义分割框架,该框架将Transformer与轻量级多层感知(MLP)解码器结合起来,输出多尺度特征,避免了复杂的解码器。

用于医学图像分割的变压器。Cao等人[30]提出了一种类似于unet的纯变压器,通过将标记化的图像补丁输入基于Transformer的u型编码器-解码器架构中,用于局部-全局语义特征学习。[136]等人探索了基于Transformer的解决方案,并研究了使用基于Transformer的网络结构进行医学图像分割任务的可行性,并提出了一个门控轴向注意模型,该模型通过在自注意模块中引入一个额外的控制机制,扩展了现有的结构。单元DETR-DETR[137]基于DETR全光分割模型,尝试使用Transformer进行单元实例分割。它在分割头中增加了主干CNN和CNN解码器之间的跳过连接,以增强特征融合。细胞-detr实现了最先进的性能,为细胞实例分割从显微镜图像。

Pose Estimation

人体姿态和手的姿态估计是引起了研究界极大兴趣的基础课题。关节姿态估计类似于一个结构化的预测任务,目的是从输入的RGB/D图像中预测联合坐标或网格顶点。本文讨论了[34]、[35]、[36]、[117]等一些方法,探讨了如何利用变压器来建模人体姿态和手姿态的全局结构信息。

手姿态估计的Transformer。Huang等[34]提出了一种基于Transformer的网络,用于基于点集的三维手姿态估计。该编码器首先利用PointNet [138]从输入点云中提取点向特征,然后采用标准的多头自注意模块生成嵌入数据。为了向解码器公开更多的全局姿态相关信息,使用特征提取器如PointNet++ [139]提取器提取手关节特征,然后将其作为位置编码输入解码器。同样,Huang等人[35]提出了HOT-Net(手对象Transformer网络的缩写)用于三维手对象姿态估计。与前面使用Transformer直接从输入点云预测三维手姿态的方法不同,HOT-Net使用ResNet生成初始的二维手物体姿态,然后将其输入Transformer来预测三维手物体姿态。因此,我们使用了一个光谱图卷积网络来提取编码器的输入嵌入。Hampali等人[140]提出估计给定单一彩色图像的两只手的三维姿态。具体来说,将双手关节的一组潜在二维位置的外观和空间编码输入到Transformer中,并利用注意机制整理关节的正确配置,输出双手的三维姿态。

用于人体姿态估计的Transformer。Lin等人[36]提出了一种网格Transformer(METRO),用于从单一RGB图像中预测三维人体姿态和网格。METRO通过CNN提取图像特征,然后将模板人网格连接到图像特征上进行位置编码。提出了一种逐步降维的多层Transformer编码器,以逐步降低嵌入维数,最终生成人体关节和网格顶点的三维坐标。为了鼓励学习人类关节之间的非本地关系,METRO在训练期间随机屏蔽一些输入查询。Yang等人[117]基于变压器架构和低级卷积块构建了一个可解释的可转换模型。Transformer中内置的注意层可以捕捉关键点之间的长期空间关系,并解释预测的关键点位置高度依赖的依赖关系。Li等人[141]提出了一种基于令牌表示的人类姿态估计(令牌表示)的新方法。每个关键点都显式地嵌入作为一个标记,同时从图像中学习约束关系和外观线索。Mao等人[142]提出了一个人体姿态估计框架,以基于回归的方式解决了该任务。他们将姿态估计任务表述为一个序列预测问题,并通过Transformer来解决它,这绕过了基于热图的姿态估计器的缺点。Jiang等人[143]提出了一种基于Transformer的新型网络,该网络可以以无监督的方式学习姿势和运动的分布,而不是跟踪身体部位并试图在时间上平滑它们。该方法克服了检测的不准确性,并纠正了部分或整个骨架损坏。Hao等人[144]提出,在不使用任何人工注释的情况下,给定一组人的测试图像,以实现个性化的人体姿态估计器。该方法在测试期间调整了姿态估计器,利用特定于人的信息,并利用Transformer模型建立了自监督关键点和有监督关键点之间的转换。

Other Tasks

也有很多不同的高级/中级视觉任务已经探索了使用视觉Transformer以获得更好的性能。下面我们将简要回顾一下几个任务。

行人检测。由于物体在遮挡和人群场景中的分布非常密集,当将公共检测网络应用于行人检测任务时,往往需要额外的分析和自适应。Lin等人[145]发现,当直接将DETR或可变形的DETR应用于行人检测任务时,稀疏均匀查询和解码器中的弱注意场会导致性能下降。为了缓解这些缺陷,作者提出了行人端端检测器(PED),该方法采用了一种新的密集查询和整流注意场(DQRF)来支持密集查询,缓解查询的噪声或狭窄注意场。他们还提出了V-Match,它通过充分利用可见的注释来实现额外的性能改进。

车道检测。Liu等[116]基于[146][146],提出了一种LSTR方法,该方法通过使用Transformer网络学习全局上下文来提高曲线车道检测的性能。与多车道网络类似,LSTR将车道检测视为一项用多项式拟合车道的任务,并使用神经网络来预测多项式的参数。为了捕获车道和全局上下文的细长结构,LSTR在体系结构中引入了一个Transformer网络。这使得处理由cnn提取的低级特征成为可能。此外,LSTR使用匈牙利损失来优化网络参数。如[116]所示,LSTR优于多车道enet,使用5倍更少的参数,准确率提高2.82%,FPS提高3.65×。一个Transformer网络、CNN和匈牙利损失的结合,最终形成了一个精确、快速和微小的车道检测框架。考虑到整个车道线通常具有细长的形状和长距离,Liu等人[147]利用Transformer编码器结构来更有效地提取上下文特征。这种转换码器编码器结构大大提高了建议点的检测,依赖于上下文特征和全局信息,特别是在主干网络是一个小模型的情况下。

场景图。场景图是场景的结构化表示,它可以清晰地表示场景[148]中的对象、属性和对象之间的关系。为了生成场景图,大多数现有的方法首先提取基于图像的对象表示,然后在它们之间进行消息传播。图R-CNN [149]利用自注意来整合来自图中邻近节点的上下文信息。最近,沙里夫扎德等人[150]在提取的对象嵌入上使用了Transformer。[151]等人提出了一个名为Texemea的新管道,并使用预先训练的文本到文本转换变压器(T5)[152]从文本输入创建结构化图形,并利用它们来改进关系推理模块。T5模型使泰西美玛能够在文本中利用这些知识。

跟踪。一些研究人员还探索了在基于模板的判别跟踪器中使用变压器编码器-解码器体系结构,如TMT [153]、TrTr [154]和TransT [155]。所有这些工作都使用了一个类似于暹罗的跟踪管道来进行视频对象跟踪,并利用编码器-解码器网络来替代全局和丰富的上下文相互依赖的显式互相关操作。此外,Sun等人提出了穿越轨道[156],这是一个在线联合检测和跟踪管道。它利用查询键机制来跟踪已存在的对象,并引入一组学习对象查询来检测新到来的对象。在MOT17和MOT20基准测试上,Trans轨道分别达到了74.5%和64.5%的MOTA。

重新识别。他等人[157]提出了TransReID来研究纯Transformer在物体再识别(ReID)领域的应用。在对象ReID中引入Transformer网络时,通过重叠的TransReID切片来保留补丁周围的局部相邻结构,并引入二维双线性插值来帮助处理任何给定的输入分辨率。利用Transformer模块和损耗函数,提出了一个强大的基线,以实现与基于cnn的框架相当的性能。此外,还设计了拼图补丁模块(JPM)来促进对象的扰动不变和鲁棒特征表示,并引入了侧信息嵌入(SIE)来对侧信息进行编码。最终的框架TransReID在个人和车辆的ReID基准测试上都取得了最先进的性能。Liu等人[158]和Zhang等人[159]都提供了将Transformer网络引入基于视频的人Re-ID的解决方案。同样地,它们都利用分离的Transformer网络来细化空间和时间特征,然后利用交叉视图Transformer来聚合多视图特征。

点云学习。最近还出现了许多其他探索点云学习[160]、[161]、[162]的Transformer架构的工作。例如,Guo等人[161]提出了一种新的框架,用一个更合适的偏移注意模块代替原来的自注意模块,其中包括隐式拉普拉斯算子和归一化细化。此外,Zhao等人[162]设计了一种被称为点变压器的新型Transformer架构。所提出的自注意层对点集的排列是不变的,适用于点集处理任务。点Transformer在三维点云的语义分割任务中具有较强的性能。

Discussions

如前面几节所讨论的,Transformer在几个高级任务上显示出了强大的性能,包括检测、分割和姿态估计。在采用Transformer进行高级任务之前,需要解决的关键问题是输入嵌入、位置编码和预测损失。一些方法提出了从不同的角度改进自注意模块,如可变形注意[17]、自适应聚类[121]和点变压器[162]。然而,对Transformer用于高级视觉任务的探索仍处于初步阶段,因此进一步的研究可能是有益的。例如,是否有必要在Transformer之前使用CNN和PointNet等特征提取模块以获得更好的性能?如何才能像BERT和GPT-3在NLP领域所做的那样,使用大规模的训练前数据集来充分利用视觉Transformer?是否有可能预先训练单个Transformer模型,并对其进行微调,以针对不同的下游任务进行微调?如何通过结合对特定任务的先验知识来设计更强大的架构?之前的几项工作已经对上述主题进行了初步讨论,我们希望进行更多的研究,以探索更强大的高级Transformer。

Low-level Vision

很少有工作将Transformer应用于低水平的视觉领域,如图像的超分辨率和生成。这些任务通常将图像作为输出(例如,高分辨率或去噪的图像),这比分类、分割和检测等高级视觉任务更具挑战性,后者的输出是标签或盒子。

图9:图像生成用变压器的通用框架
Image Generation

将Transformer模型应用到图像生成任务中的一个简单而有效的方法是直接将架构从cnn转换为变压器,如图9 (a).所示Jiang等人[38]提出了TransGAN,它使用Transformer架构构建GAN。由于难以按像素级生成高分辨率的图像,因此通过在不同阶段逐步提高特征图的分辨率,从而利用内存友好型生成器。相应地,设计了一个多尺度鉴别器来处理不同阶段的输入大小的输入。介绍了网格自注意、数据增强、相对位置编码和修正归一化等各种训练方法,以稳定训练,提高训练性能。在各种基准数据集上的实验证明了基于Transformer的GAN模型在图像生成任务中的有效性和潜力。[163]等人提出了ViTGAN,它将几种技术引入到Transformer和鉴别器中来稳定训练过程和收敛性。

引入了自注意模块的欧氏距离,增强了Transformer鉴别器的敏感性。提出了自调制层范数和隐式神经表示来增强生成器的训练。因此,ViTGAN是第一个证明基于变压器的GANs可以实现与最先进的基于cnn的GANs相当的性能的工作。

Parmar等人[27]提出了图像Transformer,在推广Transformer模型的第一步,以自回归的方式制定图像转换和生成任务。图像Transformer由两部分组成:用于提取图像表示的编码器和用于生成像素的解码器。对于每个值为0−255的像素,学习256×维的嵌入,将每个值编码为一个d维向量,该向量作为输入输入编码器。该编码器和解码器采用了与[9]中相同的体系结构。每个输出像素 q ′ q' q是通过计算输入像素q和之前生成的像素 m 1 , m 2 , … m_1,m_2,\dots m1,m2,之间的自注意而产生的,与位置嵌入 p 1 , p 2 , … p_1,p_2,\dots p1,p2,.对于图像条件生成,如超分辨率和内绘制,使用编码器-解码器架构,其中编码器的输入是低分辨率或损坏的图像。对于无条件的和类条件的生成(即,对图像的噪声),只有解码器被用于输入噪声向量。由于解码器的输入是之前生成的像素(在生成高分辨率图像时涉及到较高的计算成本),因此提出了一种局部自注意方案。该方案仅使用最近生成的像素作为解码器的输入,使图像变压器在图像生成和翻译任务上实现了与基于cnn的模型相同的性能,证明了基于Transformer的模型在低级视觉任务上的有效性。

由于变压器模型难以直接生成高分辨率图像,Esser等人[37]提出了驯服Transformer。驯服Transformer由两个部分组成:一个VQGAN和一个变压器。VQGAN是VQVAE [164]的一种变体,它使用鉴别器和感知损失来提高视觉质量。通过VQGAN,图像可以用一系列上下文丰富的离散向量表示,因此这些向量可以很容易地通过自回归的变换模型进行预测。该Transformer模型可以学习生成高分辨率图像的远程交互作用。因此,所提出的驯服变压器在各种图像合成任务上取得了最先进的结果。

除了图像生成之外,DALL·E[41]还提出了文本到图像生成的Transformer模型,该模型根据给定的标题合成图像。整个框架由两个阶段组成。在第一阶段,利用一个离散的VAE来学习视觉码本。在第二阶段,文本被BPE码解码,相应的图像由第一阶段学习的dVAE解码。然后使用一个自回归变换器来学习编码文本和图像之间的先验。在推理过程中,图像的标记由Transformer进行预测,并由学习到的解码器进行解码。引入CLIP模型[40]来对生成的样本进行排序。对文本到图像生成任务的实验证明了该模型具有强大的能力。请注意,我们的调查主要关注纯视觉任务,我们在图9中没有包括DALL·E的框架。

Image Processing

最近的一些工作避免使用每个像素作为转换器模型的输入,而是使用补丁(像素集)作为输入。例如,Yang等人[39]提出了图像超分辨率纹理变压器网络(TTSR),在基于参考的图像超分辨率问题中使用了变压器架构。它的目的是将相关的纹理从参考图像转移到低分辨率的图像。以一个低分辨率图像和参考图像分别作为查询Q和键K,计算Q中每个patch q i q_i qi k i k_i ki之间的相关性 r i 、 j r_{i、j} rij为:

在这里插入图片描述
提出了一种硬注意模块,根据参考图像选择高分辨率特征V,从而利用相关性对低分辨率图像进行匹配。硬注意力图的计算方法如下:
在这里插入图片描述
最相关的参考补丁是 t i = v h i t_i=v_{h_i} ti=vhi,其中 t i t_i ti中的 T T T是转移特征。然后使用一个软注意模块将V转移到低分辨率特征。利用高分辨率纹理图像的传输特征和低分辨率特征来生成低分辨率图像的输出特征。通过利用基于转换器的架构,TTSR可以成功地在超分辨率任务中将纹理信息从高分辨率参考图像传输到低分辨率图像。

图10:IPT架构示意图(图片来自[19])。

与之前在单个任务上使用Transformer模型的方法不同,Chen等[19]提出了图像处理Transformer(IPT),它利用大型的预训练数据集,充分利用了Transformer的优势。它在几个图像处理任务中实现了最先进的性能,包括超分辨率、去噪和脱皮。如图10所示,IPT由多个头、一个编码器、一个解码器和多个尾端组成。介绍了针对不同图像处理任务的多头、多尾结构和任务嵌入方法。这些特性被分成补丁,这些补丁被输入到编解码器架构中。然后,输出将被重新定义为具有相同大小的特性。考虑到在大数据集上进行预训练的Transformer模型的优势,IPT使用ImageNet数据集进行预训练。具体来说,来自这个数据集的图像可以通过手动添加噪声、雨条纹或降采样来降级,以生成损坏的图像。退化的图像作为IPT的输入,原始图像作为输出的优化目标。并引入了一种自监督的方法来提高IPT模型的泛化能力。一旦模型被训练好,它就会通过使用相应的头部、尾部和任务嵌入来完成每个任务。IPT在很大程度上实现了图像处理任务的性能改进(例如,图像去噪任务中的2 dB),展示了将基于变压器的模型应用于低层次视觉领域的巨大潜力。

除了单图像生成外,Wang等人[165]提出了在三维室内场景生成中利用Transformer。通过将一个场景视为一系列对象,Transformer解码器可用于预测一系列对象及其位置、类别和大小。这使得场景前者在用户研究中优于传统的基于cnn的方法。需要注意的是,iGPT [14]是对一个类似于非绘画的任务进行预训练的。由于iGPT主要关注图像分类任务的微调性能,我们将这项工作更像是尝试使用变压器的图像分类任务,而不是低级视觉任务。

综上所述,与分类和检测任务不同,图像生成和处理的输出是图像。图11说明了在低级视觉中使用Transformer。

图像首先被编码到一系列令牌或补丁中,转换器编码器使用序列作为输入,允许Transformer解码器成功地生成所需的图像。在图像生成任务中,基于gan的模型直接学习解码器来生成补丁,通过线性投影输出图像,而基于转换器的模型训练自动编码器来学习图像的码本,并使用自动回归转换器模型来预测编码的令牌。为不同的图像处理任务设计合适的体系结构是一个有意义的研究方向。

Video Processing

Transformer在基于序列的任务上表现出色,特别是在NLP任务上。在计算机视觉(特别是视频任务)中,空间和时间维度信息被青睐,这导致了Transformer在许多视频任务中的应用,如帧合成[166]、动作识别[167]和视频检索[168]。

CONCLUSIONS AND DISCUSSIONS

Transformer具有良好的性能和巨大的潜力,正成为计算机视觉领域的热点。为了发现和利用Transformer的功率,如本文所总结的,近年来已经提出了许多方法。这些方法在广泛的视觉任务中都表现出良好的性能,包括骨干视觉、高/中级视觉、低水平视觉和视频处理。然而,Transformer在计算机视觉方面的潜力尚未得到充分的探索,这意味着仍有几个挑战需要解决。在本节中,我们将讨论这些挑战,并提供对未来前景的见解。

High-level Video Processing

视频动作识别。视频人类行为任务,顾名思义,包括识别和定位视频中的人类行为。语境(如他人和物体)在识别人类行为中起着关键作用。Rohit等人提出了动作Transformer[167]来建模感兴趣的人和周围环境之间的潜在关系。具体来说,使用I3D [169]作为骨干来提取高级特征图。从中间特征映射中提取的特征(使用RoI池)被视为查询(Q),而键(K)和值(V)是从中间特征中计算出来的。对这三个组成部分应用了自我注意机制,并输出了分类和回归预测。Lohit等人。[170]提出了一种可解释的可微模块,称为时间变压器网络,以减少类内方差,增加类间方差。此外,Fayyaz和Gall提出了一种时间变压器[171]来在弱监督设置下执行动作识别任务。除了人类动作识别,变压器已被用于群体活动识别[172]。Gavrilyuk等人提出了一种演员-变压器[173]架构来学习表示,使用由二维和三维网络生成的静态和动态表示作为输入。变压器的输出是预测的活动度。

视频检索。基于内容的视频检索的关键是找到视频之间的相似性。Shao等人[174]仅利用视频级特征的图像立面来克服相关的挑战,建议使用转换器来建模长期语义依赖关系。他们还引入了监督对比学习策略来进行硬负挖掘。在基准数据集上使用该方法的结果证明了其性能和速度优势。此外,Gabeur等人[175]提出了一种多模态变压器来学习不同的跨模态线索,以表示视频。

视频对象检测。要检测视频中的对象,同时需要提供全局和本地信息。Chen等人引入了内存增强的全局-本地聚合(MEGA)[176]来捕获更多的内容。具有代表性的特点提高了整体绩效,解决了无效和不足的问题。此外,Yin等人提出了一种聚合时空信息的时空变压器。这两个组件与另一个空间特征编码组件一起,在三维视频目标检测任务上表现良好。

多任务学习。未修剪的视频通常包含许多与目标任务无关的帧。因此,挖掘相关信息并对多余信息的丢弃至关重要。为了提取这些信息,Seong等人提出了视频多任务变压器网络[178],该网络可以处理未裁剪视频上的多任务学习。对于CoVieW数据集,任务是场景识别、动作识别和重要性评分预测。在ImageNet和位置365上的两个预训练的网络提取场景特征和对象特征。利用类任务转换矩阵(CCM),将多任务转换器堆叠起来,以实现特征融合。

低级视频处理

帧/视频合成。帧合成任务包括在两个连续的帧之间或在一个帧序列之后合成这些帧,而视频合成任务包括合成一个视频。Liu等人提出了整流变压器[166],它由特征嵌入、位置编码、编码器、查询解码器和合成前馈网络五个组成部分组成。与基于LSTM的工作相比,该通信变压器具有更并行的架构,取得了优越的效果。Schatz等人[179]提出了另一种基于变压器的方法,该方法使用循环变压器网络从新的角度合成人类行为。

视频涂漆。视频内画任务包括完成一个帧内任何缺失的区域。这是具有挑战性的,因为它需要合并沿着空间和时间维度的信息。Zeng等人提出了一种时空变压器网络[28],它将所有的输入帧作为输入,并并行填充。利用时空对抗性损失对变压器网络进行了优化。

Discussions

与图像相比,视频有一个额外的维度来编码时间信息。利用空间和时间信息有助于更好地理解视频。由于变压器的关系建模能力,通过同时挖掘时空信息,提高了视频处理任务。然而,由于视频数据的高复杂性和大量的冗余性,如何有效地、准确地建模空间和时间关系仍然是一个有待解决的问题。

Multi-Modal Tasks

由于基于文本的NLP变压器处理任务的成功,许多研究热衷于利用其处理多模态任务(如视频文本、图像文本和音频文本)的潜力。其中一个例子是VideoBERT [180],它使用一个基于cnn的模块对视频进行预处理,以获得表示令牌。然后,在这些标记上对变压器编码器进行训练,以学习下游任务的视频-文本表示,例如视频标题。其他一些例子包括VisualBERT [181]和VL-BERT [182],它们采用单流统一转换器来捕获视觉元素和图像-文本关系,用于下游任务,如视觉问题回答(VQA)和视觉常识推理(VCR)。此外,一些研究,如SpeechBERT [183],探索了用变压器编码器编码音频和文本对的可能性,以处理自动文本任务,如语音问题回答(SQA)。

除了上述开创性的多模态转换器,对比语言-图像预训练(CLIP)[40]以自然语言作为监督,以学习更有效的图像表示。CLIP联合训练一个文本编码器和一个图像编码器来预测相应的训练文本-图像对。CLIP的文本编码器是一种具有掩蔽自注意的标准转换器,用于保持预训练语言模型的初始化能力。对于图像编码器,CLIP考虑了两种类型的架构,ResNet和视觉转换器。CLIP在一个新的数据集上进行训练,该数据集包含从互联网上收集的4亿对(图像、文本)。更具体地说,给定一批N个(图像,文本)对,CLIP联合学习文本和图像嵌入,以最大化这N个匹配嵌入的余弦相似性,同时最小化N2−N个不正确匹配的嵌入。在零镜头传输上,CLIP显示了惊人的零镜头分类性能,在不使用任何ImageNet训练标签的情况下,在ImageNet-1K数据集上实现了76.2%的前1的准确率。具体地说,CLIP的文本编码器首先计算所有ImageNet标签的特征嵌入,然后由图像编码器计算所有图像的嵌入。通过计算文本和图像嵌入的余弦相似度,得分最高的文本-图像对应该是图像及其对应的标签。在30个不同的CV基准上的进一步实验表明了CLIP的零射击传输能力和CLIP学习到的特征多样性。

当CLIP根据文本中的描述来映射图像时,另一项工作DALL-E [41]合成了在输入文本中描述的类别的新图像。与GPT-3类似,DALL-E是一种多模态变压器,在330万对文本图像对的数据集上,对120亿个模型参数进行自动回归训练。更具体地说,训练DALL-E,两阶段训练过程,使用离散变分自动编码器使用256×256 RGB图像压缩成32×32图像32标记,然后在第二阶段中,一个自回归变压器训练模型联合分布在图像和文本标记。实验结果表明,DALL-E可以从头开始生成各种风格的图像,包括逼真的图像、卡通和表情符号,或者在仍然与文本中的描述相匹配的情况下扩展现有的图像。随后,Ding等人提出了CogView [42],这是一个带有类似于DALL-E的VQ-VAE标记器的转换器,但支持中文文本输入。他们声称CogView的性能优于DALL-E和以前的GAN-bsed方法,而且与DALLE不同的是,CogView不需要额外的CLIP模型来重新对来自变压器的样本进行排序,即DALL-E。

最近,提出了一种统一变压器(UniT)[43]模型来处理多模态多任务学习,该模型可以同时处理不同领域的多个任务,包括目标检测、自然语言理解和视觉语言推理。具体来说,UniT有两个变压器编码器来分别处理图像和文本输入,然后变压器解码器根据任务模态接收单个或连接的编码器输出。最后,对不同任务的解码器输出。在训练阶段,所有任务都通过在迭代中随机选择特定任务进行联合训练。实验表明,通过一组紧凑的模型参数,UniT在每个任务上都取得了良好的性能。

综上所述,基于电流变压器的多模态模型证明了其在统一数据和各种任务方面的架构优势,展示了变压器在构建能够处理大量应用的通用智能代理方面的潜力。未来的研究可以进一步探索多模态变压器的有效训练或可扩展性。

Efficient Transformer

尽管变压器模型在各种任务中都取得了成功,但它们对内存和计算资源的高要求阻碍了它们在移动电话等资源有限的设备上的实现。在本节中,我们回顾了对压缩和加速变压器模型的研究。这包括网络剪枝、低秩分解、知识蒸馏、网络量化和紧凑的架构设计。表4列出了压缩基于变压器的模型的一些代表性工作。

Pruning and Decomposition

在基于变压器的预训练模型(如BERT)中,并行执行多个注意操作,以独立建模不同令牌[9]、[10]之间的关系。然而,特定的任务并不要求使用所有的头部。例如,Michel等人[44]提出了经验证据,表明在测试时,很大比例的注意力头可以被移除,而不会显著影响表现。在不同的层中,所需要的头的数量是不同的——有些层甚至可能只需要一个头。考虑到注意力头的冗余,定义重要性分数来估计每个头对[44]最终输出的影响,可以去除不重要的头以有效部署。Dalvi等人[184]从两个角度:一般冗余和任务特定冗余,分析了预先训练好的变压器模型中的冗余。根据彩票假设[185],Prasanna等人[184]分析了BERT中的彩票,发现基于变压器的模型中也存在良好的子网络,降低了FFN层和注意头,以实现高压缩率。对于将图像分割成多个斑块的视觉变压器[15],Tang等[186]提出减少斑块计算以加速推理,考虑斑块对有效输出特征的贡献,可以自动发现冗余斑块。Zhu等人[187]将网络瘦身方法[188]扩展到视觉变压器,以减少FFN和注意模块中的线性投影的维数。

除了变压器模型的宽度外,还可以减少深度(即层数),以加速推理过程[198]、[199]。与变压器模型中不同的注意头可以并行计算的概念不同,不同的层必须依次计算,因为下一层的输入取决于前一层的输出。Fan等人[198]提出了一种层明智的去除策略来规范模型的训练,然后在测试阶段同时去除整个层。

除了直接丢弃变压器模型中的模块的剪枝方法外,矩阵分解的目标是基于lowrank假设,用多个小矩阵来近似大矩阵。例如Wang等[200]在变压器模型中的标准矩阵乘法进行分解,提高了推理效率。

Knowledge Distillation

知识蒸馏旨在通过从大型教师网络[201],[202],[203]转移知识来培训学生网络。与教师网络相比,学生网络通常具有更薄、更浅的架构,更容易部署在资源有限的资源上。神经网络的输出特征和中间特征也可以用来将有效的信息从教师传递给学生。专注于变压器模型,穆克吉等人[204]使用预先训练过的BERT [10]作为教师来指导小模型的培训,利用大量的未标记数据。Wang等人。[205]训练学生网络在预先训练好的教师模型中模拟自我注意层的输出。价值观之间的点积作为一种新的知识形式。在[205]中还引入了教师助理[206],减少了大型预训练的变压器模型和紧凑的学生网络之间的差距,从而促进了模拟过程。由于变压器模型中不同类型的层(即自注意层、嵌入层和预测层),Jiao等[45]设计了不同的目标函数,将知识从教师传递给学生。例如,学生模型的嵌入层的输出通过MSE损失来模拟教师的输出。对于视觉转换器,Jia等人[207]提出了一种细粒度的流形蒸馏方法,该方法通过图像和分割的斑块之间的关系来挖掘有效的知识。

表4:具有代表性的压缩变压器模型列表。该表中的数据来自[197]。
在这里插入图片描述
在这里插入图片描述
Fig. 13: Different methods for compressing transformers.

Quantization

量化的目的是减少表示网络权重或中间特征[208],[209]所需的位数。对一般神经网络的量化方法进行了详细的讨论,并取得了与原始网络[210]、[211]、[212]相同的性能。最近,人们对如何特别量化[213],[214].的变压器模型越来越感兴趣。例如,Shridhar等人[215]建议将输入嵌入到二进制高维向量中,然后使用二进制输入表示来训练二元神经网络。Cheong等人。[216]用低位(例如,4位)表示来表示变压器模型中的权重。Zhao等[217]对各种量化方法进行了实证研究,表明kmeans量化具有巨大的发展潜力。针对机器翻译任务,Prato等人[46]提出了一个完全量化的变压器,正如论文所声称的,这是第一个不遭受任何翻译质量损失的8位模型。此外,Liu等人[218]探索了一种训练后量化方案,以降低视觉变压器的内存存储和计算成本。

Compact Architecture Design

除了将预定义的变压器模型压缩成更小的模型,一些工作试图直接设计紧凑的模型[219],[47]。Jiang等人[47]通过提出了一种新的模块——称为基于跨度的动态卷积——来简化了自我注意的计算,该模块将全连接层和卷积层结合起来。在[220]中提出了有趣的“汉堡”层,使用矩阵分解来代替原始的自注意层。与标准的自注意操作相比,矩阵分解可以更有效地计算,同时清楚地反映不同标记之间的依赖性。高效的变压器体系结构的设计也可以通过神经体系结构搜索(NAS)[221],[222]自动实现,它可以自动搜索如何组合不同的组件。例如,Su等人的[82]搜索了线性投影的斑块尺寸和尺寸,以及注意模块的头数,得到了一个高效的视觉变压器。Li等人[223]探索了一种自监督搜索策略,得到一个由卷积模块和自注意模块组成的混合体系结构。

变压器模型中的自注意操作计算给定序列(图像识别任务[15]中的补丁)中不同输入标记的表示之间的点积,其复杂度为O (N),其中N为序列的长度。最近,有一个有针对性的焦点是降低O (N)的复杂性,使变压器模型可以扩展到长序列[224]、[225]、[226]。例如,[224]等人将自注意近似为核特征图的线性点积,并通过rnn揭示了标记之间的关系。Zaheer等人。[226]将每个标记视为图中的一个顶点,并将两个标记之间的内积计算定义为一条边。受图论[227]、[228]的启发,将各种稀疏图结合在一起,逼近变换模型中的密集图,可以达到O (N)复杂度。

讨论前面的方法在在变压器模型中识别冗余方面采用了不同的方法(见图13)。剪枝和分解方法通常需要具有冗余的预定义模型。具体来说,剪枝集中于减少变压器模型中的组件(例如,层、头)的数量,而分解表示一个具有多个小矩阵的原始矩阵。紧凑型模型也可以直接手动设计(需要足够的专业知识)或自动设计(例如,通过NAS)。所得到的紧凑模型可以通过量化方法进一步用低比特表示,以便在资源有限的设备上有效部署。

Challenges

虽然研究人员已经提出了许多基于Transformer的模型来处理计算机视觉任务,但这些工作只是这一领域的第一步,仍然有很大的改进空间。例如,ViT [15]中的Transformer架构遵循了NLP [9]的标准Transformer,但专门为CV设计的改进版本仍有待探索。此外,有必要将Transformer应用于除前面提到的更多任务。

计算机视觉Transformer的泛化和鲁棒性也具有挑战性。与cnn相比,纯变压器缺乏一些归纳偏差,严重依赖大规模数据集进行大规模训练[15]。因此,数据的质量对Transformer的泛化和鲁棒性有显著的影响。虽然ViT在CIFAR [229]和VTAB [230]等下游图像分类任务上表现出优异的性能,但直接将ViT骨干应用于目标检测并没有取得比中枢神经网络[113]更好的结果。要更好地将预先训练过的变压器推广到更广义的视觉任务上,还有很长的路要走。从业人员关注变压器的鲁棒性(例如,漏洞问题[231])。虽然在[232]、[233]、[234]中已经研究了其鲁棒性,但这仍然是一个有待解决的开放问题。

虽然许多作品已经解释了Transformer在NLP [235],[236]中的使用情况,但要清楚地解释为什么Transformer在视觉任务上工作良好仍然是一个具有挑战性的主题。归纳偏差,包括平移等方差和局部性,都归因于CNN的成功,但转换器没有任何归纳偏差。目前的文献通常以一种直观的方式来分析其效果,[15],[237]。例如,多索维茨基等人的[15]声称,大规模的训练可以超越归纳偏差。在图像补丁中添加位置嵌入以保留位置信息,这在计算机视觉任务中非常重要。受Transformer中大量参数使用的启发,过度参数化的[238],[239]可能是视觉Transformer可解释性的一个潜在点。

最后但并非最不重要的是,开发高效的CV Transformer模型仍然是一个开放性的问题。Transformer模型通常是巨大的,而且计算成本昂贵。例如,基本的ViT模型[15]需要180亿个流量来处理一个图像。相比之下,轻量级CNN模型GhostNet [240],[241]仅用6亿次实现类似的性能。虽然已经提出了几种压缩Transformer的方法,但它们仍然非常复杂。而这些方法最初是为NLP设计的,但可能不适用于CV。因此,迫切需要高效的Transformer模型,以便视觉Transformer可以部署在资源有限的设备上。

Future Prospects

为了推动视觉Transformer的发展,我们为未来的研究提供了几个潜在的方向。其中一个方向是Transformer在计算机视觉中的有效性和效率。目标是开发高效的视觉Transformer;具体来说,具有高性能和低资源成本的Transformer。性能决定了该模型是否可以应用于实际世界的应用程序,而资源成本则会影响在设备[242]、[243]上的部署。有效性通常与效率相关,因此决定如何在它们之间实现更好的平衡是未来研究的一个有意义的课题。

大多数现有的视觉Transformer模型被设计为只处理一个任务。许多NLP模型,如GPT-3 [11],已经演示了Transformer如何在一个模型中处理多个任务。在CV领域的IPT [19]也能够处理多种低层次的视觉任务,如超分辨率、图像去噪和脱噪。感知器[244]和感知器IO [245]是一种开创性的模型,它们可以在多个领域上工作,包括图像、音频、多模态、点云。我们相信,只有一个模型可以涉及到更多的任务。将所有的视觉任务甚至其他任务统一在一个转换器中(即,一个大的统一模型)是一个令人兴奋的话题。

有各种各样的神经网络,如CNN,RNN,和Transformer。在CV领域,cnn曾经是主流的选择[12],[93],但现在Transformer开始流行。cnn可以捕获归纳偏差,如翻译等方差和局部性,而ViT使用大规模训练来超过归纳偏差[15]。从目前可用的[15]证据来看,cnn在小数据集上表现良好,而转换器在大数据集上表现更好。未来的问题是是使用CNN还是Transformer。

通过对大数据集的训练,变压器可以在NLP [11]、[10]和CV基准测试[15]上达到最先进的性能。神经网络可能需要大数据,而不是归纳偏差。最后,我们留给你一个问题:Transformer能否通过一个非常简单的计算范式(例如,只有完全连接的层)和大量的数据训练来获得令人满意的结果?

REFERENCES

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值