摘要
已经提出了几种策略来减轻具有高分辨率输入的自注意机制的计算:比如将图像补丁上的全局自注意过程分解成区域和局部特征提取过程,每个过程都招致较小的计算复杂度。尽管效率良好,这些方法很少探索所有补丁之间的整体交互,因此难以完全捕获全局语义。
在本文中,我们提出了一种新的Transformer架构,优雅地利用全局语义的自我注意力学习,即DualVision变压器(Dual-ViT)。
新的体系结构引入了关键语义路径,可以更有效地将令牌向量压缩为全局语义,并降低了复杂度。
然后,这种压缩的全局语义在通过另一个构建的像素路径学习更精细的局部像素级细节时用作有用的先验信息。
语义路径和像素路径被集成在一起并被联合训练,通过两个路径并行传播增强的自我注意信息。
Dual-ViT从此能够利用全局语义来提高自我注意力学习,而不会影响许多计算复杂性。
1、介绍
自我注意过程形成了这种复杂性问题的主要负担,特别是对于高分辨率输入,因为每个令牌的每个表示都是通过关注所有令牌来更新的。
许多人考虑将自注意力与下采样相结合,以有效地取代所有图像块上的原始标准全局注意力。
这种方式自然地实现了区域语义信息的探索,这进一步促进了局部更精细特征的学习/提取。
例如,PVT [12]、[13]提出了线性空间减少注意力(SRA),其利用下采样操作(例如,平均池化或跨步卷积),如图所示。1(a).Twins [14](Fig.图1(B))在SRA之前添加附加的局部分组的自注意层,以经由区域内交互进一步增强表示。RegionViT [15](Fig. 1(c))通过区域和局部自我注意分解原始注意。然而,由于上述方法严重依赖于将特征图下采样到区域中,因此不可避免地忽略了描绘全局语义信息的所有补丁之间的整体交互。
Fig. 1.(a)金字塔视觉Transformer块(PVT),(b)结合局部分组的自我注意力和空间减少注意力的双胞胎块,(c)RegionViT中的区域到局部注意力块,以及(d)我们提出的Dual-ViT中的Dual块的图示。DS:下采样操作; MSA:多头自我关注; FFN:前馈层; LSA:本地分组的自我关注。为了简单起见,省略了层归一化和残差连接。
在这些不同的组合策略中,很少有人试图研究全局语义和更精细的像素级特征之间的依赖关系,以进行自我注意力学习。
在本文中,我们考虑将训练分解为全局语义和更精细的功能注意通过建议的DualViT。动机是提取全局语义信息(即,参数语义查询),其可以用作丰富的先验信息以帮助在新的双路径设计中更精细的局部特征提取。
我们独特的分解和集成的全局语义和局部特征允许有效减少所涉及的令牌数量在多头注意,从而节省计算复杂度相比,标准的全局自注意。
特别是,如图所示。图1(d)中,Dual-ViT由两条特殊的通路组成,分别称为“语义通路”和“像素通路”。通过构造的“像素路径”的局部像素级特征提取是由“语义路径”的压缩的全局先验的强依赖性强加的。由于梯度通过语义路径和像素路径,因此Dual-ViT训练过程可以有效地补偿全局特征压缩的信息损失,同时降低更精细的局部特征提取的难度。前者和后者的程序可以在并行显着促进自我注意学习,而不会牺牲太多的计算成本,由于较小的注意力大小和两个途径之间的依赖关系。
贡献:
1)我们提出了一种新的Transformer架构称为双视觉变压器(双ViT)。顾名思义,Dual-ViT网络包括两条路径和一条像素路径,这两条路径分别用于提取输入的语义特征的全局视图,另一条像素路径则侧重于更精细的局部特征的学习。
2)Dual-ViT考虑了全局语义和两条路径沿着的局部特征之间的依赖性,目标是通过减少令牌大小和更小的关注度来简化训练。
3)与VOLO-D4相比,Dual-ViT在ImageNet上实现了85.7%的top-1准确率,仅具有41.1%的FLOP和37.8%的参数[16]。在对象检测和实例分割方面,Dual-ViT还在mAP方面将PVT [13]提高了1.4%以上,在COCO上提高了0.8%,参数减少了47.3%/42.3%。
2、相关工作
我们的Dual-ViT也是一种多尺度ViT骨干网。与现有的多尺度ViT严重依赖于局部窗口内的局部自注意或下采样操作相比,Dual-ViT将自注意的建模分解为两条路径中的全局语义和更精细特征的学习。进一步将语义标记和输入特征相结合,并行传播增强的自我注意信息。这种独特的分解和集成设计不仅有效地减少了自我注意学习中的令牌数量,而且还强加了两个路径之间的交互,导致更好的准确性和延迟权衡。
3、方法
本节首先简要回顾现有ViT中采用的传统多头自注意块,并分析它们如何按比例缩小自注意计算成本。接下来,我们提出了一种新的原则性Transformer结构,即双视觉变压器(Dual-ViT)。我们的出发点是升级典型的Transformer结构与特定的双路径设计,并触发全局语义和局部特征之间的依赖性,以增强自我注意力学习。
具体地,Dual-ViT由四个阶段组成,其中每个阶段中的特征图的分辨率逐渐缩小,如[4]所示。在具有高分辨率输入的前两个阶段中,Dual-ViT采用由两条路径组成的新Dual模块:(i)通过在像素级细化输入特征来捕获细粒度信息的像素路径,以及(ii)在全局级抽象高级语义令牌的语义路径。语义路径稍微更深(具有更多操作),但包含更少的从像素抽象的语义标记,并且像素路径将这些全局语义视为在学习更精细的像素级细节之前。这样的设计方便地编码更精细的信息对整体语义的依赖性,同时在高分辨率输入上保持有利的计算成本。这两个路径的输出被合并在一起,并在最后两个阶段进一步馈送到多头自我注意。
A.传统Transformer
传统的Transformer架构(例如,[2],[35])通常依赖于多头自我注意,捕捉输入之间的长程依赖性。
将注意力范围限制在局部窗口中,因此可以仅实现相对于输入分辨率的线性计算复杂度,然而,有限的局部窗口的感受野不利地阻碍了建模的全局依赖性。
进步[13]、[33]、[36]通过使用下采样操作(例如,[13]中的平均池化或[33]、[36]中的池化内核),以降低计算成本,但是这些基于池的操作不可避免地会导致信息丢失,并且所有补丁之间的整体语义信息没有得到充分利用。
B.双重块
为了缓解上述问题,我们设计了针对高分辨率输入定制的原则性自注意块(即,在前两个阶段),即双块。这种新设计很好地引入了一种额外的途径,可以通过全局语义信息来促进自我注意学习。图2(B)详细描绘了双块的架构。具体而言,双块包含两个通路:像素路径和语义路径。语义路径将输入特征图总结为语义标记。之后,像素路径以键/值的形式将这些语义令牌作为丰富的先验,并执行多头注意以通过交叉注意来细化输入特征图。在复杂度方面,由于语义路径包含的令牌比像素路径中的令牌少得多,因此计算成本降低到O(nmd +m2 ~ d),其中m是语义令牌的数量。
形式上,给定第l个对偶块的输入特征xl,我们用附加的参数语义查询zl ∈ Rm×d来扩充。语义路径首先经由自注意对语义查询进行上下文编码,然后通过经由交叉注意利用精炼语义查询与输入特征xl之间的交互来提取语义令牌,随后是前馈层。此操作执行如下:
语义令牌zl+ l被馈送到像素路径中并且充当高级语义的先验信息。同时,我们将语义标记作为增强的语义查询,并将它们馈送到下一个Dual块的语义路径中。
像素路径起到与传统Transformer块类似的作用,除了它额外地采用从语义路径导出的语义标记,如之前通过交叉注意来细化输入特征。更具体地,像素路径将语义令牌zl+1视为键/值,并且如下执行交叉注意:
考虑到梯度通过两种路径反向传播,双块算法能够同时补偿全局特征压缩的信息损失,并通过语义-像素交互降低全局先验局部特征提取的难度。
C.合并块
回想一下,前两个阶段中的双块利用了两个路径之间的相互作用,同时由于高分辨率输入的巨大复杂性,使得像素路径内的局部令牌之间的内部相互作用未被利用。为了缓解这个问题,我们提出了一个简单而有效的设计的自我关注块(即合并块),在最后两个阶段(低分辨率输入)的串联语义和本地令牌执行自我关注,从而使跨本地令牌的内部交互。图2(c)描绘了合并块的架构。具体来说,我们直接合并来自两个路径的输出令牌,并将它们馈送到多头自我注意层。由于来自两个路径的令牌传达不同信息的事实,在合并块中针对每个路径采用两个单独的前馈层:
其中[||]表示张量级联,FFNx和FFNz是两个不同的前馈层。最后,我们在两个路径的输出令牌上采用全局平均池化来产生最终的分类令牌。
D.双视觉Transformer
我们提出的双块和合并块本质上是统一的自我注意块。因此,通过堆叠这些块来构建多尺度ViT骨架是可行的。遵循现有多尺度ViT的基本配置[4],[12],完整的Dual-ViT包含四个阶段。前两个阶段由Dual块堆栈组成,而最后两个阶段由合并块组成。根据CNN体系结构的设计原理,在每一阶段开始采用一个补丁嵌入层来增加信道维数,同时降低空间分辨率。在这项工作中,我们提出了不同型号尺寸的Dual-ViT的三种变体,即,Dual-ViT-S(小号)、Dual-ViT-B(底座尺寸)和Dual-ViT-L(大号)。注意,Dual ViT-S/B/L与Swin-T/S/B共享相似的模型大小和计算复杂度[4]。表I详细描述了Dual-ViT的所有三个变体的架构,其中HDi、Ci和Ex/Ez是从阶段i中的像素/语义路径导出的令牌的头部数量、通道维度和前馈层的扩展比率。
E.我们的Dual-ViT和以前的Vision Transformers之间的差异
在本节中,我们将详细讨论我们的Dual-ViT与先前相关ViT主干之间的差异。
RegionViT [15]设计了区域到本地的注意力,它涉及两种令牌:具有较大补丁大小的区域令牌和具有较小补丁大小的本地令牌。RegionViT首先在所有区域令牌上执行区域自注意以学习全局信息。然后,局部自注意在局部窗口内在每个单个区域令牌及其相关联的局部令牌之间交换信息。我们的Dual-ViT在两个方面与这项工作不同:首先,Dual块中的语义标记不像RegionViT中那样被限制为大小相等的均匀块,因此在编码语义方面更灵活;其次,全局语义令牌作为整体之前,以补偿像素路径中的信息损失,而区域ViT的区域令牌仅与其相关联的本地令牌在本地窗口内交互。
Twins [14]由两种类型的注意力操作组成:局部和子采样的自我注意力。具体来说,Twins将输入令牌分成几组,并在每个局部子窗口内对每组执行局部自注意。为了实现不同子窗口之间的交互,Twins通过将特征图下采样为区域令牌来利用子采样的自注意力,区域令牌充当下采样的键和值,如[13]中所示。Dual-ViT和Twins之间的区别在于,我们的语义标记是从整个特征图中整体总结的,而Twins则从局部子窗口中独立产生每个区域标记。
CrossViT [37]包含两种具有不同补丁大小的令牌,它们被馈送到两个独立分支中的两个Transformer编码器中。最后,CrossViT将每个分支的CLS令牌与另一个分支的输出补丁令牌集成。相比之下,我们的Dual-ViT触发来自每个Dual块内的像素和语义路径的令牌之间的交互,而不是像CrossViT中那样用单独的Transformer编码器编码每个分支。此外,Dual-ViT在整个过程中在多个全局级语义令牌和更精细的像素级特征之间交换信息,而CrossViT仅与单个压缩的CLS令牌交互最终输出特征,这可能缺乏详细的语义。
非深度网络[38]和并行ViT [39]分别设计了具有多个并行分支的CNN/ViT主干。Non-deepNetworks中的每个分支都被馈送来自主要CNN分支的不同尺度的特征图。在并行ViT的每个块中,每个分支用与典型Transformer块中相同的输入触发(即,大小相等的均匀片)。相反,我们的Dual-ViT中的语义路径的输入,即,语义标记不被约束为相同大小的统一特征图/块。语义标记从整个特征图中整体地总结,从而在编码语义方面更加灵活。此外,与非深度网络和并行ViT中每个分支的独立特征编码不同,我们提出的Dual-ViT在整个架构中频繁地在像素和语义路径之间交换自我注意信息。
四、实验
我们通过多个视觉任务的各种经验证据验证了我们的Dual-ViT的优点,例如,图像识别、对象检测、实例分割和语义分割。特别是,我们首先使用最常见的图像识别基准(ImageNet [40])从头开始训练提出的Dual-ViT。接下来,预训练的Dual-ViT在COCO [41]和ADE 20 K [42]上进行微调,用于对象检测,实例分割和语义分割的下游任务,旨在评估预训练的Dual-ViT的泛化能力。
五、总结
在这项工作中,我们提出了DualVision Transformer(Dual-ViT),一个新的多尺度ViT骨干,它新颖地在两个交互路径中建模自我注意力学习:用于学习更精细像素级细节的像素路径和从输入提取整体全局语义信息的语义路径。从语义路径学习到的语义标记进一步充当高级语义先验,以便于像素路径中更精细的局部特征提取。以这种方式,增强的自我注意力信息沿着两个路径并行传播,追求更好的准确性-延迟权衡。各种视觉任务的广泛的实证结果表明,双ViT对国家的最先进的ViT的优越性。