CSWin Transformer:A General Vision Transformer Backbone with Cross-Shaped Windows

摘要

我们提出了CSWin Transformer,一个高效和有效的基于Transformer的骨干通用视觉任务。 Transformer设计中的一个具有挑战性的问题是,全局自注意力的计算成本非常高,而局部自注意力常常限制每个令牌的交互字段。 为了解决这个问题,我们开发了十字窗自注意机制,用于计算平行形成十字窗的水平和垂直条纹中的自注意,每个条纹是通过将输入特征分割成等宽的条纹来获得的。 对条带宽度的影响进行了详细的数学分析,并根据Transformer网络的不同层改变条带宽度,在限制计算代价的同时,实现了较强的建模能力。 我们还引入了局部增强位置编码(LePE),它比现有的编码方案更好地处理局部位置信息。 LePE自然支持任意输入分辨率,因此对于下游任务特别有效和友好。 结合这些设计和层次结构,CSWin Transformer在普通视觉任务上展示了具有竞争力的性能。 具体来说,在没有任何额外训练数据或标签的情况下,它在ImageNet-1K上达到了85.4%的Top-1准确率,在COCO检测任务上达到了53.9box AP和46.4的mask AP,在ADE20K语义分割任务上达到了51.7 mIOU, 在相似的FLOPs设置下分别比之前最先进的Swin Transformer骨干超出+1.2,+2.0,+1.4和+2.0。 通过在更大的数据集ImageNet-21K上进行进一步的预处理,我们在ImageNet-1K上获得了87.5%的Top-1精度,在ADE20K上获得了最先进的分割性能(55.2 mIoU)。  

1、简介

基于Transformer的架构最近在各种视觉任务中取得了与CNN相比较的出色表现。 通过利用多头自注意机制,这些视觉Transformer展示了在远程依赖建模方面的高能力,这尤其有助于处理下游任务中的高分辨率输入,例如目标检测和分割。 尽管取得了成功,但具有全面关注机制的Transformer架构在计算上效率很低。  

为了提高效率,一种典型的方法是将每个标记的注意区域从全注意限制为局部/窗口注意。 为了连接窗户之间的联系,研究人员进一步提出了光晕和移位操作,通过附近的窗户交换信息。 然而,接受域的扩大相当缓慢,它需要堆叠大量的块来实现全局的自注意。 一个足够大的接受域对于表现是至关重要的,特别是对于下游的任务(例如。 目标检测和分割)。 因此,在保持低计算代价的同时,高效地实现大接收域是非常重要的。  

在本文中,我们提出了十字形窗口(CSWin)的自注意机制,如图1所示,并与现有的自注意机制进行了比较。 使用CSWin自注意算法,我们在水平条和垂直条上并行进行自注意计算,每个条是通过将输入特征分割成等宽的条来获得的。 这种条纹宽度是十字形窗口的一个重要参数,因为它允许我们在限制计算代价的同时实现强大的建模能力。 具体来说,我们根据网络的深度来调整条带宽度:浅层的宽度小,深层的宽度大。 较大的条带宽度可以促进远程元素之间的连接,并在计算成本较小的情况下获得更好的网络容量。 我们将提供一个详细的数学分析,条带宽度如何影响建模能力和计算成本。  

值得注意的是,在CSWin自注意机制中,水平条纹和垂直条纹的自注意是平行计算的。 我们将这些多头成平行组,并对不同组应用不同的自我注意操作。 这种并行策略不引入额外的计算成本,同时扩大了每个Transformer块内计算自注意的区域。 这种策略从根本上不同于现有的自我注意机制,现有的自我注意机制在多个头部之间应用相同的注意操作(图1 b,c,d,e),并依次执行不同的注意操作(图1 c,e)。 我们将通过消融分析表明,这种差异使CSWin自我注意在一般视觉任务中更有效。  

基于CSWin自注意机制,我们遵循分层设计,提出了一种新的Transformer架构,称为“CSWin Transformer”,用于通用视觉任务。 该体系结构在限制计算成本的同时提供了更强大的建模能力。 为了进一步增强这个视觉Transformer,我们引入了一种有效的位置编码,即局部增强位置编码(local enhanced positional encoding, LePE),它对于诸如目标检测和分割等输入变化的下游任务特别有效和友好。 与以往的位置编码方法相比,我们的LePE将位置信息强加在每个Transformer块中,直接对注意结果进行操作,而不是注意计算。 LePE使CSWin Transformer更有效和友好的下游任务。  

作为通用视觉Transformer的骨干,CSWin Transformer在图像分类、目标检测和语义分割任务上表现出了强大的性能。 在类似的FLOPs和模型尺寸下,CSWin Transformer变种显著优于以前的最先进(SOTA)视觉Transformer。 例如,我们的基地变体CSWin-B(精度达到85.4% ImageNet-1K没有任何额外的训练数据或标签,在COCO检测上达到了53.9 box mAP和46.4 mask mAP,51.7 mIOU ADE20K语义分割任务,超越先前的最先进的Transformer副本+ 1.2,分别为+ 2.0,1.4和2.0 +。 在一个更小的FLOPs设置下,我们的小变种CSWin-T甚至显示出更大的性能提升,即,ImageNet分类+1.4点,box AP +3.0, COCO检测+2.0 mask AP和ADE20K分割+4.6。 此外,当在更大的数据集ImageNet-21K上预处理CSWin Transformer时,我们在ImageNet-1K上获得了87.5%的top1精度,在ADE20K上获得了最先进的分割性能(55.2 mIoU)。  

2、相关工作

视觉Transformer:

卷积神经网络(Convolutional neural networks, CNN)多年来一直主导着计算机视觉领域,并取得了巨大的成功。 最近,开创性的工作ViT证明了纯基于Transformer的架构也可以获得非常有竞争力的结果,这表明了在统一框架下处理视觉任务和自然语言处理(NLP)任务的潜力。 建立在ViT上的成功,许多努力一直致力于设计更好的Transformer各种视觉任务的基础架构,包括低级图像处理,图像分类,目标检测和语义分割。 一些最近的工作试图为通用视觉任务设计一个通用视觉Transformer主干,而不是集中于一个特殊任务。 它们都遵循分层的Transformer体系结构,但采用不同的自关注机制。 分层设计的主要优点是利用多尺度特征,通过逐步减少令牌数量来降低计算复杂度。 本文通过引入十字窗自注意和局部增强位置编码,提出了一种新的分层视觉Transformer主干。  

              

Efficient Self-attentions:

在自然语言处理领域,许多有效的注意机制被设计用来提高Transformer处理长序列的效率。 由于在视觉任务中图像分辨率通常非常高,设计有效的自我注意机制也是非常关键的。 然而,现有的许多Transformer仍然采用原始的全自注意算法,其计算复杂度是图像大小的二次方。 为了降低复杂性,最近的视觉Transformer采用了局部自注意机制和它的移位/光晕版本来增加跨不同局部窗口的交互。 图像Transformer中另一种有效的自注意机制是轴向自注意,它沿水平或垂直轴顺序应用局部窗口来实现全局注意。 然而,其顺序机制和有限的窗口大小限制了其表征学习性能。  

Positional Encoding:

由于自注意是排列不变的,忽略了标记的位置信息,所以位置编码在Transformer中被广泛用于将这些位置信息添加回来。 典型的位置编码机制包括绝对位置编码(APE)、相对位置编码(RPE)和条件位置编码(CPE)。 APE和RPE通常被定义为一系列频率或可学习参数的正弦函数,它们是为特定的输入大小而设计的,对不同的输入分辨率不友好。 CPE以该特征作为输入,可以生成任意输入分辨率的位置编码。 然后将生成的位置编码添加到输入特征上,然后将其放入自注意块。 我们的LePE与CPE有着相似的精神,但是建议将位置编码作为一个并行模块添加到自注意操作中,并对每个Transformer块中的投影值进行操作。 该设计将位置编码从自注意计算中解耦出来,可以增强局部感应偏置。  

3、方法

3.1、整体框架

CSWin Transformer的总体架构如图2所示。 对大小的输入图像,我们遵循和利用重叠卷积标记嵌入(卷积7×7层与步幅4))获得的patch,并且每个token的维度是C。为了产生层级表示,整个网络由四个阶段组成。 在两个相邻的阶段之间使用卷积层(3 × 3, stride 2)来减少token的数量,并将通道维数增加一倍。 因此,所构建的特征图在第i阶段有个patch,这与传统的CNN骨干如VGG/ResNet相似。 每个阶段由N_i序列的CSWin Transformer块组成,并保持token的数量。 CSWin Transformer块总体上与普通的多头自注意Transformer块具有相似的拓扑结构,但有两个不同之处:1)它用我们提出的十字形窗口自注意机制取代了自注意机制;2)为了引入局部感应偏置,在自注意分支中加入LePE作为并行模块。 

3.2、Cross-Shaped Window Self-Attention

尽管具有强大的长期上下文建模能力,但原始的全自注意机制的计算复杂度是特征地图大小的二次函数。 因此,对于以高分辨率特征地图为输入的视觉任务,如目标检测和分割,将会产生巨大的计算代价。 为了缓解这一问题,现有的研究建议在局部注意窗口中进行自我意,并应用halo或shift窗口来扩大接受域。 然而,每个Transformer块内的patch仍然具有有限的关注区域,需要堆叠更多的块来实现全局接受域。 为了更有效地扩大注意区域,实现全局自注意,我们提出了十字形窗口的自注意机制,它是通过平行地在水平和垂直的条纹上进行自我注意,形成十字形窗口。  

 水平和垂直条:

根据多头自注意机制,首先将输入特征线性投影到K个头,然后每个头在水平或垂直条纹内进行局部自注意。  

 对于水平条自注意力,X被均匀地划分为不重叠的横条等宽sw,每个都包含 token。 这里,sw是条带宽度,可以通过调整来平衡学习能力和计算复杂度。 形式上,假设第k个头的投影查询、键和值的维数都为,则定义第k个头的水平条纹自注意输出为:

            

式中,分别表示第K个头的查询、键和值的投影矩阵,设。 垂直条纹的自我注意也可以类似地推导出来,其对第k个头部的输出记为。  

假设自然图像没有方向性偏差,我们将K个头像平均分成两个平行组(每个组个头像,K通常是偶数)。 第一组的头表现为横条纹的自我注意,而第二组的头表现为竖条纹的自我注意。 最后,这两个并行组的输出将被连接回一起。

        

其中,是常用的投影矩阵,它将自注意结果投射到目标输出维度(默认设置为C)。 如上所述,在我们的自注意机制设计中,一个关键的洞察力是将多个头部分成不同的组,并相应应用不同的自注意操作。 换句话说,通过多头分组,一个Transformer块中每个令牌的注意区域被扩大了。 相比之下,现有的自我注意机制对不同的多头应用相同的自我注意操作。 在实验部分,我们将展示这种设计将带来更好的性能。  

    

 计算复杂度分析:

CSWin自注意的计算复杂度为:

                

对于高分辨率输入,考虑H和W在早期阶段将大于C,在后期阶段小于C,我们在早期阶段选择小的sw,在后期阶段选择大的sw。 换句话说,调整sw提供了灵活性,以一种有效的方式扩大每个token在后期的关注范围。 此外,为了使224 × 224输入的中间特征图大小能被sw整除,我们经验地将sw设为1,2,7,4个阶段默认分别为7。  

局部增强的位置编码:

由于自注意操作是排列不变的,它会忽略二维图像中重要的位置信息。 为了将这些信息添加回来,现有的视觉Transformer已经使用了不同的位置编码机制。 在图3中,我们展示了一些典型的位置编码机制,并将它们与我们提出的本地增强位置编码进行了比较。 具体来说,APE和CPE在输入Transformer块之前将位置信息添加到输入令牌中,而RPE和LePE将位置信息合并到每个Transformer块中。 但是与在注意力计算中添加位置信息的RPE(即)不同,我们考虑一种更直接的方式,并将位置信息强加于线性投影值上。 设值元素之间的边用向量表示,则:

                         

然而,如果我们考虑E中的所有连接,将需要巨大的计算成本。 我们假设,对于一个特定的输入元素,最重要的位置信息来自它的局部邻域。 因此,我们提出了局部增强位置编码(LePE),并使用深度卷积算子对值V进行实现:

                       

3.3、CSWin Transformer块

CSWin Transformer块具有上述自注意机制和位置嵌入机制,形式上定义为:

           

 其中,为第l个Transformer块的输出,如果在每个阶段的开始存在,则为之前的卷积层。  

 3.4、结构变化

为了在类似的参数和FLOPs下与其他视觉Transformer基线进行公平的比较,我们构建了表1所示的四种不同的CSWin Transformer变种:CSWin- t (Tiny), CSWin- s (Small), CSWin- b (Base), CSWin- l (Large)。 它们是通过改变基础通道的尺寸C和每个阶段的块数来设计的。 在所有这些变体中,每个MLP的扩展比设置为4。 前三个阶段的四个阶段头数量设置为2,4,8,16,最后一个阶段设置为6,12,24,48。

4、实验

为了展示CSWin Transformer作为通用视觉主干的有效性,我们对ImageNet-1K分类、COCO目标检测和ADE20K语义分割进行了实验。我们还进行全面的消融研究,以分析CSWin Transformer的每个组件。

4.1 ImageNet-1K Classification

为了进行公平比较,我们将DeiT中的训练策略作为其他基线Transformer架构。具体来说,我们所有的模型都训练为300 epoch,输入尺寸为224 × 224。我们使用的AdamW优化器与重量衰减0.05为CSWin-T/S和0.1为CSWin-B。默认批大小和初始学习率设置为1024和0.001,使用20 epoch线性热身的余弦学习率调度器。我们对CSWin-T、CSWin-S和CSWin-B分别采用递增随机深度增强,最大速率分别为0.1、0.3、0.5。报告384 × 384输入的结果时,我们对30个epoch的模型进行了微调,权重衰减为1e-8,学习速率为1e-5,批量大小为512。

              

在表2中,我们将CSWin Transformer与最先进的CNN和Transformer架构进行了比较。模型根据计算复杂度分为三组:小型模型(约4.3G FLOPs);小型(约6.8G FLOPs)和基础模型(约15G FLOPs)。

它表明,我们的CSWin Transformer优于以前的最先进的视觉Transformer很大的增长。例如,CSWin-T仅用4.3G FLOPs就实现了82.7%的Top-1准确率,分别比CvT-13, Swin-T和DeiT-S高出1.1%、1.4%和2.9%。对于小型和基础模型设置,我们的CSWin-S和CSWin-B也达到了最好的性能。当对384 × 384输入进行微调时,观察到类似的趋势,这很好地证明了我们的CSWin Transformer强大的学习能力。

与最先进的CNN相比,我们发现我们的CSWin Transformer是唯一的基于 Transformer的架构,在小的和基本的设置下,实现了与EfficientNe相当甚至更好的结果,同时使用更少的计算复杂度。同样值得注意的是,神经体系结构搜索在EfficientNet中使用,但在我们的CSWin Transformer设计中没有使用。

我们在更大的ImageNet-21K数据集上进一步预处理了CSWin Transformer,该数据集包含14.2M图像和21K类。模型训练90个epoch,输入尺寸为224 × 224。我们使用了权重衰减为0.1 (CSWin-B)和0.2 (CSWin-L)的AdamW优化器,默认的批大小和初始学习率分别设置为2048和0.001。在ImageNet-1K上进行微调时,我们对模型进行了30个epoch的训练,权重衰减为1e-8,学习率为1e-5,批处理大小为512。CSWin-B和CSWin-L的递增随机深度都被设置为0.1。

表3报告了ImageNet-21K前训练的结果。与在ImageNet-1K上预训练的CSWin-B结果相比,ImageNet-21K的大规模数据带来了1.6%或1.7%的增益。CSWin-B和CSWin-L的top-1准确率分别达到87.0%和87.5%,超过以往的方法。

 4.2、COCO目标检测

接下来,我们分别用Mask R-CNN和Cascade Mask R-CNN框架评估CSWin Transformer在COCO目标检测任务上的效果。具体来说,我们对ImageNet-1K数据集的骨干进行预训练,并遵循Swin Transformer在COCO训练集上使用的微调策略。

我们比较了CSWin Transformer与各种骨干:以前的CNN骨干ResNet, ResNeXt(X),Transformer骨干PVT , Twins和Swin。表4报告了Mask R-CNN框架在“1×”(12个epoches)和“3 × +MS”(36个epoches,多尺度训练)时间表下的结果。它表明,我们的CSWin Transformer变种明显优于所有CNN和Transformer的竞争者。我们的CSWin-T在1×调度的+4.5的boxAP、+3.1的mask AP和3×调度的+3.0的box AP、+2.0的mask AP上的性能优于Swin-T。在小型和基础配置上,也可以实现类似的性能增益。

表5报告了使用Cascade Mask R-CNN框架的结果。尽管Cascade Mask R-CNN总体上强于Mask R-CNN,我们观察到CSWin transformer在不同的模型配置下仍然通过承诺的margins超过了同类工作。

              

4.3、ADE20K语义分割

我们进一步研究了CSWin Transformer在ADE20K数据集上的语义分割能力。这里我们使用语义FPN和pernet作为基本框架。为了进行公平比较,我们按照之前的工作,训练Semantic FPN 80k迭代,batch size 16,和pernet 160k迭代,batch size 16,更多细节在补充材料中提供。在表6中,我们报告了不同方法在mIoU和多尺度测试mIoU (MS mIoU)方面的结果。可以看到,我们的CSWin Transformer在不同的配置下显著优于以前的前沿技术。其中,CSWin-T、CSWin-S、CSWin-B的mIOU比Swin在语义FPN框架下的mIOU提高了+6.7、+4.0、+3.9,在Upernet框架下的mIOU提高了+4.8、+2.4、+2.7。与CNN的同类产品相比,性能的提高是非常有前景的,再次证明了视觉Transformer的潜力。在使用ImageNet-21K预训练模型时,我们的CSWin-L进一步实现了55.2 mIoU,比之前的最佳模型高出+1.7 mIoU,同时使用了更少的计算复杂度。

4.4、组件分析

为了更好地理解CSWin Transformer,我们删除了每个关键组件,并评估了分类和下游任务的性能。基于时间考虑,我们使用1倍时间表的Mask R-CNN作为检测和实例分割评估的默认设置,使用80k迭代和单尺度测试的语义FPN进行分割评估。

组件分析:

如前所述,CSWin的自注意有两个关键设计,即沿网络深度调整sw和并行多头分组。为了证明它们的重要性,1)我们评估了前三个阶段修复sw = 1的基线,并观察到ImageNet分类和COCO检测的性能显著下降,如表7所示。这说明通过调节信号来扩大注意区域是非常关键的;2)我们也像其他的自我注意机制一样,将平行自我注意设计改变为没有多头分组的顺序对等物。在三个不同任务上的一致性性能下降证明了多头分组的有效性。

在表7的最后两行中,我们进一步删除了整体架构设计和token嵌入部分。具体来说,我们发现“深窄”Transformer架构比“浅宽” Transformer架构更好。为了验证它,我们设计了一个浅宽变种,有2,2,6,2块四个阶段和基础通道尺寸C为96。显然,即使是更大的模型尺寸和FLOPs,浅宽模型在所有任务中的表现也比深窄模型差。对于patch嵌入部分,用[18]中使用的非重叠Transformer嵌入替换重叠Transformer嵌入时,性能也会变差,特别是在下游任务上,可见重叠Transformer嵌入的重要性。

在表7的最后两行中,我们进一步删除了整体架构设计和令牌嵌入部分。具体来说,我们发现“深窄” Transformer架构比“浅宽” Transformer架构更好。为了验证它,我们设计了一个浅宽变种,有2,2,6,2块四个阶段和基础通道尺寸C为96。显然,即使是更大的模型尺寸和FLOPs,浅宽模型在所有任务中的表现也比深窄模型差。对于patch嵌入部分,用[18]中使用的非重叠patch嵌入替换重叠patch嵌入[18]时,性能也会变差,特别是在下游任务上,可见重叠patch嵌入的重要性。

注意力机制比较:

CSWin的自我注意机制是我们模型中的关键元素。它在限制计算代价的同时,实现了强大的建模能力。为了验证这一点,我们将我们的十字形窗口自注意机制与现有的自注意机制(包括滑动窗口自注意、移动窗口自注意、空间可分离窗口自注意和顺序轴向窗口自注意)进行了比较。由于上面的大多数方法在每个阶段都需要均匀的层,为了比较公平,我们使用上面小节(2,2,6,2块为四个阶段和基础渠道是96)。同时,我们在所有这些模型中都采用了非重叠标记嵌入和RPE,以减少其他因素的影响。结果如表8a所示。显然,我们的CSWin自我注意机制在所有任务中都比现有的自我注意机制表现得更好。特别是对于顺序轴向自注意,虽然它也可以只用两个块捕获全局接受域,但它在下游任务中表现非常糟糕,因为从顺序和小条带宽度(sw = 1)的设计来看,每个Transformer块内的注意区域更小。

       

位置编码比较:

提出的LePE是专门为各种输入分辨率增强下游任务的本地位置信息而设计的。在表8b中,我们将LePE与其他最近的位置编码机制(APE、CPE和RPE)在图像分类、目标检测和图像分割方面进行了比较。此外,我们还测试了没有位置编码的变体(No PE)和CPE*,这是通过在每个Transformer块前应用CPE得到的。由比较结果可知:1)位置编码通过引入局部感应偏置可以带来性能提高;2)虽然RPE在固定输入分辨率的分类任务上取得了相似的性能,但LePE在不同输入分辨率的下游任务上表现更好(COCO上为+1.2 box AP和+0.9 mask AP, ADE20K上为+0.9 mIoU);3)与APE和CPE相比,LePE也取得了更好的性能。

5、结论

在本文中,我们提出了一种新的视觉Transformer架构,名为CSWin Transformer。CSWin Transformer的核心设计是CSWin自注意,它通过将多个磁头分成并行组,在水平和垂直条纹上进行自注意。这种多头分组设计可以有效地扩大一个Transformer块内每个token的关注范围。另一方面,数学分析还允许我们沿着网络深度增加条带宽度,以进一步扩大注意区域,并增加细微的额外计算代价。我们进一步将局部增强的位置编码引入到CSWin Transformer中,用于下游任务。大量的实验证明了我们所提出的CSWin Transformer的有效性和效率。在计算复杂度受限的情况下,我们在各种视觉任务上取得了最先进的性能。我们对CSWin Transformer的结果感到兴奋,并期待将其应用于更多的视觉任务。

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wanderer001

ROIAlign原理

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值