论文名称:Transformers in Vision: A Survey
论文下载:https://dl.acm.org/doi/abs/10.1145/3505244
论文年份:2021
论文被引:279(2022/05/02)

论文总结

Abstract

Astounding results from Transformer models on natural language tasks have intrigued the vision community to study their application to computer vision problems. Among their salient benefits, Transformers enable modeling long dependencies between input sequence elements and support parallel processing of sequence as compared to recurrent networks e.g., Long short-term memory (LSTM). Different from convolutional networks, Transformers require minimal inductive biases for their design and are naturally suited as set-functions. Furthermore, the straightforward design of Transformers allows processing multiple modalities (e.g., images, videos, text and speech) using similar processing blocks and demonstrates excellent scalability to very large capacity networks and huge datasets. These strengths have led to exciting progress on a number of vision tasks using Transformer networks. This survey aims to provide a comprehensive overview of the Transformer models in the computer vision discipline. We start with an introduction to fundamental concepts behind the success of Transformers i.e., self-attention, large-scale pre-training, and bidirectional feature encoding. We then cover extensive applications of transformers in vision including popular recognition tasks (e.g., image classification, object detection, action recognition, and segmentation), generative modeling, multi-modal tasks (e.g., visual-question answering, visual reasoning, and visual grounding), video processing (e.g., activity recognition, video forecasting), low-level vision (e.g., image super-resolution, image enhancement, and colorization) and 3D analysis (e.g., point cloud classification and segmentation). We compare the respective advantages and limitations of popular techniques both in terms of architectural design and their experimental value. Finally, we provide an analysis on open research directions and possible future works. We hope this effort will ignite further interest in the community to solve current challenges towards the application of transformer models in computer vision.

Transformer 模型在自然语言任务上的惊人结果引起了视觉社区研究其在计算机视觉问题中的应用的兴趣。在它们的显着优势中,与循环网络(例如长短期记忆(LSTM))相比,Transformer 能够对输入序列元素之间的长期依赖关系进行建模,并支持序列的并行处理。与卷积网络不同,Transformers 的设计需要最小的归纳偏差(inductive biases),并且自然适合作为集合函数。此外,Transformers 的简单设计允许使用类似的处理块处理多种模式(例如,图像、视频、文本和语音),并展示了对超大容量网络和巨大数据集的出色可扩展性。这些优势导致使用 Transformer 网络在许多视觉任务上取得了令人兴奋的进展。本调查旨在全面概述计算机视觉学科中的 Transformer 模型。

我们首先介绍了 Transformer 成功背后的基本概念,即

  • 自注意力(self-attention)

  • 大规模预训练(large-scale pre-training)

  • 双向特征编码(bidirectional feature encoding)

然后,我们涵盖了Transformer在视觉中的广泛应用,包括流行的

  • 识别任务(recognition tasks),例如

    • 图像分类(image classification)
    • 目标检测(object detection)
    • 动作识别(action recognition)
    • 分割(segmentation)
  • 生成建模(generative modeling)
  • 多模态任务(multi-modal tasks),例如
    • 视觉问答(visual-question answering)
    • 视觉推理(visual reasoning)
    • 视觉定位(visual grounding)
  • 视频处理(video processing),例如
    • 活动识别(activity recognition)
    • 视频预测(video forecasting)
  • 低级视觉(low-level vision),例如
    • 图像超分辨率(image super-resolution)
    • 图像增强(image enhancement)
    • 着色(colorization)
  • 3D 分析(3D analysis),例如
    • 点云分类(point cloud classification)
    • 分割(segmentation)

我们比较了流行技术在架构设计和实验价值方面各自的优势和局限性。最后,我们对开放的研究方向和未来可能的工作进行了分析。我们希望这项努力将激发社区的进一步兴趣,以解决当前在计算机视觉中应用 Transformer 模型所面临的挑战。

1 INTRODUCTION

TRANSFORMER 模型 [1] 最近在广泛的语言任务(例如文本分类、机器翻译 [2] 和问答)上展示了出色的性能。在这些模型中,最流行的包括 BERT (Bidirectional Encoder Representations from Transformers) [3]、GPT (Generative Pre-trained Transformer) v1-3 [4]–[6]、RoBERTa (Robustly Optimized BERT Pre-training) [ 7] 和 T5(Text-to-Text Transfer Transformer)[8]。 Transformer 模型的深远影响已经变得更加明显,因为它们可扩展到超大容量模型 [9]、[10]。例如,具有 3.4 亿参数的 BERT-large [3] 模型明显优于具有 1750 亿参数的 GPT-3 [6] 模型,而最新的混合专家 (mixture-of-experts) Switch Transformer [10] 可扩展到高达 1.6万亿参数!

Transformer 网络在自然语言处理 (NLP) 领域的突破引起了计算机视觉社区的极大兴趣,以使这些模型适用于视觉和多模态学习(multi-modal learning)任务(图 1)。

然而,视觉数据遵循典型的结构,例如,空间和时间连贯性(spatial and temporal coherence),因此需要新颖的网络设计和训练方案。因此,Transformer 模型及其变体已成功用于图像识别 [11]、[12]、对象检测 [13]、[14]、分割 [15]、图像超分辨率 [16]、视频理解 [ 17]、[18]、图像生成 [19]、文本图像合成 [20] 和视觉问答 [21]、[22],以及其他几个用例 [23]-[26]。本次调查旨在涵盖计算机视觉领域最近的令人兴奋的努力,为感兴趣的读者提供全面的参考。

Transformer 架构基于学习序列元素之间关系的自注意力机制。与递归处理序列元素并且只能关注短期上下文的循环网络相反,Transformers 可以关注完整序列,从而学习长期关系。尽管注意力模型已广泛用于前馈和循环网络 [27]、[28],但 Transformer 仅基于注意力机制,并具有针对并行化优化的独特实现(即多头注意力)。这些模型的一个重要特征是它们对高复杂度模型和大规模数据集的可扩展性,例如,与其他一些替代方案相比,例如硬注意力[29],它本质上是随机的,需要蒙特卡罗采样来采样注意力位置。由于与卷积和循环对应物相比,Transformers 假设关于问题结构的先验知识最少 [30]-[32],因此它们通常使用大型(未标记)数据集 [1]、[3] 上的代理任务(pretext task)进行预训练。这种预训练避免了昂贵的手动注释,从而编码了高度表达和可概括的表示,这些表示对给定数据集中存在的实体之间的丰富关系进行建模。然后以监督的方式在下游任务上对学习到的表示进行微调以获得有利的结果。

本文提供了为计算机视觉应用开发的Transformer模型的整体概述。我们开发了网络设计空间的分类法,并突出了现有方法的主要优点和缺点。其他文献综述主要集中在 NLP 领域 [33]、[34] 或涵盖基于注意力的通用方法 [27]、[33]。通过关注新出现的视觉Transformer领域,我们根据自注意的内在特征和所研究的任务全面组织了最近的方法。我们首先介绍了 Transformer 网络的重要概念,然后详细介绍了最近的视觉Transformer的细节。只要有可能,我们就会在 NLP 领域 [1] 中使用的 Transformer 与针对视觉问题开发的 Transformer 之间进行比较,以闪现主要的新颖性和有趣的领域特定见解。最近的方法表明,卷积操作可以完全用基于注意力的Transformer模块代替,并且还可以在单个设计中联合使用,以鼓励两个互补的操作集之间的共生。这项调查最终详细介绍了开放的研究问题,并对未来可能的工作进行了展望。

2 FOUNDATIONS

有两个关键思想有助于传统Transformer模型的发展。

(a) 第一个是自注意力,与传统的循环模型相比,它允许捕获序列元素之间的“长期”依赖关系,而传统的循环模型发现编码这种关系具有挑战性。

(b) 第二个关键思想是以(自)监督的方式对大型(未)标记语料库进行预训练,然后使用小型标记数据集 [3]、[7] 对目标任务进行微调 [38]。下面,我们提供关于这两个想法(第 2.2 节和第 2.1 节)的简短教程,以及应用了这些想法的开创性 Transformer 网络(第 2.3 节和第 2.4 节)的总结。这一背景将帮助我们更好地理解即将在计算机视觉领域使用的基于 Transformer 的模型(第 3 节)。

图 3:Transformer模型 [1] 的架构。该模型最初是为语言翻译任务开发的,其中一种语言的输入序列需要转换为另一种语言的输出序列。

Transformer 编码器(中间行)对输入语言序列进行操作,并将其转换为嵌入(Embedding),然后再将其传递给编码器块。

Transformer 解码器(底行)对先前生成的翻译语言输出和来自中间分支的编码输入序列进行操作,以输出输出序列中的下一个单词。

先前输出的序列(用作解码器的输入)是通过将输出句子向右移动一个位置并在开头附加句子开始标记来获得的。这种转变避免了模型学习简单地将解码器输入复制到输出。

训练模型的真实标签(ground-truth)只是附加了句尾标记的输出语言序列(没有任何右移)。由多头注意力(顶行)和前馈层组成的块在编码器和解码器中重复 N 次。

2.1 Self-Attention in Transformers

给定一系列项目 (item),self-attention 估计一个项目与其他项目的相关性(例如,哪些单词可能在一个句子中组合在一起)。自注意力机制是 Transformers 的一个组成部分,它显式地为结构化预测任务的序列的所有实体之间的交互建模。基本上,自注意力层通过聚合来自完整输入序列的全局信息来更新序列的每个组件。让我们X∈Rn×dX ∈ \R^{n×d}XRn×d 来表示 nnn 个实体 (x1,x2,⋅⋅⋅⋅xnx_1, x_2, ····x_nx1,x2,xn) 的序列,其中 ddd 是表示每个实体 (entity) 的嵌入维度。自注意力的目标是通过根据全局上下文信息对每个实体进行编码来捕获所有 nnn 个实体之间的交互。这是通过定义三个可学习的权重矩阵来转换,查询(WQ∈Rd×dqW^Q ∈ \R^{d×d_q}WQRd×dq),键(WK∈Rd×dkW^K ∈ \R^{d×d_k}WKRd×dk)和值(WV∈Rd×dvW^V ∈ \R^{d×d_v}WVRd×dv)来完成的,其中 dq=dkd_q = d_kdq=dk。输入序列 XXX 首先投影到这些权重矩阵上,得到 Q=XWQQ = XW^QQ=XWQK=XWKK = XW^KK=XWKV=XWVV = XW^VV=XWV。自注意力层的输出 Z∈Rn×dvZ ∈ \R^{n×d_v}ZRn×dv 为,

对于序列中的给定实体,self-attention 基本上计算查询与所有键的点积,然后使用 softmax 算子对其进行归一化以获得注意力分数。然后每个实体成为序列中所有实体的加权和,其中权重由注意力分数给出(图 2 和图 3,顶部行左块)。

掩码自注意力(Masked Self-Attention):标准的self-attention层关注所有实体。对于经过训练以预测序列的下一个实体的 Transformer 模型 [1],解码器中使用的自注意力块被屏蔽以防止关注后续的未来实体。这可以通过使用掩码 M∈Rn×nM ∈ \R^{n×n}MRn×n 的逐元素乘法运算来完成,其中 MMM 是上三角矩阵。掩蔽 (masked) 的self-attention定义为,

其中 ◦◦ 表示 Hadamard 积。基本上,在预测序列中的实体时,未来实体的注意力分数在 masked self-attention 中设置为零

多头注意力(Multi-Head Attention):为了封装序列中不同元素之间的多种复杂关系,多头注意力包括多个自注意力块(原始 Transformer 模型中的 h = 8 [1])。每个块都有自己的一组可学习的权重矩阵 {WQi,WKi,WVi}\{W^{Q_i}, W^{K_i}, W^{V_i}\}{WQi,WKi,WVi},其中 i=0⋅⋅⋅(h−1)i = 0 · · · (h−1)i=0(h1)。对于输入 XXX,将多头注意力中的 hhh 个自注意力块的输出连接(concatenated)成单个矩阵 [Z0,Z1,⋅⋅⋅Zh−1]∈Rn×h⋅dv[Z_0, Z_1, ··· Z_{h−1}] ∈ \R^{n×h·d_v}[Z0,Z1,Zh1]Rn×hdv ,并投影到权重矩阵 W∈Rh⋅dv×dW ∈ \R^{h·d_v×d}WRhdv×d(图 3,顶行)。

自注意力与卷积操作的主要区别在于,滤波器是动态计算的,而不是像卷积情况下的静态滤波器(对于任何输入都保持相同)。此外,自注意力对于输入点数量的排列和变化是不变的。因此,它可以轻松地对不规则输入进行操作,而不是需要网格结构的标准卷积。此外,文献中已经表明,self-attention(使用位置编码)在理论上是一种更灵活的操作,可以模拟卷积模型对局部特征进行编码的行为[40]。科Cordonnier et al. [41] 进一步研究了自注意力和卷积操作之间的关系。他们的经验结果证实,多头自注意力(具有足够的参数)是一种更通用的操作,可以将卷积的表达性建模为一种特殊情况。事实上,self-attention 提供了学习全局和局部特征的能力,并提供了自适应学习内核权重和感受野的表达能力,类似于可变形卷积 (deformable convolutions) [42]

2.2 (Self) Supervised Pre-training

基于自注意力的 Transformer 模型通常以两阶段的训练机制运行。首先,以监督 [11] 或自监督方式 [3]、[44] 对大规模数据集(有时是几个可用数据集 [22]、[43] 的组合)进行预训练 [45]。随后,预训练的权重使用中小型数据集适应下游任务。下游任务的示例包括图像分类 [46]、对象检测 [13]、零样本分类 [20]、问答 [10] 和动作识别 [18]。语言和视觉领域都提倡对大规模 Transformer 进行预训练的有效性。例如,与在具有 3 亿个 JFT 数据集 [47] 上进行预训练的情况相比,仅在 ImageNet 训练集上训练时,Vision Transformer 模型 (ViT-L) [11] 在 ImageNet 测试集上的准确度绝对下降了 13%图片。

由于大规模获取手动标签很麻烦,因此自监督学习在预训练阶段得到了非常有效的应用。基于自监督的预训练阶段训练在释放 Transformer 网络的可扩展性和泛化性方面发挥了至关重要的作用,使训练甚至超过一万亿个参数网络(例如,来自 Google 的最新 Switch Transformer [10])。关于 SSL 的广泛调查可以在 [48]、[49] 中找到。正如 Y. LeCun [50] 所总结的那样,SSL 的基本思想是填补空白,即尝试预测图像中的遮挡数据、时间视频序列中的未来或过去帧或预测一个代理任务,例如应用于输入的旋转量,应用于图像块或灰度图像颜色的排列。施加自监督约束的另一种有效方法是通过对比学习。在这种情况下,不利转换(nuisance transformations)用于创建同一图像的两种类型的修改版本,即不改变底层类语义(例如,图像样式化、裁剪)和语义变化(例如,用同一场景中的另一个对象替换一个对象,或者用对图像的微小不利改变来改变类别)。随后,该模型被训练为对不利转换保持不变,并强调对可能改变语义标签的微小变化进行建模

自监督学习提供了一种有前途的学习范式,因为它可以从大量现成的非注释数据中学习。在基于 SSL 的预训练阶段,模型被训练以通过解决一个代理任务来学习底层数据的有意义的表示。代理任务的伪标签是根据数据属性和任务定义自动生成的(不需要任何昂贵的手动注释)。因此,代理任务定义是 SSL 中的关键选择。我们可以根据它们的代理任务将现有的 SSL 方法大致分为

(a)合成图像或视频(给定条件输入)的生成方法

(b)利用图像块或视频帧之间关系的基于上下文的方法

(c )利用多种数据模式的跨模式方法

生成方法的示例包括条件生成任务,例如掩码图像建模(masked image modeling) [43] 和图像着色 [51]、图像超分辨率 [52]、图像修复 [53] 和基于 GAN 的方法 [54]、[55]。基于上下文的代理方法解决了诸如图像块 [56]-[58] 上的拼图游戏、掩码对象分类 [22]、预测几何变换(如旋转 [46]、[59])或验证视频帧的时间序列 [60]-[62]。跨模态代理方法验证两种输入模态的对应关系,例如文本和图像 [63]、音频和视频 [64]、[65] 或 RGB 和流 [66]。

2.3 Transformer Model

[1] 中提出的 Transformer 模型的架构如图 3 所示。它具有编码器-解码器结构。编码器(中间行)由六个相同的块组成(即图 3 中的 N=6),每个块有两个子层:一个多头自注意力网络和一个简单的位置全连接前馈网络。如图 3 所示,在每个块之后使用残差连接 [67] 和层归一化 [68]。请注意,与同时执行特征聚合和特征转换的常规卷积网络不同(例如,卷积层后跟非线性),这两个步骤在 Transformer 模型中是解耦的,即自注意力层只执行聚合,而前馈层执行变换。与编码器类似,Transformer 模型中的解码器(底行)包含六个相同的块。每个解码器块有三个子层,前两个子层(多头自注意力和前馈)类似于编码器,而第三子层对相应编码器块的输出进行多头注意力,如图 3。

[1] 中的原始 Transformer 模型是针对机器翻译任务进行训练的。编码器的输入是一种语言的单词(句子)序列。位置编码被添加到输入序列中以捕获序列中每个单词的相对位置。位置编码与输入 d = 512 具有相同的维度,并且可以通过正弦或余弦函数学习或预定义。作为一个自回归模型,Transformer [1] 的解码器使用先前的预测来输出序列中的下一个单词。因此,解码器从编码器获取输入以及先前的输出来预测翻译语言中句子的下一个单词。为了便于残差连接,所有层的输出维度保持相同,即 d = 512。多头注意力中的查询、键和值权重矩阵的维度设置为 dq = 64,dk = 64,dv = 64。

2.4 Bidirectional Representations

原始 Transformer 模型 [1] 的训练策略只能关注句子中给定单词左侧的上下文。这是限制性的,因为对于大多数语言任务,左右两侧的上下文信息都很重要。来自 Transformers 的双向编码器表示 (BERT) [3] 提出联合编码句子中单词的左右上下文,从而以自监督的方式改进文本数据的学习特征表示。为此,BERT [3] 引入了两个代理任务以自监督的方式对 Transformer 模型 [1] 进行预训练:Masked Language Model 和 Next Sentence Prediction。为了使预训练模型适应下游任务,在预训练模型中附加了一个特定于任务的附加输出模块,并对完整模型进行端到端微调。在这里,我们简要介绍一下代理任务。

(1) 掩码语言模型 (MLM):一个句子中固定百分比 (15%) 的单词被随机掩蔽,并且该模型被训练以使用交叉熵损失来预测这些被掩蔽的单词。在预测被掩蔽的单词时,该模型学会了结合双向上下文

(2) 下一个句子预测 (NSP):给定一对句子,该模型预测一个二进制标签,即该对是否在原始文档中有效。这方面的训练数据可以很容易地从任何单语文本语料库中生成。形成一对句子 A 和 B,使得 B 在 50% 的时间是实际句子(在 A 旁边),而 B 在其他 50% 的时间是随机句子。 NSP 使模型能够捕获句子到句子的关系,这在许多语言建模任务(如问答和自然语言推理)中至关重要

3 SELF-ATTENTION & TRANSFORMERS IN VISION

我们将具有自注意力的视觉模型大致分为两类:使用单头自注意力的模型(第 3.1 节),以及在其架构中采用基于多头自注意力的 Transformer 模块的模型(第 3.2 节)。下面,我们首先讨论第一类基于单头自注意力的框架,它们通常在 CNN 架构中应用全局或局部自注意力,或者利用矩阵分解来提高设计效率并使用矢量化注意力模型。然后,我们将在 Sec. 3.2. 中讨论基于 Transformer 的视觉架构。

图 4:self-attention 设计空间的分类。基于自注意的现有方法探索视觉任务的单头或多头设计。我们注意到,已经做出了有趣的努力来利用基于卷积的架构的知识来改进 ViT(例如,多尺度和混合设计)。我们根据自注意块的类型(左树图)以及计算机视觉中的突出任务(右)对本调查的后续部分进行分类。

3.1 Single-head Self-Attention

3.1.1 Self-Attention in CNNs

受主要用于图像去噪的非局部均值操作 [69] 的启发,Wang et al.[70] 提出了一种用于深度神经网络的可微分非局部操作,以前馈方式捕获空间和时间上的长期依赖关系。给定一个特征图,他们提出的算子 [70] 将某个位置的响应计算为特征图中所有位置的特征的加权和。这样,非局部操作能够捕获特征图中任意两个位置之间的交互,而不管它们之间的距离如何视频分类是像素之间在空间和时间上都存在远程交互的任务示例。 [70] 具备模拟远程交互的能力,证明了非局部深度神经网络在 Kinetics 数据集 [71] 上进行更准确的视频分类的优越性。

尽管 self-attention 允许我们对全图像上下文信息进行建模,但它是内存和计算密集型的。如图 5(a) 所示,为了编码给定像素位置的全局上下文,非局部块 [70] 计算密集的注意力图(绿色)。非局部块 [70] 具有 O(N2) 的高复杂度,其中 N 表示输入特征图的数量。为了减少这种计算负担,Huang et al. [72] 提出了交叉注意模块,该模块对于每个像素位置仅在交叉路径上生成稀疏注意图,如图5(b)所示。此外,通过反复应用交叉注意力,每个像素位置都可以从所有其他像素中捕获上下文。与非本地块相比,交叉使用的 GPU 内存少 11 倍,复杂度为 O(2√N)。在几个基准数据集上报告了语义和实例分割任务的最新结果 [72],包括 Cityscapes [73]、ADE20K [74]、COCO [75]、LIP [76] 和 CamVid [77]。

卷积算子的另一个缺点是在训练之后,无论视觉输入有什么变化,它都会应用固定的权重。[78] 提出了局部关系网络来自适应地组合局部窗口中的像素。他们引入了一个新的可微层,该层根据局部窗口内像素/特征之间的组成关系(相似性)调整其权重聚合。这种自适应权重聚合将几何先验引入网络,这对于识别任务很重要[78]。卷积被认为是自上而下的算子,因为它在多个位置上保持固定,而诸如 [69] 中介绍的非局部操作是自下而上的方法,因为它在整个图像上聚合输入特征。局部关系层属于自下而上方法的类别,但仅限于固定窗口大小,例如 7x7 邻域

Bello et al. [79]探索了使用自注意作为卷积算子的替代方案的可能性。他们在二维中使用相对位置编码 [80] 来开发一种新的自注意机制,该机制保持平移等效性,这是处理图像的理想属性。尽管这种自注意作为独立的计算原语提供了具有竞争力的结果,但结合卷积运算可以获得最佳性能。作者表明,注意力增强可以在不同架构的图像分类和对象检测中带来系统的性能提升。

3.1.2 Self-Attention as Stand-alone Primitive

如上所述,卷积层具有平移等效性(translation equivariance),但不能随大的感受野进行缩放,因此无法捕获远程交互 [81]。另一方面,关注输入的所有空间位置的全局注意力 [1] 可能是计算密集型的,并且在下采样的小图像、图像块 [11] 或增强卷积特征空间 [79] 上更受欢迎。**[81] 提出用局部自注意力层替换深度神经网络中的卷积层,该层可以应用于小型或大型输入,而不会增加计算成本。在基本层面上,所提出的自注意力层[81]考虑给定像素周围特定窗口大小中的所有像素位置,计算这些像素的查询、键和值向量,然后聚合该窗口内的空间信息。在投影查询和键的 softmax 分数后聚合值向量。对所有给定像素重复此过程,并将响应连接起来以产生输出像素。**与基于卷积层的 ResNet 模型相比,具有局部自注意力层的 ResNet 模型可以用更少的参数解决 ImageNet 和 COCO 对象检测 [81]。

Zhao et al. [82] 注意到,传统的卷积算子联合执行特征聚合和转换(通过应用滤波器,然后通过非线性传递)。相反,他们建议使用自注意分别执行特征聚合,然后使用逐元素感知器层进行转换。对于特征聚合,他们提出了两种替代策略:(a)pairwise self-attention 和(b)patch-wise self-attention。

pairwise self-attention 是 permutation and cardinality invariant 操作,而 patch-wise self-attention 没有这种不变性(类似于卷积)。成对和逐块自注意都被实现为向量注意[82],它学习空间和通道维度的权重。这提供了另一种注意力的替代方法,该方法通常使用标量权重(通过点积)执行。

  • 成对自注意力是一个集合算子,它计算向量注意力,同时考虑特定特征与其在给定局部邻域中的邻居的关系
  • 逐块自注意力是卷积算子(不是集合算子)的泛化,在推导注意力向量时会查看局部邻域中的所有特征向量

作者表明,使用相当少的参数,自注意力网络 (SAN) 可以在 ImageNet 数据集上击败 ResNet 基线。它们进一步显示出对抗性扰动的鲁棒性 [83]、[84] 和对看不见的变换的泛化 [85]。这种行为是由于注意力的动态特性使得对手难以计算出有用的欺骗方向。

3.2 Multi-head Self-Attention (Transformers)

与 Sec. 3.1 中讨论的方法不同。在受 CNN 启发的架构中插入自注意力作为组件,Vision Transformer (ViTs) [11] 采用了 [1] 的架构(见图 3),它级联了多个 Transformer 层。 ViTs 已经获得了重要的研究关注,并且最近提出了许多基于 ViTs 的方法。下面,我们通过将这些方法分为以下几类来讨论这些方法:在所有层中具有单尺度特征的统一尺度 ViT(第 3.2.1 节),学习更适合密集预测任务的分层特征的多尺度 ViT(第 3.2.2 节),以及在 ViT 中具有卷积运算的混合设计(第 3.2.3 节)。

3.2.1 Uniform-scale Vision Transformers

原始的 Vision Transformer [11] 模型属于这个家族,其中多头自注意力被应用于输入图像中的一致尺度,其中空间尺度通过网络层次结构保持。我们将此类模型命名为统一尺度 ViT,如下所述。

图 6:Vision Transformer 的概述(左侧)和 Transformer 编码器的详细信息(右侧)。该架构类似于 NLP 领域中使用的 Transformer,图像块在展平后简单地馈送到模型中。训练后,从第一个token位置得到的特征用于分类。从 [11] 获得的图像。

Vision Transformer (ViT) [11](图 6)是第一个展示 Transformer 如何在大规模图像数据集上“完全”替代深度神经网络中的标准卷积的工作。他们将原始的 Transformer 模型 [1](变化很小)应用于一系列图像“补丁(patch)”扁平化为向量。该模型在大型专有数据集(具有 3 亿张图像的 JFT 数据集 [47])上进行了预训练,然后针对下游识别基准进行了微调,例如 ImageNet 分类。这是一个重要的步骤,因为在中等数据集上预训练 ViT 不会产生有竞争力的结果,因为 CNN 编码了关于图像的先验知识(归纳偏差,例如平移等方差),与 Transformer 相比,它减少了对数据的需求必须从非常大规模的数据中发现此类信息。值得注意的是,与 iGPT [19] 模型也将 Transformers 应用于全尺寸图像但将训练作为生成任务执行相比,ViT 使用监督分类任务预训练模型(尽管还探索了自监督变体,结果在一个较少的表现)。

DeiT [12] 是第一个证明可以在相对较短的训练集中在中等大小的数据集(即 120 万个 ImageNet 示例与 ViT [11] 中使用的 3 亿个 JFT [11] 图像)上学习 Transformer 的工作。除了使用 CNN 中常见的增强和正则化程序外,DeiT [12] 的主要贡献是一种新颖的 Transformer 原生蒸馏方法,它使用 CNN 作为教师模型 (RegNetY16GF [86]) 来训练 Transformer 模型CNN 的输出帮助 Transformer 有效地找出输入图像的有用表示。蒸馏标记附加输入补丁嵌入和类标记。自注意力层对这些标记进行操作以了解它们的相互依赖关系并输出学习到的类、补丁和蒸馏标记。使用在输出类标记上定义的交叉熵损失和蒸馏损失对网络进行训练,以将蒸馏标记与教师输出相匹配。对蒸馏的软标签和硬标签选择进行了探索,发现硬蒸馏的性能更好。有趣的是,学习到的类和蒸馏标记没有表现出高度相关性,表明它们具有互补性。所学习的表示与性能最佳的 CNN 架构(如 EfficientNet [87])相比具有优势,并且对于许多下游识别任务也具有很好的泛化能力。

标记到标记 (Token to Token,T2T) ViT [35] 递归地将相邻标记组合成单个标记,以减少标记长度和聚合空间上下文Transformer in Transformer [88] 在两个级别上计算注意力:补丁级别(就像标准 ViT [11] 所做的那样)和局部子补丁级别(例如,通过将 16 × 16 补丁细分为四个 4 × 4 块,然后计算注意这些块)在标记 ViT [89] 中,所有补丁标记都有助于损失计算,这与仅在损失中使用分类标记的常规 ViT 不同。这个过程包括辅助监督,其中每个图像补丁(标记)使用预先训练的 CNN 模型进行标记。与 CutMix 增强 [90] 类似,将来自不同图像的标记混合作为增强策略,并使用标准分类损失和辅助标记标签损失来训练模型。他们的模型展示了出色的性能,特别是对于较小尺寸的模型。

自注意力的二次复杂性阻碍了它对更长序列(高分辨率图像)的适用性。 Cross-Covariance Image Transformers (XCiT) [91] 包含跨特征通道而不是标记的注意力,即它们的交叉协方差注意力由 Vsoftmax(KTQTτ2\frac{K^T Q^T}{\sqrt[2]{\tau}}2τ

KTQT)给出。提出的交叉协方差注意具有线性复杂性(因为它取决于特征维度而不是标记的数量)。因此,XCiT 可以处理大分辨率图像,并在不同的视觉任务(即自监督和完全监督的图像分类和密集预测(检测、分割))中表现出出色的性能。 DeepViT [92] 观察到更深层的注意力图之间的相似性很高,阻碍了模型深度的缩放。他们建议在多头块中重新关注注意力图,而不是简单地聚合这些注意力图,并显示出比基于标准多头自注意力的 ViT 的一致收益

3.2.2 Multi-scale Vision Transformers

在标准的 ViT 中,标记的数量和标记特征维度在网络的不同块中保持固定。这是有限的,因为模型无法捕捉不同尺度的精细空间细节。因此,基于初始 Transformer 的密集预测方法(例如,DETR [13])具有卷积后端。 ViT 的多阶段分层设计,其中标记数量逐渐减少,而标记特征维度逐渐增加,已被证明可以为密集预测任务产生有效的特征 [36]、[93]-[96]。这些模型通常在识别任务中也表现良好。这些架构主要通过合并相邻的标记并将它们投影到更高维的特征空间来稀疏标记。多级 ViT 的示例包括 Pyramid ViT [93]、[97]、Twins [37]、CoaT [98]、Swin Transformer [36]、卷积视觉 Transformer (CvT) [96]、Shuffle Transformer [95]、CrossFormer [99]、RegionViT [100] 和 Focal Transformer [94]。其中一些是混合设计(具有卷积和自注意力操作,参见第 3.2.3 节),而另一些仅采用基于自注意力的设计(接下来讨论)。

Pyramid ViT (PVT) [93] 是 ViT 的第一个分层设计,并提出了渐进式收缩金字塔和空间缩减注意力。 PVTv2 [97] 和 SegFormer [101] 通过引入重叠块嵌入、深度卷积和高效注意力来改进原始 PVT [93]。 Swin Transformer [36] 具有多级层次结构,通过将窗口划分为多个子补丁来计算本地窗口内的注意力。为了捕捉不同窗口(图像位置)之间的交互,窗口分区沿着网络的层次结构逐渐移动,以捕捉重叠区域。 Focal Transformer 模型 [94] 是另一种分层设计,其中引入了焦点自注意力以同时捕获全局和局部关系。同样,CrossFormer [99] 具有分层金字塔结构,并引入了跨尺度嵌入模块,以及长短距离注意力和动态位置偏差,以忠实地捕捉局部和全局视觉线索。 RegionViT [100] 提出了一种区域到局部的注意力来编码分层特征。 Multi-Scale Vision Longformer [102] 还考虑了自注意中的局部上下文,但采用了高效的 Longformer [103] 设计进行自注意CrossViT [104] 通过分别处理越来越大的图像块,用两个分支(每个分支都有多个Transformer块)对多尺度特征进行编码。然后使用交叉注意模块将来自这两个多尺度分支的信息融合在一起

3.2.3 Hybrid ViTs with Convolutions

卷积在捕获图像中的低级局部特征方面做得很好,并且已经在多种混合 ViT 设计中进行了探索,特别是在开始时“修补和标记(patchify and tokenize)”输入图像。例如,卷积视觉 Transformer (CvT) [96] 结合了基于卷积的投影来捕获空间结构和低级细节,用于图像块的标记化。 CvT 具有分层设计,其中标记数量逐渐减少,而标记宽度增加,从而模仿 CNN 中空间下采样的影响。卷积增强图像Transformer[105]采用基于卷积的图像到标记模块来提取低级特征。Compact Convolutional Transformer (CCT) [106] 引入了一种新的序列池化方案,并结合了卷积块 (conv-pool-reshape) 进行标记化。 CCT 可以在较小的数据集上从头开始训练,例如 CIFAR10,准确率约为 95%,这是传统 ViT 无法实现的显着特性

LocalViT [107] 引入了深度卷积来增强 ViT 的局部特征建模能力。 LeViT [108](名称灵感来自 LeNet [109])在开始时应用了一个四层 CNN 块(具有 3 × 3 卷积),通道逐渐增加(3,32,64,128,256)。对于 3×224×224 的输入图像,CNN 块产生的 256×14×14 输出成为分层 ViT 的输入。凭借其设计,LeViT 在 CPU 上的推理速度比 EfficientNet [87] 快 5 倍。 ResT [110] 是另一种分层架构,它在开始时应用 CNN 块进行补丁嵌入。它结合了深度卷积和自适应位置编码来处理不同的图像大小。最近的一种方法 NesT [111] 提出了一种在 ViT 中引入层次结构的简单技术。 NesT 将图像划分为不重叠的块(每个块进一步分成块)。它首先分别对每个块内的补丁应用局部自注意力,然后通过将它们聚合到图像空间并应用卷积操作来实现块之间的全局交互,然后进行下采样。块的数量沿着模型的层次逐渐减少,而局部补丁的数量保持不变。与更复杂的设计 [36]、[97] 相比,这种简单的方案表现得更好,并且可以从头开始在较小的数据集(例如 CIFAR-10)上训练 NesT。

深度卷积和自注意力网络(CoAtNets)[112] 引入了相对注意力模块(结合了深度卷积和自注意力),并垂直堆叠卷积和注意力层。 CoAtNets 在没有额外数据的情况下展示了令人印象深刻的 86% ImageNet top-1 准确度(即仅在 ImageNet-1k 上训练)。 Shuffle Transformer [95] 在窗口内执行自注意力,并在基于窗口的多头自注意力和 MLP 之间进行深度卷积。它引入了shuffle操作来建立更强大的跨补丁连接。 Co-scale conv-attentional image Transformers (CoaT) [98] 是一种混合分层金字塔设计,具有串行和并行块,其中串行块类似于标准 Transformer 块,只是注意力层被深度卷积取代。并行块应用于串行块的输出,并使用交叉注意在多个尺度上对标记之间的关系进行编码。 Twins [37] 建立在 PVT [93](仅注意力金字塔设计)的基础上,通过用相对条件位置嵌入 [113] 替换 PVT 中的绝对位置嵌入,并结合可分离的深度卷积而不是标准的空间注意力,捕获图像的本地和全局上下文。从这个意义上说,混合设计倾向于结合卷积和Transformer模型的优势。 TransCNN [114] 提出了一种分层多头自注意力块,它首先使用自注意力学习小网格(标记)内的交互,然后逐渐将较小的网格合并为较大的网格。然后可以将提议的块插入现有的 CNN 架构

3.2.4 Self-Supervised Vision Transformers

基于对比学习的自监督方法在基于 CNN 的视觉任务中取得了显着的成功,也已经针对 ViT 进行了研究。[115] 评估不同的自监督框架并提出实用策略,包括 MoCo v3(从 v1/v2 [116]、[117] 扩展),用于自监督 ViT 的稳定训练。[118] 结合 MoCo v2 [117] 和 BYOL [119] 来训练 DeiT [12] 和 SwinTransformer [36]。他们展示了自监督 SwinTransformer 的泛化,用于检测和分割的密集预测任务。无标签自蒸馏 (DINO) [120] 证明了自监督 ViT 可以自动分割图像的背景像素,即使它们从未使用像素级监督进行过训练,这种现象在 CNN 或完全监督的 ViT 中没有观察到。高效的自监督视觉Transformer(EsViT)[121] 提出了一种多阶段设计,其中相邻标记沿着网络的层次结构逐渐合并,并使用 DINO 进行自监督。除了 DINO 中的标准图像级自监督之外,它们还包含额外的补丁级自监督,其中提升了图像增强版本中相似补丁之间的对应关系。 EsViT 在自监督设置下表现出出色的性能,其现成的功能在 18 个评估数据集中的 17 个上比监督 SwinTransformer 传输得更好。

3.3 Transformers for Object Detection

基于 Transformer 的模块已以下列方式用于对象检测:

(a) 用于特征提取的 Transformer 主干,使用基于 R-CNN 的头部进行检测(参见第 3.2.2 节)

(b) 用于视觉特征的 CNN 主干和用于对象检测的基于 Transformer 的解码器 [13]、[14]、[122]、[123](参见第 3.3.1 节

© 用于端到端对象检测的纯基于 Transformer 的设计 [124] (见第 3.3.2 节)。

3.3.1 Detection Transformers with CNN Backbone

检测 Transformer(DETR)[13]将对象检测视为一组预测任务,即,给定一组图像特征,目标是预测一组对象边界框。 Transformer 模型可以预测一组对象(一次),还可以对它们的关系进行建模。

DETR 采用了一组损失函数,允许预测和真实框之间的二分匹配。 DETR 的主要优点是它消除了对手工模块和操作的依赖,例如目标检测中常用的 RPN(区域提议网络)和 NMS(非最大抑制)[125]-[129]。通过这种方式,对于复杂的结构化任务(如对象检测)来说,对先验知识和仔细工程设计的依赖得到了放松。

给定来自 CNN 主干的空间特征图,编码器首先将空间维度展平(见图 7)。这给出了一系列特征 d × n,其中 d 是特征维度,n = h × w 其中 h,w 是空间特征图的高度和宽度。然后使用 [1] 中的多头自注意力模块对这些特征进行编码和解码。解码阶段的主要区别在于所有框都是并行预测的,而 [1] 使用 RNN 来逐个预测序列元素。由于编码器和解码器是排列不变的,因此学习到的位置编码被解码器用作对象查询以生成不同的框。请注意,CNN 检测器(例如 Faster R-CNN)中的空间结构会自动对位置信息进行编码。 DETR 获得的性能可与流行的 Faster RCNN 模型 [125] 相媲美,鉴于其简单的设计,这是一项令人印象深刻的壮举。 DETR 也已扩展到其他领域的有趣应用,例如,Cell-DETR [130] 将其扩展为例如生物细胞的分割。添加了一个专门的注意力分支以获得实例分割以及框预测,这些预测通过 CNN 解码器进行了增强,以生成准确的实例掩码。

DETR [13] 模型成功地将卷积网络与 Transformers [1] 相结合,以消除手工设计的要求,并实现了端到端的可训练对象检测管道。然而,它难以检测小物体,并且收敛速度慢且计算成本相对较高[14]。 DETR 在使用 Transformer 进行关系建模之前将图像映射到特征空间。因此,self-attention 的计算成本随特征图的空间大小呈二次方增长,即 O(H2W2C)O(H^2W^2C)O(H2W2C),其中 H 和 W 表示特征图的高度和宽度。这固有地限制了在 DETR 训练框架中使用多尺度分层特征 [131],这对于检测小物体最终很重要。此外,在训练开始时,注意力模块只是将统一的注意力投射到特征图的所有位置,并且需要大量的训练时期来调整注意力权重以收敛到有意义的稀疏位置。这种方法导致 DETR 的收敛速度较慢。为了缓解上述问题,[14] 提出了一个可变形的注意力模块来处理特征图。受可变形卷积 [42] 的启发,可变形注意力模块 [14] 只关注整个特征图中的稀疏元素集,而不管其空间大小如何。这进一步允许在多尺度注意模块的帮助下跨尺度聚合特征图,而不会显着增加计算成本。可变形 DETR 不仅性能更好,而且其训练时间也比原始 DETR 模型 [14] 低 10 倍。Anchor DETR [122] 将 [13] 中的可学习查询标记替换为基于锚点的查询,这样每个查询都专注于预测锚点附近的对象。锚点可以固定在二维网格上,也可以从均匀分布的点中学习。 Anchor DETR [122] 需要 10 × 更少的训练 epoch 且性能相当。 Pix2Seq [123] 是一个通用的基于 Transformer 的框架,没有任何专门的任务特定模块,并且学习直接生成带有对象描述(边界框和类标签)的标记序列。量化和序列化方案首先将边界框和类标签转换为一系列离散标记。然后使用基于通用 Transformer 的编码器-解码器网络以基于先前预测和图像特征的自回归方式生成这些标记。

3.3.2 Detection with Pure Transformers

You Only Look at One Sequence (YOLOS) [124] 是一个简单的、只需要注意的架构,直接建立在 ViT [1]、[132] 之上。它用多个可学习的对象查询标记替换 ViT 中的类标记,并且类似于 [13] 的对象检测使用二分匹配损失。 YOLOS 以纯序列到序列的学习方式展示了 ViT 对对象检测的灵活性,具有最小的图像相关 2D 归纳偏差。本着类似的精神,PVT [93] 与 DETR [13] 结合使用端到端Transformer管道执行目标检测。我们注意到,将其他最近的 ViT 与基于Transformer的检测头结合起来创建纯 ViT 设计 [124] 也是可行的,我们希望在未来看到更多这样的努力。

3.4 Transformers for Segmentation

自注意力可用于密集预测任务,例如需要对像素之间丰富的交互进行建模的图像分割。下面,我们讨论轴向自注意力[133],一种可以分割与给定语言表达对应的区域的跨模态方法[15],以及基于ViT的分割架构[101]、[134]、[135]。

全景分割(Panoptic segmentation)[136]旨在通过为每个像素分配一个语义标签和一个实例id来共同解决语义分割和实例分割的其他不同任务。全局上下文可以提供有用的线索来处理如此复杂的视觉理解任务。 Self-attention 在建模远程上下文信息方面是有效的,尽管将其应用于像全景分割这样的密集预测任务的大输入是非常昂贵的。一个简单的解决方案是将自注意力应用于下采样输入或每个像素周围的有限区域 [81]。即使在引入这些约束之后,self-attention 仍然具有二次复杂性并牺牲了全局上下文。为了解决这些问题,Wang et al. [133] 提出了位置敏感的轴向注意,其中 2D 自注意机制被重新制定为两个 1D 轴向注意层,依次应用于高度轴和宽度轴(见图 8)。轴向注意力是计算高效的,并使模型能够捕获全图像上下文。它在 COCO [75]、Mapillary Vistas [137] 和 Cityscapes [73] 基准上的全景分割任务以及 ImageNet 数据集 [138] 上的图像分类方面实现了具有竞争力的性能。

Cross-modal Self-attention (CMSA) [15] 编码语言和视觉特征之间的远程多模态依赖关系,用于参考图像分割任务,旨在分割由语言描述参考的图像中的实体。为此,一组跨模态特征是通过将图像特征与每个词嵌入和空间坐标特征连接起来获得的。 self-attention 对这些特征进行操作,并在句子中每个单词对应的图像上产生注意力。然后,分割网络在多个空间级别执行自注意,并使用门控多级融合模块通过跨多分辨率特征的信息交换来细化分割掩码。二进制 CE 损失用于训练整体模型,该模型在 UNC [139]、G-Ref [140] 和 ReferIt [141] 数据集上取得了良好的改进

虽然上面讨论的分割方法在其基于 CNN 的架构中插入了自注意力,但最近的一些工作提出了基于Transformer的编码器解码器架构。 Segmentation Transformer (SETR) [134] 有一个 ViT 编码器和两个基于渐进上采样和多级特征聚合的解码器设计。 SegFormer [101] 有一个分层金字塔 ViT [93](没有位置编码)作为编码器,以及一个简单的基于 MLP 的解码器,具有上采样操作来获得分割掩码。Segmenter [135] 使用 ViT 编码器来提取图像特征,解码器是一个掩模Transformer模块,它使用可学习的掩码标记和图像补丁标记作为输入来预测分割掩码。作者还提出了一个基线线性解码器,它将补丁嵌入投影到分类空间,从而产生粗糙的补丁级标签

3.5 Transformers for Image and Scene Generation

在这里,我们讨论了用于图像合成的基于 Transformer 的架构 [23]、[142]-[146],从生成建模和学习下游任务的无监督表示的角度来看,这很有趣。

图 9:(a) Image Transformer [142] 中的自注意力模块。给定一个像素 q 的通道,该块处理先前合成像素 (mi) 的内存,然后是前馈子网络。位置编码 pi 被添加到第一层。 (b) 在 Local Self-Attention 中执行的操作(显示了 2D 案例的示例)。图像被划分为称为查询块的空间块网格。在自注意力操作中,查询块中的每个像素都会关注内存块中的所有像素(以青色矩形显示)。白色网格位置显示对自注意的贡献为零的屏蔽输入。

Parmar et al. [142] 开发了一种图像生成模型,该模型可以在给定先前生成的像素的情况下顺序预测输出图像的每个像素(图 9)。他们的方法通过将图像像素的联合分布分解为逐像素条件分布的乘积来模拟图像像素的联合分布。先前为此任务开发的自回归模型,例如 PixelCNN [147],受到有限的感受野的影响,这阻碍了对图像中的长期关系进行建模,例如部分关系或遮挡。使用 self-attention,[142] 在不产生高计算成本的情况下增强了感受野(例如,与 PixelCNN [147] 的 25 个像素相比,可以实现高达 256 个像素的有效感受野)。生成管道还在条件生成任务(conditional generation tasks)上进行了测试,例如图像超分辨率(image super-resolution)、图像补全(image completion)和去噪(denoising)。

受 GPT 模型 [5] 在语言领域的成功启发,图像 GPT (iGPT) [143] 证明此类模型可以直接用于图像生成任务,并为下游视觉任务(例如图像分类)学习强特征)。具体来说,iGPT 在平面图像序列(一维像素阵列)上训练 GPT v2 模型 [5],并表明它可以在没有任何外部监督的情况下生成合理的图像输出。生成的样本描述了模型理解像素与对象类、纹理和比例等高级属性之间的空间关系的能力。

值得注意的是,该设计在设计中不使用任何特定于图像的知识(例如,Image Transformer [142] 中使用的 2D 位置嵌入)。使用 iGPT 的无监督训练机制学习的特征与其他无监督方法的竞争令人印象深刻,在 CIFAR-10/100 [148] 和 STL [149] 数据集上实现了最先进的性能,同时性能与 SimCLR(一种对比学习方法)相当[150] 在 ImageNet 数据集上。这是一个惊人的结果,因为 iGPT 架构与用于语言建模任务的架构完全相同,因此它不包含任何先前的特定领域知识。值得注意的是,基于 CNN 的竞争性无监督解决方案以架构设计、注意力机制、损失函数和正则化的形式广泛采用此类先验 [117]、[151]-[154]。然而,不利的一面是,iGPT 的计算成本很高,例如,与最先进的自监督特征学习方法 MoCo [117] 相比,iGPT-L 版本的训练成本大约高出 36 倍。出于这个原因,训练通常限于≤64×64的低分辨率,而卷积架构可以有效地从高分辨率输入中学习。

当应用于高维序列时,Transformer通常会产生高计算成本。为了克服这一限制,[144] 建议在 Transformer 旁边加入归纳偏差(通常在 CNN 中使用)以提高其效率。具体来说,通过学习丰富的视觉模式词典(使用生成对抗方法),可以利用 CNN 结构中内置的局部连通性和空间不变性偏差。然后使用 Transformer 来学习字典项之间的远程交互以生成输出。反过来,他们开发了一个条件图像生成模型,能够使用 Transformers 生成非常高分辨率的图像(高达百万像素范围)。这是第一个展示使用 Transformer 生成此类高分辨率图像的工作。

以 CNN 作为默认主干的生成对抗网络 (GAN) [54] 在视觉上吸引人的图像合成方面非常成功 [155]-[157]。 TransGAN [145] 构建了一个强大的 GAN 模型,无需任何卷积操作,生成器和判别器均基于 Transformer 模型 [1]。生成器和鉴别器的架构都基于原始 Transformer 模型 [1] 中的编码器。为了内存效率,生成器包含多个阶段,中间有上采样模块,逐渐增加特征图的分辨率(输入序列长度),同时降低嵌入维度。 TransGAN 的鉴别器将扁平图像块作为类似于 [132] 的标记。作者介绍了不同的训练技术,包括数据增强、辅助任务训练以及将局部性注入自注意以扩大他们的模型以实现高质量的图像合成 [144]。 TransGAN 模型在 STL-10 上的初始得分和 Fréchet 初始距离 (FID) 方面取得了最先进的结果,并且在其他数据集上与基于 CNN 的 GAN 对应物相比表现良好。

与以前直接预测图像输出的图像生成方法 [142]-[144] 不同,[23] 学习生成要放置在给定场景中的 3D 对象的参数。具体来说,SceneFormer [23] 研究了以 3D 房间布局为条件的场景生成任务。鉴于空房间的形状,[23] 可以在房间中提出新的对象配置,同时保持真实感。值得注意的是,该模型不使用任何外观信息,仅通过使用 Transformers 中的自注意力对对象间关系进行建模来学习生成新场景。类似于 Transformer 对句子的操作方式,它被应用于一系列对象以预测场景中下一个合适的对象。具体来说,下一个对象的大小、姿势、位置和类别由 Transformer 模型预测。开始标记表示推理的开始,输出标记的数量表示模型按顺序生成的对象。作者还探索了根据房间布局的文字描述生成新场景。与外观的独立性使得该方法高效,能够生成交互式场景。

从文本生成逼真图像的任务很有趣且具有实际价值(例如,对于艺术内容创作),但同时也极具挑战性。先前的文本到图像合成方法 [158]-[161] 主要基于 GAN [54]。尽管这些方法产生了令人鼓舞的结果,但它们远非照片般逼真。[20] 最近提出了 DALL·E,它是一种 Transformer 模型,能够从给定的文本描述中生成高保真图像。 DALL·E 模型有 120 亿个参数,它是在从互联网上获取的大量文本图像对上进行训练的。在训练之前,首先将图像大小调整为 256×256 分辨率,然后使用预训练的离散变分自动编码器 [162]、[163] 将其压缩为 32×32 的潜在代码网格。 DALL·E 将 1280 个标记(文本 256 个,图像 1024 个)的单个流作为输入,并经过训练以自回归方式(一个接一个)生成所有其他标记。它提供了从头开始(图 10a)或通过扩展现有图像(图 10b)生成图像的灵活性,同时忠实于文本标题

作者通过从描述各种真实和虚构概念的文本中创建图像来证明 DALL·E 的有效性。 DALL·E 仅从文本标题生成图像时,在控制多个对象及其属性(图 10c)、渲染特定视点(图 10d)、捕获对象的内部结构(图 10e)以及组合无关对象方面表现出令人印象深刻的性能(图 10f)。此外,DALL·E 可以在输入文本的指导下执行图像到图像的转换(图 10g)。

3.6 Transformers for Low-level Vision

在见证了 Transformer 模型在高级视觉问题上的成功之后,针对低级视觉任务提出了许多基于 Transformer 的方法,包括图像超分辨率 [16],[19],[164],去噪 [19],[ 165],去雨 [19],[165] 和着色 [24]图像恢复需要从输入到输出图像的像素到像素的对应关系。恢复算法的一个主要目标是在恢复的图像中保留所需的精细图像细节(例如边缘和纹理)。 CNN 通过采用不涉及任何下采样操作的单尺度架构设计来实现这一点。由于 Transformer 模型中自注意力的计算复杂度随着图像块的数量呈二次方增加,开发可以在单尺度特征处理管道上运行的 Transformer 模型是不可行的。因此,这些基于 Transformer 的图像恢复模型利用各种策略来减少计算负担,例如计算局部图像窗口上的注意力 [164]、执行空间缩减注意力 [166] 以及采用编码器-解码器设计 [19], [165]。在这里,我们简要讨论几个图像恢复 Transformer 模型。

3.6.1 Transformers for Image Processing Tasks

用于高级计算机视觉任务(例如对象检测和语义分割)的最佳算法通常采用在大规模数据集(例如 ImageNet)上预训练的主干模型。相比之下,用于低级视觉任务(如图像去噪、超分辨率和去雨)的算法直接在任务特定数据上进行训练,因此受到以下限制

(i)任务特定数据集中可用的图像数量较少(例如,用于图像超分辨率的常用 DIV2K 数据集仅包含 2000 张图像)

(ii)为一项图像处理任务训练的模型不能很好地适应其他相关任务。

Chen et al. [19] 提出了一种基于 Transformer 架构的预训练模型,称为 Image Processing Transformer (IPT)。它能够执行各种图像恢复任务,例如超分辨率、去噪和去雨。 IPT 的整体架构包括分别处理不同任务的多头和多尾(multi-heads and multi-tails),以及共享的编码器-解码器 Transformer 主体。由于充分利用 Transformer 需要对大规模数据进行训练,[19] 从 ImageNet 基准测试中获取干净的(真实的)图像,并为不同的任务合成它们的退化版本(degraded versions)。例如,使用双三次插值生成低分辨率图像,添加加性高斯白噪声来准备噪声数据,以及应用手工制作的雨条纹来获得雨图像。总共使用了 1000 万张图像来预训练 IPT 模型。在训练期间,每个特定于任务的头部将降级图像作为输入并生成视觉特征。这些特征图被分成小块,随后被展平,然后将它们馈送到 Transformer 编码器(其架构与 [1] 相同)。编码器的输出以及特定于任务的嵌入作为输入提供给 Transformer 解码器。解码器输出的特征被重新整形并传递给产生恢复图像的多尾。 IPT 模型使用 L1 损失进行了优化。实验结果表明,预训练的 IPT 模型在针对特定的低级视觉任务进行微调时,可以比最先进的方法 [167]-[169] 提供显着的性能提升。

3.6.2 Transformers for Super-Resolution

近年来,由于卷积神经网络 (CNN),超分辨率 (SR) 的性能取得了重大突破。原则上,CNN 生成的超分辨率图像的质量取决于优化目标的选择。虽然基于像素级损失函数(例如 L1、MSE 等)的 SR 方法 [167]、[170]-[173] 在 PSNR 和 SSIM 等图像保真度指标方面产生了令人印象深刻的结果,但它们难以恢复精细的纹理细节,并且经常产生过于平滑且在感知上不太令人愉快的图像。此外,感知 SR 方法 [52]、[174]-[177],除了每像素损失外,还采用基于从预训练 CNN 中提取的深度特征的对抗性损失 [54] 和感知损失 [178]。虽然这些方法生成的图像清晰、视觉上令人愉悦且在感知上似是而非,但它们显示出在 PSNR/SSIM 中测量的重建精度大幅下降。此外,感知 SR 算法倾向于产生假纹理并导致伪影。上面提到的 SR 方法遵循两个不同(但相互冲突)的研究方向:

  • 一个最大化重建精度

  • 另一个最大化感知质量,但绝不是两者兼而有之。

    为了减轻感知再现和准确再现(perceptual reproduction and accurate reproduction)之间的权衡,[16] 提出了一种用于超分辨率的 Transformer 网络(TTSR)。在训练期间,TTSR 使用成对的 LR-HR 图像,以及与 LR 图像具有相似内容的参考 (Ref) 图像。 TTSR 学习在 Ref 图像中搜索相关区域并传输丰富的纹理以帮助超分辨率输入 LR 图像。 TTSR 方法的纹理 Transformer 模块(见图 11)由四个核心组件组成: (1) 可学习纹理提取器:以 LR↑、Ref↓↑ 和 Ref 图像为输入,生成纹理特征查询(Q)、key (K) 和值 (V) 分别。这里,↑表示双三次上采样操作,↓↑表示双三次下采样,然后是上采样操作。 (2) 相关嵌入:首先将 Q 和 K 展开成块,然后计算 Q 中的每个块与 K 中的每个块的相似度,以生成硬注意力图和软注意力图。 (3) 硬注意力:使用硬注意力图将 HR 纹理特征从 V 转移到(LR 特征)Q。 (4) Soft-attention:进一步增强相关特征,同时抑制不太相关的特征。

虽然 TTSR [16] 方法处理基于参考的图像超分辨率,但大多数研究都是针对单图像超分辨率问题进行的,其中只有 LR-HR 配对图像可用。由于原始自注意力操作的计算复杂度对于高分辨率图像来说非常高,最近已经提出了一些有效的变换模型,它们采用基于窗口的注意力(SwinIR [164])和注意力模块中的空间分辨率降低操作( ESRT [166])来执行超分辨率。

3.6.3 Colorization Transformer

给定灰度图像,着色试图产生相应的彩色样本。对于给定的灰度输入,这是一个一对多的任务,在彩色输出空间中存在许多可能性。这项任务的挑战性性质需要能够产生多个彩色输出样本的概率模型。 Colorization Transformer [24] 是一种基于条件注意机制的概率模型 [179]。它将图像着色任务分为三个子问题,并提出通过不同的 Transformer 网络顺序解决每个任务。作者首先训练了一个 Transformer 网络,将低分辨率灰度图像映射到 3 位低分辨率彩色图像。反过来,低分辨率图像允许训练更大的模型。然后,在训练的第二阶段,另一个 Transformer 网络将 3 位低分辨率彩色图像上采样为 8 位 RGB 样本。最后,训练第三阶段 Transformer 以提高第二阶段 Transformer 产生的 8 位 RGB 样本的空间分辨率。着色 Transformer 中使用的自注意基于 [179] 中引入的行/列注意层。这些层捕获输入图像的每个像素之间的交互,同时计算成本更低。逐行注意层将自注意应用于给定行中的所有像素,而逐列注意层仅考虑图像给定列中的像素。这项工作 [24] 是 Transformers 的第一个成功应用,它被训练以对高分辨率(256×256)的灰度图像进行着色。

3.7 Transformers for Multi-Modal Tasks

Transformer 模型也被广泛用于视觉语言任务,例如视觉问答 (VQA) [183]、视觉常识推理 (VSR) [184]、跨模态检索 [185] 和图像字幕 [29]。这个方向的几项工作针对大规模多模态数据集上的有效视觉语言预训练(VLP),以学习有效编码跨模态关系的通用表示(例如,在给定图像中建立人的语义属性)。然后可以将这些表示转移到下游任务,通常获得最先进的结果。值得注意的是,其中一些模型仍然使用 CNN 作为视觉骨干来提取视觉特征,而 Transformer 主要用于对文本进行编码,然后是语言和视觉特征的融合。此类模型通常应用具有多模态输入的 vanilla 多层 Transformer [1],并且不会对核心注意力块引入根本性的变化。然而,它们的主要区别在于 Transformer 的配置和损失函数,基于这些我们将它们分类为:

(a) 多流 Transformer(参见第 3.7.1 节)

(b) 单流 Transformer(参见第 2 节) 3.7.2)。

单流设计将多模态输入提供给单个 Transformer,而多流设计首先对每个模态使用独立的 Transformer,然后使用另一个 Transformer 学习跨模态表示(见图 12)。除了这些视觉语言预训练方法外,我们还在本节末尾解释了视觉基础方法(参见第 3.7.3 节)。

3.7.1 Multi-stream Transformers

视觉和语言 BERT (ViLBERT) [63] 是 BERT 模型向多模态领域的第一个扩展。目标是学习可以联合建模图像和自然语言的表示。为此,ViLBERT 开发了一种双流架构,其中每个流专用于对视觉或语言输入进行建模(图 12-h)。两个并行流的架构都是一系列类似于 BERT 模型的 Transformer 块。随后,应用意向 Transformer 层来学习跨模态关系。共同注意力框架非常简单。以标准方式 [1] 为每种模态计算查询、键和值矩阵,然后将一种模态的键值对传递给另一种模态的注意力头

ViLBERT 将 VLP 应用于概念概念数据集上定义的一组代理任务(具有 330 万张带有弱字幕的图像),然后在 VQA 等下游任务上微调模型。预训练阶段以自监督的方式运行,即在大规模未标记数据集上创建代理任务而无需手动标记。这些替代任务(pretext task)包括预测文本和图像输入是否相关,以及预测蒙版图像区域和文本输入的语义(例如,类似于在 BERT 模型 [3] 中重建文本中的蒙版词)。这样,模型在预训练期间学习数据中的固有结构,并且还对跨域关联进行建模。通过对多个任务的评估,[17] 证明双流模型比使用共享参数对语言和视觉域进行建模的单流模型性能更好 [17]。

与 ViLBERT [181] 类似,Learning Cross-Modality Encoder Representations from Transformers (LXMERT) [21] 也使用基于 BERT 框架的双流架构。主要区别在于用于对视觉特征进行建模的对象关系编码器,而不是 ViLBERT 中使用的简单图像级特征。然后使用类似于 [181] 的交叉注意块跨模式融合两个流中的信息

与 [181] 中用于 VLP 的两个前置文本任务相比,LXMERT 使用了五个预训练任务,包括掩码对象和语言预测、跨模态匹配和视觉问答(图 12-g)。预训练模型在 VQA 任务上进行了微调,但是,预训练和微调任务之间的高度相似性引发了关于学习表示对新任务的泛化性的问题。为此,作者对真实视觉推理 (NLVR) 任务 [186] 进行了泛化实验,展示了对新任务的显着改进。

Lee et al. [182] 注意到,像 VideoBERT [17] 和 ViLBERT [181] 这样的多模态表示学习方法通常将语言处理部分固定在预训练模型(例如 BERT [3])上,以降低训练复杂性。在文献中,他们首次提出在来自未标记视频的视听数据上学习一种称为 PEMT 的端到端多模态双向 Transformer 模型。首先,使用 CNN 对短期(例如 1-3 秒)视频动态进行编码,然后使用特定于模态的 Transformer(音频/视觉)对长期依赖关系(例如 30 秒)进行建模。然后将多模态 Transformer 应用于特定于模态的 Transformer 输出,以跨视觉语言域交换信息。然而,以幼稚的形式学习这样的模型会产生巨大的内存需求。为了降低参数复杂性,参数在每个 Transformer 内的各层之间共享,从而导致高达 80% 的参数减少。 Transformer 使用基于内容感知负采样的对比学习方法进行训练(图 12i)。具体来说,该模型使用从训练阶段学习到的 CNN 获得的特征来选择在视觉上与正例相似的负样本。这项工作还比较了早期(VideoBERT [17] 和 VLBERT [22]),中级(ViL-BERT [181] 和 LXMERT [21])和后期融合机制等早期工作中采用的各种融合策略,并表明中级融合是最优选择。所提出的模型在 Kinetics-700 [187] 数据集上进行了预训练,然后在下游视频分类任务上进行了微调,例如 UCF101 [188] 上的短视频分类、ESC50 [189] 上的音频分类和 Charades 上的长期动作识别 [ 190] 和 Kinetics-Sounds [65] 数据集。

Tan 和 Bansal [191] 引入了“vokens”(与从句子中提取的语言标记相关的图像)的概念。 vokens(可视化标记)为语言模型提供视觉监督以学习更好的特征。动机是人类通过将视觉信息与语义概念相关联来学习语言。本着与其他自监督语言表示学习方法 [3]、[181] 类似的精神,他们通过定义 voken-prediction 任务的辅助任务来学习表示。由于现有数据集编码有限的视觉基础标记,他们提出了一种将语言标记映射到视觉 vokens 的 vokenization 方法,如图 13 所示。该方法使用基于语言的检索来进行这种映射,并转移在小型标记上训练的模型数据集(MS-COCO)到大型数据集(维基百科)。此外,确保考虑句子范围的上下文以获得标记调用映射。使用生成的标记训练得到的模型在各种 NLP 任务上优于最先进的 BERT 模型。从这个意义上说,所提出的模型不评估视觉任务,但是,使用视觉作为有用的基础线索来训练语言模型,因此我们将其包含在多模态表示学习组中。

视觉和语言导航 (VLN) 旨在根据视觉和语言输入预测地图上的导航计划。Transformer模型早先在 [192]、[193] 中用于 VLN 任务。这些工作首先使用对视觉和语言对的自监督来预训练一个跨模态 Transformer,然后对特定的 VLN 任务进行微调。虽然这些作品在图像区域和语言之间学习注意力,但 [194] 建议学习语言输入和空间拓扑图之间的跨模态注意力(将代理的环境表示为一个图,其节点表示位置,边表示它们的连通性)。给定拓扑图和自然语言输入,使用 Transformer 模型的 VLN 任务与 NLP 中的序列预测相似。具体来说,在每个时间实例,跨模态 Transformer 预测导航计划中拓扑图的单个节点。首先使用单模态编码器处理单个语言和地图编码,然后应用跨模态编码器(类似于 LXMERT [21])来聚合跨模态的信息。为了表示地图中的位置,学习轨迹位置编码被附加到地图特征中。基于这种 Transformer 设置,[194] 报告了一个完整的导航系统,可以自由探索环境并智能地计划其行动。

CLIP [195] 是一种从文本中学习图像表示的对比方法,其学习目标是最大化大批量中正确文本-图像对嵌入的相似性。具体来说,给定一批 N 个图像文本对,CLIP 通过联合训练图像编码器和文本编码器来学习多模态嵌入空间,使得有效的 N 个图像文本对的余弦相似度最大化,而剩余的 N 2−N 对被最小化。作者考虑使用 ResNet-50 [67] 和 Vision Transformer (ViT) [132] 对图像进行编码。 [5] 中的修改后的 Transformer 模型 [1] 用于对文本进行编码。 CLIP 在包含 4 亿个图像-文本对的大型语料库上进行了训练,并展示了出色的零镜头传输能力。在推理时,类的名称被用作文本编码器的输入,并计算编码图像与所有编码文本(类)的相似度,以找到匹配度最高的图像-文本对。 CLIP 在 ImageNet 上实现了惊人的 75% 的 zeroshot 分类准确率,而无需使用 ImageNet 训练集的监督。作者进一步展示了 CLIP 模型在 30 个不同的计算机视觉基准上的零样本传输能力。请注意,使用 ResNet 的 CLIP 在 592 个 V100 GPU 上训练需要 18 天,而使用 ViT 的 CLIP 在 256 个 V100 GPU 上需要 12 天。这突出了 CLIP 的计算成本。

3.7.2 Single-stream Transformers

与 ViLBERT [181] 和 LXMERT [21] 等双流网络不同,VisualBERT [63] 使用单个 Transformers 堆栈对两个域(图像和文本)进行建模。文本的输入序列(例如,标题)和与对象建议相对应的视觉特征被馈送到自动发现两个域之间的关系的 Transformer。值得注意的是,VisualBERT 架构有点类似于 VideoBERT [17](在第 3.8 节中解释),但不是只关注烹饪视频,VisualBERT 评估各种视觉语言任务(例如,VCR、NLVR、VQA 和视觉接地)。VisualBERT 模型首先使用两个目标应用与任务无关的预训练(图 12-e)。第一个目标只是尝试使用图像特征和剩余的文本标记来预测丢失的文本标记。第二个目标试图区分给定图像的真假标题。在与任务无关的预训练之后,作者建议在对下游任务进行最终微调之前执行特定于任务的预训练以弥合领域差距。

[22] 提出了一种多模态预训练方法来学习可推广到多模态下游任务(如视觉常识推理和视觉问答)的特征。这项工作需要充分调整视觉和语言线索,以便学习有效的复合表示。最后,[22] 基于 BERT 模型并输入视觉和语言特征。语言特征对应于输入句子中的标记,视觉特征对应于输入图像中的感兴趣区域(RoI)(通过标准 Faster R-CNN 获得)。具体来说,该模型在视觉语言数据集(概念字幕 [196])和纯语言数据集(例如,维基百科)上进行了预训练。损失函数与 BERT 相同,其中模型被训练以预测被掩盖的单词或视觉 ROI(图 12-f)。与 UNITER [43] 等其他工作相反,VL-BERT 声称视觉-语言匹配任务在预训练期间没有用,这与后来的努力 [180] 的证据形成对比。他们在几个多模态任务上的结果显示了它们优于仅语言预训练(例如,在 BERT 中)。

视觉和语言通用编码器 (UnicoderVL) [180] 使用大规模图像-字幕对学习多模态表示。语言和图像输入被馈送到单个 Transformer 模型(具有多个连续编码器)以学习联合嵌入。为此,它在预训练期间使用掩码词预测、掩码对象分类和视觉语言匹配作为自监督任务(图 12-d)。值得注意的是,视觉-语言匹配仅在全局级别进行(即图像句对齐)。该模型在图像文本检索、零样本学习和视觉常识推理方面进行了评估,其性能优于之前的模型,如 ViLBERT [181] 和 VisualBERT [63]。这表明了丰富的自监督任务的重要性,并倡导统一的 Transformer 架构以在通用框架中学习多模态特征。

Unified Vision-Language Pre-training (VLP) [197] 模型使用单个 Transformer 网络进行编码和解码阶段。这与使用独立编码器和解码器网络的 BERT 启发的 VLP 模型 [17]、[22]、[63]、[198] 形成对比。当对这些单独的任务进行微调时,编码和解码阶段的联合建模允许统一 VLP 模型在图像字幕和视觉问题回答任务中表现良好。编码和解码阶段共享建模的直觉源于在预训练期间更好地共享跨任务信息的需要。统一模型由 12 个 Transformer 模块组成,每个模块都有一个自注意力层,后跟一个前馈模块。用于预训练的自监督目标包括掩码视觉语言预测。在这里,作者探索了两种变体,即掩码作品的双向和序列到序列预测,其中不同的上下文编码用于两种类型的目标。所提出的方法在 COCO Captions、Flick 30K Captions 和 VQA 2.0 上进行了评估,与以前的图像字幕和 VQA [199] 方法相比,获得了令人鼓舞的结果。

通用图像文本表示(UNITER)[43] 对四个大规模视觉语言数据集(MS-COCO [75]、Visual Genome [200]、概念字幕 [196] 和 SBU 字幕 [201])进行预训练。学习到的表示可以很好地转移到下游任务,例如 VQA、多模态检索、视觉常识推理和 NLVR。为了强调学习视觉和语言域之间的关系,[43] 专门设计了预训练任务来预测以其他域输入为条件的掩码视觉或文本区域,并在全局(图像-文本)和本地(单词区域)级别(图 12-a)。这些任务除了 BERT 中使用的传统掩码语言建模任务之外,还明确包括细粒度的词区对齐以及对输入的条件掩码,这些在早期工作中没有考虑过,例如 VLBERT [22]、Visual-BERT [63]、Vilbert [ 181]和UnicoderVL [180]。与其他方法一样,它们采用了 BERT 中提出的 Transformer 架构,该架构同时在视觉和语言嵌入上运行。与将独立的 Transformer 应用于语言和视觉输入(如在 ViLBERT [181] 和 LXMERT [21] 中)相比,UNITER 采用单个 Transformer 应用于文本和图像输入,如 [22]、[63]、[180]。

用于 VLP 的 VisualBert [63]、Uniter [43]、VL-BERT [22]、VilBERT [181] 和 Unicoder-VL [180] 模型将图像和文本特征连接起来,并将其留给自注意以自动发现交叉模态关系。这会使图像中语义概念的视觉基础复杂化。为了解决这个问题,Object-Semantics Aligned Pre-Training (Oscar) [44] 首先使用对象检测器来获取对象标签(标签),然后将其用作将相关视觉特征与语义信息对齐的机制(图. 12-b)。动机是文本内容通常与图像中的主要对象有关,因此通过将这些图像标签明确添加到输入中,可以更好地关注视觉特征。与 BERT [3] 类似,Oscar 对 VLP 使用 Masked Token Loss,其中文本输入和图像标签中的不同标记被随机屏蔽,模型预测这些丢失的标记。此外,它还使用对比损失来区分原始和嘈杂/虚假的图像标签对。与不使用对象标签的 VLP 方法相比,因此学习的表示在 VQA、交叉模态检索、自然语言推理和图像字幕任务上进行了微调,以获得更好的性能。最近的 VinVL [202] 方法将 Oscar 扩展到对象检测任务,并使用经过调整的预训练方案来学习视觉域和语言域之间以对象实例为中心的关系。该模型在一组数据集(MS-COCO、OpenImages、Visual Genome 和 Objects365)上进行训练,并被证明可以将语义属性与视觉信息精确关联,并为下游视觉理解任务提供更好的可迁移性。

3.7.3 Transformers for Visual Grounding

Modulated DETR (MDETR) [203] 有一个 CNN 和 BERT 主干,分别从图像和文本输入中提取特征。然后将视觉和文本特征分别线性投影到共享空间,连接起来并馈送到Transformer模型(具有类似于 DETR 的架构),以预测与基础文本中的查询对应的对象的边界框。该模型通过使用损失来训练,该损失预测特定于预测边界框的所有相关文本查询标记的均匀分布。一个额外的对比损失项确保了视觉和文本嵌入之间的对应关系。 TransVG [204] 是一个简单的设计,其中视觉和文本特征在Transformer模块中融合在一起,与查询对应的边界框使用可学习的标记直接回归(输入到Transformer模块,以及视觉和文本特征)。参考 Transformer [205] 也是一种简单的单阶段设计,其中文本和图像特征在 Transformer 编码器中融合,然后基于 Transformer 的解码器直接回归边界框或分割掩码。 Visual Grounding with Transformer [206] 具有编码器-解码器架构,其中视觉标记(从预训练的 CNN 模型中提取的特征)和文本标记(通过 RNN 模块解析)与编码器中的两个不同分支并行处理,交叉-模态注意力以生成文本引导的视觉特征。然后解码器计算文本查询和视觉特征之间的注意力,并预测查询特定的边界框。

3.8 Video Understanding

现有的音频-视频数据分析方法通常学习短视频(长达几秒钟)的表示,这允许它们只编码短距离依赖[1]、[32]。在各种单模态和多模态学习任务(例如活动识别 [71]、[187]、[207]-[209])中,需要长期依赖建模。下面,我们将解释最近使用 Transformer 网络的表现力来解决这一挑战的方法。重要的是要注意,其中一些工作 [17]、[18]、[182]、[210] 仍然使用(预训练的)CNN 来对视频中的图像/帧级特征进行编码,在其上应用了 Transformer模型范围的上下文。一些例外包括[209]、[211]-[213],它们也使用基于 ViT 的主干获得帧级特征。

3.8.1 Joint Video and Language Modeling

VideoBERT [17] 模型利用 Transformer 网络和自监督学习的优势来学习有效的多模态表示。具体来说,VideoBERT 使用掩码视觉和语言标记的预测作为代理任务(图 12-c)。这允许对高级语义和长期时间依赖性进行建模,这对于视频理解任务很重要。给定一个视频,[17] 使用现成的语音识别系统将语音转换为文本,并应用矢量量化(聚类)从预训练的视频分类模型中获取视觉特征。然后将 BERT 模型直接应用于这些连接的语言和视觉标记序列,以学习它们的联合分布。该模型可以使用纯文本、纯视频和视频+文本域进行训练。由此产生的模型展示了跨模式预测的有趣功能,例如从给定的文本输入(例如,字幕或烹饪食谱)和(基于视频的)未来预测生成视频。视频+文本模型使用视觉-语言对齐任务来学习跨模态关系。这个前置文本任务的定义很简单,给定 [cls] 标记的潜在状态,任务是预测句子是否与视觉标记序列在时间上对齐。此外,学习到的表示被证明对下游任务非常有用,例如动作分类、零镜头分类和视频字幕。

Zhou et al. [210] 探索 Masked Transformers 的密集视频字幕。这需要为视频中发生的所有事件生成语言描述。针对这个问题的现有工作通常按顺序操作,即首先检测事件,然后在单独的子块中生成字幕。 [210] 提出了一个统一的 Transformer 网络来共同处理这两个任务,从而无缝集成事件检测和字幕的多模态任务。首先,视频编码器用于获得逐帧表示,然后是两个解码器块,专注于提出视频事件和字幕。由于考虑了未修剪的视频,因此在字幕解码器中使用了掩蔽网络来专注于描述单个事件提议。值得注意的是,[210] 是第一种使用非循环模型针对密集视频字幕的方法,并在编码器中使用自注意力(应用于 CNN 派生特征)来模拟视频帧之间的广泛上下文。在 ActivityNet Captions [214] 和 YouCookII [215] 数据集上的实验表明,与以前的循环网络和基于两阶段的方法相比,有很好的改进。

3.8.2 Video Action Recognition

传统的基于 CNN 的视频分类方法通常在有限的时间间隔内执行 3D 时空处理以理解视频[211] 提出 Video Transformer Network (VTN),它首先使用 2D CNN 获得逐帧特征,并在顶部应用 Transformer 编码器 (Longformer [103]) 来学习时间关系。由于其 O(n) 复杂性,Longformer 是处理长序列(具有任意长度 n)的一个有吸引力的选择。分类标记通过一个全连接层来识别动作或事件。在空间特征之上使用 Transformer 编码器的优点有两个:(a) 它允许在单次通过中处理完整的视频,以及 (b) 通过避免昂贵的 3D 卷积显着提高了训练和推理效率。这使得 VTN 特别适合建模长视频,其中实体之间的交互遍布整个视频长度。他们在具有各种主干(ResNet [67]、ViT [11] 和 DeiT [12])的 Kinetics400 数据集 [71] 上的实验显示出具有竞争力的性能。

Girdhar et al. [18] 使用 Transformer 架构的变体来聚合视频中特定于人的上下文线索,以进行动作分类和定位。最初,该模型使用 Faster-RCNN [125] 样式处理,其中骨干模型生成特征,这些特征被转发到区域提议网络以获得对象提议。然后应用 RoI 池化来生成特定于对象的特征。然后将多头自注意力 [1] 作为自注意力层级联应用于对象特征之上。在每个 Transformer 单元中,一个特定的人物特征被视为“查询”(Q),而来自相邻视频剪辑的特征被用作“键”(K)和“值”(V)。位置信息被显式编码在输入特征图中,从中导出 K、V 和 Q,从而将位置信息合并到 self-attention 中。对于给定的 400×400×64 视频剪辑,键和值张量的大小为 16×25×25×128,而查询是 128 维向量。尽管 [18] 仅使用 RGB 流,但光流和音频信号等其他形式(如在竞争作品中)将进一步增加计算复杂性。此外,发现 Transformer 模型对于动作定位来说不是最佳的,这可能是因为它倾向于整合全局信息。因此,对于需要精确描述的问题(例如,动作定位和分割),在全局和局部上下文之间实现正确的权衡是很重要的

基于骨骼表示的人体动作识别需要了解给定帧中身体不同关节之间以及视频不同帧之间的关系。普利扎里等人。 [216] 提出了一个双流 Transformer 网络来模拟这种关系。他们引入了空间自注意力(SSA)来模拟不同身体关节之间的关系(图 14a),同时引入时间自注意力(TSA)来捕获远程帧间依赖关系(图 14b)。他们首先使用一个小的残差网络从骨架数据中提取特征,然后使用 SSA 和 TSA 模块来处理这些特征图。 SSA 独立地找到每对关节之间的相关性,而 TSA 则关注某个关节的特征如何在帧之间沿时间维度发生变化。 SSA 的目的是发现周围关节之间的关系,就像 Transformer 关联短语中的不同单词一样。另一方面,TSA 发现帧之间的长期关系,类似于在 NLP 中如何构建短语之间的关系。两个流模型在 NTU-RGB+D 60 [217] 和 NTURGB+D 120 [218] 数据集上实现了最先进的结果。

Multiscale Vision Transformers (MViT) [219] 通过逐步扩展通道容量和降低视频中的时空分辨率来构建特征层次结构。他们引入了多头池注意力,以逐渐改变金字塔结构中的视觉分辨率。 TimeSFormer [213] 将 ViTs [132] 扩展到视频,将视频视为从单个帧中提取的一系列补丁。为了捕捉时空关系,他们提出了分散注意力,即在每个块中分别应用空间和时间注意力。 TimeSFormer 展示了 SoTA 在动作识别方面的性能,并且可以应用于超过一分钟的剪辑。另一个值得注意的基于纯Transformer的模型是视频视觉Transformer(ViViT)[212]。首先,提取时空标记,然后应用自注意的有效分解版本来编码标记之间的关系。但是,它们需要使用图像预训练模型进行初始化,以有效地学习 ViT 模型。在使用 ViT 的自监督学习来学习声音预训练模型方面也有同时开展的工作。最近的一项重要工作是长短对比学习(LSTCL)框架[220],它将来自不同时间尺度(窄和宽)的表示重建为辅助学习任务,并展示了良好的下游性能

3.8.3 Video Instance Segmentation

Video Instance Segmentation Transformer (VisTR) [209] 模型扩展了 DETR [13] 用于视频对象实例分割 (VIS) 任务。局部特征是在一组视频帧上使用主干 CNN 获得的。编码器和解码器 Transformer 与 DETR 类似,用于将实例分割问题构建为序列到序列预测任务。输入的帧级特征连接起来形成剪辑表示,Transformer 以跨帧一致的顺序输出实例预测。这将对象检测和跟踪集成在一个统一的架构中。使用二分匹配将预测输出与ground-truth匹配。与 Mask R-CNN [127] 类似,一个单独的头用于基于自注意力和 3D 卷积来预测实例掩码。总体结果在 YouTube VIS 数据集 [221] 上的单一模型方法中具有竞争力,但与更复杂的基于 CNN 的模型(如 MaskProp [222])相比,性能略低。

3.9 Transformers in Low-shot Learning

在少样本学习(few-shot learning)设置中,在推理时提供了一个支持集以适应一组新的类别。 Transformer 模型已被用于学习此支持集 [26] 上的集合到集合的映射,或学习给定输入查询和支持集样本之间的空间关系 [25]。就绝对性能而言,与 [26] 中学习的图像级关联相比,查询和支持集图像之间的补丁空间自注意力更胜一筹。然而,patch-wise attention 计算在计算上是昂贵的。我们将在下面详细说明这些方法。

Doersch et al. [25] 探索自监督和 Transformer 模型在小样本细粒度分类中的效用,其中训练和评估阶段之间存在分布不匹配。他们开发了 Cross-Transformer 模型,以将给定的查询图像与支持集中可用的少数示例相关联。为此,Transformer 在查询和支持集图像中找到空间相似的区域,然后使用相应的特征来获得查询的类别决策。 Transformer 架构中的查询源自使用查询图像获得的网格特征。类似地,来自支持图像的网格特征用于构造键和值,这些键和值又用于派生参与输出。除了基于对比的自监督训练机制外,这种方法还可以在具有挑战性的元数据集 [223] 上获得最佳性能。

Ye et al. [26] 建议在使用 Transformer 模块进行推理期间,将在基类上学习的小样本嵌入适应小样本目标类。这导致特定于任务的嵌入在判别性任务(例如小样本分类)上表现更好。虽然还评估了许多其他集合到集合的函数,例如图卷积网络 [224]、双向 LSTM [32] 和 DeepSets [225],但基于 Transformer 的映射实现了最佳性能。这归因于 Transformer 更好的上下文化、任务插值和外推能力以及它们的排列不变性,同时保持相对较低的参数复杂度。 [26] 中的 Transformer 架构遵循标准模型 [1]。嵌入使用对比损失函数进行调整,以保留判别特性(图 15)。由此产生的模型在归纳、转导和广义 FSL 任务上实现了强大的性能。

Liu et al. [226] 学习一个基于多头自注意力的模块,以整合在元数据集 [223] 中存在的不同域上训练的模型所学习的视觉表示。 Universal Representation Transformer (URT) 层动态地重新加权来自不同领域特定主干的表示,并证明在处理跨各种数据分布的少样本任务方面非常有效。

3.10 Transformers for Clustering

聚类旨在通过将相似的数据点组合在一起来发现数据中的结构。它具有许多应用,例如数据可视化和解释、异常检测和开放集分类。已经为集合预测问题开发了神经网络 [225]、[227],但是,设置点是单独处理的,这可能会丢失有关点间关系的信息。最近的作品采用了对称为 Set Transformers (ST) [228] 的集合输入进行操作的 Transformer 进行摊销聚类。摊销聚类是一个具有挑战性的问题,它试图学习一个参数函数,该函数可以将一组输入点映射到它们相应的聚类中心。Lee et al. [228] 建议使用由多头自注意力块 [1] 组成的 Transformer 架构来学习这种映射函数。 Transformer 模型在设计上是置换不变的,并且允许对输入点之间的成对和高阶关系进行编码。然而,一个完整的 Transformer 会导致每个自注意力层的 O(n2) 的高计算成本,其中 n 是集合中的点数。 ST 通过使用诱导自注意块将成本降低到 O(mn),该块使用低秩投影 (H ∈ Rm) 以允许在大型集上进行操作。该模型经过训练以学习最大化混合高斯 (MoG) 的可能性的最佳参数。因此,给定一组数据点,由 ST 估计 MoG 参数。除了摊销聚类之外,ST 是一个通用框架,可以处理其他集合输入问题,例如计算输入集中的唯一元素、多实例学习、集合异常检测和 3D 点云分类。最近,[229] 通过采用顺序方法生成集群来改进 [228],从而允许分配给可变数量的集群。

3.11 Transformers for 3D Analysis

鉴于 3D 点云表示的不规则(可变点数)和排列不变的性质,Transformers 提供了一种很有前途的机制来编码 3D 数据点之间的丰富关系。为此,最近的工作 [230]、[231] 的动机是 Transformers 学习集合函数的能力。具体来说,[230] 引入了一个 Point Transformer,它使用向量注意力来学习每个通道的权重,而 [231] 提出了一种替代设计,其中局部 3D 结构被显式编码。 Transformers 的非局部性质在 [45] 中被用于精确的人体姿势和网格重建算法。我们将在下面讨论这些方法。

作为集合算子的自注意力非常适合处理点云,这是一种要求点数及其排列保持不变的 3D 数据表示。[230] 提出了一个点Transformer层,该层在 3D 点的局部邻域中应用自注意。所提出的层建立在向量化自注意力网络(SAN)[82]上,其中注意力权重用向量表示。此外,位置编码被添加到注意力向量和变换特征(值向量)中以表示位置信息。点 Transformer 层夹在两个线性层之间,以创建在已开发的网络架构中多次堆叠的点 Transformer 块。他们的设计还包括向下/向上转换块,以减少/增加输入中的点数(以典型的编码解码管道样式)。由此产生的架构在 3D 分类和分割任务上显示出有希望的结果。

点云 Transformer(PCT)[231] 是 [230] 的并行工作,并受到Transformer的排列不变性属性的启发。然而,与[230]相比,它更直接地基于传统的Transformer架构[1],并且不涉及向量注意力。关键修改包括基于 3D 坐标的位置编码、偏移注意模块和对点云中的局部 3D 结构进行编码的邻居嵌入。具体来说,偏移注意力层使用元素减法计算自注意力特征和输入特征之间的差异。局部邻居嵌入只是在一组点而不是单个 3D 点之间找到自注意力关系。与 [230] 相比,明确结合本地邻域信息使其成为更有效的架构。该方法在 ModelNet40 [232] 和 ShapeNet [233] 数据集上的 3D 形状分类、正常估计和分割任务上显示出良好的性能。

Mesh Transformer (METRO) [45] 模型针对单个 2D 图像的 3D 人体姿势和网格重建。这里的一个关键挑战是忠实地学习身体关节和网格顶点(例如,手和脚)之间的非局部交互。 Transformer 网络的表现力用于联合建模网格中的顶点到顶点关系以及顶点到身体关节关系。自注意力机制可以关注网格中的任何顶点组合,从而对非局部关系进行编码。多层 Transformer 架构顺序执行降维以将 2D 图像映射到 3D 网格。使用每个顶点和每个身体关节的 3D 坐标 (x,y,z) 执行位置编码。与 NLP 中的掩码语言建模类似,METRO 使用掩码顶点建模 (MVM),它随机掩码一定百分比的输入查询(见图 16)。 Transformer 的任务是回归所有关节和顶点,这有助于编码它们之间的相互依赖关系。 METRO 在 Human3.6M [234] 和 3DPW [235] 数据集上获得了最先进的人体网格重建结果。由于该方法不依赖于参数网格模型,因此它可以很好地推广到其他重建任务,例如 3D 手部重建 [236]。总体而言,这是首次将 Transformers 用于 3D 人体重建任务,并取得了相当不错的效果。

4 OPEN CHALLENGES & FUTURE DIRECTIONS

尽管 Transformer 模型具有出色的性能及其有趣的显着特征(表 1),但它们在实际设置中的适用性仍存在一些挑战(表 2)。最重要的瓶颈包括对大量训练数据的需求和相关的高计算成本。可视化和解释 Transformer 模型也存在一些挑战。在本节中,我们概述了这些挑战,提到了最近为解决这些限制所做的一些努力,并突出了开放的研究问题。

4.1 High Computational Cost

如第二节所述。如图 1 所示,Transformer 模型的优势在于它们可以灵活地扩展到高参数复杂性。虽然这是允许训练大型模型的显着属性,但这会导致高训练和推理成本(CNN 和 ViT 之间的详细比较如表 3 所示)。例如,BERT [3] 基本模型(具有 1.09 亿个参数)大约需要 1.89 peta-flop 天进行训练,而最新的 GPT3 [6] 模型(1750 亿个参数)大约需要 3640 peta-flop 天进行训练(惊人的 ∼1925 倍增长)。这伴随着巨大的代价,例如,根据一项估计 [237],GPT3 训练可能花费了 OpenAI 460 万美元。此外,这些大型模型需要积极的压缩(例如蒸馏)才能使它们适用于现实世界的设置。

一项关于 Vision Transformers 可扩展性参数数量(范围从 500 万到 20 亿)、训练数据集大小(范围从 3000 万到 30 亿张训练图像)和计算预算(1-10000 TPU core-天)在[238]中提出。从这项研究中,我们可以得出以下结论:(a)在计算、模型和训练样本大小上进行扩展可以提高性能(b)只有大型模型(具有更多参数)才能从更多的训练数据中受益,而较小模型的性能platueas 很快,无法利用额外的数据。这表明大规模模型有能力进一步增强其表示学习能力。然而,对于当前的设计,Transformer 模型的扩展成本高昂且计算量大,因此需要高效的设计。

在语言领域,最近的工作重点是降低 Transformer 模型的高复杂度(基本上是由自注意机制 [1] 产生的,其中通过考虑前一层的所有标记来更新标记的表示)。例如,[103]、[245] 探索对前一层标记的选择性或稀疏注意,同时更新每个下一层标记。 Linformer [38] 将标准自注意力操作的复杂性从 O(n2) 降低到 O(n)(时间和内存要求)。主要思想是表明低秩矩阵足以对自注意力机制进行建模Reformer 模型 [246] 采用局部敏感散列(LSH)来最小化自注意力从 O(n2) 到 O(nlog(n)) 的复杂性。在类似的追求中,最近的 Lambda 网络建议将局部上下文建模为线性函数,这有助于降低自注意的复杂性 [247]。这些线性函数 lambdas 应用于输入查询以对像素之间的上下文关系进行建模。

Vyas et al. [248] 开发了一种有效的集群注意力来处理接近原始自注意力的大输入序列。集群注意力将查询分组到集群中,然后计算集群中心之间的注意力(而不是导致二次复杂度的所有查询之间的注意力)。主要思想是欧几里得空间中接近的查询应该具有相似的注意力分布。对于固定数量的簇,这种直觉有助于将关于输入序列长度 n(其中 c 是簇数)的二次复杂度降低为 O(nc) 的线性复杂度。我们将感兴趣的读者推荐给 NLP [34] 中关于高效 Transformer 的调查。

与 NLP 领域类似,计算机视觉模型也受到 Transformer 模型高计算成本的影响。例如,基于序列的 Transformer(例如 iGPT)的图像生成器具有高计算成本,限制了它们对高分辨率输入的适用性。对于 n 个图像块(在某些应用中,例如低级视觉,n = H × W,其中 H , W 表示图像的高度和宽度)。这是现有 Transformer 的一个主要缺点,阻碍了它们在大多数涉及高分辨率 (HR) 图像的任务中的应用,例如对象检测和分割(在高级视觉中),以及超分辨率、去模糊、去噪等(在低分辨率级视觉)。已经提出了许多方法来做出特殊的设计选择以更“有效地”执行自注意,例如在自注意中使用池化/下采样[97]、[219]、[249]、基于局部窗口的注意[36]、[ 250],轴向注意力[179],[251],低秩投影注意力[38],[252],[253],kernelizable attention [254]、[255] 和基于相似聚类的方法 [246]、[256]。然而,几乎所有这些方法要么在复杂性和准确性之间进行权衡,要么需要特殊的硬件规范,要么仍然不适用于非常大的图像。因此,迫切需要开发一种有效的自注意力机制,该机制可以应用于资源有限系统上的 HR 图像,而不会影响准确性。探索现有模型如何扩展到高维案例将很有趣,例如,使用多尺度Transformer设计和局部上下文建模。通过基于我们对视觉学习任务的理解(例如,本地邻域中的空间关系)诱导归纳偏差,可以降低高计算成本。类似地,在矩阵中使用用低秩分解建模的稀疏注意力图也有助于降低计算成本[211]。

4.2 Large Data Requirements

由于 Transformer 架构本身并不编码归纳偏差(先验知识)来处理视觉数据,因此它们通常需要大量训练来找出底层特定于模态的规则。例如,由于池化操作或多尺度处理块,CNN 具有内置的平移不变性、权重共享和部分尺度不变性。但是,Transformer 网络需要自己从训练示例中找出这些特定于图像的概念。类似地,视频帧之间的关系需要通过自注意机制通过查看大型视频序列数据库来自动发现。**这会导致更长的训练时间、显着增加的计算需求以及用于处理的大型数据集。**例如,ViT [11] 模型需要数亿个图像示例才能在 ImageNet 基准数据集上获得合理的性能。以数据高效的方式学习 Transformer 的问题是一个开放的研究问题,最近的工作报告了解决该问题的令人鼓舞的步骤。例如,DeiT [12] 使用蒸馏方法来实现数据效率,而 T2T (Tokens-to-Token) ViT [35] 通过将空间上接近的标记组合在一起来模拟局部结构,从而在从头开始仅在 ImageNet 上训练时获得有竞争力的性能(没有预训练)。通过在 ViT 中加入 CNN 之类的特征层次结构以有效捕获局部图像线索,即使在小规模数据集(例如 CIFAR-10)上也可以从头开始训练 ViT(例如 CCT [106]、NesT [111])。等人提出了另一种对 ViT 进行数据有效训练的方法。 [257]。作者表明,通过使用锐度感知最小化器 (SAM) [258] 平滑局部损失表面,可以使用简单的数据增强方案(随机裁剪和水平翻转)[259] 训练 ViT,而不是使用计算密集型强数据增强策略,并且可以优于其对应的 ResNet 模型。

4.3 Vision Tailored Transformer Designs

我们注意到,大多数专注于视觉任务的现有工作倾向于直接将 NLP Transformer 模型应用于计算机视觉问题。其中包括为图像识别 [11]、视频理解 [17] 尤其是多模态处理 [181] 而设计的架构。尽管这些简单应用程序的初步结果非常令人鼓舞,并促使我们进一步研究自注意力和自监督学习的优势,但当前的架构可能仍然可以更好地针对语言问题(具有序列结构)进行定制,并且需要进一步的直觉使它们对视觉输入更有效。例如,来自 [82] 的向量注意力在这个方向上是一项不错的工作,它试图通过学习通道注意力来专门定制视觉输入的自注意力操作。类似地,[260] 使用基于拼图的自监督损失作为 Transformers 中的并行分支来改进人员重新识别。最近的一项工作 [35] 重新排列了空间上接近的标记,以更好地模拟空间邻近位置的关系。来自预训练的 CNN 模型的标记蒸馏 [12] 也被用作在表示中注入域偏差的补救措施。有人可能会争辩说,像 Transformer 模型这样的架构应该保持通用性,以便直接适用于跨领域,我们注意到预训练此类模型的高计算和时间成本需要新颖的设计策略,以使其在视觉问题上的训练更实惠。

4.4 Neural Architecture Search for ViTs

虽然神经架构搜索 (NAS) 已经为 CNN 进行了很好的探索以找到优化的架构,但在 Transformer 中的探索相对较少(即使对于语言Transformer [261]、[262])。[263] 提出了一种用于视觉Transformer的一次性 NAS,称为 AutoFormer。 BossNAS [264] 搜索混合架构(CNN 和 Transformer)。最近的另一项工作是在视觉应用的背景下研究 Transformers 中全局和本地信息之间的权衡 [265]。使用 NAS 进一步探索特定领域的设计选择(例如,语言和视觉领域之间的对比要求)以设计类似于 CNN [87] 的更高效和轻量级的模型将是有见地的。

4.5 Interpretability of Transformers

通过一系列精心设计的实验, [266] 从泛化性和鲁棒性的角度研究 ViT 的多个有趣特性。他们表明,与 CNN 相比,ViT 表现出对纹理变化和严重遮挡的强大鲁棒性,例如,一旦 80% 的图像内容被随机遮挡,ViT 在 ImageNet 上保持高达 60% 的 top-1 准确度。鉴于 Transformer 架构的强大性能,解释它们的决策是有趣且关键的,例如,通过可视化图像中的相关区域来进行给定的分类决策。主要挑战是源自每一层的注意力以复杂的方式在后续层中相互混合,从而难以可视化输入标记对最终预测的相对贡献。这是一个悬而未决的问题,然而,最近的一些工作 [267]-[269] 以增强 Transformer 的可解释性为目标,并报告了令人鼓舞的结果。 [268] 中提出了注意力推出和注意力流方法来估计准确的注意力。然而,这种方法以一种特殊的方式运行,并且做出了简单的假设,例如,输入标记使用跨层的注意力权重线性组合。Chefer et al. [269] 注意到直接通过自注意过程(编码标记之间的关系)或 [268] 中的重新分配获得的注意分数并不能提供最佳解决方案。作为替代方案,他们建议在 Transformer 网络中分配和传播相关性分数,以使相关性总和在整个网络中保持不变。他们的设计可以处理自注意层中经历的正面和负面归因。所提出的框架具有额外的优势,即能够提供特定于类的可视化。尽管有这些开创性的工作,但可视化和解释 Transformer 是一个未解决的问题,需要方法来获得空间精确的特定于激活的可视化。在这个方向上的进一步进展有助于更好地理解 Transformer 模型,诊断决策过程中的任何错误行为和偏差。它还可以帮助我们设计新颖的架构,帮助我们避免任何偏见。

4.6 Hardware Efficient Designs

大型 Transformer 网络可能具有密集的功率和计算需求,阻碍了它们在边缘设备和资源受限环境(如物联网 (IoT) 平台)上的部署。据报道,最近一些努力在嵌入式系统(如 FPGA [270])上压缩和加速 NLP 模型。[270] 使用增强的基于块循环矩阵的表示来压缩 NLP 模型,并提出了一种新的现场可编程门阵列 (FPGA) 架构设计,以有效地管理资源以实现高吞吐量和低延迟。相对于 RoBERTa 模型 [7] 的 CPU,它们可以实现 27 倍、3 倍和 81 倍的性能提升(以 FPS 衡量的吞吐量)、降低的功耗和能效。为实现这一目标,[262] 提出使用神经架构搜索策略 [271]-[273] 设计硬件感知Transformer (HAT)。具体来说,首先对 SuperTransformer 模型进行性能近似训练,该模型可以在不完全训练的情况下估计模型的性能。该模型包含搜索空间中最大的可能模型,同时在公共部分之间共享权重。最终,考虑到硬件延迟约束,执行进化搜索,为目标硬件平台(例如,物联网设备、GPU、CPU)找到合适的 SubTransformer 模型。然而,视觉变形金刚目前缺乏这种硬件高效设计,无法在资源受限的设备中无缝部署。此外,随着二氧化碳排放对环境的相关影响,进化算法的搜索成本仍然很高。

4.7 Towards Integrating All Modalities

由于 Transformer 提供了一个统一的设计来处理不同的模态,最近的努力也集中在提出基于 Transformers 的更通用的通用推理系统。受可以处理来自各种模式的信息的生物系统的启发,感知器模型 [274] 旨在学习一个统一的模型,该模型可以处理任何给定的输入模式,而无需做出特定领域的架构假设。为了扩展到高维输入,Perceiver 使用非对称交叉注意方法将输入信息提炼成低维潜在瓶颈特征。一旦特征以紧凑和固定维度的形式被提炼出来,常规的 Transformer 块就会被应用到潜在空间中。原始的 Perceiver 模型在图像分类方面表现出与 ResNet 和 ViT 竞争的性能,并且可以处理 3D 数据、音频、图像、视频或其组合。但是,该模型只能生成固定输出,例如类别概率。最近一项名为 Perceiver IO [275] 的改进旨在学习具有灵活输入和任意大小输出的模型。这允许应用于需要结构化输出的问题,例如自然语言任务和视觉理解。虽然这些模型避免了依赖模态的架构选择,但学习本身仍然涉及依赖模态的选择,例如特定的增强或位置编码。一个有趣且开放的未来方向是在学习管道中实现完全的模态不可知论。

5 CONCLUSION

注意力在提供高效和准确的计算机视觉系统方面发挥了关键作用,同时提供了对深度神经网络功能的洞察。本次调查回顾了自注意力方法,并特别关注基于自注意力原则构建的 Transformer 和双向编码架构。我们首先介绍与自注意力架构有关的基本概念,然后对广泛的计算机视觉应用的竞争方法进行深入分析。具体来说,我们包括用于图像识别、对象检测、语义和实例分割、视频分析和分类、视觉问答、视觉常识推理、图像字幕、视觉语言导航、聚类、小样本学习、和 3D 数据分析。我们系统地强调了现有方法的主要优势和局限性,并特别阐述了未来的重要研究方向。该调查特别关注计算机视觉任务,提供了关于自注意和基于 Transformer 的方法的最新进展的独特观点。我们希望这项工作将进一步激发视觉社区的兴趣,以利用 Transformer 模型的潜力并改善其当前的局限性,例如减少碳足迹。

【CV】用于计算机视觉的 Transformer 高被引综述相关推荐

  1. Nature分享:如何写好高被引综述论文?

    综述类论文是科学家的重要资源.它们可以提供一个领域的历史背景,以及关于该领域未来发展的个人看法.同时,撰写这类文章可以为自己的研究提供灵感,还可以做一些写作练习. 不过,很少有科学家接受过如何写综述类 ...

  2. CV Code|计算机视觉开源周报20200602期~文末送书

    六月的第二周马上就要过去了,又到了我们盘点开源代码的时候.本周出了多份CVPR 2020的论文代码,涵盖目标视点估计.目标检测.ReID.图像增强与质量评价.超分辨率.光流算法.目标跟踪.无监督学习. ...

  3. CV Code|计算机视觉开源周报20200504期

    五月第四周,盘点本周新开源或即将开源的CV代码,涵盖方向广泛,不仅涉及到技术创新,还涉及多种CV应用. 其中Facebook新目标检测框架DETR是本周最热的论文,开辟了目标检测新方向! 鲁汶大学等提 ...

  4. CV Code|计算机视觉开源周报20200503期

    五月第三周,盘点本周新开源或即将开源的CV代码,涵盖方向广泛,不仅涉及到技术创新,还涉及多种CV应用,尤其值得一提的是谷歌和MIT都在研究的对比表征学习和香港中文大学开源的InterFaceGan,希 ...

  5. 从高被引文献中思考机器学习的发展

    作者:datamonday 首发:CSDN 时间:2021-03-29 Overview 本部分总结了到2021年3月8日期间被引量最高的10篇机器学习文献和20篇深度学习文献.包括,论文发表期刊.发 ...

  6. 重磅!2021年全球高被引科学家名单出炉!

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要10分钟 Follow小博主,每天更新前沿干货 转自:青塔 英国伦敦时间11月16日,科睿唯安公布了2021年度"高被引科学家&qu ...

  7. 计算机视觉算法——Transformer学习笔记

    算机视觉算法--Transformer学习笔记 计算机视觉算法--Transformer学习笔记 1. Vision Transformer 1.1 网络结构 1.2 关键知识点 1.2.1 Self ...

  8. 被引10万次:21世纪高被引论文Top 10

    21世纪是生命科学的世纪.人类基因组DNA测序计划的完成,RNA干扰技术.干细胞技术.CRISPR/Cas9基因编辑技术等一系列重大生物技术的诞生,极大推动了生命科学的发展,为保障人类健康.提高人类生 ...

  9. CV Papers|计算机视觉论文推荐周报20200601期

    6月第一周的周末,分享几篇本周CV领域的论文,其中上海交大实时语义分割模型LRNNet和Facebook借助NAS得到的主干网模型FBNetV3很吸引人. 其中含四篇综述文章,一篇来自自动驾驶的3D感 ...

  10. CV Code|计算机视觉开源周报20200601期

    六月的第一周马上就要过去了,又到了我们盘点开源代码的时候. 谷歌发布的目标检测新算法DetectoRS刷新了沉寂将近一年的COCO数据集的最高精度,是这周最具影响力的工作,同时谷歌还开源了视频质量评价 ...

最新文章

  1. 智源创新中心——与你同行,用AI改变世界
  2. C#6.0,C#7.0新特性
  3. kali2018.2安装配置OpenVAS-9及错误处置
  4. Bonjour/Zeroconf with Arduino
  5. simulink中选择开关模块的使用
  6. Oracle字符分隔函数(split)
  7. 文献学习(part76-A)--To cluster, or not to cluster: An analysis of clusterability methods
  8. leecode5 最长回文子串
  9. word文档解密_加密的pdf如何打印?一键解密,我有好方法!
  10. 安卓案例:LayoutCreator演示
  11. Python输出异常信息(行号)
  12. JAVA rs 是否要关闭_关闭结果集rs和statement以后,是否还要关闭数据库连接呢?...
  13. 软件设计师历年真题(链接在文末)
  14. Flash Builder4安装SVN插件
  15. GBase XDM Cluster 产品介绍
  16. 05_CSS 盒模型
  17. USB WDM驱动开发实例 bulkusb
  18. MySql中的行锁,表锁
  19. FPGA-炼狱传奇-三态门之战
  20. 深度学习:交叉验证(Cross Validation)

热门文章

  1. 电源大师课笔记 2.4
  2. java 工作流 实例_Activiti工作流的应用示例
  3. 软件项目开发报价指南
  4. mybatis连接oracle
  5. Doom启示录(一)---李乃峰所崇拜之 两个约翰!
  6. [Windows 故障]Ping通却无法连接网页 + Apple Mobile Device 自动停止
  7. Linux下安装lingo教程-centos6 64位
  8. 【网页】如何下载网页中mathplayer插件中的pdf文件
  9. mmap 文件不能为空
  10. MP3格式音频文件结构解析