本文来自{ A Survey on Vision Transformer} T-PAMI2022
目录
Abstract
1. Introduction
2. Formulation of Transformer
2.1 Self-Attention
Multi-Head Attention
2.2 Other Key Concept in Transformer
Feed-Forward Network
Residual Connection in the Encoder and Decoder.
3. Vision Transformer
3.1 Backbone for Representation Learning
3.1.1 Pure Transformer
3.1.2 Transformer with Convolution
3.1.3 Self-supervised Representation Learning
3.1.4 Discussions
3.2 High/Mid-level Vision
3.2.1 Generic Object Detection
3.2.2 Segmentation
3.2.3 Pose Estimation
3.2.4 Other Tasks
3.2.5 Discussion
3.3 Low-level Vision
3.3.1 Image Generation
3.3.2 Image Processing
3.4 Video Processing
3.4.1 High-level Video Processing
3.4.2 Low-level Video Processing
3.4.3 Discussions
3.5 Multi-Modal Tasks
3.6 Ef?cient Transformer
3.6.1 Pruning and Decomposition
3.6.2 Knowledge Distillation
3.6.3 Quantization
3.6.4 Compact Architecture Design
4. ???????Conclusion and Discussion
4.1 Challenges
4.2 Future Prospects
Abstract
在各种视觉基准测试中,基于Transformer的模型性能与卷积神经网络和递归神经网络等其他类型的网络性能似乎更好。
主要方向:
-
- 主干网络
- 高/中级视觉
- 低级视觉
- 视频处理
- 真实设备应用
- 自注意力机制在计算机视觉的应用
提供了多个基于视觉Transformer的未来研究方向
1. Introduction
Different types of tasks have typically involved different types of network.
Transformer利用自注意力机制来提取内在特征
[9]Vaswani首次提出了基于自注意力机制的Transformer模型(Attention is All You Need)
最初的应用是在自然语言处理任务,用于机器翻译和英语选区解析任务
Devlin[10]提出新的语言表示模型BERT(Transformer的双向编码器表示的缩写)在未标记文本上预训练一个Transformer,因为是双向的,所以同时考虑到每个单词的上下文。
Brown[11]使用1750①个参数在45TB的压缩明文数据上预训练了一个GPT-3的大型基于Transformer的模型,在不同类型的下游自然语言任务上无需任何微调,实现强大的性能
视觉从CNN被认为是视觉应用中的基本组件,如今Transformer是CNN的潜在替代品
Chen[14]训练了一个序列Transformer来自动回归预测像素,在图像分类中有与CNN相当的性能
Dosovitskity[15]提出ViT,直接将pure Transformer应用于图像块序列以对完整图像进行分类,在多个图像识别分类有先进的性能。
Transformer在对象检测、语义分割、图像处理、视频理解有广泛的视觉应用
基于Transformer的视觉模型数量迅速增加,本文全面概述视觉转换器的全面进展,在不同主题的研究,如表1.
高级视觉:处理图像中所见内容的解释和使用[21]
中级视觉:处理如何将信息组织成所体验的物体和表面[22]
解决高中视觉任务的Transformer模型有:DETR[16]、用于对象检测的可变性DETR[17]和用于分割的Max-DeepLab[25]。
低级图像:处理主要从图像中提取描述(图像本身)[26][19][27],超分辨率、图像去噪、风格转换
视频处理:顺序特性,[20][28],性能可与传统CNN和RNN相比
2. Formulation of Transformer
原始Transformer如图2所示
由一个编码器和解码器以及几个相同框架的Transformer块组成。
编码器生成输入序列,解码器获取所有编码并使用它们合并的上下文信息来生成输出序列。
每个Transformer块由多头注意力层、前馈神经网络、快捷连接和层归一化组成。
2.1 Self-Attention
自注意力层,输入向量首先转换成三个不同的向量:query向量q,key向量k,value向量k,
维度
来自不同的输入向量,包装成三个不同的矩阵,即Q、K、V
注意力函数在不同输入向量计算如下(如图3左所示)
此过程可统一为一个函数: |
步骤1计算每对不同向量之间的分数,这些分数决定了在当前位置的单词进行编码时给予其他单词的关注程度。
步骤2对分数进行归一化增强梯度稳定性以改进训练。
步骤3将分数转换为概率。
步骤4每个value向量×概率之和
具有较大概率的向量会从后续层获得额外的关注
解码器模块中的编码器-解码器注意力层与编码器模块中的自注意力层类似,由以下区别:
key矩阵K和value矩阵V源自编码器模块,query矩阵Q源自上一层
前面的过程对每个单词的位置都是不变的,这意味着自注意力层缺乏捕捉句子中单词的位置信息的能力。
一种语言中句子的顺序性质要求在编码中包含位置信息。——允许获得单词的最终输入向量,在原始输入嵌入中添加了一个带有维数的位置编码
该位置使用以下等式编码:
其中pos表示单词在句子中的位置,i表示位置编码的当前维度。通过这种方式,位置编码的每个元素都对应一个正弦曲线,它允许Transformer模型通过相对位置来学习并在推理过程中推断出更长的序列长度。
除了Vanilla Transformer中的固定位置编码之外,学习位置编码[48]和相对位置编码[49]也用于各种模型[10]、[15].
Multi-Head Attention
多头注意力时一种可用于提高普通自注意力层性能的机制。
对于给定的参考词,通常希望在阅读句子时关注其他几个词,
单头自注意力层限制了专注于一个或多个特定位置的能力,而不会同时影响对其他同等重要位置的注意力。
通过给予注意力层不同的表示子空间来实现的。
不同的head使用不同的query、key和value矩阵,这些矩阵由于随机初始化,可以将训练后的输入向量投影到不同的表示子空间中。
给定一个输入向量和头数h,输入向量首先被转换为三个不同的向量组:query组、key组、value组
在每一组中,由h个向量,位数 然后将来自不同输入的向量打包成三组不同的矩阵: |
多头注意力过程如下所示:
串联 是投影权重 |
2.2 Other Key Concept in Transformer
Feed-Forward Network
在每个编码器和解码器的自注意力层之后应用前馈网络(FFN)。
由两个线性变换层和其中一个非线性激活函数组成,可以表示为:
W1和W2是两个线性转换层的两个参数矩阵,σ表示非线性激活函数,例如GELU。隐藏层的位数是
Residual Connection in the Encoder and Decoder.
如图2所示,在编码器和解码器的每个子层中都添加了一个残差连接。这加强了信息流以实现更高的性能。
在残差连接之后进行层归一化。这些操作的输出可以描述为:
X被用作自注意力层的输入,query、key、value矩阵,Q、K、V都来自同一输入矩阵X。
变体预层归一化(Pre-LN)也被广泛使用[52][53][15]
Pre-LN在残差连接内和多头注意力或FFN之前插入层归一化。对于归一化层,有几种替代方案,例如批量归一化[54]
当特征值急剧变化时,批量归一化通常表现更差[55]
已经提出了一些其他的归一化算法[56][55][57]来改进Transformer的训练。
Final Layer in the Decoder
解码器中的最后一层用于将向量堆栈转换回单词。
通过一个线性层和一个softmax层来实现。线性层将向量投影到具有维度的逻辑向量中。
其中是词汇表中的单词数。然后使用softmax层将逻辑向量转换为概率。
在用于CV任务,大多数采用Transformer的编码器模块,这样的Transformer被视为一种新的特征提取器。
CNN只关注局部特征,Transformer可以捕获远程特征,可以获取全局信息。
RNN隐藏状态必须按顺序计算,Transformer是更有效率,self-attention层和全连接层的输出可以并行计算,容易加速。
3. Vision Transformer
基于transformer模型在计算机视觉中的应用,图像分类、高/中级视觉、低级视觉和视频处理。
总结自注意力机制和模型压缩方法在高效Transformer中的应用。
3.1 Backbone for Representation Learning
图像涉及更多维度、噪声和冗余模态
[58]采用ResNet作为基线,使用Vision Transformer代替最后阶段的卷积。使用卷积层来提取低级特征,将特征输入到Vision Transformer中。
在Vision Transformer中,使用标记其将像素分组为少量的视觉标记,每个标记代表图像中的一个语义概念。
这些视觉标记直接用于图像分类,Transformer 用于对标记之间的关系进行建模。
如图4所示,分为纯粹使用Vision Transformer和结合CNN和Transformer
在表2和图6中总结了模型的结果,展示Backbone的发展,除了监督学习,在视觉Transformer也探索了自监督学习。
3.1.1 Pure Transformer
ViT
Vision Transformer(ViT)是一个纯粹的Transformer,直接应用于图像分类任务的图像块序列。尽可能的遵循Transformer的原始设计。
图5显示了ViT的框架
为了处理2D图像,图像被重新整形为一系列展平的2D patches |
c是通道数,(h,w)是原始图像的分辨率,(p,p)是每个图像块的分辨率。
Transformer的有效序列长度为
由于Transformer在其所有层中使用恒定宽度,可训练线性投影将每个矢量化路径映射到模型维度d,其输出称为patch embedding
类似BERT的[class] token,可学习的embedding应用于embedding patches的序列。
embedding的状态作为图像表示
在预训练和微调阶段,分类头都附加到相同的大小。
将1D位置 embedding添加到patch embedding中以保留位置信息。
ViT仅使用标准Transformer的编码器(归一化层除外),其输出先于MLP头。
大多数情况下,ViT在大型数据集上进行预训练,然后针对具有较小数据的下游任务进行微调。
在中型数据集(ImageNet)训练时,ViT产生适度结果,精确度比同等大小的ResNet低了几个百分点。由于Transformer缺乏CNN固有的感受野,例如平移等边性和局部性,在数据量不足情况下,Transformer不能很好的概括。
在大数据集(1400W-3E)上训练模型超过了归纳偏差。当以足够大的规模进行预训练时,Transformer在数据点较少的任务上取得了优异的效果。
例如JFT-300M数据集上进行预训练,ViT在多个图像识别基准上接近甚至超过了最先进的性能。
在 ImageNet 上达到了 88.36% 的准确率,在 19 个任务的 VTAB 套件上达到了 77.16%。
Touvron通过在ImageNet上训练,提出了无卷积Transformer,称为数据高效图像Transformer(DeiT).
DeiT-B与Vit-B具有相同的架构,采用8600W参数,凭借强大的数据增强,ImageNet中前者实现了83.1的top1准确率,无需外部数据。
使用CNN教授比Transformer提供更好性能,DeiT-B在基于token的蒸馏帮助下,可以达到84.40%的top-1准确率。
Variants of ViT
根据ViT的范式,提出了一系列ViT变体,提高视觉任务的性能。主要方法:增强局部性,自注意力改进和架构设计。
原Transformer擅长捕捉patch之间的远程依赖关系,忽略局部特征提取,因为2D patch是被投影到具有简单线性层的向量
关注提高对局部信息的建模能力[29]、[60]、[61]
TNT[29]进一步将patch划分为多个子patch,引入Transforme-in-Transformer架构,利用内部Transformer块来模拟子patch和外部Transformer块之间的关系,进行Patch级信息交换。
Twins[62]和CAT[63]交替地逐层执行局部和全局注意力。
Swin Transformer[60][64]在窗口内执行局部注意力,并为跨窗口连接引入移位窗口分区方法。
Shuffle Transformer[65][66]进一步利用空间shuffle操作而不是移动窗口分区来允许跨窗口连接。
RegionViT[61]从图形中生成区域token和本地token,本地token通过区域token的注意力接受全局信息。
除了局部注意力,一些工作提出了局部特征聚合来提升局部信息,如T2T[67]。
这些作品展示了时间Transformer中本地信息交换和全局信息交换的好处。
作为Transformer的关键组件,自注意力层提供了图像块之间全局交互的能力,提高自注意力层的计算能力吸引了许多研究者。
DeepViT[68]建议建立cross-head communication,重新生成注意力地图,以增加不同层次的多样性。
KVT[69]引入k-NN注意力去利用图像块的局部性,通过仅使用top-k相似标记计算注意力,忽略噪声标记。
Refiner[70]探索了高维空间中的注意力扩展,应用卷积来增强注意力地图的局部模式。
XCiT[71]跨特征通道而不是tokens执行自注意力计算,允许高效处理高分辨率图像。
自注意力机制的计算复杂度和注意力精度是未来优化的两个关键点。
网络架构是CNN领域所证明的一个重要因素。
ViT的原始架构是相同形状的Transformer块的简单堆栈。
视觉Transformer的新架构设计,许多视觉Transformer模型[72][60][73][74][75][76]使用了类似金字塔的架构,包括PVT[72]、HVT[77]、Swin Transformer[60]、PiT[78].
还有其他类型的架构,例如双流架构[79]和U-net[80]、[30]。
还研究了神经架构搜索(NAS)以寻找更好的Transformer架构。例如Scaling-ViT、ViTAS[82]、AutoFormer[83]和GLiT[84]。
目前,视觉 Transformer的网络设计和NAS都主要借鉴CNN的经验,期待特定-新颖架构
除了上述方法之外,还有一些其他方向可以进一步改进视觉Transformer ,例如位置编码[85]、[86]、归一化策略[87]、快捷连接[88]和去除注意力[89]、[90] ,[91],[92]。
3.1.2 Transformer with Convolution
视觉Transformer成功应用多种视觉任务,能捕获输入中的远程依赖关系,但与CNN仍存在性能差距。
主要原因是缺乏提取本地信息的能力,
除了增强局部性的ViT变体之外,将Transformer 与卷积相结合可能是将局部性引入传统Transformer的直接方法。
通过卷积来增强传统Transformer块或自注意力层
CPVT[85]提出了条件位置编码(CPE)方法,输入标记的局部领域为条件,可适应任意输入大小,以利用卷积进行精细特征编码。
CVT[96]、CeiT[97]、LocalViT[98]和CMT[94]分析了直接从NLP借用Transformer架构并将卷积和Transformer组合在一起时的潜在缺点。
具体:每个Transformer块中的前馈网络(FFN)与卷积层相结合,以促进相邻tokens之间的相关性。
LeViT[99]重新审视了有关CNN的大量文献原理,将其应用于Transformer,提出了用于快速推理图像分类的混合神经网络。
BoTNet[100]在ResNet的最后三个瓶颈块中用全局自注意力替换空间卷积,并在实例分割和对象检测任务上显著改进了baseline,并且延迟开销最小。
Transformer模型难以enjoy良好数据拟合的能力[15][101][102],即对优化器、超参数的选择很敏感,以及训练时间表
Visformer[101]揭示了具有两种不同训练设置的Transformer和CNN之间的差距。
第一个是CNN的标准设置,即训练时间更短,数据增强只包含随机裁剪和水平翻转。
另一个是[59]中的使用的训练设置,即训练时间更长,数据增强更强。
[102]通过将ViT的embedding词干替换为标准卷积词干,改变了ViT的早期时间处理,并发现这种变化可以让ViT更快地收敛,并且可以使用AdamW或SGD,而不会显著降低准确度。
[99][94]还选择在transformer的顶部添加卷积词干
3.1.3 Self-supervised Representation Learning
Generative Based Approach.
图像的生成式预训练方法存在了很久[103][104][105][106]
[14]重新审视了此方法,并将其与自监督方法相结合,之后[107][108]来扩展基于生成的自监督学习用于视觉Transformer
iGPT[14]包括一个预训练阶段和一个微调阶段。
在预训练阶段,探索自回归和BERT目标。为了实现像素预测,采用序列Transformer架构而不是语言标记(如NLP中使用)当早期停止结合使用时,预训练可以被认为是一种有利的初始化或正则化器。
在微调阶段,为模型添加了一个小的分类头,有助于优化分类目标并调整所有权重。
通过K-means聚类将图像像素转换为序列数据,给定一个由高维数据X=(x1,…,xn)组成的未标记数据集,通过最小化数据的负对数似然来训练模型:
p(x)是图像数据的概率密度,可以建模为:
对1≤i≤n采用恒等排列πi=i,也称为光栅顺序。
还考虑了BERT目标,对子序列M?[1, n]进行采样,使得每个索引i独立地出现在M中的概率为0.15.
M称为BERT掩码,模型是通过最小化“掩码”元素XM的负对数似然来训练的,条件使“未掩码”元素X[1,n]\M:
在预训练阶段,选择LAR或LBERT,最小化预训练数据集的损失
使用Transformer解码器块的GPT-2公式,为了确保在训练AR目标时进行适当的调节,将标准上三角掩码应用于注意力logits的n×n矩阵。
使用BERT目标时不需要logit掩蔽
将内容embedding应用于输入序列后,将位置归零。
在最后的Transformer层之后,应用层范数并从输出中学习投影到logits参数化每个序列元素的条件分布。
在训练BERT时,只是忽略了未屏蔽位置的logits
在微调阶段,他们在整个序列维度上平均池化最后一层归一化层的输出,以提取每个示例的 d 维特征向量。 他们学习从池化特征到类 logits 的投影,并使用该投影来最小化交叉熵损失。 实际应用提供了经验证据,表明交叉熵损失和预训练损失(LAR 或 LBERT)的联合目标效果更好。
iGPT 和 ViT 是将 Transformer 应用于视觉任务的两项开创性工作。 iGPT 与 ViT-like 模型的区别主要在于 3 个方面:
1) iGPT 的输入是通过像素聚类得到的一系列调色板,而 ViT 将图像均匀地划分为多个局部块;
2)iGPT的架构是encoder-decoder框架,而ViT只有transformer encoder;
3)iGPT利用自回归自监督损失进行训练,而ViT通过监督图像分类任务进行训练。
Constrastive Learning Based Approach
目前,对比学习是计算机视觉中最流行的自我监督学习方式。 对比学习已应用于无监督预训练的视觉transformer [31]、[110]、[111]。
研究几个基本组件对训练自我监督 ViT 的影响。 作者观察到不稳定性是降低准确性的一个主要问题,这些结果确实是部分失败的,当训练更加稳定时可以改进它们。
引入MoCo v3框架,这是对 MoCo [112] 的增量改进。 具体来说,作者在随机数据增强下对每张图像进行两次裁剪。
它们由两个编码器 fq 和 fk 编码,输出向量为 q 和 k。 直观地说,q 的行为类似于“查询”,学习的目标是检索相应的“密钥”。 这被表述为最小化对比损失函数,可以写成:
这里 k+ 是 fk 在与 q 相同的图像上的输出,称为 q 的正样本。 集合 k- 由 fk 来自其他图像的输出组成,称为 q 的负样本。 τ 是 l2 归一化 q, k 的温度超参数。
MoCo v3使用在同一批次中自然共存的键并放弃内存队列,如果批次足够大(例如,4096),他们发现其增益递减。通过这种简化,可以以简单的方式实现对比损失。编码器fq由一个主干(例如ViT)、一个投影头和一个额外的预测头组成; 而编码器fk有主干和投影头,但没有预测头。fk由 fq的移动平均更新,不包括预测头。
MoCo v3表明,不稳定性是训练自我监督ViT的一个主要问题,因此他们描述了一个简单的技巧,可以在各种实验情况下提高稳定性。他们观察到,没有必要训练patch投影层。对于标准ViTpatch大小,patch投影矩阵是完整的或过完整的。在这种情况下,随机投影应该足以保留原始面片的信息。然而,这种伎俩缓解了问题,但并不能解决它。如果学习率太大,模型仍然可能不稳定,并且第一层不太可能是不稳定的根本原因。
3.1.4 Discussions
Vision Transformer的所有组件,包括多头自注意力、多层感知器、快捷连接、层归一化、位置编码和网络拓扑,在视觉识别中都起着关键作用。 如上所述,已经提出了许多工作来提高vision transformer的有效性和效率。 从图 6 的结果可以看出,将 CNN 和 Transformer 相结合可以获得更好的性能,表明它们通过局部连接和全局连接相互补充。 对骨干网络的进一步研究可以改善整个视觉社区。 至于vision transformer的自监督表示学习,我们仍然需要努力追求大规模预训练的成功
3.2 High/Mid-level Vision
最近,人们越来越感兴趣将Transformer用于高/中级计算机视觉任务,例如对象检测 [16],[17],[113],[114],[115],车道检测 [116],分割 [444],[25],[18] 和姿态估计 [34] 、 [35] 、 [36] 、 [117]。我们在本节中回顾这些方法。
3.2.1 Generic Object Detection
传统的目标检测器主要建立在 CNN 之上,但基于transformer的目标检测最近因其优越的能力而引起了人们的极大兴趣。
一些目标检测方法尝试使用 Transformer 的自注意力机制,然后增强现代检测器的特定模块,例如特征融合模块 [118] 和预测头 [119]。
在补充材料中对此进行了讨论。
基于 Transformer 的目标检测方法大致分为两组:基于 Transformer 的集合预测方法 [16]、[17]、[120]、[121]、[122] 和基于 Transformer 的主干方法 [113]、[115]、 如图 7 所示。与基于 CNN 的检测器相比,基于 Transformer 的方法在准确性和运行速度方面都表现出强大的性能。
表 3 显示了前面提到的 COCO 2012 验证集上不同的基于 Transformer 的目标检测器的检测结果。
Transformer-Based Set Prediction for Detection
Carion等人[16]提出的检测transformer(DETR)是基于transformer的检测方法的先驱,重新设计了目标检测的框架。DETR是一种简单而完全的端到端对象检测器,它将对象检测任务视为一个直观的集预测问题,消除了传统的手工制作的组件,如锚定生成和非最大抑制(NMS)后处理。如图8所示,DETR从CNN主干开始,从输入图像中提取特征。
为了用位置信息补充图像特征,在将特征输入解码器Transformer之前,将平面特征添加固定的位置编码。解码器使用来自编码器的embedding以及N个学习到的位置编码(对象查询),并产生N个输出embedding。这里的N是一个预定义的参数,通常大于图像中的对象的数量。简单的前馈网络(FFNs)用于计算最终的预测,其中包括边界框坐标和类标签,以指示对象的特定类别(或表示对象不存在)。与最初的按顺序计算预测的transformer不同,DETR并行解码N个对象。DETR采用二部匹配算法来分配预测对象和地面真实对象。如等式中所示11、匈牙利损失被用来计算所有匹配的对象对的损失函数。
其中 ^σ 是最优分配,ci 和 ^p^σ(i)(ci) 分别是目标类标签和预测标签,bi 和 ^b^σ(i) 是地面实况和预测边界框,y = {(ci, bi )} 和 ^y 分别是对象的基本事实和预测。 DETR 在目标检测方面表现出令人印象深刻的性能,在 COCO 基准上与流行且成熟的 Faster R-CNN [13] 基线提供了相当的准确性和速度。
DETR 是基于 Transformer 的对象检测框架的新设计,使社区能够开发完全端到端的检测器。 然而,普通的 DETR 带来了一些挑战,特别是训练时间较长和对小物体的性能较差。 为了应对这些挑战,朱等人。[17]提出了可变形DETR,它已成为一种流行的方法,可以显着提高检测性能。 可变形注意模块关注参考点周围的一小组关键位置,而不是像 Transformer 中的原始多头注意机制执行的那样查看图像特征图上的所有空间位置。 这种方法显着降低了计算复杂度,并在快速收敛方面带来了好处。 更重要的是,可变形注意力模块可以很容易地应用于融合多尺度特征。
Deformable DETR 比 DETR 实现了更好的性能,训练成本降低了 10 倍,推理速度提高了 1.6 倍。 并且通过使用迭代边界框细化方法和两阶段方案,Deformable DETR 可以进一步提高检测性能。
也有几种方法可以处理原始 DETR 的慢收敛问题。 例如,孙等人。[120]研究了 DETR 模型收敛速度慢的原因,发现这主要是由于 Transformer 解码器中的交叉注意力模块造成的。 为了解决这个问题,提出了一个仅编码器的 DETR 版本,在检测精度和训练收敛方面取得了相当大的改进。 此外,还设计了一种新的二分匹配方案,以提高训练稳定性和更快的收敛速度,并提出了两个基于Transformer 的集合预测模型,即 TSP-FCOS 和 TSP-RCNN,以使用特征金字塔改进仅编码器的 DETR。 与原始 DETR 模型相比,这些新模型实现了更好的性能。
高等人。[123] 提出了空间调制共同注意 (SMCA) 机制,通过将共同注意响应限制在最初估计的边界框位置附近的高值来加速收敛。 通过将提出的 SMCA 模块集成到 DETR 中,可以在可比较的推理成本下以大约 10 倍的训练 epoch 少获得类似的 mAP。
鉴于与DETR相关的高计算复杂度,Zheng等人 [121] 提出了一种自适应聚类Transformer (ACT),以降低预训练DETR的计算成本。ACT使用局部敏感度散列 (LSH) 方法自适应地对查询功能进行聚类,并将注意力输出广播到由选定原型表示的查询。ACT用于替换预先训练的DETR模型的自我注意模块,而无需进行任何重新训练。这种方法大大降低了计算成本,而精度略有下降。
通过使用多任务知识蒸馏 (MTKD) 方法,可以进一步降低性能下降,该方法利用原始transformer对ACT模块进行了一些微调。
Yao等 [124] 指出,DETR中的随机初始化是要求多解码器层且收敛速度慢的主要原因。为此,他们提出了有效的DETR,以通过其他区域建议网络将密集的先验信息纳入检测管道。更好的初始化使他们只能使用一个解码器层,而不是六层,以更紧凑的网络实现竞争性能。
Transformer-based Backbone for Detection
与DETR 通过Transformer 将对象检测重新设计为一组预测任务不同,
Beal等人。[113] 提出利用transformer作为常见检测框架的骨干,例如 Faster RCNN [13]。输入图像被分成几个块并输入vision transformer,其输出embedding特征根据空间信息进行重组,然后通过检测头获得最终结果。 一个庞大的预训练transformer骨干网可以为提议的 ViT-FRCNN 带来好处。
还有很多方法可以探索通用视觉Transformer 骨干设计[29]、[72]、[60]、[62],并将这些骨干转移到传统检测框架,如RetinaNet[127]和Cascade R-CNN [128].例如,Swin Transformer [60] 在 ResNet-50 主干上获得了大约 4 个框 AP 增益,并且对于各种检测框架具有相似的 FLOP。
Pre-training for Transformer-based Object Detection.
受 NLP 中预训练Transformer方案的启发,已经提出了几种方法来探索基于transformer的目标检测的不同预训练方案 [32]、[126]、[129]。
戴等人。[32]提出了用于对象检测的无监督预训练(UP-DETR)。具体来说,提出了一种名为随机查询补丁检测的新型无监督接口任务来预训练 DETR 模型。 通过这种无监督的预训练方案,UP-DETR 显着提高了在相对较小的数据集(PASCAL VOC)上的检测精度。 在具有足够训练数据的 COCO 基准上,UP-DETR 仍然优于 DETR,证明了无监督预训练方案的有效性。
方等。[126]探索如何将纯ViT结构pre-trained ImageNet更具挑战性的目标检测任务和提出了YOLOS探测器。处理对象检测任务,提出YOLOS第一drops分类标记在ViT和附加可学的检测标记。此外,双方的匹配损失是用来执行预测对象集。ImageNet数据集经过这个简单的训练计划,提议对YOLOS显示竞争对象检测的性能基准。
3.2.2 Segmentation
分割是计算机视觉社区中的一个重要主题,广泛包括泛光分割,实例分割和语义分割等。Vision transformer在细分领域也显示出令人印象深刻的潜力。
Transformer for Panoptic Segmentation.
DETR [16]可以自然地扩展到全景分割任务,并通过在解码器上附加掩码头来获得有竞争力的结果。
王等人。[25] 提出Max-DeepLab使用掩模Transformer直接预测全景分割结果,而不涉及诸如框检测之类的代理子任务。 与 DETR 类似,Max-DeepLab 以端到端的方式简化全景分割任务,并直接预测一组不重叠的掩码和相应的标签。 模型训练是使用全景质量 (PQ) 风格的损失来执行的,但与先前将Transformer 堆叠在 CNN 主干之上的方法不同,MaxDeepLab 采用了双路径框架,有助于结合 CNN 和Transformer 。
Transformer for Instance Segmentation.
VisTR 是一种基于 Transformer 的视频实例分割模型,由 Wang 等人提出。 [33]从一系列输入图像中产生实例预测结果。提出了一种匹配实例序列的策略,以将预测与基本事实一起分配。为了获得每个实例的掩码序列,VisTR 利用实例序列分割模块从多个帧中累积掩码特征,并使用 3D CNN 对掩码序列进行分割。
胡等人。[130] 提出了一种实例分割Transformer (ISTR) 来预测低维掩码embedding,并将它们与地面实况相匹配以获取集合损失。ISTR 使用与现有自上而下和自下而上框架不同的循环细化策略进行检测和分割。
杨等人。[131]研究了如何实现更好、更有效的嵌入学习,以解决具有挑战性的多对象场景下的半监督视频对象分割问题。
一些论文如[132]、[133]也讨论了使用Transformer处理分割任务。
Transformer for Semantic Segmentation
郑等人。[18]提出了一种基于转换器的语义分割网络(SETR)。SETR 使用类似于 ViT [15] 的编码器作为编码器从输入图像中提取特征。采用多级特征聚合模块进行逐像素分割。
Strudel等.[134] 引入了分段器,它依赖于与图像块相对应的输出embedding,并通过逐点线性解码器或掩码Transformer 解码器获得类标签。
谢等人.[135] 提出了一个简单、高效但功能强大的语义分割框架,它将 Transformer 与轻量级多层感知(MLP)解码器相结合,输出多尺度特征并避免复杂的解码器。
Transformer for Medical Image Segmentation
曹等人.[30] 提出了一种类似 Unet 的纯 Transformer 用于医学图像分割,通过将标记化的图像块feeding到基于 Transformer 的U形编码器-解码器架构中,该架构具有用于局部-全局语义特征学习的跳跃连接。
Valanarasu等人.[136]探索了基于Transformer的解决方案,并研究了使用基于Transformer的网络架构进行医学图像分割任务的可行性,并提出了一种门控轴向注意力模型,该模型通过在自注意力模块中引入额外的控制机制来扩展现有架构。
Cell-DETR[137]基于 DETR 全景分割模型,是使用Transformer进行单元实例分割的一种尝试。它添加了跳跃连接,在分割头中桥接主干 CNN 和 CNN 解码器之间的特征,以增强特征融合。Cell-DETR 从显微镜图像中实现细胞实例分割的最先进性能。
3.2.3 Pose Estimation
人体姿势和手姿势估计是引起研究界极大兴趣的基础主题。
关节姿态估计类似于结构化预测任务,目的是从输入的RGB/D图像中预测关节坐标或网格顶点。本文讨论了如何利用Transformer对人体姿态和手姿态的全局结构信息进行建模的方法。
Transformer for Hand Pose Estimation
黄等人。[34] 提出了一种基于Transformer的网络,用于从点集进行 3D 手部姿势估计。编码器首先利用PointNet[138]从输入点云中提取逐点特征,然后采用标准的多头自注意力模块生成嵌入。为了向解码器公开更多与全局姿势相关的信息,使用诸如PointNet++[139]之类的特征提取器来提取手关节特征,然后将其作为位置编码输入解码器。
黄等人.[35] 提出了用于 3D 手对象姿态估计的 HOT-Net(手对象变换网络的缩写)。与之前使用 Transformer 直接从输入点云预测 3D 手部姿势的方法不同,HOT-Net 使用 ResNet 生成初始 2D 手部对象姿势,然后将其输入到 Transformer 以预测 3D 手部对象姿势。 因此,频谱图卷积网络用于提取编码器的输入embedding。
汉帕利等人。[140] 提出在给定单色图像的情况下估计两只手的 3D 姿势。 具体而言,将双手关节的一组潜在2D位置的外观和空间编码输入到Transformer,并使用注意力机制来整理出关节的正确配置并输出双手的 3D 姿势。
Transformer for Human Pose Estimation
林等人。[36] 提出了一种网格Transformer (METRO),用于从单个 RGB 图像预测 3D 人体姿势和网格。 METRO 通过CNN提取图像特征,然后通过将模板人体网格连接到图像特征来执行位置编码。 提出了一种渐进降维的多层Transformer编码器,以逐渐降低嵌入维度,最终产生人体关节和网格顶点的 3D 坐标。 为了鼓励学习人体关节之间的非局部关系,METRO 在训练期间随机屏蔽了一些输入查询。
杨等人。[117] 基于 Transformer 架构和低级卷积块构建了一个名为 TransPose 的可解释模型。Transformer 中内置的注意力层可以捕获关键点之间的远程空间关系,并解释预测的关键点位置高度依赖的依赖关系。
李等人。[141] 提出了一种基于 Token 表示的人体姿态估计新方法(TokenPose)。 每个关键点都被显式embedding为一个标记,以同时从图像中学习约束关系和外观线索。
毛等人。[142]提出了一种人体姿态估计框架,以基于回归的方式解决了该任务。 他们将姿态估计任务制定为序列预测问题,并通过Transformer 解决它,绕过了基于热图的姿态估计器的缺点。
江等人。[143] 提出了一种新颖的基于变换器的网络,它可以以无监督的方式学习姿势和运动的分布,而不是跟踪身体部位并试图在时间上平滑它们。 该方法克服了检测不准确的问题,并纠正了部分或整个骨架损坏。
郝等人。[144] 建议在不使用任何手动注释的情况下,在给定一组人的测试图像的情况下个性化人体姿势估计器。 该方法在测试期间调整姿势估计器以利用特定于人的信息,并使用 Transformer 模型在自监督关键点和监督关键点之间建立转换。
3.2.4 Other Tasks
还有很多不同的高/中级视觉任务已经探索了Vision Transformer的使用以获得更好的性能。 我们在下面简要回顾了几项任务。
Pedestrian Detection
由于在遮挡和人群场景中物体的分布非常密集,所以在将普通检测网络应用于行人检测任务时,往往需要进行额外的分析和适配。
林等人。[145] 表明,当直接将 DETR 或可变形 DETR 应用于行人检测任务时,解码器中稀疏的统一查询和弱注意力场会导致性能下降。为了缓解这些缺点,作者提出了行人端到端检测器 (PED),它采用了一种称为密集查询和校正注意力字段 (DQRF) 的新解码器来支持密集查询并缓解查询的嘈杂或狭窄的注意力字段。 他们还提出了 V-Match,它通过充分利用可见注释来实现额外的性能改进。
Lane Detection
Liu 等人基于 PolyLaneNet [146]。
[116] 提出了一种称为 LSTR 的方法,该方法通过使用Transformer 网络学习全局上下文来提高弯道检测的性能。 与 PolyLaneNet 类似,LSTR 将车道检测视为使用多项式拟合车道的任务,并使用神经网络来预测多项式的参数。 为了捕捉车道和全局上下文的细长结构,LSTR 在架构中引入了一个transformer网络。 这可以处理由 CNN 提取的低级特征。 此外,LSTR 使用匈牙利损失来优化网络参数。 如 [116] 所示,LSTR 的性能优于 PolyLaneNet,其准确率提高了 2.82%,FPS 提高了 3.65 倍,使用的参数少了 5 倍。 Transformer网络、CNN 和 Hungarian Loss 的组合最终形成了一个精确、快速和微小的车道检测框架。
考虑到整个车道线一般具有细长的形状和远程,刘等人。 [147]利用Transformer编码器结构进行更有效的上下文特征提取。 这种 Transformer 编码器结构极大地改进了提案点的检测,这依赖于上下文特征和全局信息,尤其是在骨干网络是一个小模型的情况下。
Scene Graph
场景图是场景的结构化表示,可以清楚地表达场景中的对象、属性和对象之间的关系[148]。为了生成场景图,大多数现有方法首先提取基于图像的对象表示,然后在它们之间进行消息传播。
Graph R-CNN [149] 利用自注意力来整合来自图中相邻节点的上下文信息。
最近,Sharifzadeh 等人。[150] 在提取的对象embedding上使用了Transformer。
谢里夫扎德等人。[151] 提出了一个名为 Texema 的新管道,并采用了预训练的文本到文本传输Transformer (T5) [152] 从文本输入创建结构化图形,并利用它们来改进关系推理模块。T5 模型使 Texema 能够利用文本中的知识。
Tracking
一些研究人员还探索了在基于模板的判别跟踪器中使用transformer编码器-解码器架构,例如TMT [153],TrTr [154] 和TransT [155]。所有这些工作都使用Siamese-like的跟踪管道来进行视频对象跟踪,并利用编码器-解码器网络来代替显式的互相关操作,以实现全局和丰富的上下文相互依存关系。
具体地,将Transformer编码器和解码器分别分配给模板分支和这些分支。此外,Sun等人提出了TransTrack [156],这是一个在线联合检测和跟踪管道。它利用查询密钥机制来跟踪预先存在的对象,并将一组学习的对象查询引入管道中,以检测新出现的对象。拟议的TransTrack在MOT17和MOT20基准上实现了74.5% 和64.5% MOTA。
Re-Identi?cation
他等人。[157] 提出 TransReID 来研究纯Transformer在对象重新识别(ReID)领域的应用。在将 Transformer 网络引入对象 ReID 时,TransReID 切片具有重叠以保留补丁周围的局部相邻结构,并引入 2D 双线性插值以帮助处理任何给定的输入分辨率。
通过Transformer模块和损失函数,提出了一个强大的基线,以实现与基于 CNN 的框架相当的性能。 此外,jigsaw patch模块(JPM)旨在促进对象的扰动不变和鲁棒特征表示,并引入辅助信息embedding(SIE)来编码辅助信息。 最终框架 TransReID 在人和车辆 ReID 基准上均实现了最先进的性能。
刘等人。[158]和张等人。[159] 提供了将Transformer网络引入基于视频的人员 Re-ID 的解决方案。同样,他们都利用分离的Transformer 网络来细化空间和时间特征,然后利用交叉视图Transformer 来聚合多视图特征。
Point Cloud Learning
最近也出现了许多其他探索点云学习Transformer架构的工作[160]、[161]、[162]。
郭等人。[161]提出了一种新颖的框架,用更合适的偏移注意模块替换原始的自我注意模块,其中包括隐式拉普拉斯算子和归一化细化。
赵等人。[162]设计了一种新颖的Transformer架构,称为Point Transformer。 所提出的自注意力层对点集的排列是不变的,使其适用于点集处理任务。 Point Transformer 在 3D 点云的语义分割任务中表现出强大的性能。
3.2.5 Discussion
Transformer 在包括检测、分割和姿态估计在内的几个高级任务中表现出强大的性能。在将 Transformer 用于高级任务之前需要解决的关键问题涉及输入嵌入、位置编码和预测损失。 一些方法提出从不同的角度改进自我注意模块,例如可变形注意[17]、自适应聚类[121]和点Transformer [162]。尽管如此,探索将Transformer用于高级视觉任务仍处于初步阶段,因此进一步的研究可能会证明是有益的。 例如,是否需要在 Transformer 之前使用 CNN 和 PointNet 等特征提取模块以获得更好的性能? 如何像 BERT 和 GPT-3 在 NLP 领域那样使用大规模预训练数据集来充分利用视觉Transformer? 是否可以预训练单个 Transformer 模型并针对不同的下游任务进行微调,只需要几个 epoch 的微调? 如何通过结合特定任务的先验知识来设计更强大的架构? 先前的几项工作已经对上述主题进行了初步讨论,我们希望进行更多的研究工作,以探索更强大的Transformer以实现高层次的视觉。
3.3 Low-level Vision
很少有作品将Transformer应用于低级视觉领域,例如图像超分辨率和生成。 这些任务通常将图像作为输出(例如,高分辨率或去噪图像),这比输出为标签或框的分类、分割和检测等高级视觉任务更具挑战性。
3.3.1 Image Generation
将 Transformer 模型应用于图像生成任务的一个简单而有效的方法是将架构从 CNN 直接更改为 Transformer,如图 9 (a) 所示。
江等人。[38] 提出了 TransGAN,它使用Transformer架构构建 GAN。 由于难以按像素生成高分辨率图像,因此通过在不同阶段逐渐增加特征图分辨率来使用内存友好的生成器。 相应地,设计了一个多尺度鉴别器来处理不同阶段不同大小的输入。 引入了各种训练方案,包括网格自注意力、数据增强、相对位置编码和修改归一化,以稳定训练并提高其性能。 对各种基准数据集的实验证明了基于Transformer 的 GAN 模型在图像生成任务中的有效性和潜力。
Kwonjoon Lee 等人。[163] 提出了 ViTGAN,它向生成器和判别器引入了几种技术,以稳定训练过程和收敛。 为自注意力模块引入欧几里得距离,以加强Transformer 鉴别器的 Lipschitzness。 提出了自调制层规范和隐式神经表示来增强生成器的训练。 因此,ViTGAN 是第一个证明基于转换器的 GAN 可以实现与最先进的基于 CNN 的 GAN 相当的性能的工作。
Parmar等人。[27] 提出了 Image Transformer,迈出了将 Transformer 模型泛化为以自回归方式制定图像翻译和生成任务的第一步。
Image Transformer 由两部分组成:用于提取图像表示的编码器和用于生成像素的解码器。 对于值为 0 - 255 的每个像素,学习一个 256 × d 维嵌入,用于将每个值编码为一个 d 维向量,该向量作为输入输入到编码器中。 编码器和解码器采用与[9]中相同的架构。 每个输出像素 q 是通过计算输入像素 q 和先前生成的像素 m1,m2, ... 之间的自注意力来生成的,位置嵌入为 p1, p2, ...。对于图像条件生成,例如超分辨率和修复,使用编码器-解码器架构,其中编码器的输入是低分辨率或损坏的图像。 对于无条件和类条件生成(即噪声到图像),只有解码器用于输入噪声向量。由于解码器的输入是先前生成的像素(在生成高分辨率图像时涉及高计算成本),因此提出了一种局部自注意方案。 该方案仅使用最接近的生成像素作为解码器的输入,使 Image Transformer 在图像生成和翻译任务中实现与基于 CNN 的模型相当的性能,证明了基于Transformer 的模型在低级视觉任务上的有效性。
由于 Transformer 模型很难直接生成高分辨率图像,因此 Esser 等人。[37] 提出了Taming Transformer。
Taming Transformer 由两部分组成:VQGAN 和 Transformer。 VQGAN 是 VQVAE [164] 的变体,它使用鉴别器和感知损失来提高视觉质量。 通过 VQGAN,图像可以由一系列上下文丰富的离散向量表示,因此这些向量可以很容易地通过自回归方式由 Transformer 模型进行预测。Transformer 模型可以学习用于生成高分辨率图像的远程交互。 因此,所提出的 Taming Transformer 在各种图像合成任务上都取得了最先进的结果。
除了图像生成之外,DALL·E[41]还提出了文本到图像生成的Transformer 模型,该模型根据给定的标题合成图像。
整个框架由两个阶段组成。在第一阶段,利用一个离散的VAE来学习视觉码本。在第二阶段,文本被BPE-译码解码,相应的图像被第一阶段学习的dVAE解码。然后使用一个自回归Transformer 来学习编码文本和图像之间的先验。在推理过程中,图像的标记由Transformer 进行预测,并由学习到的解码器进行解码。引入CLIP模型[40]来对生成的样本进行排序。对文本到图像生成任务的实验证明了该模型具有强大的能力。请注意,我们的调查主要关注纯视觉任务,我们在图9中没有包括DALL·E的框架。
3.3.2 Image Processing
最近的一些作品避免使用每个像素作为Transformer模型的输入,而是使用patches(像素集)作为输入。
杨等人。[39] 提出了用于图像超分辨率(TTSR)的纹理Transformer 网络,在基于参考的图像超分辨率问题中使用了Transformer架构。 它旨在将相关纹理从参考图像转移到低分辨率图像。 将低分辨率图像和参考图像分别作为查询 Q 和关键 K,计算 Q 中的每个patch qi 和 K 中的 ki 之间的相关性 ri,j 为:
提出了一种hard-attention模块,根据参考图像选择高分辨率特征V,从而可以利用相关性匹配低分辨率图像。 Hard-attention图计算如下:
最相关的参考patch是 ti = vhi ,其中 T 中的 ti 是转移的特征。 然后使用软注意模块将 V 转移到低分辨率特征。 从高分辨率纹理图像和低分辨率特征转移的特征用于生成低分辨率图像的输出特征。 通过利用基于Transformer的架构,TTSR 可以成功地将纹理信息从高分辨率参考图像传输到超分辨率任务中的低分辨率图像。
与前面在单个任务上使用 Transformer 模型的方法不同,
Chen 等人。[19]提出了图像处理transformer(IPT),它通过使用大型预训练数据集充分利用了transformer的优势。 它在多个图像处理任务中实现了最先进的性能,包括超分辨率、去噪和去雨。 如图 10 所示,IPT 由多个头部、一个编码器、一个解码器和多个尾部组成。
针对不同的图像处理任务引入了多头、多尾结构和任务嵌入。 这些特征被分成补丁,这些补丁被馈送到编码器-解码器架构中。 在此之后,输出被重塑为具有相同大小的特征。 鉴于在大型数据集上预训练 Transformer 模型的优势,IPT 使用 ImageNet 数据集进行预训练。 具体来说,来自该数据集的图像通过手动添加噪声、雨纹或下采样来降级,以生成损坏的图像。 降级图像用作 IPT 的输入,而原始图像用作输出的优化目标。 还引入了一种自监督方法来增强 IPT 模型的泛化能力。 训练模型后,通过使用相应的头、尾和任务嵌入对每个任务进行微调。 IPT 在很大程度上实现了图像处理任务的性能提升(例如,图像去噪任务中的 2 dB),展示了将基于Transformer 的模型应用于低级视觉领域的巨大潜力。
除了单图像生成,Wang 等人。 [165] 提出 SceneFormer 在 3D 室内场景生成中使用Transformer 。 通过将场景视为一系列对象,Transformer 解码器可用于预测一系列对象及其位置、类别和大小。 这使得 SceneFormer 在用户研究中的表现优于传统的基于 CNN 的方法。
应该注意的是,iGPT [14] 在类似修复的任务上进行了预训练。 由于 iGPT 主要关注图像分类任务的微调性能,我们将这项工作视为使用Transformer 的图像分类任务的尝试,而不是低级视觉任务。
总之,与分类和检测任务不同,图像生成和处理的输出是图像。 图 11 说明了在低级视觉中使用Transformer。
在图像处理任务中,图像首先被编码成一系列标记或补丁,然后Transformer 编码器使用该序列作为输入,从而使Transformer 解码器能够成功生成所需的图像。 在图像生成任务中,基于 GAN 的模型直接学习解码器生成补丁以通过线性投影输出图像,而基于Transformer 的模型训练自动编码器来学习图像的码
本,并使用自回归Transformer 模型预测编码的标记。 未来研究的一个有意义的方向是为不同的图像处理任务设计合适的架构。
3.4 Video Processing
Transformer 在基于序列的任务,尤其是 NLP 任务上的表现出奇的好。 在计算机视觉(特别是视频任务)中,空间和时间维度信息受到青睐,从而引发了 Transformer 在许多视频任务中的应用,例如帧合成 [166]、动作识别 [167] 和视频检索 [ 168]。
3.4.1 High-level Video Processing
Video Action Recognition.
顾名思义,视频人类动作任务涉及识别和定位视频中的人类动作。上下文(例如其他人和物体)在识别人类行为方面起着至关重要的作用。
Rohit等人。 提出了动作Transformer [167]来模拟感兴趣的人与周围环境之间的潜在关系。 具体来说,I3D [169] 被用作提取高级特征图的主干。 从中间特征图中提取的特征(使用 RoI 池化)被视为查询(Q),而键(K)和值(V)是从中间特征中计算出来的。 自注意力机制应用于这三个组件,它输出分类和回归预测。
Lohit等人。 [170] 提出了一种可解释的可微模块,称为时间Transformer 网络,以减少类内方差并增加类间方差。
此外,Fayyaz 和 Gall 提出了一种时间Transformer [171] 在弱监督设置下执行动作识别任务。
除了人类行为识别之外,Transformer 还被用于群体活动识别[172]。 Gavrilyuk等人。 提出了一种actor-transformer [173]架构来学习表示,使用2D和3D网络生成的静态和动态表示作为输入。 Transformer 的输出是预测的活动。
Video Retrieval
基于内容的视频检索的关键是找到视频之间的相似性。Shao 等人仅利用视频级特征的图像级来克服相关挑战。 [174] 建议使用Transformer 来模拟远程语义依赖。 他们还引入了有监督的对比学习策略来执行硬负挖掘。 在基准数据集上使用这种方法的结果证明了它的性能和速度优势。
此外,Gabeur 等人。[175] 提出了一种多模态Transformer来学习不同的跨模态线索以表示视频。
Video Object Detection.
要检测视频中的对象,需要全局和局部信息。 陈等人。 引入了内存增强的全局-局部聚合(MEGA)[176]来捕获更多内容。 具有代表性的功能增强了整体性能,解决了无效和不足的问题。 此外,尹等人。 [177]提出了一种时空Transformer 来聚合时空信息。 与另一个空间特征编码组件一起,这两个组件在 3D 视频对象检测任务上表现良好。
Multi-task Learning
未修剪的视频通常包含许多与目标任务无关的帧。 因此,挖掘相关信息并丢弃冗余信息至关重要。 为了提取这些信息,Seong 等人。 提出了视频多任务Transformer 网络[178],它处理未修剪视频的多任务学习。 对于 CoVieW 数据集,任务是场景识别、动作识别和重要性分数预测。 ImageNet 和 Places365 上的两个预训练网络提取场景特征和对象特征。 利用类转换矩阵(CCM)堆叠多任务Transformer 以实现特征融合。
3.4.2 Low-level Video Processing
Frame/Video Synthesis.
帧合成任务涉及在两个连续帧之间或帧序列之后合成帧,而视频合成任务涉及合成视频。
刘等人。 提出了 ConvTransformer [166],它由五个组件组成:特征嵌入、位置编码、编码器、查询解码器和合成前馈网络。 与基于 LSTM 的作品相比,ConvTransformer 以更可并行化的架构实现了卓越的结果。
Schatz 等人提出了另一种基于Transformer 的方法。 [179],它使用循环Transformer 网络从新颖的观点综合人类行为。
Video Inpainting
视频修复任务涉及完成帧内的任何缺失区域。 这是具有挑战性的,因为它需要合并空间和时间维度的信息。
曾等人。 提出了一个时空变换网络[28],它使用所有输入帧作为输入并并行填充它们。 时空对抗性损失用于优化Transformer 网络。
3.4.3 Discussions
与图像相比,视频具有额外的维度来编码时间信息。 利用空间和时间信息有助于更好地理解视频。 由于 Transformer 的关系建模能力,通过同时挖掘空间和时间信息,视频处理任务得到了改进。 然而,由于视频数据的高度复杂性和大量冗余,如何高效、准确地建模空间和时间关系仍然是一个悬而未决的问题。
3.5 Multi-Modal Tasks
由于跨文本转换的成功,许多研究都热衷于挖掘其处理多模态任务(如视频文本、图像文本和音频文本)的潜力。
其中一个例子是 VideoBERT [180],它使用基于 CNN 的模块来预处理视频以获得表示标记。 然后在这些标记上训练一个Transformer 编码器,以学习下游任务的视频文本表示,例如视频字幕。 其他一些示例包括 VisualBERT [181] 和 VL-BERT [182],它们采用单流统一Transformer 来捕获视觉元素和图像-文本关系,用于视觉问答(VQA)和视觉常识推理(VCR)等下游任务 )。 此外,SpeechBERT [183]?? 等多项研究探索了使用Transformer 编码器对音频和文本对进行编码以处理自动文本任务(如语音问答(SQA))的可能性。
除了上述开创性的多模态Transformer 之外,对比语言图像预训练(CLIP)[40] 以自然语言作为监督来学习更有效的图像表示。 CLIP 联合训练一个文本编码器和一个图像编码器来预测相应的训练文本-图像对。 CLIP 的文本编码器是一个带有掩码自注意力的标准Transformer ,用于保留预训练语言模型的初始化能力。 对于图像编码器,CLIP 考虑了两种架构,ResNet 和 Vision Transformer。 CLIP 在包含从 Internet 收集的 4 亿对(图像、文本)的新数据集上进行训练。 更具体地说,给定一批 N(图像,文本)对,CLIP 联合学习文本和图像嵌入,以最大化这 N 个匹配嵌入的余弦相似度,同时最小化 N2-N 个不正确匹配的嵌入。 在 Zero-Shot 传输中,CLIP 展示了惊人的 zeroshot 分类性能,在 ImageNet-1K 数据集上实现了 76.2% 的 top-1 准确率,而无需使用任何 ImageNet 训练标签。 具体来说,在推理时,CLIP 的文本编码器首先计算所有 ImageNet 标签的特征嵌入,然后图像编码器计算所有图像的嵌入。 通过计算文本和图像嵌入的余弦相似度,得分最高的文本-图像对应该是图像及其对应的标签。 对 30 个不同的 CV 基准的进一步实验显示了 CLIP 的零样本迁移能力和 CLIP 学习的特征多样性。
虽然 CLIP 根据文本中的描述映射图像,但另一项工作 DALL-E [41] 合成了输入文本中描述的类别的新图像。 与 GPT-3 类似,DALL-E 是一个多模态Transformer ,具有 120 亿个模型参数,在 330 万个文本图像对的数据集上进行自回归训练。 更具体地说,为了训练 DALL-E,使用了一个两阶段的训练过程,其中在阶段 1,使用离散变分自编码器将 256×256 RGB 图像压缩为 32×32 图像标记,然后在阶段 2,使用自回归 对transformer 进行训练以对图像和文本标记上的联合分布进行建模。 实验结果表明,DALL-E 可以从头开始生成各种风格的图像,包括逼真的图像、卡通和表情符号,在扩展现有图像的同时仍能匹配文本中的描述。 随后,丁等人。 提出 CogView [42],它是一个带有 VQ-VAE 分词器的Transformer ,类似于 DALL-E,但支持中文文本输入。 他们声称 CogView 优于 DALL-E 和以前的基于 GAN 的方法,而且与 DALLE 不同的是,CogView 不需要额外的 CLIP 模型来重新排列从Transformer 中提取的样本,即DALL-E。
最近,提出了一种统一Transformer (UniT)[43]模型来应对多模态多任务学习,该模型可以同时处理跨不同领域的多个任务,包括对象检测、自然语言理解和视觉语言推理。 具体来说,UniT 有两个 Transformer 编码器分别处理图像和文本输入,然后 Transformer 解码器根据任务模态获取单个或连接的编码器输出。 最后,将特定任务的预测头应用于不同任务的解码器输出。 在训练阶段,通过在迭代中随机选择特定任务来联合训练所有任务。 实验表明,使用一组紧凑的模型参数,UniT 在每项任务上都取得了令人满意的性能。
总之,基于当前Transformer的多模态模型展示了其在统一各种模态的数据和任务方面的体系结构优势,这证明了transformer构建能够应对大量应用的通用智能代理的潜力。未来的研究可以在探索多模态Transformer 的有效训练或可扩展性方面进行。
3.6 Ef?cient Transformer
尽管 Transformer 模型在各种任务中取得了成功,但它们对内存和计算资源的高要求阻碍了它们在手机等资源有限的设备上的实现。 在本节中,我们回顾了为有效实施而进行的压缩和加速Transformer 模型的研究。 这包括包括网络修剪、低秩分解、知识蒸馏、网络量化和紧凑架构设计。 表 4 列出了一些用于压缩基于 Transformer 的模型的代表性工作。
3.6.1 Pruning and Decomposition
在基于 Transformer 的预训练模型(例如 BERT)中,并行执行多个注意操作以独立建模不同令牌之间的关系 [9]、[10]。 但是,特定任务不需要使用所有磁头。 例如,米歇尔等人。 [44] 提供了经验证据,表明大部分注意力头可以在测试时移除,而不会显着影响性能。 不同层所需的磁头数量不同——有些层甚至可能只需要一个磁头。 考虑到注意力头的冗余,定义重要性分数以估计每个头对[44]中最终输出的影响,并且可以删除不重要的头以进行有效部署。 达尔维等人。 [184]从两个角度分析了预训练Transformer 模型中的冗余:一般冗余和特定任务冗余。 根据彩票假设 [185],Prasanna 等人。 [184] 分析了 BERT 中的彩票,并表明基于Transformer 的模型中也存在良好的子网络,减少了 FFN 层和注意力头,以实现高压缩率。 对于将图像拆分为多个块的视觉Transformer [15],Tang 等人。 [186]提出减少patch计算以加速推理,并且可以通过考虑它们对有效输出特征的贡献来自动发现冗余补丁。 朱等人。 [187] 将网络瘦身方法 [188] 扩展到视觉Transformer ,以减少 FFN 和注意力模块中线性投影的维度。
除了 Transformer 模型的宽度外,还可以减少深度(即层数)以加速推理过程 [198]、[199]。 与 Transformer 模型中不同的注意力头可以并行计算的概念不同,不同的层必须按顺序计算,因为下一层的输入取决于前一层的输出。 范等人。 [198] 提出了一种逐层删除策略来规范模型的训练,然后在测试阶段将整个层一起删除。
除了直接丢弃Transformer 模型中的模块的剪枝方法之外,矩阵分解旨在基于低秩假设用多个小矩阵逼近大矩阵。 例如,王等人。 [200]分解了Transformer 模型中的标准矩阵乘法,提高了推理效率。
3.6.2 Knowledge Distillation
知识蒸馏旨在通过从大型教师网络 [201]、[202]、[203] 转移知识来训练学生网络。 与教师网络相比,学生网络的架构通常更薄更浅,更容易部署在资源有限的资源上。 神经网络的输出和中间特征也可用于将有效信息从教师传递给学生。
Mukherjee 等人专注于Transformer 模型。 [204] 使用预训练的 BERT [10] 作为教师来指导小型模型的训练,利用大量未标记的数据。
王等人。 [205] 训练学生网络在预训练的教师模型中模拟自注意力层的输出。 引入值之间的点积作为指导学生的一种新的知识形式。 在[205]中还引入了教师助理[206],减少了大型预训练Transformer 模型和紧凑学生网络之间的差距,从而促进了模仿过程。
由于 Transformer 模型中有多种类型的层(即自注意力层、嵌入层和预测层),Jiao 等人。 [45] 设计不同的目标函数来将知识从教师传递给学生。 例如,学生模型嵌入层的输出通过 MSE 损失模仿教师的输出。
对于视觉Transformer ,Jia 等人。 [207]提出了一种细粒度的流形蒸馏方法,该方法通过图像和划分的补丁之间的关系来挖掘有效的知识。
3.6.3 Quantization
量化旨在减少表示网络权重或中间特征所需的位数 [208]、[209]。 已经详细讨论了通用神经网络的量化方法,并实现了与原始网络 [210]、[211]、[212] 相当的性能。 最近,人们对如何专门量化Transformer 模型的兴趣越来越大[213]、[214]。 例如,Shridhar 等人。 [215] 建议将输入嵌入到二进制高维向量中,然后使用二进制输入表示来训练二进制神经网络。 昌等人。 [216]通过低位(例如,4位)表示来表示Transformer 模型中的权重。 赵等人。 [217]对各种量化方法进行了实证研究,表明kmeans量化具有巨大的发展潜力。 针对机器翻译任务,Prato 等人。 [46] 提出了一个完全量化的Transformer ,正如论文所声称的那样,它是第一个在翻译质量上没有任何损失的 8 位模型。 此外,刘等人。 [218]探索了一种训练后量化方案,以减少视觉Transformer 的内存存储和计算成本。
3.6.4 Compact Architecture Design
除了将预定义的 Transformer 模型压缩成更小的模型之外,一些工作还试图直接设计紧凑的模型 [219]、[47]。 江等人。 [47] 通过提出一个新模块(称为基于跨度的动态卷积)简化了自注意力的计算,该模块结合了全连接层和卷积层。 在[220]中提出了有趣的“汉堡”层,使用矩阵分解来代替原来的自注意力层。与标准的自注意力操作相比,矩阵分解可以更有效地计算,同时清楚地反映不同标记之间的依赖关系。 高效Transformer 架构的设计也可以通过神经架构搜索(NAS)[221]、[222]自动搜索,自动搜索如何组合不同的组件。 例如,苏等人。 [82] 搜索了块大小和线性投影的尺寸以及注意力模块的头部数量,以获得有效的视觉Transformer 。 李等人。 [223]探索了一种自我监督的搜索策略,以获得由卷积模块和自注意力模块组成的混合架构。
Transformer 模型中的自注意力操作计算给定序列(图像识别任务中的补丁 [15])中不同输入标记的表示之间的点积,其复杂度为 O(N),其中 N 是序列的长度。 最近,有针对性的重点是在大型方法中将复杂度降低到 O(N),以便Transformer 模型可以扩展到长序列 [224]、[225]、[226]。 例如,Katharopoulos 等人。 [224] 将自我注意近似为内核特征图的线性点积,并通过 RNN 揭示了标记之间的关系。 扎希尔等人。 [226]将每个令牌视为图中的一个顶点,并将两个tokens之间的内积计算定义为一条边。 受图论 [227]、[228] 的启发,将各种稀疏图组合起来逼近 Transformer 模型中的密集图,并且可以达到 O(N) 复杂度。
Discussion
上述方法在尝试识别Transformer 模型中的冗余方面采用了不同的方法(参见图 13)。 修剪和分解方法通常需要具有冗余的预定义模型。 具体来说,剪枝侧重于减少Transformer 模型中的组件(例如,层、头)的数量,而分解表示具有多个小矩阵的原始矩阵。 紧凑型模型也可以直接手动设计(需要足够的专业知识)或自动设计(例如,通过 NAS)。 获得的紧凑模型可以通过量化方法进一步用低位表示,以便在资源有限的设备上有效部署。
4. ??????????????Conclusion and Discussion
与 CNN 相比,Transformer 因其具有竞争力的性能和巨大的潜力而成为计算机视觉领域的热门话题。为了发现和利用Transformer的能力,正如本次调查总结的那样,近年来提出了许多方法。这些方法在广泛的视觉任务上表现出出色的性能,包括主干、高/中级视觉、低级视觉和视频处理。然而,Transformer 在计算机视觉方面的潜力尚未得到充分挖掘,这意味着仍有几个挑战需要解决。在本节中,我们将讨论这些挑战并提供对未来前景的见解。
4.1 Challenges
尽管研究人员提出了许多基于Transformer 的模型来解决计算机视觉任务,但这些工作只是该领域的第一步,仍有很大的改进空间。 例如,ViT [15] 中的Transformer 架构遵循 NLP [9] 的标准Transformer ,但专门为 CV 设计的改进版本仍有待探索。 此外,除了前面提到的任务之外,还需要将 Transformer 应用到更多的任务中。
Transformer的泛化和健壮性计算机视觉也是具有挑战性的。与cnn相比,纯Transformer 缺乏一些归纳bias和严重依赖于大规模数据集对大规模训练[15]。因此,数据的质量有很大影响Transformer 的泛化和鲁棒性。虽然ViT显示特殊性能等下游图像分类任务CIFAR[229]和VTAB[230],直接应用ViT骨干对象检测未能实现更好的结果比cnn [113]。仍有很长的路要走,以便更好地推广pre-trained Transformer更通用的视觉任务。
实践者关注Transformer 的可靠性(例如脆弱性问题[231])。虽然鲁棒性一直在调查[232],[233],[234],这仍然是一个开放的问题等待解决。
尽管许多作品已经解释了Transformer 在 NLP [235]、[236] 中的使用,但要清楚地解释为什么Transformer 在视觉任务上效果很好,仍然是一个具有挑战性的课题。 包括平移等效性和局部性在内的归纳偏差归因于 CNN 的成功,但 Transformer 没有任何归纳偏差。当前的文献通常以直观的方式分析效果[15],[237]。
Dosovitskiy 等人。[15]声称大规模训练可以超越归纳bias。位置嵌入被添加到图像块中以保留位置信息,这在计算机视觉任务中很重要。 受Transformer 中大量参数使用的启发,过度参数化 [238]、[239] 可能是视觉Transformer 可解释性的潜在点。
最后但同样重要的是,为 CV 开发高效的Transformer 模型仍然是一个悬而未决的问题。Transformer 模型通常庞大且计算量大。例如,基本的 ViT 模型 [15] 需要 180 亿次 FLOP 来处理图像。相比之下,轻量级 CNN 模型 GhostNet [240]、[241] 只需大约 6 亿次 FLOP 就可以达到类似的性能。尽管已经提出了几种压缩Transformer 的方法,但它们仍然非常复杂。 而这些原本是为 NLP 设计的方法,可能并不适合 CV。 因此,迫切需要高效的Transformer 模型,以便可以在资源有限的设备上部署视觉Transformer 。
4.2 Future Prospects
为了推动视觉Transformer 的发展,我们为未来的研究提供了几个潜在的方向。
一个方向是Transformer 在计算机视觉中的有效性和效率。 目标是开发高效和高效的视觉Transformer ; 特别是高性能和低资源成本的Transformer 。 性能决定了模型是否可以应用于现实世界的应用程序,而资源成本会影响设备上的部署[242]、[243]。 有效性通常与效率相关,因此确定如何在它们之间取得更好的平衡是未来研究的一个有意义的课题。
大多数现有的视觉Transformer 模型都设计为仅处理单个任务。 许多 NLP 模型,如 GPT-3 [11] 已经展示了 Transformer 如何在一个模型中处理多个任务。
CV 领域的 IPT [19] 还能够处理多个低级视觉任务,例如超分辨率、图像去噪和deraining.。
erceiver [244] 和 Perceiver IO [245] 是开创性的模型,可以在多个领域工作,包括图像、音频、多模式、点云。 我们相信一个模型可以涉及更多的任务。 在一个Transformer (即大统一模型)中统一所有视觉任务甚至其他任务是一个令人兴奋的话题。
已经有各种类型的神经网络,例如 CNN、RNN 和 Transformer。 在 CV 领域,CNN 曾经是主流选择 [12]、[93],但现在 Transformer 变得越来越流行。 CNN 可以捕获归纳偏差,例如平移等方差和局部性,而 ViT 使用大规模训练来超越归纳偏差 [15]。 从目前可用的证据 [15] 来看,CNN 在小型数据集上表现良好,而 Transformer 在大型数据集上表现更好。未来的问题是使用CNN还是transformer。
通过使用大型数据集进行训练,Transformer 可以在 NLP [11]、[10] 和 CV 基准测试 [15] 上实现最先进的性能。
神经网络可能需要大数据而不是归纳偏差。 最后,我们留给您一个问题:Transformer 能否通过非常简单的计算范式(例如,只有全连接层)和海量数据训练获得令人满意的结果?