清华大学提出DAT | DCN+Swin Transformer会碰撞出怎样的火花???(一)

简介: 清华大学提出DAT | DCN+Swin Transformer会碰撞出怎样的火花???(一)

1简介


Transformer最初是用来解决自然语言处理任务的。它最近在计算机视觉领域显示出巨大的潜力。先锋工作Vision Transformer(ViT)将多个Transformer块堆叠在一起,以处理非重叠的图像patch(即视觉Token)序列,从而产生了一种无卷积的图像分类模型。与CNN模型相比,基于Transformer的模型具有更大的感受野,擅长于建模长期依赖关系,在大量训练数据和模型参数的情况下取得了优异的性能。然而,视觉识别中的过度关注是一把双刃剑,存在多重弊端。具体来说,每个query patch中参与的key数过多会导致较高的计算成本和较慢的收敛速度,并增加过拟合的风险。

为了避免过度的注意力计算,已有的研究利用精心设计的有效注意力模式来降低计算复杂度。其中有两种具有代表性的方法:

  • Swin Transformer采用基于Window的局部注意力来限制Local Window中的注意力;
  • Pyramid Vision Transformer(PVT)则通过对key和value特征映射进行采样来节省计算量。

手工设计的注意力模式虽然有效,但不受数据影响,可能不是最佳的。相关的key/value很可能被删除,而不太重要的key/value仍然保留。

理想情况下,给定query的候选key/value集应该是灵活的,并且能够适应每个单独的输入,这样就可以缓解手工制作的稀疏注意力模式中的问题。事实上,在cnn的文献中,学习卷积滤波器的可变形感受野已被证明在依赖于数据的基础上有选择性地关注更多信息区域时是有效的。

最值得注意的工作,Deformable Convolution Networks(DCN),已经在许多具有挑战性的视觉任务上产生了令人印象深刻的结果。这促使想在Vision  Transformer中探索一种可变形的注意力模式。然而,这种想法的简单实现会导致不合理的高内存/计算复杂度:

由Deformable offsets引入的开销是patch数量的平方。因此,尽管最近的一些工作研究了变形机制的思想,但由于计算成本高,没有人将其作为构建强大的Backbone(如DCN)的基本构件。相反,它们的可变形机制要么在检测头中采用,要么作为预处理层对后续Backbone的patch进行采样。

image.png

本文提出了一种简单有效的可变形的自注意力模块,并在此模块上构造了一个强大的Pyramid Backbone,即可变形的注意力Transformer(Deformable Attention Transformer, DAT),用于图像分类和各种密集的预测任务。

不同于DCN,在整个特征图上针对不同像素学习不同的offset,作者建议学习几组query无关的offset,将key和value移到重要区域(如图1(d)所示),这是针对不同query的全局注意力通常会导致几乎相同的注意力模式的观察结果。这种设计既保留了线性空间的复杂性,又为Transformer的主干引入了可变形的注意力模式。

具体来说:

  • 对于每个注意力模块,首先将参考点生成为统一的网格,这些网格在输入数据中是相同的;
  • 然后,offset网络将query特征作为输入,并为所有参考点生成相应的offset。这样一来,候选的key /value被转移到重要的区域,从而增强了原有的自注意力模块的灵活性和效率,从而捕获更多的信息特征。

2相关工作


2.1 ViT Backbone

自引入ViT以来,改进的重点是密集预测任务的多尺度特征学习和高效的注意力机制。这些注意力机制包括Window Attention、Global Token、Focal Attention和动态Token Size。

最近,基于卷积的方法被引入到Vision Transformer模型中。其中,已有的研究集中在用卷积运算来补充变压器模型,以引入额外的电感偏差。CvT在标记化过程中采用卷积,利用步幅卷积来降低自注意的计算复杂度。带卷积茎的ViT建议在早期添加卷积,以实现更稳定的训练。CSwin Transformer采用了基于卷积的位置编码技术,并显示了对下游任务的改进。这些基于卷积的技术中有许多可以应用于DAT之上,以进一步提高性能。

2.2 DCN和Attention

可变形卷积是一种强大的机制,可以处理基于输入数据的灵活空间位置。最近,它已被应用于Vision Transformer。Deformable  DETR通过在CNN Backbone的顶部为每个query选择少量的key来提高DETR的收敛性。由于缺少key限制了其表示能力,其Deformable  Attention不适合用于特征提取的视觉Backbone。

此外,Deformable  DETR中的注意力来自简单的线性投影,query token之间不共享key。DPT和PS-ViT构建Deformable  Block来细化视觉token。具体来说,DPT提出了一种Deformable  Patch Embedding方法来细化跨阶段的Patch,PS-ViT在ViT Backbone前引入了空间采样模块来改善视觉Token。它们都没有把Deformable Attention纳入视觉中枢。相比之下,本文的Deformable Attention采用了一种强大而简单的设计,来学习一组在视觉token之间共享的全局key,并可以作为各种视觉任务的一般Backbone。本文方法也可以看作是一种空间适应机制,它在各种工作中被证明是有效的。


3Deformable Attention Transformer


image.png

3.1 Preliminaries

首先在最近的Vision Transformer中回顾了注意力机制。以Flatten特征图为输入,M头自注意力(MHSA)块表示为:

image.png

其中,表示softmax函数,d=C/M为每个Head的尺寸。z(m)表示第m个注意力头的嵌入输出,、、分别表示query、key和value嵌入。、、、是投影矩阵。为了建立一个Transformer Block,通常采用一个具有2个线性变换和一个GELU激活的MLP块来提供非线性。

通过归一化层和shortcuts,第1个Transformer Block被表示为:

image.png

其中LN表示层归一化。

3.2 Deformable Attention

现有的分层Vision Transformer,特别是PVT和Swin Transformer试图解决过度关注的问题。前者的降采样技术会导致严重的信息丢失,而后者的注意力转移会导致感受野的增长要慢得多,这限制了建模大物体的潜力。因此,需要依赖数据的稀疏注意力来灵活地建模相关特征,这也孕育了在DCN中提出的可变形的机制。

然而,简单地在Transformer模型中实现 DCN 是一个重要的问题。在DCN中,特征图上的每个元素分别学习其offset,其中H×W×C特征图上的3×3可变形卷积的空间复杂度为9HWC。如果直接在自注意力模块应用相同的机制,空间复杂度将急剧上升到,、为query和key的数量,通常有相同的尺度特征图大小HW,带来近似双二次复杂度。

虽然Deformable DETR通过在每个检测头设置更少的key()来减少这个计算开销,但是,在Backbone中,这样少的key是次要的,因为这样的信息丢失是不可接受的(见附录中的详细比较)。

同时,在先前的工作中的观察显示,不同的query在视觉注意力模型中具有相似的注意力图。因此,选择了一个更简单的解决方案,为每个query共享移动的key和value以实现有效的权衡。

具体来说,本文提出了Deformable Attention,在特征映射中重要区域的引导下,有效地建模Token之间的关系。这些集中的regions由offset网络从query中学习到的多组Deformable sampling点确定。采用双线性插值对特征映射中的特征进行采样,然后将采样后的特征输入key投影得到Deformable Key。

1、Deformable注意力模块

image.png

如图2(a)所示,给定输入特征图,生成一个点的统一网格作为参考。具体来说,网格大小从输入的特征图大小降采样一个系数,,。参考点的值为线性间隔的2D坐标,然后根据网格形状将其归一化为范围,其中表示左上角,表示右下角。

为了获得每个参考点的offset,将特征映射线性投影到query token ,然后输入一个轻量子网络θ,生成偏移量θ。为了稳定训练过程,这里用一些预定义的因子来衡量的振幅,以防止太大的offset,即。然后在变形点的位置进行特征采样,作为key和value,然后是投影矩阵:

image.png

和分别表示deformed  key嵌入和value嵌入。具体来说,将采样函数φ设置为双线性插值,使其可微:

image.png

其中和索引了的所有位置。由于只在最接近的4个积分点上不为零,因此它简化了Eq(8)到4个地点的加权平均值。与现有的方法类似,对、、进行多头注意力,并采用相对位置偏移。注意力头的输出被表述为:

image.png

其中对应于位置嵌入,同时有一些适应。详细信息将在本节的后面进行解释。每个头部的特征连接在一起,通过投影得到最终输出z。

2、Offset生成

如前面所述,采用一个子网络进行Offset的生成,它分别消耗query特征和输出参考点的offset值。考虑到每个参考点覆盖一个局部的s×s区域(×是偏移的最大值),生成网络也应该有对局部特征的感知,以学习合理的offset。

image.png

因此,将子网络实现为2个具有非线性激活的卷积模块,如图2(b)。所示输入特征首先通过一个5×5的深度卷积来捕获局部特征。然后,采用GELU激活和1×1卷积得到二维偏移量。同样值得注意的是,1×1卷积中的偏差被降低,以缓解所有位置的强迫性偏移。

3、Offset groups

为了促进变形点的多样性,在MHSA中遵循类似的范式,并将特征通道划分为G组。每个组的特征分别使用共享的子网络来生成相应的偏移量。在实际应用中,注意力模块的Head数M被设置为偏移组G大小的倍数,确保多个注意力头被分配给一组deformed keys 和 values 。

4、Deformable相对位置偏差

相对位置偏差对每对query和key之间的相对位置进行编码,通过空间信息增强了普通的注意力。考虑到一个形状为H×W的特征图,其相对坐标位移分别位于二维空间的[−H,H]和[−W,W]的范围内。在Swin Transformer中,构造了相对位置偏置表,通过对表的相对位移进行索引,得到相对位置偏置B。由于可变形注意力具有连续的key位置,计算在归一化范围内的相对位移[−1,+1],然后在连续的相对偏置表中插值,以覆盖所有可能的偏移值。

5、 计算的复杂度

可变形多头注意力(DMHA)的计算成本与PVT或Swin Transformer中对应的计算成本相似。唯一的额外开销来自于用于生成偏移量的子网络。整个模块的复杂性可以概括为:

image.png

其中,为采样点的数量。可以看出,offset网络的计算代价具有线性复杂度w.r.t.通道的大小,这与注意力计算的成本相对较小。通常,考虑用于图像分类的Swin-T模型的第三阶段,其中,单个块模块中注意力模块的计算成本为79.63MFLOPs。如果插入可变形模块(k = 5),额外的开销是5.08M Flops,这仅是整个模块的6.0%。此外,通过选择一个较大的下采样因子,复杂性将进一步降低,这使得它有利于具有更高分辨率输入的任务,如目标检测和实例分割。

3.3 模型架构

image.png

在网络架构方面,模型“可变形注意变换器”与PVT等具有相似的金字塔结构,广泛适用于需要多尺度特征图的各种视觉任务。如图3所示,首先对形状为H×W×3的输入图像进行4×4不重叠的卷积嵌入,然后进行归一化层,得到H4×W4×C 的patch嵌入。为了构建一个层次特征金字塔,Backbone包括4个阶段,stride逐渐增加。在2个连续的阶段之间,有一个不重叠的2×2卷积与stride=2来向下采样特征图,使空间尺寸减半,并使特征尺寸翻倍。

  • 在分类任务中,首先对最后一阶段输出的特征图进行归一化处理,然后采用具有合并特征的线性分类器来预测logits。
  • 在目标检测、实例分割和语义分割任务中,DAT扮演着Backbone的作用,以提取多尺度特征。

这里为每个阶段的特征添加一个归一化层,然后将它们输入以下模块,如目标检测中的FPN或语义分割中的解码器。

在DAT的第三和第四阶段引入了连续的Local Attention和Deformable Attention Block。特征图首先通过基于Window的Local Attention进行处理,以局部聚合信息,然后通过Deformable Attention Block对局部增强token之间的全局关系进行建模。这种带有局部和全局感受野的注意力块的替代设计有助于模型学习强表征,在GLiT、TNT和Point-Former。

由于前两个阶段主要是学习局部特征,因此在这些早期阶段的Deformable Attention不太适合。

此外,前两个阶段的key和value具有较大的空间大小,大大增加了Deformable Attention的点积和双线性插值的计算开销。因此,为了实现模型容量和计算负担之间的权衡,这里只在第三和第四阶段放置Deformable Attention,并在Swin Transformer中采用Shift Window Attention,以便在早期阶段有更好的表示。建立了不同参数和FLOPs的3个变体,以便与其他Vision Transformer模型进行公平的比较。通过在第三阶段叠加更多的块和增加隐藏的维度来改变模型的大小。详细的体系结构见表1。

image.png

请注意,对于DAT的前两个阶段,还有其他的设计选择,例如,PVT中的SRA模块。比较结果见表7。

相关文章
|
4月前
|
机器学习/深度学习 编解码 数据可视化
英特尔提出新型卷积 | 让ResNet/MobileNet/ConvNeXt等Backbone一起涨点
英特尔提出新型卷积 | 让ResNet/MobileNet/ConvNeXt等Backbone一起涨点
201 2
|
机器学习/深度学习 编解码 计算机视觉
Transformer又一城 | Swin-Unet:首个纯Transformer的医学图像分割模型解读
Transformer又一城 | Swin-Unet:首个纯Transformer的医学图像分割模型解读
878 0
|
4月前
|
机器学习/深度学习 编解码 数据可视化
即插即用 | 清华大学提出Focused Linear Attention取代Self-Attention成为ViT的新宠
即插即用 | 清华大学提出Focused Linear Attention取代Self-Attention成为ViT的新宠
160 0
|
4月前
|
机器学习/深度学习 自然语言处理 计算机视觉
【论文泛读】ConvNeXt:A ConvNet for the 2020s(新时代的卷积)
【论文泛读】ConvNeXt:A ConvNet for the 2020s(新时代的卷积)
|
4月前
|
机器学习/深度学习 监控 算法
【论文速递】CVPR2021 - 通过解耦特征的目标检测知识蒸馏
【论文速递】CVPR2021 - 通过解耦特征的目标检测知识蒸馏
|
编解码 数据可视化 计算机视觉
清华大学提出DAT | DCN+Swin Transformer会碰撞出怎样的火花???(二)
清华大学提出DAT | DCN+Swin Transformer会碰撞出怎样的火花???(二)
126 0
|
机器学习/深度学习 数据挖掘 PyTorch
ICLR 2023 | 解决VAE表示学习问题,北海道大学提出新型生成模型GWAE
ICLR 2023 | 解决VAE表示学习问题,北海道大学提出新型生成模型GWAE
119 0
|
机器学习/深度学习 编解码 数据可视化
超越 Swin、ConvNeXt | Facebook提出Neighborhood Attention Transformer
超越 Swin、ConvNeXt | Facebook提出Neighborhood Attention Transformer
144 0
|
存储 算法 数据可视化
ECCV 2022 | CMU提出首个快速知识蒸馏的视觉框架:ResNet50 80.1%精度,训练加速30%(1)
ECCV 2022 | CMU提出首个快速知识蒸馏的视觉框架:ResNet50 80.1%精度,训练加速30%
144 0
|
机器学习/深度学习 存储 数据可视化
ECCV 2022 | CMU提出首个快速知识蒸馏的视觉框架:ResNet50 80.1%精度,训练加速30%(2)
ECCV 2022 | CMU提出首个快速知识蒸馏的视觉框架:ResNet50 80.1%精度,训练加速30%
155 0