深度学习-Transformers in Vision: A Survey(视觉任务中的Transformer综述)

Transformers in Vision: A Survey

  • 0.摘要
  • 1.概述
  • 2.基础
    • 2.1.自注意力机制
      • 2.1.1.基本自注意力机制
      • 2.1.2.带掩膜的自注意力
      • 2.1.3.多头自注意力机制
    • 2.2.(自我)监督预训练
    • 2.3.Transformer Model
    • 2.4.双向表示( Bidirectional Representations)
  • 3.视觉任务中的自注意力机制
    • 3.1.单头注意力机制
      • 3.1.1.卷积神经网络架构中的自注意力机制
      • 3.1.2.作为独立原始的自我注意(Self-Attention as Stand-alone Primitive)
    • 3.2.多头注意力机制(Transformers)
      • 3.2.1.单尺度特征的均匀尺度VIT
      • 3.2.2.多尺度Transformer
      • 3.2.3.带卷积的混合VIT
      • 3.2.4.自监督视觉Transformer
    • 3.3.目标检测中的Transformers
      • 3.3.1.使用CNN主干进行目标检测的Transformer
      • 3.3.2.单纯使用Transformer的目标检测
    • 3.4.图像分割中的Transformer
    • 3.5.用于图像和场景生成的Transformer
  • 由于后续内容太多了,而且与我的研究方向无关,精力有限暂不更新

原论文下载地址:Transformers in Vision: A Survey

0.摘要

本综述旨在提供计算机视觉学科中transformer模型的全面概述。我们首先介绍transformer成功背后的基本概念,即自我注意、大规模的预训练和双向特征编码。然后,我们涵盖了transformer在视觉中的广泛应用,包括流行的识别任务(例如,图像分类,目标检测,动作识别和分割),生成建模,多模态任务(例如,视觉问题回答,视觉推理和视觉基础),视频处理(例如,活动识别,视频预测)、低水平视觉(如图像超分辨率、图像增强和彩色化)和3D分析(如点云分类和分割)。我们比较了流行技术在建筑设计方面的各自优势和局限性以及它们的实验价值。最后,对开放的研究方向和未来可能的工作进行了分析。

1.概述

Transformer模型(Attention is all you need)
语言任务中:文本分类、机器翻译和问答

  • BERT(来自transformer的双向编码器表示)(BERT: Pretraining of deep bidirectional transformers for language understanding)
  • GPTv1-3(生成预训练transformer)(Improving language understanding by generative pre-training)(Language models are unsupervised multitask learners)(Language models are few-shot learners)
  • RoBERTa(Robustly Optimized BERTPre-training)
  • T5(Text-to-Text Transfer Transformer)
    视觉数据遵循典型的结构(例如,空间和时间一致性),因此需要新颖的网络设计和训练方案。因此,Transformer模型及其变体已成功用于图像识别、目标检测、分割、图像超分辨率、视频理解、图像生成、文本图像合成和视觉问答,以及其他几个用例.
    Transformer架构基于一种自我注意机制,该机制学习序列元素之间的关系。与递归处理序列元素且只能处理短期上下文的递归网络不同,转换器可以处理完整序列,从而学习长期关系。尽管注意模型在前馈网络和递归网络( feed-forward and recurrent networks)中都得到了广泛的应用,但Transformer完全基于注意机制,并且有一个独特的实现(即多头注意)为并行化而优化。这些模型的一个重要特征是可扩展到高复杂性模型和大规模数据集。Transformer与其他一些备选方案(如硬注意])相比,硬注意本质上是随机的,需要对注意位置进行蒙特卡罗抽样。由于Transformers与卷积和循环Transformers相比,假定对问题结构的先验知识最少,因此通常使用大规模(未标记)数据集上的前置任务对Transformer进行预训练

pretext tasks 通常被翻译作“前置任务”或“代理任务”, 有时也用“surrogate task”代替。
pretext task 通常是指这样一类任务,该任务不是目标任务,但是通过执行该任务可以有助于模型更好的执行目标任务。其本质可以是一种迁移学习:让网络先在其他任务上训练,使模型学到一定的语义知识,再用模型执行目标任务。这里提到的其他任务就是pretext task。

这样的预训练避免了昂贵的手动注释,因此,编码高度表达和概括的表示,为给定数据集中存在的实体之间的丰富关系建模。然后,以有监督的方式对所学习的表示在下游任务上进行微调,以获得有利的结果。
本文全面概述了为计算机视觉应用开发的Transformer模型。我们开发了网络设计空间的分类法,并强调了现有方法的主要优点和缺点。其他文献综述主要集中在NLP领域或涵盖基于注意的一般方法。通过关注视觉Transformer这一新兴领域,我们根据自我注意的内在特征和调查任务,综合整理了最近的研究方法。我们首先介绍了Transformer网络的基本概念,然后详细介绍了最新的视觉Transformer的细节。在可能的情况下,我们将NLP领域中使用的Transformer与针对视觉问题开发的Transformer进行比较,以展示主要的新奇之处和有趣的特定领域见解。最近的方法表明,**卷积运算可以完全被基于注意力的Transformer模块所取代,并且在单一设计中也被联合使用,以鼓励两组互补运算之间的共生。**这项调查最后详述了开放性研究问题,并对未来可能的工作进行了展望。

2.基础

两个关键思想:

  • 第一个是自注意力机制(Self-Attention),它允许捕获序列元素之间的“长期”依赖关系,而传统的循环模型发现编码这种关系很困难。
  • 第二个关键思想是以(自我)监督的方式对大型(未)标记语料库进行预训练,然后使用小型标记数据集对目标任务进行微调

2.1.自注意力机制

2.1.1.基本自注意力机制

给定一系列项目,自注意力机制评估一个项目与其他项目的相关性(例如,在一个句子中哪些单词可能组合在一起)。自我注意机制是Transformers不可分割的组成部分,它明确地为结构化预测任务建模序列中所有实体之间的交互。基本上,自注意力层通过聚合来自完整输入序列的全局信息来更新序列的每个项目。
对于给定的序列
X
=(x1 ,x2 ,……,xn )∈Rn×d ,d代表每个实体的维度,自注意的目标是通过根据全局上下文信息对每个实体进行编码来捕获所有元素之间的相互作用。这是通过定义三个可学习的权重矩阵来实现的:
查询矩阵WQRn×dq ,关键字矩阵WKRn×dk ,值矩阵WVRn×dv
输入序列X首先投影到这些权重矩阵上,以获得Q=XWQK=XWKand V=XWV
输出Z=sofmax(QKT/dq 1/2
对于序列中的给定实体,自注意基本上计算查询与所有键的点积,然后使用softmax运算符对点积进行规范化,以获得注意分数。然后,每个实体成为序列中所有实体的加权和,其中权重由注意分数给出(图2和图3,左上排方框)。

深度学习-Transformers in Vision: A Survey(视觉任务中的Transformer综述)_第1张图片

图2:在视觉领域中使用的示例自我注意块。给定图像特征的输入序列,计算三元组(键、查询、值),然后进行注意力计算,并应用它重新加权值。这里显示了一个单头,最后应用输出投影(W)以获得与输入尺寸相同的输出特征。

2.1.2.带掩膜的自注意力

标准的自我注意层关注所有实体,带掩膜的自注意力解码器中使用的自我注意块被屏蔽,以防止关注后续的未来实体。这只需使用掩膜MRn×n进行元素相乘运算即可完成,M是一个上三角矩阵。带掩膜的自注意力定义为:
输出Z=sofmax((QKT/dq 1/2M(逐元素乘积)

2.1.3.多头自注意力机制

为了封装序列中不同元素之间的多个复杂关系,多头部注意包括多个自我注意块,每个块都有自己的一组可学习的权矩阵(WQiWKiWVi ),在多头注意中,自我注意块的输出被连接成一个矩阵[Z1Z2 ,……,Zh-1]∈Rn×h·dv 投影到一个权矩阵上WRh·dv×d
深度学习-Transformers in Vision: A Survey(视觉任务中的Transformer综述)_第2张图片
卷积操作的自我注意的主要区别是:

  • 滤波器是动态计算的,而不是像卷积情况的静态滤波器(对任何输入保持不变)
  • 自我注意对输入点数的排列和变化是不变的。因此,与需要网格结构的标准卷积不同,它可以很容易地对不规则输入进行操作
  • 自注意(使用位置编码)在理论上是一种更灵活的操作,它可以模拟卷积模型对局部特征进行编码的行为。
  • 多头自注意(具有足够的参数)是一种更一般的操作,它可以作为特例模拟卷积的表达性。
    实际上,自注意提供了学习全局和局部特征的能力,并提供了自适应学习核权值和接受域的表达能力

2.2.(自我)监督预训练

基于自我注意的Transformer模型通常以两阶段的训练机制运行。

  • 首先,在大规模数据集(有时是几个可用数据集的组合)上以监督式或自监督式]进行预训练。
  • 然后,利用中小规模数据集将预先训练的权重调整到下游任务。(下游任务的例子包括图像分类、目标检测、零镜头分类、问答和动作识别

Vision Transformer模型(VIT-L)在ImageNet测试集上仅在ImageNet训练集上训练时,与在包含3亿张图像的JFT数据集上训练时相比,其在ImageNet测试集上的准确率绝对下降了13%。

第一种被称为Self-supervised learning(SSL)SSL的基本思想是填补空白,即尝试预测图像中被遮挡的数据,时间视频序列中未来或过去的帧,或预测一个前置任务,通过对输入数据使用旋转变换,对图像块或灰度图像使用排列组合。
另一种施加自我监督约束的有效方法是通过对比学习。在不改变底层类语义(例如,图像样式化、裁剪)的情况下,使用nuisance transformations来创建同一图像的两种类型的修改版本,修改部分语义(例如,用同一场景中的另一个对象替换一个对象,或者通过对图像的轻微对抗性更改来改变类)。随后,对模型进行训练,使其对nuisance transformations的转换保持不变,并强调对可能改变语义标签的微小更改进行建模。
自监督学习提供了一种很有前途的学习范式,因为它能够从大量现成的非注释数据中进行学习。在基于SSL的预训练阶段,通过解决一个前置任务,训练模型学习底层数据的有意义表示。根据数据属性和任务定义自动生成前置任务的伪标签(无需任何昂贵的手动注释)。因此,前置任务定义是SSL中的一个关键选择。我们可以根据其前置任务将现有SSL方法大致分类为:

  • 合成图像或视频的生成方法(给定条件输入,解决例如蒙版图像建模和图像着色、蒙版对象分类、预测旋转等几何变换或验证视频帧的时间序列
  • 利用多个数据模式的跨模式方法。验证两类数据的对应关系,如文本&图像、音频&视频或RGB&流

2.3.Transformer Model

深度学习-Transformers in Vision: A Survey(视觉任务中的Transformer综述)_第3张图片

图3-Transformer模型

编码器(中间行)由六个相同的块(即,图3中的N=6)组成,每个块有两个子层:一个多头自我注意网络和一个简单的位置完全连接的前馈网络。在每个块之后使用与层规范化相邻的剩余连接(Residual connection)。与同时执行特征聚合和特征转换的常规卷积网络不同(例如,卷积层之后是非线性),这两个步骤在Transformer模型中解耦。自关注层仅执行聚合,而前馈层执行转换
解码器(底部行)包含六个相同的块。每个解码器块具有三个子层,前两个子层(多头自注意和前馈)类似于编码器,而第三个子层对相应编码器块的输出执行多头注意
以机器翻译模型为例:编码器的输入是一种语言中的一系列单词(句子)。位置编码添加到输入序列中,以捕获序列中每个单词的相对位置。位置编码与input(d=512)具有相同的尺寸,可以通过正弦或余弦函数学习或预定义。作为一个自回归模型,Transformer的解码器
使用先前的预测输出序列中的下一个字
。因此,解码器接收编码器的输入以及先前的输出,以预测翻译语言中句子的下一个单词。为了便于残余连接,所有层的输出尺寸保持相同:d=512。多头注意中查询、键和值权重矩阵的维度设置为dQ=64、dk=64、dv=64。

2.4.双向表示( Bidirectional Representations)

原始Transformer模型的训练策略只能关注句子中给定单词左侧的上下文。这是有限的,因为对于大多数语言任务来说,左右两侧的上下文信息都很重要。Transformers的双向编码器表示(BERT)提出将句子中单词的左右上下文联合编码,从而以自我监督的方式改进文本数据的学习特征表示。为此,BERT引入了两个前置任务,以自我监督的方式预先训练Transformer模型:蒙蔽语言模型和下一句预测:

  • 蒙蔽语言模型(MLM):句子中固定百分比(15%)的单词被随机蒙蔽,并使用交叉熵损失对模型进行训练以预测这些蒙蔽的单词。在预测蒙面词时,该模型学习合并双向上下文
  • 下一句预测(NSP)-给定一对句子,该模型预测一个二进制标签,该对是否在原始文档中有效。这方面的训练数据可以很容易地从任何单语文本语料库生成。例如,在50%的时间里,B是实际的句子(紧挨着a),在另外50%的时间里,B是随机的句子。NSP使该模型能够捕获句子间的关系,这在许多语言建模任务(如问答和自然语言推理)中至关重要。

3.视觉任务中的自注意力机制

3.1.单头注意力机制

3.1.1.卷积神经网络架构中的自注意力机制

受主要用于图像去噪的非局部均值运算的启发,Wang提出了一种用于深度神经网络的可微非局部运算(Non-Local),以前馈方式捕获空间和时间上的长距离依赖关系。给定一个特征图,他们提出的算子将某一位置的响应计算为特征图中所有位置特征的加权和。通过这种方式,Non-Local操作能够捕获特征图中任意两个位置之间的交互,而不管它们之间的距离如何。视频分类是像素之间在空间和时间上都存在远程交互的任务的一个例子。具备远程交互建模能力,非局部深层神经网络在动力学数据集上进行更精确视频分类的优越性。
然而存在问题——计算复杂度高o(N2 ),为了减少这种计算负担,Huang提出了交叉注意模块,该模块仅在交叉路径上为每个像素位置生成交叉注意图,如图5(b)所示。此外,通过反复应用交叉注意,每个像素位置可以从所有其他像素捕获上下文。与非局部块相比,criss-cross占用的GPU内存少11倍,复杂度为O(2√N)
深度学习-Transformers in Vision: A Survey(视觉任务中的Transformer综述)_第4张图片
卷积算子的另一个缺点是在训练后,不管视觉输入有什么变化,卷积算子都会应用固定权重。Hu等人提出了局部关系网络( local relation networks ),以在局部窗口中自适应地合成像素。他们引入了一个新的可微分层,该层根据局部窗口内像素/特征之间的组成关系(相似性)调整其权重聚合。这种自适应权重聚合将几何先验引入网络,这对识别任务非常重要
卷积被认为是一种自上而下的算子,因为它在位置上保持个固定不变,而非局部Non-Local运算是一种自底向上的方法,因为它在整个图像上聚集输入特征。局部关系层属于自底向上方法的范畴,但它仅限于固定的窗口大小(7x7)。Belloet等人探讨了
将自我注意作为卷积算子的替代方法
的可能性。他们采用二维的相对位置编码来开发一种新的自我注意机制,这种机制可以保持平移不变性,这是处理图像的理想特性。尽管这种自我关注作为一种独立的计算原语提供了有竞争力的结果,但结合卷积运算可以获得最佳性能。作者指出,对于不同的体系结构,注意力增强可以提高图像分类和目标检测的系统性能

3.1.2.作为独立原始的自我注意(Self-Attention as Stand-alone Primitive)

总结卷积层的特性:1)具有平移等变性;2)不能用大的感受野进行缩放,因此不能捕获长程相互作用。关注输入的所有空间位置的全局注意力是计算密集型的,并且优选用于下采样的小图像、图像块或增大卷积特征空间。
Ramachandran等人提出用局部自我注意层取代深层神经网络中的卷积层,该层可以应用于小或大的输入,而不会增加计算成本。在基本层面上,所提出的自我关注层考虑给定像素周围特定窗口大小中的所有像素位置,计算这些像素的查询、键和值向量,然后聚集该窗口内的空间信息。向量在投影查询和键的softmax分数后聚合。对所有给定像素重复此过程,并将响应串联以产生输出像素。与基于卷积层的ResNet模型相比,具有局部自我注意层的ResNet模型能够以较少的参数解决目标检测问题
传统卷积算子联合执行特征聚合和转换(通过应用滤波器,然后将其通过非线性)。相比之下,他们建议单独执行特征聚合,然后使用元素感知机层进行转换。对于特征聚合,他们提出了两种替代策略:
1)成对(Pair-wise)自我注意。成对自我注意是置换和基数不变的操作,是一个集合算子,它计算向量注意力,并在给定的局部邻域中查看特定特征与其邻域的关系
2)斑块式(Patch-wise)自我注意。面片式自我注意是卷积算子(而不是集合算子)的推广,在导出注意向量时,会查看局部邻域中的所有特征向量。
成对和斑块式自我注意都被实现为学习空间和通道维度权重的注意。这为注意力提供了一种替代方法,通常使用标量权重(采用点积)进行
作者指出,使用更少的参数,自关注网络(SAN)可以在ImageNet数据集上超越ResNet基线。它们进一步显示了对抗性扰动的鲁棒性以及对不可见变换的推广。

3.2.多头注意力机制(Transformers)

与3.1节中将视觉自注意力机制作为CNNs中的一个组件不同,Vision Transformers(ViTs)改编了级联了多个Transformer层的架构。这一类方法可以分类为:

  • 具有所有层的单尺度特征的均匀尺度VIT
  • 学习更适合密集预测任务的层次特征的多尺度VIT
  • 在VIT中具有卷积运算的混合设计

3.2.1.单尺度特征的均匀尺度VIT

原始的Vision Transformer模型属于这个类,其中多头自我注意应用于输入图像中的一致尺度,其中空间尺度通过网络层次结构保持。我们将此类模型命名为均匀比例ViTs。
他们将原始Transformer模型[(变化最小)应用于一系列图像“面片”上,这些“面片”被展平为向量。该模型在大型数据集(JFT数据集有3亿张图像)上预先训练,然后微调到下游识别基准比如影像分类。这是一个重要步骤,因为在中等范围数据集上预训练ViT不会给出特别有优势的结果,因为CNN编码关于图像的先验知识(感应偏差,例如,翻译等变),与必须从非常大规模的数据中发现此类信息的Transformer相比,减少了对数据的需求。与同样将变压器应用于全尺寸图像但将训练作为生成性任务的iGPT模型相比,ViT使用监督分类任务对模型进行预训练
深度学习-Transformers in Vision: A Survey(视觉任务中的Transformer综述)_第5张图片

图六

DeiT是第一个证明可以在中等规模的数据集上学习Transformer的工作(即,120万个ImageNet示例,而ViT中使用的JFT的3亿个图像仅需相对较短的训练时间)。除了使用CNN中常见的增强和正则化程序外,DeiT的主要贡献是一种新颖的Transformer 本地蒸馏方法,该方法使用CNN作为教师模型(RegNetY16GF)来训练Transformer模型。CNN的输出有助于Transforme标记令牌。自我注意层对这些标记进行操作,以了解它们的相互依赖关系,并输出所了解的类、补丁和提取标记。使用输出类标记上定义的交叉熵损失和蒸馏损失对网络进行训练,以使蒸馏标记与教师输出相匹配。对蒸馏的软标签和硬标签选择进行了探索,发现硬蒸馏的性能更好。有趣的是,学习类和蒸馏标记没有表现出很高的相关性,表明它们的互补性。学习到的表示与性能最好的CNN体系结构(如EfficientNet[87])相比,表现良好,并且对于许多下游识别任务也具有良好的通用性。
标记对标记(token to token,T2T)ViT递归地将相邻标记组合成单个标记,以减少标记长度并聚合空间上下文。Transformer in Transformer在两个级别上计算注意力:补丁级别(标准ViTs)和局部子补丁级别(例如,通过将16×16补丁细分为四个4×4块,并计算这些块之间的注意力)。在标记ViT中,所有补丁标记都有助于损失计算,不同于在损失中仅使用分类标记的常规ViT。该过程包括辅助监控,其中
每个图像块(标记)使用预先训练的CNN模型进行标记
。与CutMix增强类似,来自不同图像的标记作为增强策略进行混合,并使用标准分类损失和辅助标记标签损失对模型进行训练。他们的模型表现出优异的性能,特别是对于较小尺寸的模型。
自我注意的二次复杂性阻碍了它对较长序列(高分辨率图像)的适用性。交叉协方差图像变换器(XCiT)将注意力纳入特征通道,而不是令牌,即它们的互协方差由Vsoftmax(KTQT/√τ)给出, 提出的交叉协方差注意具有线性复杂性(因为它取决于特征维度而不是标记的数量)。因此,XCiT可以处理大分辨率图像,并在不同的视觉任务中表现出优异的性能,比如自监督和全监督图像分类和密集预测(检测、分割)。DeepViT观察到,深层注意图之间的相似性很高,阻碍了深度缩放模型。他们建议在一个多头块中重新关注注意图,而不是这些注意图的简单聚合,并且显示出比标准的基于多头自我注意的VIT一致的增益。
DeepViT观察到,深层注意图之间的相似性很高,阻碍了深度缩放模型。他们建议在一个多头块中重新关注注意图,而不是这些注意图的简单聚合,并且显示出比标准的基于多头自我注意的VIT一致的增益。

3.2.2.多尺度Transformer

标准VIT模型无法捕捉不同比例的精细空间细节。因此,基于变压器的初始密集预测方法(如DETR)具有卷积后端。VIT的多阶段分层设计(令牌数量逐渐减少,而令牌特征维度逐渐增加)已被证明能够为密集预测任务生成有效的特征。这些模型通常也能很好地执行识别任务。这些体系结构主要通过合并相邻标记并将其投影到更高维的特征空间来稀疏标记。多级ViT的示例包括金字塔ViT、孪生ViT、CoaT、Swin Transformer、卷积视觉Transformer(CvT)、Shuffle Transformer、CrossFormer、RegionViT和局部Transformer模型。其中一些是混合设计(卷积和自我注意操作)而另一些只采用纯粹的基于自我注意的设计。
金字塔ViT(PVT)是ViT的第一个分层设计,提出了一种渐进收缩金字塔和空间缩减注意。PVTv2和SegForme通过引入重叠面片嵌入、深度卷积和有效注意,改进了原始PVT。Swin Transformer具有多级层次结构,通过将窗口划分为多个子窗口,在本地窗口内计算注意力。为了捕获不同窗口(图像位置)之间的交互,窗口分区沿网络层次结构逐渐移动,以捕获重叠区域。局部Transformer模型是另一种分层设计,其中引入局部自我关注,以同时捕获全局和局部关系。类似地,CrossFormer具有层次金字塔结构,并引入了跨尺度嵌入模块,以及长短距离注意和动态位置偏差,以忠实地捕捉局部和全局视觉线索。RegionViT提出了一种从区域到局部的注意编码层次特征。多尺度视觉长形器也考虑了自我注意中的局部环境,但采用了高效的长形器设计来实现自我注意。CrossViT通过分别处理**较小和较大的图像块,**用两个分支(每个分支具有多个变换块)对多尺度特征进行编码。然后使用交叉注意模块将来自这两个多尺度括号的信息融合在一起。

3.2.3.带卷积的混合VIT

卷积在捕获图像中的低级局部特征方面做得很好,并且在多个混合ViT设计中得到了探索,特别是在开始对输入图像进行“修补和标记化”时。

  • 卷积视觉Transformer(CvT)结合了基于卷积的投影来捕获空间结构和低级细节,用于图像块的标记化。CvT具有分层设计,其中标记数量逐渐减少,而标记宽度增加,从而模仿CNN中空间下采样的影响
  • 卷积增强图像Transformer采用基于卷积的图像到令牌模块来提取低级特征。
  • 紧凑卷积Transformer(CCT)引入了一种新的序列池方案,并将卷积块(conv-pool-reformate)用于标记化。CCT可以从零开始在较小的数据集上进行培训
  • LocalViT引入了深度卷积,以增强VIT的局部特征建模能力。
  • LeViT(名称来源于LeNet)在开始时采用四层CNN块(具有3×3的共卷积),通道逐渐增加(3,32,64,128,256)。对于3×224×224输入图像,从CNN块输出的结果256×14×14成为分层ViT的输入。凭借其设计,LeViT在CPU上的推理速度比EfficientNet快5倍。
  • ResT是另一种分层架构,它在补丁嵌入的开始应用CNN块。它结合了深度卷积和自适应位置编码来处理不同的图像大小
  • 方法NesT[提出了一种在VIT中引入层次结构的简单技术。嵌套将图像分割为不重叠的块(每个块进一步分割为面片)。它首先对每个块内的面片单独应用局部自关注,然后通过将它们聚集到图像空间并应用卷积运算,然后进行下采样,从而实现块之间的全局交互。块的数量沿模型的层次结构逐渐减少,而局部面片的数量保持不变。,这种简单的方案表现良好,并且能够从头开始在较小的数据集(如CIFAR-10)上进行训练嵌套。
  • 深度卷积和自我注意网络(CoatNet)引入了一个相对注意模块(结合了深度卷积和自我注意),并垂直堆叠卷积和注意层。CoAtNets在没有额外数据的情况下,展示了令人印象深刻的86%ImageNet top-1精度(即仅在ImageNet-1k上进行培训)。
  • Shuffle Transformer在一个窗口内执行自我注意,并在基于窗口的多头自我注意和MLP之间进行深度卷积。它引入了一个打乱操作来建立更强的跨补丁连接。
  • Co-scale conv-attentional imageTransformers(CoaT)是一种混合层次金字塔设计,具有串行和并行块,其中串行块与标准Transformers块相似,只是注意层被深度卷积所取代。并行块应用于串行块的输出,并使用交叉注意在多个尺度上对令牌之间的关系进行编码。
  • Twins 建立在PVT (一种只关注的金字塔设计)的基础上,用相对条件位置嵌入取代PVT中的绝对位置嵌入 ,并结合可分离的深度卷积而不是标准的空间注意,以捕获图像的局部和全局上下文。从这个意义上说,混合设计倾向于结合卷积和Transformer模型的优点
  • TransCNN 提出了一种分层的多头自我注意块,该块首先使用自我注意学习小网格(标记)内的交互,然后逐渐将较小的网格合并到较大的网格中。然后,可以将提议的块插入现有的CNN架构中。

3.2.4.自监督视觉Transformer

  • MoCo v3(从v1/v2扩展而来),用于自我监督VIT的稳定训练。
  • Xieet结合MoCo v2和BYOL来训练DeiT和SwinTransformer。他们展示了自监督算法在密集预测检测和分割任务中的推广。
  • 标签自蒸馏(DINO)证明,自监督VIT可以自动分割图像的背景像素,即使它们从未使用像素级监督进行过训练,这是CNN或完全监督VIT中未观察到的现象。
  • 高效的自监督视觉Transformer(EsViT) 提出了一种多阶段设计,在该设计中,**相邻标记沿着网络的层次结构逐渐合并,**并使用DINO进行自我监督。除了DINO中的标准imagelevel自我监控外,它们还包括额外的补丁patch级自我监控,在该自我监控中,图像增强版本中的类似补丁之间的对应关系得到提升。EsViT在自我监督设置下表现出优异的性能,在18个评估数据集中的17个数据集上,其现成功能的传输优于监督数据集。

3.3.目标检测中的Transformers

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

  • 用于特征提取的Transformers主干,带有用于检测的基于R-CNN的头部
  • 用于视觉特征的CNN主干和用于对象检测的基于Transformers的解码器[
  • 一种纯粹基于Transformers的端到端目标检测设计

3.3.1.使用CNN主干进行目标检测的Transformer

目标检测Transformers(DETR) 将对象检测视为一组预测任务:给定一组图像特征,目标是预测对象边界框集。Transformer模型可以预测一组对象(在一次定位中),还可以对它们的关系进行建模。DETR为预测和地面真值框之间的二分匹配修改一组损失函数。DETR的主要优势在于,它消除了对手工制作的模块和操作的依赖,如目标检测中常用的RPN(区域建议网络)和NMS(非最大抑制)。通过这种方式,对于复杂的结构化任务(如目标检测),对先验知识和仔细的工程设计的依赖性得到了放松。给定CNN主干的空间特征图,编码器首先将空间维度展平(见图7)。这给出了一个特征序列d×n,其中d为特征尺寸,n=h×w为h,w为空间特征地图的高度和宽度。然后,使用多头自我注意模块对这些特征进行编码和解码,解码阶段的主要区别在于,所有框都是并行预测的,由于编码器和解码器是置换不变的,因此解码器使用学习到的位置编码作为对象查询来生成不同的框。请注意,CNN检测器中的空间结构(例如,更快的R-CNN)会自动编码位置信息。DETR的性能可与流行的更快的RCNN模型相媲美,这是一个令人印象深刻的壮举,因为其设计简单。DETR还扩展到了其他领域的有趣应用,例如:。GCell DETR对其进行了扩展,例如生物细胞的分割。添加一个专用的注意分支,以获得实例分段,此外,还添加了一个CNN解码器增强的框预测,以生成准确的实例掩码。
深度学习-Transformers in Vision: A Survey(视觉任务中的Transformer综述)_第6张图片

图7

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

3.3.2.单纯使用Transformer的目标检测

One Sequence(YOLOS) 是一个简单的、仅关注的架构,直接构建在ViT之上。它将ViT中的类标记替换为多个可学习的对象查询标记,二分匹配丢失用于对象检测。YOLOS以一种纯序列到序列的学习方式展示了ViTs对目标检测的灵活性,并且与图像相关的2D感应偏差最小。本着类似的精神,PVT与DETR结合使用端到端变压器管道执行目标检测。我们注意到,将其他最新的ViT与基于Transformer的检测头相结合,以创建基于纯ViT的设计是可行的,我们希望在未来看到更多这样的努力。

3.4.图像分割中的Transformer

自我关注可以用于密集的预测任务,如需要对像素之间的丰富交互进行建模的图像分割。下面,我们将讨论轴向自我注意,一种可以分割与给定语言表达式对应区域的跨模态方法,以及基于ViTs的分割架构
全景分割旨在通过为每个像素分配一个语义标签和一个实例id,共同解决语义分割和实例分割这两个截然不同的任务。全局上下文可以提供有用的线索来处理这种复杂的视觉理解任务。自我关注在建模远程上下文信息方面是有效的,尽管将其应用于密集预测任务(如全景分割)的大量输入成本过高。一个简单的解决方案是将自我关注应用于下采样输入或每个像素周围的有限区域 。即使引入了这些约束,自我关注仍然具有二次复杂性,并牺牲了全局环境。为了解决这些问题,Wanget al.提出了位置敏感轴向注意,其中2D自我注意机制被重新表述为两个1D轴向拉伸层,依次应用于高度轴和宽度轴(见图8)。轴向注意力的计算效率很高,使模型能够捕获完整的图像上下文。它在COCO、Mapillary Vitas和Cityscapes基准上的全景分割任务以及在ImageNet数据集上的图像分类上实现了具有竞争力的性能。
深度学习-Transformers in Vision: A Survey(视觉任务中的Transformer综述)_第7张图片

图8

跨模态自我注意(CMSA)编码语言和视觉特征之间的远程多模态依赖关系,用于参考图像分割任务,该任务旨在分割语言描述所参考图像中的实体。为此,通过将图像特征与每个单词嵌入和空间坐标特征连接起来,获得一组跨模态特征。自我注意作用于这些特征,并对句子中每个单词对应的图像产生注意。然后,分割网络在多个空间层次上执行自我注意,并使用选通多级融合模块通过跨多分辨率特征的信息交换来细化分割遮罩。二进制CE损失用于训练整体模型,该模型在UNC、G-Ref和ReferIt数据集上实现了良好的改进。
虽然上面讨论的分割方法在其基于CNN的体系结构中插入了自我关注,但最近的一些工作提出了基于Transformer的编码器体系结构。Segmentation Transformer(SETR)有一个ViT编码器和两个基于渐进式上采样和多级特征聚合的解码器设计。SegFormer有一个分层金字塔ViT(无位置编码)作为编码器,以及一个简单的基于MLP的解码器,该解码器具有上采样操作以获得分段掩码。Segmenter使用ViT编码器提取图像特征,解码器是一个掩码转换器模块,它使用可学习的掩码标记和图像补丁标记作为输入,预测分割掩码。作者还提出了一种基线线性解码器,该解码器将面片嵌入投影到分类空间,从而产生粗糙的面片级标签。

3.5.用于图像和场景生成的Transformer

由于后续内容太多了,而且与我的研究方向无关,精力有限暂不更新

你可能感兴趣的:(深度学习,深度学习,transformer,人工智能)