文献阅读(八):A Survey on Visual Transformer

文献阅读:A Survey on Visual Transformer

  • Abstract
  • 1. Introduction
  • 2. Formulation of Transformer
  • 2. Formulation of Transformer
    • 2.1 Self-Attention Layer
    • 2.2 Multi-Head Attention:
    • 2.3 Transformer中的其他关键概念
  • 3. Revisiting Transformers for NLP
  • 4. Visual Transformer
    • 4.1. Backbone for Image Classification
      • 4.1.1 iGPT
      • 4.1.2 ViT
    • 4.2. High/Mid-level Vision
      • 4.2.1 Generic Object Detection 通用目标检测
      • 4.2.2 Other Detection Tasks 其他检测任务
      • 4.2.3 Segmentation 分割
      • 4.2.4 Pose Estimation姿态估计
      • 4.2.5 Discussions 讨论
    • 4.3. Low-level Vision
    • 4.4. Video Processing
      • 4.4.1 High-level Video Processing
      • 4.4.2 Low-level Video Processing
    • 4.5. Self-attention for Computer Vision
      • 4.5.1 General Formulation of Self-attention
      • 4.5.2 Applications on Visual Tasks
    • 4.6. Efficient Transformer
      • 4.6.1 Pruning and Decomposition
      • 4.6.2 Knowledge Distillation
      • 4.6.3 Quantization
      • 4.6.4 Compact Architecture Design
  • 5. Conclusions and Discussions
    • 5.1. Challenges
    • 5.2. Future Prospects

  • 出处:CoRR abs/2012.12556 (2020)
  • 主要内容:Transformer是一种基于自我注意机制的深度神经网络,首先应用于自然语言处理领域。由于其强大的表示能力,研究人员正在寻找将Transformer应用于计算机视觉任务的方法。第二节,回顾了transformer、self-attention、Multi-Head Attention等其他概念。第三节,回顾了NLP中应用transformer,因为研究经验可能有助于视觉任务。
    第四节Visual Transformer,基于Transformer的模型在计算机视觉中的应用,包括图像分类主干网络(iGPT、 ViT)、高/中级视觉(目标检测、车道检测、分割、姿态估计)、低层次视觉和视频任务(帧合成、动作识别、视频检索)等几个方面对视觉变形模型进行了总结。并简要介绍了“self-attention mechanism for CV ,介绍了基于自我注意的图像分类、语义分割和目标检测方法。
    在最后一部分,我们给出了结论并讨论研究方向和面临的挑战。

Abstract

Transformer是一种基于自我注意机制的深度神经网络,首先应用于自然语言处理领域。由于其强大的表示能力,研究人员正在寻找将Transformer应用于计算机视觉任务的方法。

在各种可视化基准测试中,基于Transformer的模型的性能与其他类型的网络(如卷积和递归网络)相似,甚至更好。

  1. 本文对这些Visual Transformer模型进行了分类,并分析了它们的优缺点。
  2. 我们探讨的主要类别包括主干网络、高/中层次视觉、低层次视觉和视频处理。
  3. 我们还简要介绍了计算机视觉中的自我注意机制,因为它是Transformer的基本组成部分。
  4. 此外,我们还包括了有效的Transformer方法,将Transformer推入基于设备的实际应用中。
  5. 在本文的最后,我们讨论了Visual Transformer面临的挑战,并提出了进一步研究的方向。
    文献阅读(八):A Survey on Visual Transformer_第1张图片

1. Introduction

Transformer首先被应用于自然语言处理(NLP)任务,并取得了显著的改进[152,34,11]。
例如,Vaswani等人[152]首次提出了仅基于注意机制的Transformer,用于机器翻译和英语选区解析任务。Devlin等人[34]引入了一种新的语言表示模型,称为BERT(来自变压器的双向编码器表示的缩写),它将考虑到每个单词的上下文(它是双向的),在未标记的文本上预训练变压器。
Brown等人[11]使用1750亿个参数,在45 TB压缩明文数据上预先训练了一个名为GPT-3 (generic pre- training Transformer 3的缩写)的大型Transformer模型。
这些基于Transformer的模型具有较强的表示能力,在自然语言处理领域取得了重大突破。

2. Formulation of Transformer

受Transformer体系结构在自然语言处理领域取得的巨大成功的启发,研究人员最近将变压器应用到计算机视觉任务中。
在视觉应用中,CNN曾被认为是最基本的组件[57,126],但如今transformer显示它是CNN的一个可行的替代方案。

Chen等人[21]训练了一个sequence transformer自回归预测像素,在图像分类任务上取得了与cnn相当的结果。
ViT
另一种视觉变压器模型是ViT,它将transformer直接应用于sequences of image patches。

除了基本的图像分类,transformer还被用于解决各种其他计算机视觉问题,包括目标检测[15,193]、语义分割、图像处理和视频理解。

在本文中,我们将对visual transformers最新进展进行全面的概述,并讨论进一步改进的潜在方向。
为了便于未来对不同研究,我们将transformer模型按其应用场景分类,如表1所示。

文献阅读(八):A Survey on Visual Transformer_第2张图片
高级视觉处理的是对图像中所见内容的解释和使用[150],而中级视觉处理的是如何将这些信息组织成我们所体验到的物体和表面[77]。在基于dnn的视觉系统中,高、中级视觉的差距越来越模糊[194,102],我们将其作为一个单一的类别来对待。解决这些高/中级视觉任务的变压器模型的一些例子包括DETR[15],用于目标检测的变形DETR[193]和用于分割的Max-DeepLab[155]。

Low-level image processing低层次图像处理主要是从图像中提取描述(这些描述通常表示为图像本身)[43]。低层次图像处理的典型应用包括超分辨率、图像去噪和样式转换。目前,只有少数作品[20,113]在低级视觉中使用变形器,这就产生了进一步研究的需要。另一类是视频处理,它是计算机视觉和基于图像的任务的重要组成部分。
由于视频的序列特性,transformer天生非常适合用于视频任务[191,178],在这些任务中,它的性能开始与传统的cnn和rnn相当。
在此,我们对 transformer-based visual models进行综述,以跟踪该领域的进展。

本文的其余部分组织如下。
第二节,讨论transformer and the self-attention
第三节,我们描述了 transformer in NLP,因为研究经验可能有助于视觉任务。
第四节,从主干网络(iGPT、 ViT)、高/中级视觉(目标检测、车道检测、分割、姿态估计)、低层次视觉和视频任务(帧合成、动作识别、视频检索)等几个方面对视觉变形模型进行了总结。简要介绍了“self- attention mechanism for CV and efficient transformer methods”——CV和高效transformer的自我注意机制。
在最后一部分,我们给出了结论并讨论研究方向和面临的挑战。

2. Formulation of Transformer

原始Transformer的架构:
文献阅读(八):A Survey on Visual Transformer_第3张图片

2.1 Self-Attention Layer

文献阅读(八):A Survey on Visual Transformer_第4张图片
文献阅读(八):A Survey on Visual Transformer_第5张图片
第1步:计算两个不同向量之间的得分,这些得分决定了在当前位置编码单词时我们给予其他单词的关注程度。
第2步:将分数归一化以增强梯度稳定性以改进训练。
第3步:将分数转化为概率。
第4步:每个向量的值乘以概率。概率较大的向量获得额外的关注。

自我注意层缺乏捕捉句子中单词位置信息的能力。为了解决这一问题并获得单词的最终输入向量,在原始输入嵌入的基础上加入了一种维度为dmodel的位置编码。
文献阅读(八):A Survey on Visual Transformer_第6张图片
其中pos表示单词在句子中的位置,i表示位置编码的当前维度。

2.2 Multi-Head Attention:

文献阅读(八):A Survey on Visual Transformer_第7张图片
对于一个给定的参考词,我们在阅读句子时通常会关注其他几个词。单头自我注意力层限制了我们专注于一个或多个特定位置的能力,同时也不影响对其他同等重要位置的注意力。这是通过给予注意层不同的表示子空间来实现的。具体来说,不同的头部使用不同的查询矩阵、键矩阵和值矩阵,这些矩阵通过随机初始化,可以将训练后的输入向量投影到不同的表示子空间中。
文献阅读(八):A Survey on Visual Transformer_第8张图片

2.3 Transformer中的其他关键概念

Transformer架构:

对于encoder来说:利用基本的Multihead Attention单元叠加,其中key, query, value均来自前一层encoder的输出,即encoder的每个位置都可以注意到之前一层encoder的所有位置。

对于decoder来讲,有两个与encoder不同的地方:
1:第一级的Masked Multi-head。第一级decoder的key, query, value均来自前一层decoder的输出,但加入了Mask操作,即我们只能attend到前面已经翻译过的输出的词语,因为翻译过程我们当前还并不知道下一个输出词语,这是我们之后才会推测到的。
2:第二级的Multi-Head Attention不仅接受来自前一级的输出,还要接收encoder的输出。第二级decoder也被称作encoder-decoder attention layer,即它的query来自于之前一级的decoder层的输出,但其key和value来自于encoder的输出,这使得decoder的每一个位置都可以attend到输入序列的每一个位置。

总结一下,k和v的来源总是相同的,q在encoder及第一级decoder中与k,v来源相同,在encoder-decoder attention layer中与k,v来源不同。
文献阅读(八):A Survey on Visual Transformer_第9张图片
layer-normalization(层规范化)。X作为自我注意层的输入。这是因为查询、键和值矩阵Q、K和V都是从同一个输入矩阵X派生出来的。在这里插入图片描述
Feed-Forward Network(前馈网络)。由两个线性变换层和其中一个非线性激活函数组成,可以表示为以下函数:其中W1和W2为两个线性变换层的两个参数矩阵,σ为非线性激活函数,如GELU[58]。隐含层的维数dh = 2048。在这里插入图片描述
解码器的最后一层:将向量堆栈转换回一个字。通过一个线性层和一个softmax层来实现的。线性层将向量投影到一个具有dword维数的logit向量中,其中dword是词汇表中的单词数。softmax用来把logit向量转换成概率。

用于CV任务时,大多数transformers采用原变压器的编码器模块。这样的变压器可以看作是一种新的特征选择器。与只关注局部特征的CNN相比,变压器可以捕获长距离特征,这意味着它可以很容易地获得全局信息。与必须连续计算隐藏状态的RNNs相比,transformer的效率更高,因为自注意层和全连接层的输出可以并行计算,并且易于加速。由此我们可以得出结论,在计算机视觉和自然语言处理中进一步研究transformers将会取得有益的结果。

3. Revisiting Transformers for NLP

在transformer被开发出来之前,RNNs(如GRU[31]和LSTM[61])是最先进的语言模型。然而,RNNs要求信息流从前一个隐藏状态依次处理到下一个隐藏状态。这就排除了在训练过程中使用加速和并行的可能性,从而阻碍了rnn处理更长的序列或构建更大模型的潜力。
2017年,Vaswani等人[152]提出了transformer,一种新的编码器-解码器结构,该结构完全建立在多头自我注意机制和前馈神经网络之上。它的目的是通过获取全局依赖项来轻松解决seq-to-seq自然语言任务(如机器翻译)。transformer的成功证明,单独利用注意机制可以获得与RNNs相当的性能。此外,transformer的架构适合大规模并行计算,这使得在更大的数据集上进行训练成为可能。这导致了用于自然语言处理的大型预训练模型(PTMs)的激增。

BERT[34]及其变体(如SpanBERT[75]、RoBERTa[98])是建立在多层变压器编码器架构上的一系列PTMs。在BERT的预训练阶段,对图书语料库[194]和英文维基百科数据集进行了两个任务:1)Masked language modeling屏蔽语言建模(MLM),首先随机屏蔽输入中的一些标记,然后训练模型进行预测;2)Next sentence prediction下一句预测,使用成对的句子作为输入,预测第二个句子是否是文档中的原句。在预训练之后,可以通过在广泛的下游任务上添加输出层来对BERT进行微调。
更具体地说,在执行sequence-level任务(如情感分析)时,BERT使用第一个token的表示进行分类;对于token-level任务(例如,名称实体识别),所有tokens都被送入softmax层进行分类。
BERT在11个NLP任务上达到了最先进的性能,在预先训练的语言模型上树立了一个里程碑。

Generative Pre-trained Transformer 生成式预训练变压器模型(如GPT[122]、GPT-2[123])是另一种基于Transformer解码器架构的PTMs,它使用了masked self-attention 机制。GPT系列和BERT之间的主要区别在于进行预训练的方式。与BERT不同,GPT模型是使用从左到右(Left-to- Right, LTR)语言建模预先训练的单向语言模型。此外,BERT在预训练期间学习了句子分隔符([SEP])和分类标记([CLS])嵌入,而这些嵌入仅涉及GPT的微调阶段。由于它的单向预训练策略,GPT在许多自然语言生成任务中都取得了优异的性能。
最近,GPT-3的巨型transformer模型被开发出来,它有惊人的1750亿个参数。GPT-3通过对45tb压缩后的明文数据进行预处理,可以直接处理不同类型的下游自然语言任务,无需进行微调。结果表明,该算法在许多NLP数据集上都取得了较好的性能,包括自然语言的理解和生成。
自从transformer的引入,除了前面提到的基于变压器的PTMs之外,还有许多其他的模型被提出。为了方便感兴趣的读者,我们在表2中列出了一些有代表性的模型,但这不是我们研究的重点。

表2:基于transformer的代表性语言模型列表。Transformer是标准的编码器-解码器架构。其中Transformer enc和dec分别表示编码器和解码器。解码器使用masked self-attention来防止注意到未来的tokens。该表的数据来自[121]。
文献阅读(八):A Survey on Visual Transformer_第10张图片
生物领域:BioNLP域。基于变压器的模型优于许多传统的生物医学方法。这类模型的一些例子包括BioBERT[84],它使用transformer架构进行生物医学文本挖掘任务;
以及SciBERT[9],它是通过对1.14亿篇科学文章(涵盖生物医学和计算机科学领域)训练transformer而开发的,目的是更精确地在科学领域执行NLP任务。
另一个例子是Huang等人提出的ClinicalBERT[66]。它利用transformer来开发和评估临床记录的连续表示。ClinicalBERT的注意力地图可以用来解释预测,允许不同医学内容之间的高质量联系被发现。

Multi-Modal Tasks。由于transformer在基于文本的NLP任务中的成功,许多研究都热衷于开发其处理多模态任务(如视频-文本、图像-文本和音频-文本)的潜力。
一个例子是VideoBERT[141],它使用基于cnn的模块对视频进行预处理,以获得表示tokens,然后根据这些tokens训练transformer encoder用于学习下游任务(如视频标题)的视频-文本表示。
其他一些例子包括VisualBERT[86]和VL-BERT[140],它们提出了single-stream unified transformer捕捉视觉元素和图像-文本关系,用于如视觉问题回答(VQA)和视觉常识应答(VCR)等下游任务。
此外,一些研究如Speech-BERT[29]探索了用transformer编码音频和文本对的可能性,以处理自动文本任务,如语音问题回答(SQA)。

VisualBERT:Liunian Harold Li, Mark Yatskar, Da Yin, Cho-Jui Hsieh, and Kai-Wei Chang. Visualbert: A simple and performant baseline for vision and language. arXiv preprint arXiv:1908.03557, 2019. 6
VL-BERT:Weijie Su, Xizhou Zhu, Yue Cao, Bin Li, Lewei Lu, Furu Wei, and Jifeng Dai. Vl-bert: Pre-training of generic visual-linguistic representations. arXiv preprint arXiv:1908.08530, 2019. 6

基于transformer的模型在各种NLP相关任务上的迅速发展,显示了其结构上的优越性和通用性,为其成为除NLP外应用于许多人工智能领域的通用模块提供了可能。本文的以下部分主要讨论了:在过去两年中,transformer在广泛的计算机视觉任务中的应用。

4. Visual Transformer

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

4.1. Backbone for Image Classification

Visual Transformer——Image Classification。
与文本相比,图像涉及更多的维度、噪音和冗余的形态,因此它们被认为更难以生成建模。

与cnn不同,transformer可以作为图像分类的骨干网络。Wu等人[163]采用了ResNet作为基线,并使用Visual Transformer来替换卷积的最后阶段。具体来说,它们应用卷积层来提取底层特征,然后将其输入到visual transformer。在Visual Transformer中,作者使用一个tokenizer将各个pixel分成少量的visual tokens,每个token代表了图像中的某些语义信息(这些visual tokens直接用于图像分类),然后使用transformer建模tokens之间的关系,最后输出的tokens直接被用来做分类或者处理一下恢复成特征图用于实例分割。
与这项工作不同的是,最近出现iGPT[21]、ViT[36]和DeiT[148]都是单纯使用transformer进行图像分类的文章。

在CV中使用transformer,目前来看主要的两个问题,以及下列文章的核心区别在于:

  1. 得到Token的方式。
  2. 训练方式。
  3. 评估方式。

4.1.1 iGPT

Mark Chen, Alec Radford, Rewon Child, Jeffrey Wu, Hee- woo Jun, David Luan, and Ilya Sutskever. Generative pre- training from pixels. In International Conference on Ma- chine Learning, pages 1691–1703. PMLR, 2020. 2, 6, 9
生成式图像预训练方法已经存在很长一段时间了,Chen等人对这类方法进行了重新研究,并将其与自我监督方法相结合。这种方法包括:预训练阶段 + 微调阶段。
预训练阶段,自回归和BERT被探讨。为了实现像素预测,采用了sequence transformer 结构代替language tokens(如NLP中使用的语言标记)。与早期停止一同使用时,预训练可以被认为是一个良好的初始化或常规调节。在fine-tuning微调阶段,他们在模型上添加了一个小的分类头。这有助于优化分类目标并适应所有权重。

给定一个由高维数据X = (x1,···,xn)组成的未标记数据集X,他们通过最小化数据的负对数似然来训练模型,
在这里插入图片描述
其中p(x)为图像数据密度,可以建模为:
文献阅读(八):A Survey on Visual Transformer_第11张图片
M被称为BERT掩模,通过最小化以“unmasked”为条件的“masked”元素xm的负对数似然(x[1,n] M)来训练模型:
文献阅读(八):A Survey on Visual Transformer_第12张图片
在预训练阶段,他们选择LAR或LBERT,尽量减少预训练数据集的损失。GPT-2[123]采用transformer decoder。特别是,layer norm层规范在attention注意力和Multi-Layer Perceptron (MLP)多层感知器操作之前,所有操作都严格在剩余路径上执行。
注意力操作是唯一涉及到混合序列元素的操作。为了确保训练AR目标时得到适当的调节,Chen等人将标准的三角掩模应用于注意对数的n × n矩阵。使用BERT目标时不需要注意logit屏蔽,但一旦将内容嵌入应用到输入序列中,Chen等人就会将位置置零。

在最后的transformer层之后,他们应用一个norm层学习从输出到logit的投影,参数化每个序列元素的条件分布。当训练BERT时,他们简单地忽略了无掩蔽位置的logit。

在微调阶段,他们平均池化最后一层norm层的输出跨序列维度,以提取特征的d维向量为例:
在这里插入图片描述
学习从fL到class logit的投影,并使用这个投影来最小化交叉熵损失L_clf。实验证明:联合objectiveLGEN+LCLF工作得更好,其中elgen∈{LAR,LBERT}。

  1. 得到Token的方式:原始图像进行预处理,将其调整为低分辨率,并将其重塑为一维序列(从左到右,从上到小)。每个像素相当于一个word,我们对每个pixel,我们提取每个像素embedding。使得图片数据已经完全转化为了transformer的输入形式。
  2. 训练方式: iGPT有两种预训练方式:
    (i) 像自编码器一样进行逐像素预测。
    (ii)像Bert一样mask一部分pixel然后预测。其实第一种方式的实现与bert也很类似,就是预测第i个pixel的时候,mask掉i+1、i+2…之后的所有pixel。
  3. 评估方式:
    (i) fine-tune:增加了一个小的分类头,用于优化分类目标并adapt所有权重。
    (ii)Linear-probe:将pretraining的模型视作特征提取器,增加一个分类头,只训练这个分类头。第二种方式的直觉在于“一个好的特征应该能够区分不同的类”,除此之外,fine-tune效果好有可能是因为架构很适合下游任务,但是linear-probe只取决于特征质量。

4.1.2 ViT

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. 2, 6, 7, 9, 11, 18, 19
后续的改进工作:
[DeiT] Training data-efficient image transformers & distillation through attention
[T2T-ViT] Tokens-to-Token ViT: Training Vision Transformers from Scratch on ImageNet
[CPVT] Do We Really Need Explicit Position Encodings for Vision Transformers?
[PVT] Pyramid Vision Transformer: A Versatile Backbone for Dense Prediction without Convolutions
[TNT] Transformer in Transformer

Dosovitskiy等人[36]最近提出了Vision transformer, ViT,它是一种纯变形器,直接应用于image patches序列时,能很好地完成图像分类任务。他们尽可能遵循变压器的原始设计。图5显示了ViT的框架。
文献阅读(八):A Survey on Visual Transformer_第13张图片
为了处理二维图像,图像x∈R(H ×W ×C)被重塑为一系列平坦的2D patches 。(H,W)为原始图像的分辨率,(P, P)为每个图像patch的分辨率。因此transformer的有效序列长度为N = HW/P*P。因为transformer在其所有层中都使用恒定的宽度,一个可训练的线性投影将每个矢量化路径映射到模型维数D,其输出被称为patch嵌入。

与BERT的[class]token类似,一个可学习的嵌入应用于embedding patches的序列。这个嵌入的状态作为图像表示。在训练前和微调阶段,分类头的大小都是相同的。另外,为了保留位置信息,在patch嵌入中加入了一维位置嵌入。Dosovitskiy等人已经探索了不同的2d感知的位置嵌入变体,没有一种超过标准的1D位置嵌入。joint嵌入作为编码器的输入。值得注意的是,ViT仅利用transformer’s encoder,其输出在MLP头之前。

在大多数情况下,ViT是在大型数据集上预先训练的,然后针对较小的下游任务进行微调。为此,去掉预先训练好的预测头,并附加一个零初始化的D × K前馈层,其中K为下游类数。在微调阶段使用比训练前阶段更高的分辨率通常是有益的。例如,当提供更高分辨率的图像时,可以获得更大的有效序列长度,即使patch大小保持不变。尽管ViT可以处理任意序列长度,但预先训练的位置嵌入可能不再有意义。因此,Dosovitskiy等人根据原始图像中的位置执行预先训练好的位置嵌入的二维插值。只有在分辨率调整和patch提取期间,才会手动将图像二维结构的感应偏差注入ViT。

当在中等规模的数据集(如ImageNet)上进行训练时,ViT产生了中等规模的结果,精度比同等规模的resnet低几个百分点。因为transformers缺乏cnn固有的一些归纳偏差——例如翻译方差和位置——当在不足的数据量上训练时,它们不能很好地推广。然而,作者发现在大型数据集(1400万到3亿张图像)上训练模型超越了归纳偏差。当在足够大的规模上进行预先训练时,transformers可以在数据点较少的任务中取得优异的结果。例如,在JFT-300M数据集上进行预训练时,ViT在多个图像识别基准上接近甚至超过了最先进的性能水平。其中ImageNet的准确率为88.36%,CIFAR-10的准确率为99.50%,CIFAR-100的准确率为94.55%,19个任务的VTAB套件准确率为77.16%。ViT和iGPT的结果如表3所示。
文献阅读(八):A Survey on Visual Transformer_第14张图片
Touvron等人[148]通过仅在ImageNet数据库上进行训练,提出了一种competitive convolution- free transformer,称为Data-efficient image transformer (DeiT)。DeiT-B,参考视觉转换器,具有与 ViT-B相同的架构,使用8600万个参数。DeiT-B具有很强的数据增强能力,在没有外部数据的情况下,在ImageNet上实现了83.1%(单作物评价)的最高精度。此外,作者观察到,使用CNN教师比使用transformer表现更好。其中DeiT-B在token蒸馏的帮助下可以达到top-1的84.40%的精度。

综上所述,iGPT回顾了生成性的预训练方法,并将其与自我监督方法相结合,但效果并不理想。另一方面,ViT获得了更好的结果,特别是使用更大的数据集(JFT-300M)。同样,DeiT通过更谨慎的训练策略和基于符号的蒸馏实现了更好的性能。考虑到NLP中ViT和transformer的结构相似,如何显式识别patch内和patch间的相关性就成了一个问题。另外,尽管ViT对相同大小的补丁处理相同,但每个补丁的复杂度是不同的。到目前为止,这一特点还没有得到充分利用。

  1. 得到Token的方式:一个图像将被处理为一个patch 序列

  2. 训练方式。传统情况下ViT也是要预训练的,不同于iGPT,这不是一个生成式的模型,只采用了transformer的encoder,因此直接在imagenet做分类任务进行pretrain。文章显示数据集小的时候效果一般,数据集大的时候因为data bias已经被消除了很多,此时效果非常好。

  3. 评估方式。分类任务的评价不再多说。

4.2. High/Mid-level Vision

最近,在高/中级计算机视觉任务中使用transformer的兴趣越来越大,如目标检测[16,193,8,173,109],车道检测[97],分割[159,155,190]和姿态估计[67,68,92,168]。我们在本节中回顾这些方法。

4.2.1 Generic Object Detection 通用目标检测

传统的目标检测器主要建立在cnn的基础上,而基于transformer的目标检测由于其优越的性能近年来引起了人们的极大兴趣。
一些目标检测方法尝试利用transformer的自我注意机制,然后提升现代检测器的具体模块,如特征融合模块[180]和预测头[27]。我们稍后将在第4.5节对此进行讨论。基于Transformer的目标检测方法大致可以分为两大类:
基于transformer的目标预测方法[15,193,143,189]和基于transformer的骨干方法[8,110],如图6所示。
DETR:Nicolas Carion, Francisco Massa, Gabriel Synnaeve, Nico- las Usunier, Alexander Kirillov, and Sergey Zagoruyko. End-to-end object detection with transformers. arXiv preprint arXiv:2005.12872, 2020. 2, 8, 10
ViT-FRCNN:Josh Beal, Eric Kim, Eric Tzeng, Dong Huk Park, Andrew Zhai, and Dmitry Kislyuk. Toward transformer-based object detection. arXiv preprint arXiv:2012.09958, 2020. 8, 9, 10, 18
文献阅读(八):A Survey on Visual Transformer_第15张图片
Transformer-based Set Prediction for Detection
基于Transformer的集预测检测。Carion等人[16]提出的检测变压器(DETR)作为基于Transformer检测方法的先驱,对目标检测框架进行了重新设计。DETR是一种简单且完全端到端的对象检测器,它将对象检测任务视为一个直观的集预测问题,消除了传统手工制作的组件,如锚点生成和非最大抑制(non-maximum suppression, NMS)后处理。
文献阅读(八):A Survey on Visual Transformer_第16张图片
如图7所示,DETR从一个CNN骨干开始,从输入图像中提取特征。为了用位置信息补充图像特征,在将特征输入编码器-解码器转换器之前,在平坦特征上添加固定位置编码。解码器使用来自编码器的嵌入以及N个学习到的位置编码(对象查询),并产生N个输出嵌入。这里的N是一个预定义参数,通常大于图像中对象的数量。简单前馈网络(FFNs)用于计算最终的预测,其中包括边框坐标和表示对象的特定类(或表示不存在对象)的类标签。与按顺序计算预测的原始变压器不同,DETR以并行方式解码N个对象。DETR采用二部匹配算法对预测的目标和地面真实目标进行分配。如Eq. 11所示,利用Hungarian loss来计算所有匹配对象对的损失函数。
在目标物体检测上,DETR显示了令人印象深刻的性能,提供了相当的精度和速度,与流行和成熟的更快的R-CNN[126]基线的COCO基准。在这里插入图片描述
DETR是基于transformer的目标检测框架的一种新设计,使社区能够开发完全端到端检测器。然而,普通DETR算法有几个挑战,具体来说:训练时间长,对小物体的性能差。为了解决这些挑战,Zhu等[193]提出了可变形的DETR,它已经成为一种流行的方法,显著提高了检测性能。可变形注意力模块关注的是围绕一个参考点的一小组关键位置,而不是像transformer中原来的多头注意力机制那样关注图像特征地图上的所有空间位置。该方法大大降低了计算复杂度,并具有快速收敛的优点。更重要的是,可变形注意模块可以方便地用于融合多尺度特征。变形雷达的训练成本降低了10倍,推理速度提高了1.6倍。采用迭代边界盒细化方法和两阶段方案,可进一步提高变形探测器的检测性能。

郑等[189]提出了一种自适应聚类变压器(ACT),在不需要任何训练过程的情况下,降低预训练的雷达的计算成本。ACT使用局部敏感性哈希(LSH)方法对查询特性进行适应性聚类,并将关注输出到所选原型所表示的查询中。ACT代替了预先训练的DETR模型的自我注意模块,不需要任何再训练。该方法大大降低了计算成本,但精度却略有降低。利用多任务知识边界蒸馏(MTKD)方法可以进一步降低性能下降,该方法利用原变压器提取ACT模块,并进行几次微调。

Sun等人[143]研究了DETR模型收敛速度慢的原因,发现这主要是由于变压器解码器中的交叉注意模块。为了解决这个问题,提出了一个编码器版本的DETR,实现了相当大的改进,在检测精度和训练收敛性方面。此外,为了提高训练的稳定性和更快的收敛速度,设计了一种新的二部匹配方案,并提出了两种基于变压器的集预测模型TSP- fcos和TSP- RCNN,以改进具有特征金字塔的纯编码器检测器。这些新模型实现了更好的性能比原来的DETR模型。

受NLP中预训练变压器方案的启发,Dai等人[33]提出了无监督目标检测预训练(UP-DETR)。在此基础上,提出了一种新的无监督借口任务——随机查询补丁检测。通过这种无监督的预训练方案,UP-DETR显著提高了相对较小数据集(PASCAL VOC)的检测精度。在有足够训练数据的COCO基准上,UP-DETR仍然优于DETR,证明了无监督预训练方案的有效性。

Transformer-based Backbone for Detection.
与通过Transformer将目标检测重新设计为一组预测任务的DETR不同,Beal等人[8]提出利用Transformer作为常见检测框架的骨干,如更快的R-CNN[127]。将输入图像分割成几个小块,送入视觉变换器,根据空间信息对输出的嵌入特征进行重组,然后通过检测头得到最终结果。一个大规模的训练前Transformer backbone可以为拟议的ViT-FRCNN带来好处。

与基于cnn的检测器相比,基于Transformer的方法在精度和运行速度方面表现出了强大的性能。表4显示了之前在COCO 2012 val集合中提到的基于Transformer的不同对象检测器的检测结果。
文献阅读(八):A Survey on Visual Transformer_第17张图片
使用transformer最重要的两个问题是如何得到输入的embedding(妥善处理position embedding),模型的训练与评估。

4.2.2 Other Detection Tasks 其他检测任务

行人检测。由于在遮挡和人群场景中物体的分布非常密集,在将普通检测网络应用于行人检测任务时,往往需要额外的分析和适应。Lin等人[93]发现,在行人检测任务中直接应用威慑或可变形威慑时,稀疏一致查询和译码器中的弱注意域会导致性能下降。为了解决这些问题,作者提出了行人端到端检测器(PED),该检测器采用一种新的密集查询解码器和修正注意域(DQRF)来支持密集查询,并减轻查询的噪声或狭窄注意域。他们还提出了V-Match,它通过充分利用可见的注释来实现额外的性能改进。

车道检测。Liu等[97]基于PolyLaneNet[145]提出了LSTR方法,通过变压器网络学习全局上下文来提高曲线车道检测的性能。与Poly- LaneNet类似,LSTR将车道检测视为用多项式拟合车道的任务,并利用神经网络预测多项式的参数。为了捕获狭长的结构-车道和全球环境,LSTR在建筑中引入了变压器网络。这样就可以处理cnn提取的低级特征。此外,LSTR使用匈牙利损耗来优化网络参数。如[97]所示,LSTR的性能优于Poly- LaneNet,在参数减少5倍的情况下,其精度提高了2.82%,帧数提高了3.65倍。变压器网络、CNN和Hungarian损失的组合在一个精确、快速和微小的车道检测框架中达到顶峰。

4.2.3 Segmentation 分割

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

VisTR是一种基于变压器的视频实例分割模型,由Wang等人[159]提出,用于从输入图像序列中生成实例预测结果。提出了一种实例序列匹配策略,用ground truth来分配预测结果。为了得到每个实例的掩码序列,VisTR利用实例序列分割模块将多帧的掩码特征进行累加,然后用3D CNN分割掩码序列。

Cell-DETR[116]基于DETR全景分割模型,是一种尝试使用变压器来进行细胞的实时分割。为了增强特征融合,在分割头中增加了连接骨干CNN和CNN解码器之间的跳过连接。Cell-DETR实现最先进的性能细胞实例分割从显微镜图像。
Zheng等[190]提出了一种基于变压器的语义分割网络(SETR)。SETR利用一个类似于ViT[36]的编码器从输入图像中提取特征。采用多层次特征聚合模块进行像素级分割。
最近也出现了一些探索点云学习的变压器架构的其他著作[38,51,186]。例如,Guo等人[51]提出了一个新的框架,用一个更合适的偏移注意模块代替原来的自我注意模块,该框架包括隐式拉普拉斯算子和归一化细化。此外,赵等[186]设计了一种新颖的变压器结构,称为点变压器。所提出的自注意层不受点集排列的影响,适合于点集处理任务。点转换器在三维点云的语义分割任务中表现出了良好的性能。

4.2.4 Pose Estimation姿态估计

人类和手的姿态估计是一个课题,已经吸引了研究社区的重大兴趣。关节姿态估计类似于结构化的预测任务,旨在从输入的RGB/D图像中预测关节坐标或网格顶点。这里我们讨论了一些方法[67,68,92,168],探索如何利用变压器建模的整体结构信息的人的姿态。
Huang等人[67]提出了一种基于变压器的网络,用于从点集进行3D手部姿态估计。编码器首先利用点网[119]从输入点云中提取点向特征,然后采用标准的多头自注意模块生成嵌入。为了向解码器公开更多的全局姿态相关信息,使用了一个特征提取器,如PointNet++[120]来提取手部联合特征,然后将这些特征作为位置编码输入解码器。
同样,Huang等人[68]提出了用于3D手-物姿态估计的热网(hand-object transformer network)。与前面的方法不同的是,em使用transformer从输入点云直接预测3D手的姿态,HOT-Net使用一个ResNet生成初始2D手-物体姿态,然后将其输入到transformer中来预测3D手-物体姿态。因此,频谱图卷积网络被用来提取编码器的输入嵌入。

Lin等人[92]提出了一种网格变压器(METRO),用于从单一RGB图像预测3D人体姿态和网格。METRO通过CNN提取图像特征,然后将模板人体网格连接到图像特征上进行位置编码。提出了一种渐进降维的多层变压器编码器,逐步降低嵌入维数,最终生成人体关节和网格顶点的三维坐标。为了鼓励对人体关节间非局部关系的学习,METRO在训练过程中随机屏蔽一些输入查询。

4.2.5 Discussions 讨论

正如前面讨论的部分,变压器已经在一些高级任务中表现出强大的性能,包括检测,分割和姿态估计。==在采用变压器进行高级任务之前,需要解决的关键问题涉及输入嵌入、位置编码和预测损失。==一些方法提出从不同的角度改进自我注意模块,如变形注意[193]、自适应聚类[189]和点变压器[186]。然而,将变压器用于高级视觉任务的探索仍处于初级阶段,因此进一步的研究可能是有益的。例如,最终的原因是否需要在transformer之前使用CNN、PointNet等特征提取模块?如何像BERT和GPT-3在NLP领域所做的那样,利用大规模的预训练数据集充分利用视觉转换器?是否有可能预先训练单个变压器模型,并对其进行微调,以适应不同的下游任务,而只需进行几次微调?我们希望进行更多的研究工作,以探索更强大的转换-高层次的愿景。

4.3. Low-level Vision

很少有研究将变压器应用于Low-level,如图像的超分辨率和生成。这些任务通常以图像作为输出(例如,高分辨率或去噪图像),这比高级视觉任务更具挑战性,如分类、分割和检测,其输出是标签或盒子。
Parmar等[113]提出了Image Transformer,第一步是将Transformer模型推广到制定图像平移和生成任务。图像转换器由两部分组成:用于提取图像表示的编码器和用于生成像素的解码器。对于值为0到255的每个像素,学习256 × d维的嵌入,将每个值编码成d维向量,并将其作为输入输入编码器。编码器和解码器采用与[152]相同的架构。图8显示了解码器中每一层的结构。每个输出像素q '是通过计算输入像素q和之前生成的像素m1, m2,…之间的自我注意产生的。与位置嵌入p1, p2, …对于图像条件生成,如超分辨率和修复,使用编码器-解码器架构,编码器的输入是低分辨率或损坏的图像。对于无条件和类条件生成(即噪声到图像),只有解码器用于输入噪声向量。由于解码器的输入是先前生成的像素(在生成高分辨率图像时涉及到较高的计算成本),因此提出了一种局部自注意方案。该方案仅使用最接近的生成像素作为解码器的输入,使图像转换器在图像生成和平移任务中达到与基于cnn的模型同等的性能,证明了基于变压器的模型在低层次视觉任务中的有效性。

最近的一些作品避免使用每个像素作为变压器模型的输入,而是使用patches(像素集)作为输入。例如,Yang等[167]提出了用于图像超分辨率的纹理变压器网络(Texture Transformer Network For Image superresolution, TTSR),利用了基于参考的图像超分辨率问题中的变压器架构。它的目的是将相关的纹理从参考图像转移到低分辨率的图像。
不同于以往在单个任务中使用变压器模型的方法,Chen等人提出了图像处理变压器(Image Processing Transformer, IPT),它利用了大量的预训练数据集,充分利用了变压器的优点。它在一些图像处理任务中实现了最先进的性能,包括超分辨率,去噪和去噪。如图9所示,IPT由多个头、一个编码器、一个解码器和多个尾组成。针对不同的图像处理任务,引入了多头多尾结构和任务嵌入方法。特征被划分成小块,并被输入到编码器-解码器体系结构中。在此之后,出盘被重塑成同样大小的特征。鉴于在大数据集上预训练变压器模型的优点,IPT使用ImageNet数据集进行预训练。具体来说,该数据集中的图像通过人为添加噪声、雨条纹或降采样来退化,从而生成损坏的图像。以退化后的图像作为IPT的输入,以原始图像作为输出的优化目标。为了提高模型的泛化能力,还引入了一种自监督方法。一旦模型得到训练,它就会通过使用相应的头、尾和任务嵌入对每个任务进行微调。IPT在很大程度上提高了图像处理任务的性能(如图像图像去噪任务中的2 dB),表明了基于变压器的模型在低层次视觉领域的巨大潜力。
除单图像生成外,Wang等[158]还提出了SceneFormer,利用变压器进行室内三维场景生成。通过将场景视为一系列物体,变压器解码器可以用来预测一系列物体及其位置、类别和大小。这使得SceneFormer在用户研究中优于传统的基于cnn的方法。
综上所述,与分类和检测任务不同,图像生成和处理的输出是图像。图10演示了在低层次视图中使用变压器。通过将图像作为像素序列或小块,变压器编码器使用该序列作为输入,允许变压器解码器成功地生成所需的图像。为不同的图像处理任务设计一个合适的体系结构是未来研究的一个有意义的方向。
文献阅读(八):A Survey on Visual Transformer_第18张图片

Visual Transformer——Lower-level Vision低层视觉(直接输出图片)
transformer编码器将图像作为像素序列或小块,以该序列作为输入语句,transformer解码器就能成功地生成所需的图像。
Image transformer一文最先使用完整的transformer做图像生成的工作:将每个值像素编码成一个d维向量作为编码器的输入。特殊之处,在于decoder,每个输出像素q‘ 是经过计算输入像素q和已经生成像素m1、m2…之间的attention得到的。
q’=Attention(q,m1,m2,…)

4.4. Video Processing

Transformer在基于序列的任务中,尤其是在NLP任务中表现得非常好。在计算机视觉(尤其是视频任务)中,空间和时间维度信息受到青睐,导致了transformer在许多视频任务中的应用,如帧合成[99]、动作识别[49]和视频检索[96]。

4.4.1 High-level Video Processing

图像生成。图像生成任务是指从自然图像数据集生成图像。可并行的结构因其对像素块的预测效率高而具有很大的吸引力。Parmar等[113]基于似然生成模型,利用变压器生成图像。将局部注意模块集成到图像转换器中,对连续的像素块进行预测。
活动识别。活动识别任务包括识别一群人中的一个人的活动。以前适用于这类任务的方法是根据个别行动者的地点来确定的。Gavrilyuk等人提出了一个actor-transformer [48]架构来学习表示,使用由2D和3D网络生成的静态和动态表示作为输入。变压器的输出是预测的活动。
人类行为识别。视频人类动作任务,顾名思义,包括在视频中识别和定位人类动作。上下文(例如其他人和对象)在识别人类行为中起着关键作用。Rohit等人提出了action transformer[49]来模拟感兴趣的人与周围环境之间的潜在关系。其中,I3D[17]作为主干提取高级特征地图。从中间特征映射中提取的特征(利用RoI池化)作为查询(Q),从中间特征中计算key (K)和value (V)。将自我注意机制应用于这三个部分,并输出分类和回归预测结果。Lohit等[101]提出了一种可解释可微模块,称为时域变压器网络,以减少类内方差,增加类间方差。此外,Fayyaz和Gall提出了一种时间转换器[42]来在弱监督设置下执行动作识别任务。
人脸对齐。基于视频的人脸对齐任务旨在定位人脸标志。这些任务的整体表现在很大程度上依赖于时间依赖性和基本信息。然而,以往的方法既不能捕捉连续帧之间的时间信息,也不能捕捉静止帧上的互补空间信息。为了解决这一问题,Liu等[96]提出了two- stream transformer 网络,分别学习时间和空间特征。该方法以端到端的方式对两个流进行联合优化,并对特征进行加权,以获得最终预测结果。
视频检索。基于内容的视频检索的关键是找到视频之间的相似度。仅利用图像级的视频级特征来克服相关的挑战,Shao等人[135]建议使用transformer来建模远程语义依赖。他们还引入了有监督的对比学习策略来进行硬负挖掘。在基准数据集上的应用结果表明了该方法的性能和速度优势。此外,Gabeur等人[47]提出了一种多模态转换器,用于学习不同的跨模态线索,以表示视频。
视频目标检测。为了检测视频中的目标,需要同时获取全局和局部信息。Chen等人引入了记忆增强的全局局部聚合(MEGA)[22]来捕捉更多的内容。具有代表性的特点提高了整体表现,解决了效率低下和不足的问题。此外,Yin等人[171]提出了一种时空转换器来聚合时空信息。结合另一个空间特征编码组件,这两个组件在三维视频目标检测任务中表现良好。
多任务学习。未裁剪的视频通常包含许多与目标任务无关的帧。因此,挖掘相关信息,剔除冗余信息就显得尤为重要。为了提取这些信息,Seong等人提出了视频多任务变换网络[133],该网络处理未修剪视频的多任务学习。CoVieW数据集的任务是场景识别、动作识别和重要性评分预测。ImageNet和Places365上的两个预训练网络提取了场景特征和对象特征。利用类转换矩阵(CCM)实现多任务变压器的特征融合。

4.4.2 Low-level Video Processing

框架/视频合成。帧合成任务包括在两个连续帧之间或帧序列之后的帧合成,而视频合成任务包括视频合成。Liu等人提出了ConvTransformer[99],它由五个部分组成:特征嵌入、位置编码、编码器、查询解码器和综合前馈网络。与基于LSTM的算法相比,该算法具有更强的并行性,取得了更好的效果。Schatz等人提出了另一种基于变压器的方法[132],该方法使用循环变压器网络从新颖的观点综合人类行为。
视频修复。视频修复任务包括完成帧内任何丢失的区域。这是具有挑战性的,因为它需要沿空间和时间维度合并信息。Zeng等人提出了一种时空变换网络[178],将所有输入帧作为输入,并并行填充。利用时空对抗性损耗对变压器网络进行优化。

4.5. Self-attention for Computer Vision

前几节回顾了使用transformer体系结构进行可视化任务的方法。由此可见,自我注意是变压器的关键部分。在本节中,我们将深入研究基于自我注意的模型,这些模型是为计算机视觉中具有挑战性的任务而设计的。这些任务包括语义分割、实例分割、目标检测、关键点检测和深度估计。我们首先在4.5.1节阐述了自我注意的算法,然后在4.5.2节总结了自我注意在计算机视觉中的现有应用。

4.5.1 General Formulation of Self-attention

机器翻译的自我注意模块[152]通过关注所有位置来计算序列中一个位置的响应,并根据嵌入空间中的权重将它们相应相加。这可以看作是一种适用于计算机视觉的非局部滤波操作[157,12]。我们按照惯例[157]来制定自我注意模块。给定输入信号(如图像、序列、视频、特征)X∈Rn×c,其中n = h × w(表示特征中像素的个数),c为通道数,输出信号生成为:
在这里插入图片描述
其中xi∈R1×c和yi∈R1×c分别表示输入信号X和输出信号Y的第i个位置(如空间、时间和时空)。下标j是枚举所有的索引位置,和一个成对函数f(·)com -把一个代表之间的关系(比如亲和力)i和j。函数g(·)计算j表示输入信号的位置,和响应规范化因子C (xi)。
注意成对函数f(·)有很多选择。例如,高斯函数的一个简单扩展可以用来计算电磁层空间中的相似度。因此,函数f(·)可以表述为:在这里插入图片描述
其中θ(·)和φ(·)可以是任意嵌入层。如果我们考虑线性嵌入形式的θ(·),φ(·),g(·):θ(X) = XWθ, φ(X) = XWφ, g(X) = XWg,其中Wθ∈Rc×dk,Wφ∈Rc×dk,Wg∈Rc×dv,和正则化因子,则eq16可以重写为:
文献阅读(八):A Survey on Visual Transformer_第19张图片
其中wθ,i∈Rc×1是权矩阵wθ的第i行。对于给定的指标i, 1f (xi, xj)成为沿j维的softmax C(xi)输出。公式可以进一步改写为:
在这里插入图片描述
其中Y∈Rn×c是与x相同大小的输出信号。与翻译qkv
模,一旦Wq = Wθ,Wk = Wφ,Wv = Wg,式19可表示为:
在这里插入图片描述
提出的用于机器翻译的自我注意模块[152]在一定程度上与前面提出的用于计算机视觉的非局部滤波操作相同。
一般情况下,计算机视觉自我注意模块的最终输出信号将被包装为:在这里插入图片描述
其中Y由式19生成。如果WZ初始化为零,这个自我注意模块可以插入到任何现有的模型中,而不会破坏它的初始行为。

4.5.2 Applications on Visual Tasks

自我注意模块被认为是CNN架构的一个组成部分,它在大的接收域中具有较低的尺度属性。该构建块通常用于网络顶部,用于捕获远程交互,并增强计算机视觉任务的高级语义特征。接下来,我们回顾了目前提出的基于自我注意的图像分类、语义分割和目标检测方法
图像分类。用于分类的可训练注意力包括两个主流方向:关于使用图像区域的硬注意力[4,105,166]和生成非刚性特征映射的软注意[154,71,53,125]。Ba等人[4]首先提出了图像分类任务中的“视觉注意”一词,并利用注意在输入图像中选择相关区域和位置。这也可以减少关于输入图像大小的计算复杂度。针对医学图像分类,提出了AG-CNN[50]算法,利用关注热图从全局图像中裁剪出一个子区域。SENet[65]提出了对卷积特征的信道响应进行重权处理,而不是使用硬注意和重新校准特征映射。Jetley等人[71]使用由相应的估计器生成的注意图来重新加权DNNs中的中间特征。此外,Han等人利用属性感知注意增强cnn的表示。
语义分割。PSANet[187]、OCNet[172]、DANet[46]和CFNet[182]是提出在语义分离任务中使用自我注意模块的先驱。这些作品考虑并增强了上下文像素之间的关系和相似性[181,89,56,108,160,88]。DANet[46]同时在空间维度和通道维度上利用了自我注意模块,而A2Net[23]将像素分组成一组区域,然后通过将区域表示与生成的注意权重聚合来增强像素表示。DGCNet[184]使用双图CNN对单个框架内的坐标空间相似性和特征空间相似性进行建模。为了提高自我注意模块在语义分割中的效率,已经提出了几个常用的工作[174,70,69,90,81],旨在缓解计算像素相似度带来的大量参数。例如,CGNL[174]应用RBF核函数的泰勒级数来近似像素相似性。CCNet[70]通过两个连续的交叉注意模块近似原始的自我注意方案。此外,ISSA[69]将稠密亲和矩阵分解为两个稀疏亲和矩阵的乘积。还有其他相关的工作使用基于注意的图推理模块[91,24,90]来增强局部和全局表示。
对象检测。Ramachandran等人[125]提出了一个基于注意力的层,并交换了传统的卷积层,以构建一个比COCO benchmark上的典型RetinaNet[94]性能更好的全注意力检测器[95]。GCNet[14]假设对于一幅图像内的不同查询位置,非局部操作所建模的全局上下文几乎是相同的,并将简化的公式和SENet[65]统一为全局上下文建模的一般框架[87,63,41,114]。Vo等人[153]设计了一个双向操作,从查询位置收集和分发信息到所有可能的位置。Zhang等[180]认为以前的方法无法与跨尺度特征交互,提出了基于自我注意模块的特征金字塔变换器,充分利用空间和尺度上的交互。
传统的检测方法通常利用单一的视觉表示(如边界盒和角点)来预测最终结果。Hu等[64]提出了一种基于自我注意的关系模块,通过对象的外观特征之间的交互作用,同时加工一组对象。Cheng等人在[28]中提出了relationnet ++与桥接视觉表示(BVR)模块相结合,将不同的异构表示组合成一个类似于自我注意模式的单一表示。具体来说,主表示被视为查询输入,辅助表示被视为键输入。因此,增强的特征可以连接来自辅助表示的信息,并有利于最终的检测结果。
其他视觉任务。Zhang等人[183]提出了一个分辨率的注意模块,在训练多分辨率网络为姿态估计任务获取ac-策划人体关键点位置时,学习增强的特征地图。此外,Chang等人[18]使用了一种基于注意机制的特征融合块来提高人体关键点检测模型的准确性。
为了探索更广义的上下文信息,以改进自监督单眼训练深度估计,Johnston等[74]直接利用了自我注意模块。Chen等人还提出了一种基于注意力的聚合网络,用于捕获不同场景中不同的上下文信息,用于深度估计。Aich等人[1]提出了双向注意模块,利用前后注意操作获得更好的单眼深度估计结果。

4.6. Efficient Transformer

虽然transformer模型在各种任务中都取得了成功,但它们对内存和计算资源的高要求阻碍了它们在资源有限的设备(如手机)上的实现。在这一节中,我们回顾了为有效实施压缩变压器和交流加速变压器模型所进行的研究。这包括网络剪枝、低秩分解、知识精馏、网络量化和紧凑的体系结构设计。表5列出了一些用于压缩基于transformer的模型的代表性工作。

4.6.1 Pruning and Decomposition

在基于transformer的预训练模型(如BERT)中,多重注意操作是并行执行的,以独立建模不同标记之间的关系[152,34]。然而,特定任务并不要求使用所有的磁头。例如,Michel等人[103]提出的经验证据表明,在测试时可以移除很大比例的注意头,而不会显著影响性能。头的数量在不同的层中有所不同——有些层甚至可能只需要一个头。考虑到注意头的冗余性,[103]中定义了重要性分数来估计每个注意头对最终输出的影响,不重要的注意头可以被去除,以便有效部署。Dalvi等人[117]从两个角度分析了预训练变压器模型中的冗余:通用冗余和特定任务冗余。遵循彩票假设[44],Prasanna等人[117]分析了BERT中的彩票,表明在基于变压器的模型中也存在良好的子网,减少了FFN层和注意力头,以实现较高的压缩率。
除了变压器模型的宽度外,深度(即层数)也可以减少,以加速推理过程[39]。不同于变压器模型中不同的注意头可以并行计算的概念,不同的层必须顺序计算,因为下一层的输入依赖于前一层的输出。Fan等人[39]提出了一种分层明智降格策略来规范模型的训练,然后在测试阶段将整个层一起去除。鉴于不同设备中可用的资源可能不同,Hou等人[62]提出了自适应地减小预定义变压器模型的宽度和深度。该方法同时获得多个不同大小的模型,并通过重接线机制在不同的子网络中共享重要的注意头和神经元。
除了在变压器模型中直接丢弃模的剪剪方法外,矩阵分解的目的是基于低秩假设,用多个小矩阵来近似大矩阵。如Wang等[161]对变压器模型中的标准矩阵乘法进行了分解,提高了推理效率。

4.6.2 Knowledge Distillation

知识蒸馏的目的是通过从大型教师网络转移知识来训练学生网络[59,13,3]。与教师网络相比,学生网络的架构通常更薄、更浅,更容易在资源有限的资源上部署。神经网络的输出特征和中间特征也可以用来将有效的信息从教师传递给学生。Mukher- jee等人[106]专注于变压器模型,使用预先训练的BERT[34]作为教师,利用大量未标记的数据来指导小模型的训练。Wang等人[156]训练学生网络来模拟预训练的教师模型中的自我注意层的输出。价值观之间的点积作为一种指导学生的新知识形式被引入。在[156]中还引入了教师助理[104],减少了大型预训练的变形模型与紧凑的学生网络之间的差距,从而促进了模仿。由于transformer模型中存在不同类型的层(即自我注意层、嵌入层和预测层),Jiao等[73]设计了不同的目标函数来将知识从教师传递给学生。例如,学生模型的嵌入层输出通过MSE损耗模拟教师的嵌入层输出。提出了一种可学习的线性变换,将不同的特征映射到同一空间中。对于预测层的输出,采用KL-divergence来度量不同模型之间的差异。

4.6.3 Quantization

量化的目的是减少表示网络权值或中间特征所需的比特数[151,170]。一般神经网络的量化方法已经详细讨论过,并取得了与原始网络相当的性能[112,45,7]。最近,人们对如何对变压器模型进行特殊的全化越来越感兴趣[10,40]。例如,Shridhar等人[137]建议将输入嵌入到二进制高维向量中,然后使用二进制输入表示来训练二进制神经网络。Cheong等人的[26]用低位(例如4位)表示变压器模型中的权值。Zhao等[188]实证研究了各种量化方法,k-means量化有巨大的发展潜力。Prato等人[118]针对机器翻译任务提出了一种完全量化的变压器,如论文所言,这是第一个翻译质量不受任何损失的8位模型。

4.6.4 Compact Architecture Design

除了将预定义的变压器模型压缩成更小的模型外,有些作品还试图直接设计紧凑的模型[164,72]。Jiang等人[72]简化了自我注意的计算,提出了一种新的模块——基于跨度的动态卷积,该模块将全连接层和卷积层结合起来,如图11所示。通过卷积运算计算不同令牌表示之间的局部依赖性,这比标准变压器中密集的全连接层的效率高得多。为了进一步降低计算成本,还采用了深度卷积。在[2]中提出了有趣的“汉堡包”层,使用矩阵分解代替原来的自我注意层。与标准的自我注意运算相比,矩阵分解能够更有效地计算出不同标记之间的依赖性。高效的变压器ar架构的设计也可以通过神经架构搜索(NAS)来实现自动化[52,138],它可以自动搜索如何组合不同的组件。
变压器模型中的自我注意运算是计算给定序列(图像识别任务[37]中的小块)中不同输入令牌表示之间的点积,复杂度为O(N),其中N为序列的长度。最近,有一个目标是将大型方法的复杂度降低到O(N),从而使变压器模型可以扩展到长序列。例如,Katharopoulos等人[76]将自我注意近似为核特征映射的线性点积,并通过RNNs揭示了令牌之间的关系。Zaheer等人[177]将每个令牌视为图中的一个顶点,并将两个令牌之间的内积计算定义为边。受图论的启发[139,30],将各种稀疏图结合起来近似变压器模型中的稠密图,可以达到O(N)复杂度。Yun等[175]从理论角度证明了复杂度为O(N)的稀疏变压器足以反映令牌之间的任何一种关系,并且可以进行普遍逼近,为进一步研究复杂度为O(N)的变压器提供了理论保证。
讨论。上述方法采用了不同的方法来尝试识别变压器模型中的冗余(参见图12)。剪枝和分解定位方法通常需要预先定义具有冗余的模型。具体来说,剪枝侧重于减少变压器模型中的组件(如层、头)数量,而分解则用多个小矩阵表示原始矩阵。紧凑的模型也可以直接手动设计(需要足够的专业知识)或自动设计(例如,通过NAS)。得到的紧凑模型可以通过量化方法进一步用低比特表示,以便在资源有限的设备上有效部署。

5. Conclusions and Discussions

与CNN相比,Transformer以其优异的性能和巨大的潜力成为计算机视觉领域的研究热点。为了发现和利用Transformer,本文总结了近年来提出的一些方法。
这些方法在多种视觉任务中表现优异,包括主干、高/中水平视觉、低水平视觉和视频处理。然而,计算机视觉Transformer的潜力还没有得到充分的探索,这意味着仍有一些挑战需要解决。在本节中,我们将讨论这些挑战,并提供对未来前景的见解。

5.1. Challenges

虽然研究人员已经提出了许多基于变压器的模型来处理计算机视觉任务,但这些工作只是这个领域的第一步,还有很多改进的空间。例如,ViT[36]中的transformer架构遵循NLP的标准变压器[152],但专门为CV设计的改进版本仍有待探索。
计算机视觉transformer的泛化和鲁棒性也具有挑战性。与cnn相比,纯变压器缺乏一些归纳偏差,在大规模训练[36]时严重依赖于大量数据集。因此,数据的质量对transformer的泛化和鲁棒性有重要影响。虽然ViT在CIFAR[79]、VTAB[179]等下游图像分类任务中表现出色,但直接将ViT骨干应用于对象检测并没有达到比CNNs[8]更好的效果。还有很长的路要走,以一般化预先训练的变压器更一般化的视觉任务。

尽管有许多著作解释了transformer在自然语言处理中的使用[134,162],但要清楚地解释为什么transformer在视觉任务中工作得很好仍然是一个具有挑战性的课题。归纳偏差,包括平移均衡性和局部性,归因于CNN的成功,transformer没有任何归纳偏差。目前的文献通常以直观的方式分析效果[36,19]。例如,Dosovitskiy等人[36]声称大规模的训练可以超越归纳偏差。在图像块中加入位置嵌入来保留位置信息,这在计算机视觉任务中是非常重要的。受transformer中大量参数使用的启发,过度参数化[100,107]可能是视觉变压器可解释性的一个潜在点。

为CV开发高效的transformer模型仍然是一个开放的问题。transformer模型通常体积巨大,计算成本昂贵。例如,基本的ViT模型[36]需要180亿次运算才能处理一张图像。相比之下,轻量级的CNN模型GhostNet[54,55]只需约6亿次FLOPs就能实现类似的性能。虽然已经提出了几种压缩变压器的方法,但它们仍然非常复杂。这些方法最初是为自然语言处理而设计的,但可能不适用于CV。因此,迫切需要高效的transformer模型,使视觉transformer可以部署在资源有限的设备上。

5.2. Future Prospects

为了推动visual transformers的发展,我们提出了未来研究的几个潜在方向。
一个方向是提高transformer在计算机视觉中的有效性和效率。目标是开发高效的 visual transformers;特别是高性能、低资源成本的transformers。性能决定了模型是否可以应用到实际应用中,而资源成本则影响在设备上的部署。效率通常与效率相关,如何在两者之间取得更好的平衡是未来研究的一个有意义的课题。

现有的大多数 visual transformer模型都被设计成只处理单一任务。许多NLP模型,如GPT-3[11],已经演示了transformer如何在一个模型中处理多个任务。
在CV领域,IPT[20]还能够处理多个低分辨率的视觉任务,如超分辨率、图像去噪、去噪等。我们相信在一个模型中可以包含更多的任务。将所有视觉任务甚至其他任务统一到一个变形器中(即大统一模型)是一个令人兴奋的主题。
神经网络有各种类型,如CNN、RNN和transformer。在CV领域,cnn曾经是主流的选择[57,146],但现在,transformer正变得越来越流行。cnn可以捕获inductive biases 归纳偏差,如翻译等效性和局部性,而ViT使用大规模训练来超越inductive biases 归纳偏差[36]。从目前可用的[36]证据来看,cnn在小数据集上表现良好,而transformer在大数据集上表现更好。未来的问题是使用CNN还是transformer?
通过使用大数据集进行训练,transformer可以在NLP[11,34]和CV基准[36]上实现最先进的性能。神经网络可能需要大数据,而不是诱导偏差inductive bias。最后,我们给您留下一个问题:transformer能够通过非常简单的计算范式(例如,仅使用完全连接的层)和大量数据训练获得令人满意的结果吗?

你可能感兴趣的:(研究领域论文学习)