文章目录
- 摘要
- 一、引言
- 二、相关工作
- 三、 多尺度膨胀Transformer
- 四、实验
- 五、 结论
- 致谢
摘要
https://arxiv.org/pdf/2302.01791
作为一种实际解决方案,鼓励基础视觉变换器(Vision Transformers, ViTs)对任意图像块之间的长距离依赖性进行建模,但全局注意力感受野会导致二次方的计算成本。视觉变换器的另一分支则借鉴卷积神经网络(Convolutional Neural Networks, CNNs)利用局部注意力,仅对小块邻域内的图像块间的相互作用进行建模。尽管这种方案降低了计算成本,但自然存在感受野小的问题,可能会限制性能。在本文中,我们探索了有效的视觉变换器,以在计算复杂度和注意力感受野大小之间寻求更佳的权衡。通过分析ViTs中全局注意力的图像块交互,我们在浅层中观察到两个关键特性,即局部性和稀疏性,这表明在ViTs的浅层中进行全局依赖性建模存在冗余。据此,我们提出多尺度膨胀注意力(Multi-Scale Dilated Attention, MSDA)以在滑动窗口内对局部和稀疏的图像块交互进行建模。通过金字塔架构,我们在低级阶段堆叠MSDA块,在高级阶段堆叠全局多头自注意力块,从而构建了多尺度膨胀变换器(Multi-Scale Dilated Transformer,DilateFormer)。实验结果表明,我们的DilateFormer在各种视觉任务上取得了最先进的性能。在ImageNet-1K分类任务上,与现有的最先进模型相比,DilateFormer使用70%更少的浮点运算数(Floating Point Operations, FLOPs)即可达到相当的性能。我们的DilateFormer-Base在ImageNet-1K分类任务上实现了 85.6 % 85.6\% 85.6%的Top-1准确率,在COCO目标检测/实例分割任务上实现了 53.5 % 53.5\% 53.5%的边界框平均精度(mean Average Precision, mAP)/ 46.1 % 46.1\% 46.1%的掩码mAP,在ADE20K语义分割任务上实现了 51.1 % 51.1\% 51.1%的平均交并比(mean Intersection over Union, mIoU)。
关键词:视觉变换器。
一、引言
近年来,卷积神经网络(CNNs)在分类[35]、[41]、[55]、[60]、[68]、[70]、[107],目标检测[34]、[49]、[52]、[64]、[65]和语义分割[9]、[56]、[67]等多种视觉任务中占据主导地位,这归因于卷积操作的归纳偏置,即局部连接和权重共享。然而,卷积仅对像素的局部依赖性进行建模,这在一定程度上忽略了远距离像素之间的依赖性建模[79]。受自然语言处理(NLP)中序列建模任务[3]、[62]的启发,先驱工作[14]、[22]、[58]、[73]、[74]将具有长距离依赖性建模能力的变换器引入计算机视觉领域,在各种视觉任务中取得了令人振奋的结果。
借助全局注意力,基础视觉变换器(ViTs)[22]、[73]可以对任意图像块之间的依赖性进行建模。然而,ViTs的全局注意力感受野会导致二次方的计算成本,且对所有图像块之间的依赖性进行建模对于主流视觉任务可能是冗余的。为了降低全局注意力的计算成本和冗余度,一些工作[13]、[32]、[54]、[91]、[104]引入了CNN中探索的归纳偏置,仅在小块邻域内执行局部注意力。然而,局部注意力自然存在感受野小的问题,导致缺乏长距离依赖性建模的能力。
在本文中,我们探索了一种有效的视觉变换器,以在计算复杂度和注意力感受野大小之间寻求更佳的权衡。通过分析ViTs[22]、[73]中全局注意力的图像块交互,我们发现浅层中的注意力矩阵具有两个关键特性,即局部性和稀疏性。如图2所示,在ViT-Small的第三个注意力块中,相关图像块在查询图像块的邻域内稀疏分布。这种局部性和稀疏性特性表明,对于主流视觉任务,浅层中的远距离图像块在语义建模上大多是不相关的,因此在昂贵的全局注意力模块中存在大量冗余需要减少。
基于上述分析,我们提出了一种滑动窗口膨胀注意力(Sliding Window Dilated Attention, SWDA)操作,该操作在周围区域稀疏选择的图像块之间执行自注意力。为了进一步利用注意力感受野内的信息,我们提出了多尺度膨胀注意力(MSDA),该操作可以同时捕获不同尺度上的语义依赖性。MSDA为不同的头设置不同的膨胀率,从而具备多尺度表征学习的能力。遵循PVT[77]和Swin[54],我们采用金字塔架构开发了一种新的有效变换器模型,即多尺度膨胀变换器(DilateFormer),该模型在浅层阶段堆叠MSDA以捕获低级信息,在更深阶段堆叠全局多头自注意力[22]、[73]以建模高级交互。
为了模型评估,我们设计了具有不同容量的DilateFormer变体,并将其应用于不同的视觉任务。实验结果表明,我们提出的DilateFormer在不同模型尺寸和不同数据集上均优于最先进的视觉变换器[22]、[32]、[54]、[73]、[91]、[104]。如图1所示,我们在ImageNet-1K分类任务上展示了DilateFormers的性能。在没有额外训练数据的情况下,我们的Dilate-S(4.8 GFLOPs)在ImageNet-1K上仅使用1/3的FLOPs即可与Swin-B(15.4 GFLOPs)[54]达到相当的性能。在Token Labeling[39]的帮助下,我们的DilateFormers在不同模型尺寸上均优于LV-ViTs[39]。具体来说,我们的Dilate-S*(4.9 GFLOPs)和Dilate-B*(10.0 GFLOPs)分别实现了 83.9 % 83.9\% 83.9%和 84.9 % 84.9\% 84.9%的准确率,超过了LV-ViT-S[39](6.6 GFLOPs)和LV-ViT-M[39](16 GFLOPs)。此外,我们的Dilate-B在ImageNet-1K分类[19]任务上实现了 85.6 % 85.6\% 85.6%的Top-1准确率,在COCO[50]目标检测/实例分割任务上实现了 53.5 % 53.5\% 53.5%的边界框mAP/ 46.1 % 46.1\% 46.1%的掩码mAP,在ADE20K[110]语义分割任务上实现了 51.1 % 51.1\% 51.1%的平均mIoU。
二、相关工作
表I中展示了与各种模型的技术细节比较。我们从重叠分词器/下采样器、位置嵌入、注意力类型和多尺度等角度总结和分类了我们的DilateFormer和相关视觉变换器模型。在以下部分中,我们将详细介绍一些相关工作。
A. Vision Transformer中的全局注意力
受自然语言处理(NLP)[3]、[20]、[76]领域成功的启发,原始的视觉Transformer(ViTs)[22]、[73]直接将自注意力机制应用于从图像中分割出的图像块。通过利用充足的训练数据[22]、[101]和强大的数据增强策略[37]、[71]、[73]、[100]、[103]、[109],基于Transformer的方法[48]、[58]、[81]、[86]、[98]、[99]、[102]、[105]在各种视觉任务上取得了令人振奋的性能提升,包括图像分类[21]、[46]、[47]、[54]、[61]、[73],目标检测[5]、[17]、[21]、[24]、[32]、[44]、[58]、[104],语义分割[13]、[28]、[42]、[48]、[66]、[112]、[113],以及重识别[12]、[36]、[108]。由于自注意力机制的计算复杂度与图像块数量的平方成正比,因此全局注意力难以应用于高分辨率图像的编码。此外,根据我们在第I节中的分析,ViT浅层中的全局注意力机制的长距离建模能力是冗余的。为了降低自注意力机制的冗余度和计算成本,一些工作[13]、[77]、[94]在自注意力块中引入了子采样操作,同时保留了全局感受野。这些子采样操作需要复杂的设计,并引入了额外的参数或计算成本。与这些工作不同,我们的滑动窗口膨胀注意力(SWDA)易于实现,能够以膨胀的方式减少自注意力机制的冗余。
B. 视觉Transformer中的局部注意力
为了使自注意力机制适用于高分辨率图像编码,一些工作[21]、[26]、[54]将自注意力机制应用于固定局部区域内的图像块,以降低计算成本。例如,Swin[54]在固定窗口内对图像块应用自注意力,然后在下一层采用窗口移动策略,以实现不同窗口内图像块之间的信息交换。CSwin[21]改进了Swin[54]中的窗口固定设置,对交叉形状的窗口执行自注意力。其他工作[38]、[75]、[78]使用分组采样或空间洗牌操作来实现不同局部窗口之间的信息交换。受卷积神经网络(CNNs)[35]、[41]、[43]、[55]、[70]中卷积操作的启发,ViL[104]和NAT[32]提出了滑动窗口注意力,它仅对每个查询图像块为中心的窗口内的相邻图像块建模依赖关系。此外,一些工作[10]、[27]、[61]、[69]、[82]、[85]、[96]结合了CNNs和Transformer,以引入局部性先验,它们通常设计手工制作的复杂模块来实现CNNs和Transformer特征之间的交互,这导致它们难以扩展到大规模参数[33]、[88]。然而,上述一些工作[21]、[32]、[54]、[104]仅考虑了自注意力机制的局部性,而忽略了稀疏性。尽管上述一些工作[38]、[75]、[78]、[94]以稀疏且均匀的方式执行自注意力,但它们旨在逼近全局关注的感受野。相比之下,我们的滑动窗口膨胀注意力(SWDA)同时考虑了自注意力机制的局部性和稀疏性。我们的SWDA引入了一个先验来减少自注意力机制的冗余,它在以查询图像块为中心的膨胀窗口内执行自注意力。
C. 多尺度视觉Transformer
原始的视觉Transformer[22]、[73]是为视觉任务设计的“柱状”结构。由于多尺度信息[7]、[35]、[41]、[51]、[53]、[70]、[93]、[114]对目标检测、实例分割和语义分割等密集预测任务有益,最近的工作[21]、[23]、[32]、[38]、[42]、[54]、[58]、[66]、[77]、[78]、[95]、[104]通过使用金字塔结构设计其Transformer主干网络,引入了多尺度建模能力。一些工作[6]、[10]、[42]、[61]、[66]、[78]、[89]、[91]在图像块嵌入层[78]或自注意力块[42]、[66]、[91]中引入多尺度信息,或添加额外分支[10]、[61]、[89]来执行卷积操作。CrossFormer[78]利用不同的卷积操作或不同的图像块大小来设计图像块嵌入。Shunted Transformer[66]使用多尺度标记聚合来获得不同大小的键和值。MPViT[42]包含多尺度图像块嵌入和多路径Transformer块。Conformer[61]、Mobile-Former[10]和ViTAE[89]在自注意力块外部或内部设计额外的卷积分支,以整合多尺度信息。上述方法都需要复杂的设计,不可避免地会引入额外的参数和计算成本。我们的多尺度膨胀注意力(MSDA)通过设置不同的膨胀率来提取多尺度特征,这既简单又不需要引入额外的参数和计算成本。
D. 膨胀卷积
传统的基于卷积的网络[35]、[41]、[55]、[70]通常使用下采样或大步长的卷积来增加感受野并降低计算成本。然而,这些方法[35]、[41]、[55]、[70]会导致特征图的分辨率降低,从而影响模型在许多任务中的性能,如目标检测[34]、[49]、[52]、[64]、[65]和语义分割[9]、[56]、[67]。因此,Cohen等人[15]、[92]提出了膨胀卷积[59]、[90],它通过设置不同的膨胀率来增加感受野,而不需要降低分辨率,并提取特征图在不同尺度上的信息。具有动态权重的膨胀卷积(即动态膨胀卷积DDC)[11]使用整个特征图来生成卷积的核参数,这在特征图级别上是特定于数据的。
与现有工作不同,我们通过在同一语义级别的单个自注意力操作中引入不同的膨胀率,提出了一种简单而有效的膨胀注意力操作,它能够更灵活地建模多尺度交互。尽管我们的方法是基于滑动窗口的膨胀注意力,但它与DDC不同,因为我们的建模是在以查询图像块为中心的滑动窗口中稀疏选择的键和值上执行自注意力,这在标记级别上是特定于数据的。此外,我们还注意到一项并发工作DiNAT[31],它在同一阶段的每个块中使用单尺度和固定的膨胀率,缺乏多尺度交互。相比之下,我们的DilateFormer在每个块中使用多尺度策略,即为不同的头设置不同的膨胀率,这能够捕获和融合多尺度语义特征。
三、 多尺度膨胀Transformer
在本节中,我们将详细介绍我们提出的多尺度膨胀Transformer(DilateFormer)。在Sec.III-A中,我们介绍了我们的滑动窗口膨胀注意力(SWDA)操作,以在特征图中实现有效的长距离依赖建模。在Sec III-B中,我们设计了多尺度膨胀注意力(MSDA),它同时捕获不同尺度上的上下文语义依赖,以充分利用块内的信息。Sec III-C中展示了所提出的多尺度膨胀Transformer(DilateFormer)的总体框架和变体。
A. 滑动窗口膨胀注意力
根据在原始视觉变换器(Vision Transformers,ViTs)浅层全局注意力中观察到的局部性和稀疏性特性,我们提出了一种滑动窗口膨胀注意力(Sliding Window Dilated Attention,SWDA)操作,其中键和值是在以查询块为中心的滑动窗口中稀疏选择的。然后对这些代表性块执行自注意力操作。形式上,我们的SWDA描述如下:
X = SWDA ( Q , K , V , r ) X=\operatorname{SWDA}(Q, K, V, r) X=SWDA(Q,K,V,r),
其中, Q Q Q、 K K K和 V V V分别表示查询、键和值矩阵。这三个矩阵的每一行表示一个单独的查询/键/值特征向量。对于原始特征图中位置 ( i , j ) (i, j) (i,j)的查询,SWDA在以 ( i , j ) (i, j) (i,j)为中心的 w × w w \times w w×w大小的滑动窗口中稀疏选择键和值来执行自注意力。此外,我们定义了一个膨胀率 r ∈ N + r \in \mathbb{N}^{+} r∈N+来控制稀疏程度。特别地,对于位置 ( i , j ) (i, j) (i,j),SWDA操作输出 X X X中对应的分量 x i j x_{ij} xij定义如下:
x i j = Attention ( q i j , K r , V r ) , = Softmax ( q i j K r T d k ) V r , 1 ≤ i ≤ W , 1 ≤ j ≤ H , \begin{aligned} x_{i j} & =\operatorname{Attention}\left(q_{i j}, K_{r}, V_{r}\right), \\ & =\operatorname{Softmax}\left(\frac{q_{i j} K_{r}^{T}}{\sqrt{d_{k}}}\right) V_{r}, \quad 1 \leq i \leq W, 1 \leq j \leq H, \end{aligned} xij=Attention(qij,Kr,Vr),=Softmax(dkqijKrT)Vr,1≤i≤W,1≤j≤H,
其中, H H H和 W W W是特征图的高度和宽度。 K r K_{r} Kr和 V r V_{r} Vr表示从特征图 K K K和 V V V中选择的键和值。给定位于 ( i , j ) (i, j) (i,j)的查询,将选择以下坐标集合 ( i ′ , j ′ ) \left(i^{\prime}, j^{\prime}\right) (i′,j′)处的键和值来执行自注意力:
{ ( i ′ , j ′ ) ∣ i ′ = i + p × r , j ′ = j + q × r } , − w 2 ≤ p , q ≤ w 2 \begin{array}{c} \left\{\left(i^{\prime}, j^{\prime}\right) \mid i^{\prime}=i+p \times r, j^{\prime}=j+q \times r\right\}, \\ -\frac{w}{2} \leq p, q \leq \frac{w}{2} \end{array} {(i′,j′)∣i′=i+p×r,j′=j+q×r},−2w≤p,q≤2w
我们的SWDA以滑动窗口的方式对所有查询块执行自注意力操作。对于位于特征图边缘的查询,我们简单地使用卷积操作中常用的零填充策略来保持特征图的大小。通过以查询为中心稀疏选择键和值,所提出的SWDA显式地满足局部性和稀疏性特性,并能有效地建模长距离依赖关系。
B. 多尺度膨胀注意力
为了在块级别利用自注意力机制在不同尺度上的稀疏性,我们进一步提出了一种多尺度膨胀注意力(Multi-Scale Dilated Attention,MSDA)块来提取多尺度语义信息。如图4所示,给定一个特征图 X X X,我们通过线性投影获得相应的查询、键和值。之后,我们将特征图的通道分为 n n n个不同的头,并在不同的头中以不同的膨胀率执行多尺度SWDA。具体地,我们的MSDA定义如下:
h i = SWDA ( Q i , K i , V i , r i ) , 1 ≤ i ≤ n , X = Linear ( Concat [ h 1 , … , h n ] ) , \begin{array}{c} h_{i}=\operatorname{SWDA}\left(Q_{i}, K_{i}, V_{i}, r_{i}\right), \quad 1 \leq i \leq n, \\ X=\operatorname{Linear}\left(\operatorname{Concat}\left[h_{1}, \ldots, h_{n}\right]\right), \end{array} hi=SWDA(Qi,Ki,Vi,ri),1≤i≤n,X=Linear(Concat[h1,…,hn]),
其中, r i r_{i} ri是第 i i i个头的膨胀率, Q i Q_{i} Qi、 K i K_{i} Ki和 V i V_{i} Vi表示输入到第 i i i个头的特征图切片。输出 { h i } i = 1 n \left\{h_{i}\right\}_{i=1}^{n} {hi}i=1n被拼接在一起,然后发送到线性层进行特征聚合。
通过为不同的头设置不同的膨胀率,我们的MSDA有效地在被关注的感受野内聚合了不同尺度的语义信息,并在不增加复杂操作和额外计算成本的情况下有效地减少了自注意力机制的冗余。
C. 总体架构
我们提出了一种具有金字塔结构的多尺度膨胀Transformer(DilateFormer),如图3所示。根据视觉Transformer(ViTs)中浅层的局部性和稀疏性特性,DilateFormer的前两个阶段使用第III-B节中提出的多尺度膨胀注意力(MSDA),而后两个阶段则使用普通的多头自注意力(MHSA)。此外,我们使用重叠分词器[85]进行块嵌入,该分词器使用多个带有零填充的 3 × 3 3 \times 3 3×3卷积模块。通过交替控制卷积核的步长为1或2,可以调整输出特征图的分辨率。为了合并前一阶段的块,我们使用重叠下采样器[32],它是一个重叠核大小为3、步长为2的卷积模块。为了使位置编码适应不同分辨率的输入,当输入被送入MSDA或MHSA块时,我们使用CPVT[14]中提出的条件位置嵌入(CPE)。具体来说,我们的总体架构描述如下:
X = CPE ( X ^ ) + X ^ = DwConv ( X ^ ) + X ^ , Y = { MSDA ( Norm ( X ) ) + X , 在低级阶段, MHSA ( Norm ( X ) ) + X , 在高级阶段, Z = MLP ( Norm ( Y ) ) + Y \begin{array}{c} X=\text{CPE}(\hat{X})+\hat{X}=\text{DwConv}(\hat{X})+\hat{X}, \\ Y=\left\{\begin{array}{l} \text{MSDA}(\text{Norm}(X))+X, \quad \text{在低级阶段, } \\ \text{MHSA}(\text{Norm}(X))+X, \quad \text{在高级阶段, } \end{array}\right. \\ Z=\text{MLP}(\text{Norm}(Y))+Y \end{array} X=CPE(X^)+X^=DwConv(X^)+X^,Y={MSDA(Norm(X))+X,在低级阶段, MHSA(Norm(X))+X,在高级阶段, Z=MLP(Norm(Y))+Y
其中, X ^ \hat{X} X^是当前块的输入,即图像块或上一个块的输出。在实践中,我们将CPE实现为一个带有零填充和 3 × 3 3 \times 3 3×3核大小的深度卷积(DwConv)模块。我们遵循先前的工作[54]、[73],在MLP后添加了两个线性层,通道扩展比为4,以及一个GELU激活函数。
基于上述网络结构,我们引入了所提DilateFormer的三个变体(即Tiny、Small和Base),并在表II中给出了具体的模型设置。
四、实验
为了评估我们的多尺度膨胀Transformer(DilateFormer)的性能,我们将其作为视觉主干网络,用于ImageNet-1K[19]分类、COCO[50]目标检测和实例分割以及ADE20K[110]语义分割。此外,我们通过消融实验评估了我们关键模块的有效性。所有实验均在一个配备8个A100 GPU的单个服务器节点上进行。
A. 在ImageNet-1K上的图像分类
-
数据集和实施细节。ImageNet-1k[19]是一个包含1000个类别的大规模数据集,包含128万张训练图像和5万张验证图像。我们在ImageNet-1K数据集上进行分类实验,以评估我们的变体,遵循与基线Transformer(如DeiT[73]和PVT[77])相同的训练策略,以确保公平比较。我们使用AdamW优化器[57],共300个训练周期,包括前10个预热周期和后10个冷却周期,并采用余弦衰减学习率调度器,每30个周期衰减10倍,基础学习率为0.001,批量大小为1024,权重衰减为0.05。为了进一步展示DilateFormer的性能,我们使用Token Labeling[39]来辅助训练DilateFormer。我们在DilateFormer中添加了一个额外的全连接层和一个辅助损失,并遵循LV-ViT[39]的训练策略,其中CutMix[103]和Mixup[100]被MixToken[39]替代。为了在我们的模型上以更大的分辨率(即 384 × 384 384 \times 384 384×384)进行微调,特殊的超参数设置如下:权重衰减、学习率、批量大小、预热周期和总周期分别设置为 1 e − 8 1 \text{e}-8 1e−8、 5 e − 6 5 \text{e}-6 5e−6、512、5和30。
-
结果与分析。如表III、图1和图5所示,我们提出的DilateFormer在不同模型尺寸上均优于之前的最先进模型。具体而言,Dilate-S在分辨率为224的ImageNet-1K数据集上达到了83.3%的top-1准确率,分别比Swin-T[54]和ViL-S[104]高出2.0%和1.3%,并且参数数量和浮点运算数(FLOPs)少于这些模型。在Token Labeling[39](用“ ⋆ \star ⋆”表示)的辅助下,我们的模型在不同模型尺寸上表现优于LV-ViTs[39],即Dilate-S*(4.9 GFLOPs)和Dilate-B*(10.0 GFLOPs)分别达到了83.9%和84.9%,超过了LV-ViT-S[39](6.6 GFLOPs)和LV-ViT-M[39](16 GFLOPs)。表III中的结果还显示了所提出模型的效率和有效性。无需额外辅助或高分辨率微调,Dilate-T仅消耗3.2 GFLOPs并达到了82.1%的准确率,这与ViL-S[104](4.9G,82.0%)、Focal-T[91](4.9G,82.2%)和PVT-L[77](9.8G,81.7%)的性能相当。在更大模型中也可以得出类似结论:我们的Dilate-S(83.3%)以4.8 GFLOPs的性能优于ViL-B[104](13.4G,83.2%)、Swin-B[54](15.4G,83.4%)和DeiT-B[73](17.5G,81.8%),这表明我们的多尺度自注意力蒸馏(MSDA)可以有效捕捉长距离依赖关系,如之前的方法一样,但节省了多达70%的FLOPs。为了证明DilateFormer的强大学习能力,我们在 384 × 384 384 \times 384 384×384图像上微调的Dilate-B获得了85.6%的top-1准确率,并优于需要1.37倍FLOPs的LV-ViT-M[39](85.4%)。
B. 在COCO数据集上的目标检测和实例分割
- 数据集和实施细节。我们在COCO2017数据集[50]上评估了我们的变体在目标检测和实例分割方面的表现。COCO2017数据集包含118K张训练图像、5K张验证图像和20K张测试图像。我们使用了两个代表性框架:在mmdetection[8]中实现的Mask R-CNN[34]和Cascade Mask R-CNN[4],并采用ImageNet-1K预训练的变体作为骨干网络。对于Mask R-CNN和Cascade Mask R-CNN框架,我们使用了AdamW优化器,基础学习率设为0.0001,权重衰减设为0.05,批处理大小设为16。为了公平比较,我们通过两种策略训练了我们的变体Dilate-S和Dilate-B:(1)12个周期的 1 × 1 \times 1×计划,其中图像的短边调整为800,长边小于1333;(2)36个周期的 3 × + M S 3 \times+\mathrm{MS} 3×+MS计划,其中采用了多尺度训练策略,图像的短边在[480,800]范围内调整。由于目标检测和实例分割中的图像分辨率通常大于图像分类中的分辨率,我们在DilateFormer的第三阶段结合了局部窗口注意力、带偏移操作的局部窗口注意力和全局注意力,以降低计算成本。
- 结果与分析。表IV和表V分别报告了Mask R-CNN框架和Cascade Mask R-CNN框架的框平均精度(mAP,即 A P b \mathrm{AP}^{\mathrm{b}} APb)和掩码平均精度(mask mAP,即 A P m \mathrm{AP}^{\mathrm{m}} APm)。我们的DilateFormer变体在两个框架中的目标检测和实例分割方面均优于最近提出的Transformer。对于Mask R-CNN的 1 × 1 \times 1×计划,DilateFormer在可比设置下,框mAP比Swin Transformer[54]高出2.8-3.6%,掩码mAP高出2.5-2.6%。对于 3 × + M S 3 \times+\mathrm{MS} 3×+MS计划,Dilate-B在Mask R-CNN框架中实现了49.9%的框mAP和43.7%的掩码mAP,在Cascade Mask R-CNN框架中实现了53.3%的框mAP和46.1%的掩码mAP。此外,我们的Dilate-S在 1 × 1 \times 1×计划下,以比PVT-M[77]少13.2%的FLOPs,实现了2.2%的框mAP和2.7%的掩码mAP的提升。
C. ADE20K上的语义分割
- 数据集及实施细节。ADE20K数据集[110]包含150个语义类别,其中有20,000张图片用于训练,2000张图片用于验证,3000张图片用于测试。我们在ADE20K数据集上评估了所提出的DilateFormer变体在语义分割方面的表现,并采用了两个代表性框架:在mmsegmentation[16]中实现的Upernet[84]和Semantic FPN[40],使用我们在ImageNet1K上预训练的变体作为主干网络。对于Upernet的训练,我们遵循Swin Transformer的配置,对我们的变体进行了160K次迭代训练。我们采用AdamW[57]优化器,基础学习率为0.00006,权重衰减为0.01,批量大小为16,并使用线性调度器,其中包含1,500次迭代的线性预热。对于Semantic FPN的80K次迭代,我们遵循PVT的相同配置,使用余弦学习率调度,初始学习率为0.0002,权重衰减为0.0001。
- 结果与分析。表VI展示了配备UperNet和Semantic FPN框架的DilateFormer的结果。我们配备UperNet框架的DilateFormer-Small/Base变体分别实现了47.1/50.4%的mIoU和47.6/50.5%的MS mIoU,相比Swin[54]分别至少高出2.6%的mIoU和1.0%的MS mIoU。对于Semantic FPN框架,我们的变体实现了47.1/48.8%的mIoU,相比Swin[54]高出3.6-5.6%。
D. 消融研究
我们从稀疏和局部模式、膨胀尺度、块设置、阶段设置以及重叠分词器/下采样器的角度进行了消融研究。关于核大小的更多消融研究见补充材料。
- SWDA与其他稀疏和局部模式。我们将前两个阶段的滑动窗口膨胀注意力(SWDA)替换为其他稀疏和局部模式,即膨胀卷积(DC)[92]、动态膨胀卷积(DDC)[11]、带空间混洗的窗口注意力(WASS²)[38]和滑动窗口注意力(SWA)[43]。
如表VII所示,我们的SWDA在各种视觉任务中优于其他稀疏和局部模式。SWDA在ImageNet-1K上实现了82.1%的Top-1准确率,在COCO上实现了44.9%的box mAP和40.9%的mask mAP,在ADE20K上实现了45.84%的mIoU。SWDA优于DC(+0.4%,+1.4%/+0.6%,+1.69%),因为与传统卷积相比,注意力是数据特定的。尽管DDC像SWDA一样具有局部性、稀疏性和数据特定性,但SWDA仍然优于DDC(+0.3%,+0.6%/+0.3%,+0.94%)。DDC使用整个特征图来生成卷积的核参数,这是在特征图级别的数据特定;相比之下,SWDA在以查询块为中心的滑动窗口中稀疏选择的键和值上执行自注意力,这是在标记级别的数据特定。因此,SWDA的建模能力比DDC更强。SWDA也优于WASS(+0.3%,+0.8%/+0.5%,+1.18%)和SWA(+0.3%,+0.5%/+0.1%,+2.21%),这证明了在浅层自注意力中考虑局部性和稀疏性的重要性。
- 膨胀尺度。由于头的数量必须是膨胀尺度数量的倍数,我们根据膨胀尺度的数量改变每个头中的头的数量和特征维度,同时保持总长度不变。我们根据ImageNet-1K分类任务上的性能来分析膨胀尺度的影响。表VIII展示了第一阶段或第二阶段中的头的数量、膨胀尺度和Top-1准确率。在块中具有相同数量的头的情况下,多尺度膨胀注意力(即[1,2,3])的Top-1准确率(82.1%)优于单尺度(即[1]、[2]和[3]),因为多尺度可以提供比单尺度更丰富的信息。此外,块中的膨胀率需要适中,以便同时建模注意力的局部性和稀疏性,而不会因全局注意力等较大的感受野而引入冗余的信息建模。因此,我们默认将模型的膨胀尺度设置为3,即[1,2,3]。
- MSDA与其他块设置。在我们的DilateFormer中,我们在前两个阶段堆叠了多尺度膨胀注意力(MSDA)块。为了证明我们提出的MSDA的有效性,我们将默认设置(D-D-G-G)中前两个阶段的MSDA替换为带位移窗口的局部注意力(L-L-G-G)[54]和全局注意力(G-G-G-G)[22]进行比较。我们还与全局注意力配合朴素下采样技术进行了比较,即带空间缩减的全局注意力(G-G-G-G + sr.)[77],它通过减少块的数量来减少块之间的冗余交互。MSDA中关注的感受野的最大尺寸为7×7(带膨胀),局部注意力中关注的感受野的尺寸为7×7,全局注意力中关注的感受野的尺寸为整个特征图的大小。
表IX总结了比较结果。在使用相同尺寸的最大关注感受野的情况下,我们的MSDA(82.1%)以更少的浮点运算数(FLOPs)优于带位移窗口的局部注意力(L-L-G-G)[54](81.7%),这证明了浅层中稀疏和局部注意力机制的有效性。与全局注意力(G-G-G-G)[22]相比,我们的MSDA在FLOPs减半的情况下实现了0.3%的提升,这进一步证明了所提出的局部和稀疏注意力机制的有效性和效率。此外,MSDA相对于全局注意力的优越性表明,对所有图像块之间的依赖性进行建模是冗余的。为了减少冗余交互,带空间缩减的全局注意力利用卷积进行下采样,但引入了额外的参数。相比之下,我们的MSDA利用了局部性和稀疏性属性,而无需额外的参数。结果表明,我们的MSDA超过了带空间缩减的全局注意力0.5%,这表明所提出的MSDA在减少冗余方面的有效性。在下游任务中,我们的MSDA块也优于其他类型的块,这表明MSDA具有更强的建模能力。
-
阶段设定。为了展示多尺度扩张注意力(MSDA)模块在浅层阶段的建模能力,我们进行了一系列实验,以探索在不同阶段使用MSDA的性能。在模型的四个阶段中,我们逐步用MSDA模块替换每个阶段的全局多头自注意力(MHSA)模块。表X]显示了不同结构模型的浮点运算次数(FLOPs)和Top-1准确率。随着模型阶段中MSDA模块比例的增加,模型性能呈现出下降趋势,从82.2%下降到80.5%。结果表明,在浅层阶段而非深层阶段考虑自注意力机制的局部性和稀疏性更为有效。此外,仅在阶段1使用MSDA模块的模型(82.2%)的性能略优于在阶段1和阶段2都使用MSDA模块的模型(82.1%),但前者的FLOPs更大(+0.35 G)。因此,我们默认在阶段1和阶段2都使用MSDA模块。
-
重叠分词器/下采样器。我们进一步研究了重叠分词器或下采样器如何影响性能。在保持相同设置的同时,我们将重叠分词器或下采样器替换为简单的非重叠分词器或下采样器,即使用核大小为4和步长为4的卷积或使用核大小为2和步长为2的卷积。如表XI所示,我们的模型在使用重叠分词器/下采样器时实现了轻微提升(+0.4%),这表明我们模型的主要改进并不依赖于这两个模块。
-
实际运行时间比较。我们在表XII中提供了关于帧率(FPS)、峰值内存的模型推理比较,涉及我们的DilateFormers和当前的最优模型(SOTA)。FPS和峰值内存使用情况是在单个A100 GPU上以256的批量大小进行前向传播时测量的。在模型参数和FLOPs相当的情况下,我们的DilateFormers的FPS相当,且性能优于当前的最优模型。
-
Grad-CAM可视化。为了进一步说明所提出的DilateFormer的识别能力,我们应用了Grad-CAM [25]来可视化DeiT-Tiny [73]、Swin-Tiny [54]和Dilate-Tiny最后一层中最受关注的区域。如图6所示,我们的Dilate-Tiny模型在定位目标对象方面表现更好,并且更连续、更完整地关注语义区域,这表明我们模型的识别能力更强。与DeiT-Tiny和Swin-Tiny相比,这种能力带来了更好的分类性能。
-
全局注意力的更多可视化结果。在SecI中,我们讨论了浅层全局注意力的两个关键属性,即局部性和稀疏性。为了进一步分析这两个属性,我们可视化了ViT-Small [22]浅层中更多的注意力图。如图7所示,ViT-Small浅层的注意力图显示,被激活的关键块在查询块的附近稀疏分布。具体来说,具有高注意力分数的块稀疏地散布在查询块周围,而其他块的注意力分数较低。
五、 结论
在本工作中,我们提出了一种强大且有效的视觉Transformer,称为DilateFormer,它可以为各种视觉任务提供强大且通用的表示。我们提出的多尺度扩张注意力(MSDA)考虑了浅层自注意力机制的局部性和稀疏性,这可以有效地聚合语义多尺度信息,并在不增加复杂操作和额外计算成本的情况下高效地减少自注意力机制的冗余。广泛的实验结果表明,所提出的方法在ImageNet-1k分类和下游视觉任务(如目标检测和语义分割)中均达到了最优性能。
致谢
本研究工作得到了国家自然科学基金(U21A20471、U1911401、U1811461)、广东省自然科学基金项目(编号:2020B1515120085、2018B030312002)、广州市研究项目(201902010037)和广州市重点领域研发计划(202007030004)的部分支持。