TPAMI 2022 | 视觉transformer最新调研!(上)

本文涉及的产品
NLP自然语言处理_高级版,每接口累计50万次
NLP自然语言处理_基础版,每接口每天50万次
NLP 自学习平台,3个模型定制额度 1个月
简介: Transformer首先应用于自然语言处理领域,是一种主要基于自我注意机制的深度神经网络。由于其强大的表示能力,研究人员正在寻找将transformer应用于计算机视觉任务的方法。

Transformer首先应用于自然语言处理领域,是一种主要基于自我注意机制的深度神经网络。由于其强大的表示能力,研究人员正在寻找将transformer应用于计算机视觉任务的方法。在各种视觉基准测试中,基于transformer模型的性能类似于或优于其它类型的网络,如卷积和递归神经网络。鉴于transformer的高性能,transformer正受到计算机视觉界越来越多的关注。在本文中,通过在不同任务中对这些视觉transformer模型进行分类,并分析其优缺点,来回顾这些模型。探索的主要类别包括主干网络、高级/中级视觉、低级视觉和视频处理,还包括有效的transformer方法,用于将transformer推入基于真实设备的应用程序。此外,作者还简要介绍了计算机视觉中的自我注意机制,因为它是transformer中的基本组件。在本文的最后,讨论了这些挑战,并为视觉transformer提供了几个进一步的研究方向。


Transformer首先应用于自然语言处理(NLP)任务,在那里它实现了显著的改进,例如,Vaswani等人[9]首次提出了用于机器翻译和英语选区解析任务的基于注意力机制的transformer。Devlin等人引入了一种新的语言表示模型,称为BERT(Transformers的Bidirectional Encoder Representations的缩写),该模型在未标记文本上预训练transformer,同时考虑到每个单词的上下文,因为它是双向的。当BERT发布时,它在11项NLP任务上获得了最先进的性能。Brown等人[11]使用1750亿个参数,在45TB的压缩明文数据上预训练了一个名为GPT-3(Generative pre-trained transformer 3的简称)的大规模基于transformer的模型。它在不同类型的下游自然语言任务上实现了强大的性能,而无需任何微调。这些基于transformer的模型以其强大的表示能力,在NLP中取得了重大突破。


受transformer架构在NLP领域的重大成功启发,研究人员最近将transformer应用于计算机视觉(CV)任务。在视觉应用中,CNN被认为是基本组件,但如今transformer显示它是CNN的潜在替代品。Chen等人[14]训练了一个序列transformer来自动回归预测像素,在图像分类任务上实现与CNN相当的结果。另一种视觉transformer模型是ViT,它将纯transformer直接应用于图像块序列,以对整个图像进行分类。最近由Dosovitskiy等人提出[15],它在多个图像识别基准上取得了最先进的性能。除了图像分类之外,transformer还被用于解决各种其他视觉问题,包括目标检测、语义分割、图像处理和视频理解,由于其卓越的性能,越来越多的研究人员提出了基于transformer的模型,以改进广泛的视觉任务!

640.png


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

640.png


transformer结构



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


640.png

在self-attention层中,首先将输入向量转换为三个不同的向量:查询向量q、关键字向量k和值向量v,维度dq=dk=dv=dmodel=512。然后将来自不同输入的向量组合成三个不同的矩阵,即Q、K和V,随后,不同输入向量之间的注意力函数计算如下(如图3左侧所示):

640.png


多头注意力是一种机制,可以用来提高self-attention层的表现。请注意,对于给定的参考词,在阅读句子时通常希望关注其它几个词。单一的头部自注意层限制了专注于一个或多个特定位置的能力,而不会同时影响对其它同等重要位置的注意力。这是通过给予注意层不同的表示子空间来实现的,具体来说,不同的查询、关键字和值矩阵用于不同的头部,这些矩阵在训练后由于随机初始化,可以将输入向量投影到不同的表示子空间。


视觉transformer



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


1)表示学习的backbone


受transformer在NLP领域取得的成功启发,一些研究人员探索了类似的模型是否可以学习图像的有用表示。考虑到与文本相比,图像涉及更多的维度、噪声和冗余模态,它们被认为更难以进行生成建模。除了CNN之外,transformer还可以用作图像分类的骨干网络。Wu等人[58]采用ResNet作为方便的基线,并使用视觉transformer代替最后一级卷积。具体来说,他们应用卷积层来提取低级特征,然后将其输入到视觉transformer中。对于视觉transformer,他们使用标记器将像素分组为少量的视觉标记,每个标记表示图像中的语义概念。这些视觉标记直接用于图像分类,transformer用于对标记之间的关系进行建模。如图4所示,作品可以分为纯粹使用视觉transformer和结合CNN和transformer。在表2和图6中总结了这些模型的结果,以证明主干的发展,除了监督学习,自监督学习也在视觉transformer中进行了探索!

640.png


640.png

与BERT的[class]token类似,可学习嵌入被应用于嵌入patches序列,该嵌入的状态用作图像表示。在预训练和微调阶段,分类头都固定在相同的尺寸上。此外,1D位置嵌入被添加到patches嵌入,以便保留位置信息。值得注意的是,ViT仅使用标准transformer的编码器(除了层标准化的位置),其输出在MLP头之前。在大多数情况下,ViT在大型数据集上进行预训练,然后针对具有较小数据的下游任务进行微调。当在中型数据集(如ImageNet)上进行训练时,ViT会产生适度的结果,其精度比同等大小的ResNets低几个百分点。由于transformer缺少一些CNN固有的归纳偏差(如翻译的等同性和局部性),因此当在数据量不足的情况下进行训练时,它们不能很好地概括。然而,作者们发现,在大型数据集(1400万至3亿张图像)上训练模型超过了归纳偏见。当以足够的规模进行预训练时,transformer在数据点较少的任务上取得优异的结果。例如,当在JFT-300M数据集上进行预训练时,ViT在多个图像识别基准上接近甚至超过了最先进的性能。具体而言,它在ImageNet上达到了88.36%的准确率,在VTAB套件中达到了77.16%的准确率。Touvron等人[59]通过仅在ImageNet数据库上进行训练,提出了一种竞争性的无卷积transformer,称为数据高效图像transformer(DeiT)。参考视觉transformerDeiT-B具有与ViT-B相同的架构,使用8600万个参数。凭借强大的数据扩充,DeiTB在ImageNet上实现了83.1%的最高精度,无需外部数据。此外,作者还观察到,使用CNN教师比使用transformer的效果更好。具体而言,DeiT-B可以在基于tokens的蒸馏的帮助下实现最高精度84.40%。


根据ViT的范例,已经提出了一系列ViT的变体来提高视觉任务的性能。主要方法包括增强局部性、自我关注改善。原始的视觉transformer擅长捕捉面片之间的长距离依赖关系,但忽略了局部特征提取,因为2D面片被投影到具有简单线性层的向量上。最近,研究人员开始关注提高局部信息的建模能力,TNT进一步将补丁划分为多个子补丁,并引入了一种新的transformer中transformer架构,该架构利用内部transformer块来建模子补丁和外部transformer块之间的关系,以进行patch级信息交换。Swin Transformers在窗口内执行局部关注,并为跨窗口连接引入了移位窗口划分方法。乱序transformer进一步利用空间乱序操作,而不是移位窗口分区,以允许跨窗口连接。RegionViT从图像中生成区域token和local token,local token通过关注区域token来接收全局信息。除了当地的关注外,一些其它作品还提出通过局部特征聚合来增强局部信息,例如T2T,这些工作证明了视觉transformer中局部信息交换和全局信息交换的好处!

作为transformer的一个关键组件,自关注层提供了图像块之间全局交互的能力。改进自我注意层的计算吸引了许多研究人员,DeepViT建议建立十字头通信,以重新生成注意力图,以增加不同层次的多样性。KVT[69]引入了k-NN注意力,以利用图像补丁的局部性,并通过仅使用前k个相似令牌计算注意力来忽略噪声令牌。Refiner[70]探索了高维空间中的注意力扩展,并应用卷积来增强注意力图的局部模式,XCiT[71]跨特征通道而不是token执行自我关注计算,这允许高效处理高分辨率图像,自注意机制的计算复杂性和注意精度是未来优化的两个关键点。


网络架构是一个重要因素,正如在CNNs领域所证明的那样。ViT的原始架构是相同形状的transformer块的简单堆栈,视觉transformer的新架构设计一直是一个有趣的话题。金字塔状结构被许多视觉transformer模型使用,包括PVT、HVT、Swin transformer和PiT。还有其它类型的架构,如双流架构和U-net架构,还研究了神经架构搜索(NAS)以搜索更好的transformer架构,例如Scaling ViT、ViTAS、AutoFormer和GLiT。目前,视觉transformer的网络设计和NAS主要借鉴CNN的经验,未来希望视觉transformer领域会出现特定的和新颖的架构。除了上述方法,还有一些其它方向可以进一步改进视觉transformer,例如,位置编码、标准化策略、快捷连接和消除注意力。


尽管视觉transformer已经成功地应用于各种视觉任务,因为它们能够捕获输入中的长距离依赖性,但transformer与现有的神经网络之间的性能仍然存在差距,一个主要原因可能是缺乏提取局部信息的能力。除了上述增强局部性的ViT变体之外,将transformer与卷积相结合可以是将局部性引入传统transformer的更直接的方式。有很多工作试图用卷积来增强传统的变换块或自我关注层,例如CPVT提出了一种条件位置编码(CPE)方案,该方案以输入token的局部邻域为条件,并适用于任意输入大小,以利用卷积进行精细级别的特征编码。CvT、CeiT、LocalViT和CMT分析了直接从NLP借用Transformer架构并将卷积与transformer结合在一起时的潜在缺陷。具体而言,每个transformer块中的前馈网络(FFN)与促进相邻token之间相关性的卷积层相结合。LeViT重新审视了大量有关神经网络的文献中的原理,并将其应用于transformer,提出了一种用于快速推断图像分类的混合神经网络。BoTNet在ResNet的最后三个瓶颈块中用全局自关注代替了空间卷积,并在延迟开销最小的情况下显著改进了实例分割和目标检测任务的基线。


2)High/Mid-level Vision


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


通用目标检测


传统的目标检测器主要基于神经网络,但基于transformer的目标检测由于其优势能力最近获得了极大的兴趣。一些目标检测方法尝试使用transformer的自我关注机制,然后增强现代检测器的特定模块,如特征融合模块和预测头。基于transformer的目标检测方法大致分为两组:基于transformer集预测方法和基于transformer主干方法,如图7所示。与基于CNN的检测器相比,基于transformer的方法在精度和运行速度方面都表现出了强大的性能。表3显示了先前COCO 2012值集中提到的不同基于transformer的物体检测器的检测结果。


640.png

640.png

作为基于transformer的检测方法的先驱,Carion等人提出的检测transformer(DETR)重新设计了目标检测的框架,DETR是一种简单且完全端到端的目标检测器,它将目标检测任务视为一个直观的集合预测问题,消除了传统手工制作的组件,如锚点生成和非最大抑制(NMS)后处理。


640.png

DETR是基于transformer的目标检测框架的新设计,使社区能够开发完全端到端的检测器。然而也带来了一些挑战,特别是,训练时间更长,小物体性能较差。为了解决这些挑战,Zhu等人[17]提出了可变形DETR,这已成为一种显著提高检测性能的流行方法。可变形注意力模块关注一小组关键位置,而不是像transformer中的原始多头注意力机制所执行的那样查看图像特征图上的所有空间位置。该方法显著降低了计算复杂性,并在快速收敛方面带来了好处。更重要的是,可变形注意力模块可以容易地应用于融合多尺度特征。可变形DETR比DETR性能更好,训练成本低10倍,推理速度快1.6倍。通过使用迭代bounding box细化方法和两阶段方案,可变形DETR可以进一步提高检测性能;

还有几种方法来处理原始DETR的慢收敛问题。例如,Sun等人[120]研究了DETR模型收敛缓慢的原因,发现这主要是由于transformer解码器中的交叉关注模块。为了解决这个问题,提出了仅编码器版本的DETR,在检测精度和训练收敛方面实现了显著的改进。此外,设计了一种新的二分匹配方案,以提高训练稳定性和更快的收敛速度,并提出了两种基于transformer的集预测模型,即TSP-FCOS和TSP-RCNN,以改进具有特征金字塔的仅编码器DETR。Gao等人[123]提出了空间调制共同注意(SMCA)机制,通过将共同注意响应限制在初始估计的边界盒位置附近的较高位置来加速收敛。通过将所提出的SMCA模块集成到DETR中,在可比的推理成本下,可以用大约10倍更少的训练时间获得类似的mAP!


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


基于transformer的检测主干。与DETR通过transformer将目标检测重新设计为一组预测任务不同,Beal等人[113]提出利用transformer作为常见检测框架(如Faster RCNN[13])的主干。输入图像被分成若干块,并被馈送到视觉transformer,在通过检测头以获得最终结果之前,视觉transformer的输出嵌入特征根据空间信息被重组。一个大规模的预训练transformer主干可以为提议的ViT FRCNN带来好处。还有很多方法可以探索多功能视觉transformer主干设计,并将这些主干传输到传统的检测框架,如RetinaNet和Cascade R-CNN。例如,Swin Transformer在ResNet-50主干上获得了大约4%个AP增益,具有用于各种检测框架的类似FLOP。


基于Transformer的目标检测预训练。受NLP中预训练transformer方案的启发,已经提出了几种方法来探索基于transformer的目标检测的不同预训练方案。Dai等人[32]提出了用于目标检测的无监督预训练(UP-DETR)。通过这种无监督的预训练方案,UP-DETR显著提高了相对较小数据集(PASCAL VOC)的检测精度。在具有足够训练数据的COCO基准上,UP-DETR仍然优于DETR,证明了无监督预训练方案的有效性!

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


语义分割


分割是计算机视觉领域的一个重要课题,它广泛包括全景分割、实例分割和语义分割等。

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


用于实例分割的transformer。Wang等人[33]提出了基于transformer的视频实例分割模型VisTR,以从一系列输入图像中产生实例预测结果。作者提出了一种匹配实例序列的策略,以将预测分配给GT。为了获得每个实例的掩模序列,VisTR利用实例序列分割模块来累积来自多个帧的掩模特征,并使用3D CNN分割掩模序列。Hu等人[130]提出了一种实例分割transformer(ISTR)来预测低维掩模嵌入,并将其与集合损失的GT相匹配。ISTR使用与现有自上而下和自下而上框架不同的重复细化策略进行检测和分割。Yang等人[131]研究了如何在具有挑战性的多目标场景下实现更好、更高效的嵌入学习,以解决半监督视频对象分割问题。一些论文如[132]、[133]也讨论了使用Transformer处理分割任务。


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


医学图像分割transformer。Cao等人[30]提出了一种用于医学图像分割的Unet类纯Transformer,通过将标记化的图像块馈送到基于Transformer的U形编码器-解码器架构中,该架构具有用于局部全局语义特征学习的跳过连接。Valanarasu等人[136]探索了基于transformer的解决方案,并研究了使用基于transformer的网络架构的可行性,并提出了一种门控轴向注意模型,该模型通过在自我注意模块中引入额外的控制机制来扩展现有架构。基于DETR全景分割模型的单元DETR是使用transformer进行单元实例分割的尝试。它在分割头中添加了桥接主干CNN和CNN解码器之间特征的跳过连接,以增强特征融合。


原文首发微信公众号【自动驾驶之心】:一个专注自动驾驶与AI的社区(https://mp.weixin.qq.com/s/NK-0tfm_5KxmOfFHpK5mBA

相关文章
|
5月前
|
数据采集 机器学习/深度学习 数据可视化
ICCV 2023|基于ViT的高效视频识别UniFormerV2开源,K400首次90%准确率!
ICCV 2023|基于ViT的高效视频识别UniFormerV2开源,K400首次90%准确率!
181 0
|
5月前
|
自然语言处理 开发者
衡量大语言模型表现的 AlpacaEval 指标
衡量大语言模型表现的 AlpacaEval 指标
|
5月前
|
自然语言处理 物联网 Swift
零一万物开源Yi-VL多模态大模型,魔搭社区推理&微调最佳实践来啦!
近期,零一万物Yi系列模型家族发布了其多模态大模型系列,Yi Vision Language(Yi-VL)多模态语言大模型正式面向全球开源。
|
13天前
|
机器学习/深度学习 人工智能 分布式计算
使用PAI+LLaMA Factory 微调 Qwen2-VL 模型,搭建文旅领域知识问答机器人
本次教程介绍了如何使用 PAI 和 LLaMA Factory 框架,基于全参方法微调 Qwen2-VL模型,使其能够进行文旅领域知识问答,同时通过人工测试验证了微调的效果。
|
机器学习/深度学习 人工智能 自然语言处理
满足不同下游任务特征需求!Sea AI Lab 提出多粒度自监督学习框架Mugs,刷新多项SOTA(2)
满足不同下游任务特征需求!Sea AI Lab 提出多粒度自监督学习框架Mugs,刷新多项SOTA
200 0
|
2月前
Meta开发System 2蒸馏技术,Llama 2对话模型任务准确率接近100%
【8月更文挑战第1天】Meta开发的System 2蒸馏技术可将大型语言模型从System 2模式转换至System 1模式, 实现直接生成最终答案而非中间推理步骤。此技术显著提升了性能, 如Llama 2对话模型准确率接近100%。通过自监督学习及方法如Rephrase and Respond、System 2注意力(S2A) 和 Branch-Solve-Merge(BSM), 模型在多项任务上取得优异成绩。[论文](https://arxiv.org/pdf/2407.06023v2)
42 6
|
3月前
|
人工智能 安全 物联网
2024年6月后2周重要的大语言模型论文总结:LLM进展、微调、推理和对齐
本文总结了2024年6月后两周发表的一些最重要的大语言模型论文。这些论文涵盖了塑造下一代语言模型的各种主题,从模型优化和缩放到推理、基准测试和增强性能。
107 0
|
5月前
|
人工智能 vr&ar
[译][AI Research] AI 模型中的“it”是数据集
模型效果的好坏,最重要的是数据集,而不是架构,超参数,优化器。
|
12月前
|
人工智能
AgentLM:智谱AI对齐Agent能力微调语言模型,模型&数据集均开源
为探索提升智能体任务之间的促进及泛化效果,智谱AI&清华KEG提出了一种对齐Agent能力的微调方法 AgentTuning,该方法使用少量数据微调已有模型,显著激发了模型的 Agent能力,同时可以保持模型原有的通用能力。
|
机器学习/深度学习 存储 人工智能
CVPR2022 | 在线Re-Param | OREPA让AI训练速度进一步加快,精度略胜RepVGG!(一)
CVPR2022 | 在线Re-Param | OREPA让AI训练速度进一步加快,精度略胜RepVGG!(一)
125 0