您现在的位置是:首页 >技术教程 >CloFormer:重新思考轻量级视觉Transformer中的局部感知网站首页技术教程

CloFormer:重新思考轻量级视觉Transformer中的局部感知

静静AI学堂 2024-10-19 00:01:09
简介CloFormer:重新思考轻量级视觉Transformer中的局部感知

摘要

在这里插入图片描述

论文链接:https://arxiv.org/abs/2303.17803v5
视觉transformer (vit)已被证明在各种视觉任务中是有效的。然而,将它们调整为移动友好的大小会导致性能显著下降。因此,开发轻量级视觉transformer已成为一个关键的研究领域。本文提出CloFormer,一种轻量级的视觉transformer,利用上下文感知局部增强。CloFormer探索了普通卷积算子中经常使用的全局共享权重和特定token的上下文感知权重在注意力中的表现,提出了一个有效而直接的模块来捕获高频局部信息。在CloFormer中,引入了AttnConv,一种attention风格的卷积算子。所提出的AttnConv使用共享权重来聚合局部信息,并配置精心设计的上下文感知权重来增强局部特征。AttnConv和普通attention的结合使用池化来减少CloFormer中的FLOPs,使模型能够感知高频和低频信息。在图像分类、目标检测和语义分割方面进行了广泛的实验,证明了CloFormer的优越性。代码可以在https://github.com/qhfan/CloFormer上找到。

1、简介

最近,视觉transformer (vit)在各种视觉任务中表现出卓越的性能,如视觉识别、目标检测和语义分割。在Dosovitskiy[10]引入原始ViT之后,人们提出了几种变体[33,56,57,54,27,53]以降低计算复杂度。例如,Swin-Transformer[33]在局部非重叠窗口中引导注意力,而PVT[54]使用平均池化来合并token。然而,这些vit由于其大的模型尺寸和高FLOPs而不适合移动设备。当直接缩小到适合移动设备的尺寸时,它们的性能会急剧下降。因此,最近的工作[37,40,61,3,69]专注于探索轻量级视觉transformer,以使vit适用于移动设备。例如,MobileViT[37]研究了如何将cnn与transformer结合,而MobileFormer[3]将轻量级的MobileNet[20]与transformer融合。此外,最近的EdgeViT[40]提出了一个局部-全局-局部模块来聚合信息。以上工作旨在设计出性能高、参数少、计算量小的适用移动端的模型。

然而,在现有的轻量级模型中,大多数方法仅专注于设计稀疏注意力来有效处理低频全局信息,而使用相对简单的方法来处理高频局部信息。具体而言,大多数模型,如EdgeViT[40]和MobileViT[37],仅使用基元卷积来提取局部表示,并且这些方法仅使用卷积必须处理高频局部信息的全局共享权重。其他方法,如LVT[61],首先将token展开到窗口中,然后在窗口内使用注意力[33]来获取高频信息。这些方法仅使用特定于每个token的上下文感知权重进行局部感知。虽然上述轻量级模型在多个数据集上取得了良好的效果,但没有方法试图设计一种更有效的方式,利用共享和上下文感知权重的优势来处理高频局部信息。传统卷积神经网络等基于共享权重的方法具有平移等特性。与之不同的是,基于上下文感知权重的方法,如LVT[61]和NAT[16],其权重可以随着输入内容的变化而变化。两种类型的权重在局部感知方面各有优势。

为了同时利用共享权重和上下文感知权重的优势,本文提出CloFormer,一种具有上下文感知局部增强的轻量级视觉transformer。CloFormer采用双分支结构。在本地分支中,引入了精心设计的AttnConv,一种简单有效的attention风格的卷积算子。提出的AttnConv有效地融合共享权重和上下文感知权重来聚合高频局部信息。首先,AttnConv利用共享权重的深度卷积(DWconv)来提取局部表示。其次,部署上下文感知权重以增强局部特征;与之前通过局部自注意力生成上下文感知权重的方法[33,16,61]不同,AttnConv使用门控机制生成上下文感知权重,这比常用的注意力机制引入了更强的非线性。AttnConv通过对Q和K使用卷积算子来聚合局部信息,然后计算Q和K的Hardmard乘积,并对结果进行一系列线性或非线性变换,生成[−1;1]。值得注意的是,AttnConv继承了卷积的平移等变性,因为其所有算子都是基于卷积的。

对于全局分支,我们使用普通注意力,但对K和V进行下采样以减少FLOPs,这有助于模型捕获低频全局信息。此外,还使用了一种简单的方法来融合局部和全局分支的输出。这种双分支结构允许CloFormer同时捕捉高频和低频信息。

在流行的视觉任务上进行的广泛实验,如ImageNet分类[7]、COCO目标检测/实例分割[32]和ADE20K语义分割[73],证明了所提出CloFormer的优越性。
在这里插入图片描述

如图1所示,CloFormer在具有相似FLOPs的模型中取得了最好的性能。在消融实验中,光谱分析表明,所提出方法结合了全局和局部分支,能够感知高低频信息。

本文的贡献总结如下:

  • 在CloFormer中,提出了一种名为AttnConv的卷积算子,采用了注意力的风格,并充分利用了共享和上下文感知权重的优势来进行局部感知。此外,它使用了一种比普通局部自注意力更强的非线性的新方法来生成上下文感知权重。
  • 在CloFormer中,我们采用了一个双分支架构,其中一个分支使用AttnConv捕获高频信息,而另一个分支使用香草注意力和下采样捕获低频信息。双分支结构使CloFormer能够同时捕获高频和低频信息。
  • 在图像分类、目标检测和语义分割方面的广泛实验证明了CloFormer的优越性。值得注意的是,CloFormer在ImageNet1k上仅用4.2M参数和0.6G FLOPs就达到了77.0%的准确率,明显优于其他具有类似模型大小和FLOPs的高级模型。

2、相关工作

视觉变形金刚。自近年来提出以来,ViT[10]因其出色的全局建模能力而迅速成为流行的可视化架构。一系列工作遵循原始的ViT,并在数据效率[51,52]和架构设计[56,29,8,9,1,43,5]方面取得了相当大的改进。其中,DeiT[51]通过知识蒸馏减少了vit对数据的依赖,而另一些则试图降低其计算复杂度[54,62,42,41]。大多数工作通过将执行注意力的token限制在某个区域来降低计算复杂度[33,9,16,61,4]。最著名的是Swin-Transformer[33],它使用窗口自注意力来减少flop。此外,一些替代方法在执行注意力时动态选择token[39,45,60]。具体来说,在前向传递中,包含少量信息的token被剪枝或池化,从而降低了计算复杂度。这些工作为提高ViT的性能,增强ViT的灵活性做出了努力。

轻量级视觉transformer。大多数现有的轻量级视觉transformer (10M 参数和2G FLOPs)是通过直接缩小大型模型[54,38,55,11,23,63,53]来获得的。然而,当将这些模型缩小到适合移动设备的尺寸时,它们的性能会显著下降。因此,近年来,许多工作都集中在轻量级transformer的设计上[40,3,37,13]。MobileViT[37]是一个著名的轻量级transformer,它将卷积与注意力连接起来,并以很少的参数实现高性能。而MobileFormer[3]将transformer和MobileNet[20]并行结合。最近提出的EdgeViT[40]使用局部-全局-局部模块来聚合信息并获得有竞争力的结果。

局部感知。在现有的方法中,通常采用两种方法来聚合局部信息。一种是使用共享权值卷积,这是卷积神经网络的基本组成部分,在所有传统的cnn中都得到了应用[48,18,21,49,35]。另一种方法涉及使用与局部自我注意密切相关的上下文感知权重[61,33,66,26]。在LVT[61]中,token被展开为窗口,并在每个窗口内执行注意。在SwinTransformer[33]中,token被直接划分为窗口,并计算一个窗口内token之间的相似度。这些方法都使用相似度分数作为上下文权重。然而,与现有的作品不同,在CloFormer中,我们试图有效地利用共享和上下文感知权重在本地感知中的优势。此外,我们利用比注意力具有更强非线性的方法来生成上下文感知权重。

3、方法

3.1、总体架构

如图2所示,CloFormer分为四个阶段,包括cloblock、ConvFFN和convolution stem。我们首先通过卷积系统传递输入图像以获得token。该系统由四个卷积组成,每个卷积的步幅分别为2、2、1和1。随后,token经过四个阶段的Clo块和ConvFFN来提取层次特征。最后,我们利用全局平均池化和全连接层来生成预测。
在这里插入图片描述

ConvFFN。为了将局部信息整合到FFN过程中,我们用ConvFFN取代了传统的FFN。ConvFFN和常用的FFN之间的主要区别是,ConvFFN在GELU激活后使用深度卷积(DWconv),这使得ConvFFN能够聚合局部信息。由于DWconv,下行采样可以直接在ConvFFN中执行,而无需引入PatchMerge模块。CloFormer使用了两种类型的ConvFFN。第一种是级内ConvFFN,它直接利用跳过连接。另一个是连接两个阶段的ConvFFN。在这种类型的ConvFFN的跳过连接中,使用DWconv和全连接层分别对输入进行下采样和上维。

Clo块。Clo块在CloFormer中起着至关重要的作用。每个块由一个局部分支和一个全局分支组成。在全局分支中,如图2所示,我们首先对K和V进行下采样,然后对Q、K和V进行标准注意处理,提取低频全局信息:
X global  = Attntion ⁡ ( Q g , Pool ⁡ ( K g ) , Pool ⁡ ( V g ) ) X_{ ext {global }}=operatorname{Attntion}left(Q_{g}, operatorname{Pool}left(K_{g} ight), operatorname{Pool}left(V_{g} ight) ight) Xglobal =Attntion(Qg,Pool(Kg),Pool(Vg))

除此之外,我们还使用建议的AttnConv作为本地分支。

3.2、AttnConv

全局分支的模式有效地减少了需要注意的flop的数量,也产生了一个全局接受野。然而,虽然它能有效捕获低频全局信息,但处理高频局部信息的能力不足[47]。为了解决这个限制,我们使用AttnConv作为解决方案。

AttnConv是使我们的模型实现高性能的关键模块。它包含了一些标准的注意力操作。具体来说,在AttnConv中,我们首先通过线性变换得到Q、K、V,这与标准注意力是一样的:
Q , K , V = F C ( X i n ) (2) Q, K, V=mathbf{F C}left(X_{i n} ight) ag{2} Q,K,V=FC(Xin)(2)

在Eq. 2中, X i n X_{in} Xin是AttnConv的输入。FC表示全连通层。在进行线性变换后,我们首先对V进行共享权值的局部特征聚合处理。然后,基于处理后的V和Q, K,我们进行上下文感知的局部增强。

局部特征聚合。如图2所示,对于V,我们使用简单的深度卷积(DWconv)来聚合局部信息。DWconv的权重是全局共享的:
V s = D W conv ⁡ ( V ) (3) V_{s}=mathbf{D W} operatorname{conv}(V) ag{3} Vs=DWconv(V)(3)

上下文感知的局部增强。在将V的局部信息与共享权值集成之后,我们将Q和K结合起来生成上下文感知权值。值得注意的是,我们使用了一种不同于局部自我关注的方法,这种方法更为复杂。具体来说,我们首先使用两个DWconvs分别聚合Q和K的本地信息。然后,我们计算Q和K的Hadamard积,并对结果进行一系列变换,以获得−1到1之间的上下文感知权重。最后,利用生成的权值对局部特征进行增强。整个过程可以概括如下:
Q l = D W conv ⁡ ( Q ) K l = D W conv ⁡ ( K ) Attn ⁡ t = F C ( Swish ⁡ ( F C ( Q l ⊙ K l ) ) ) Attn ⁡ = Tanh ⁡ ( A t t n t d ) X local  = Attn ⁡ ⊙ V s (4) egin{array}{l} Q_{l}=mathbf{D W} operatorname{conv}(Q) \ K_{l}=mathbf{D W} operatorname{conv}(K) \ operatorname{Attn}_{t}=mathbf{F C}left(operatorname{Swish}left(mathbf{F C}left(Q_{l} odot K_{l} ight) ight) ight) \ operatorname{Attn}=operatorname{Tanh}left(frac{A t t n_{t}}{sqrt{d}} ight) \ X_{ ext {local }}=operatorname{Attn} odot V_{s} end{array} ag{4} Ql=DWconv(Q)Kl=DWconv(K)Attnt=FC(Swish(FC(QlKl)))Attn=Tanh(d Attnt)Xlocal =AttnVs(4)
式4中,d为token的通道数,表示Hardmard积。与普通注意力相比,我们的方法引入了更强的非线性。具体来说,在局部自关注的上下文感知权值生成过程中,唯一的非线性算子是Softmax。然而,在AttnConv中,除了“Tanh”,还有“Swish”。更强的非线性导致更高质量的上下文感知权重。

与全局分支融合。我们使用一种简单的方法将局部分支的输出与全局分支的输出融合。具体来说,我们在通道的维度中连接两个输出。之后,在通道维度上应用一个全连接层:
X t = Concat ⁡ ( X local  , X global  ) X out  = F C ( X t ) (5) egin{array}{l} X_{t}=operatorname{Concat}left(X_{ ext {local }}, X_{ ext {global }} ight) \ X_{ ext {out }}=mathbf{F C}left(X_{t} ight) end{array} ag{5} Xt=Concat(Xlocal ,Xglobal )Xout =FC(Xt)(5)

3.3、不同的局部感知方式

如图3所示,我们将我们的AttnConv与传统卷积和局部自关注进行了比较。它们都使用残余结构。但是,在它们的主干上使用的运营商是不同的。
在这里插入图片描述

卷积。传统的残差块仅依靠卷积算子来获取高频局部信息。如图3(a)所示,对于每个token,卷积算子使用卷积核中的权重对其相邻token执行加权和。内核中的权重是全局共享的,对于不同的token保持相同。

局部Self-Attention。与卷积相反,如图3(b)所示,局部自注意力使每个token能够通过特定于token的权重从相邻token收集信息。该方法利用上下文权重提取高频局部表示,其中不同位置的token计算与相邻token的相似度分数,并根据相似度分数收集信息。

AttnConv。我们在图3©中描述AttnConv。在通过线性变换得到Q、K、V后,我们首先使用共享权值(DWconv)对V进行信息聚合。之后,我们使用比传统注意力具有更强非线性的方法来生成上下文感知权重。然后我们使用这些权重来增强局部特征。在我们的AttnConv中,我们同时利用了共享权重和上下文感知权重。

AttnConv的优点。与传统卷积相比,AttnConv中上下文感知权重的利用使模型在局部感知过程中能够更好地适应输入内容。与局部自关注相比,共享权值的引入使我们的模型能够更好地处理高频信息,从而提高了性能。此外,我们生成上下文感知权值的方法引入了比局部自关注更强的非线性,从而获得更好的性能。需要注意的是,AttnConv中使用的所有操作都是基于卷积的,保留了卷积的平移等价性。

3.4、实现细节

在表1中,我们给出了基于cloblock和ConvFFN的CloFormer的三种变体。所有ConvFFN层的扩展比设置为4,内核大小设置为5。为了在早期阶段捕获高频特征,在后期阶段捕获低频特征,我们逐渐增加AttnConv中使用的内核大小。具体来说,我们在第一阶段将AttnConv的内核大小设置为3,在最后阶段设置为9。
在这里插入图片描述

4、实验

在各种视觉任务上进行了实验,包括ImageNet1K[7]上的图像分类,COCO 2017[32]上的目标检测和实例分割,以及ADE20K[73]上的语义分割。在ImageNet1K上预训练CloFormer用于视觉识别任务,并在COCO 2017和ADE20K上评估CloFormer的泛化能力以进行密集预测。本文还进行了消融研究,以验证CloFormer中关键组件的重要性。有关实验设置和额外消融研究的细节可以在附录中找到。

4.1. ImageNet1K分类

实验设置。在ImageNet1K分类[7]上对CloFormer进行了基准测试,并在DeiT[52]中遵循相同的训练策略。除了重复增强和EMA之外,我们使用与DeiT相同的数据增强和正则化。我们所有的模型都是从头开始训练300个epoch,我们将输入大小设置为224 × 224。至于优化器,我们使用AdamW[34]与余弦衰减学习率调度器。在DeiT之后,我们将初始学习率、权重衰减和总批量大小分别设置为0.001、0.05和1024。从XXS到s的随机深度的最大速率被设置为0/0.06/0.06。为了公平的比较,我们不使用其他监督方法,如蒸馏[52]。
在这里插入图片描述

结果。我们在表2中报告了ImageNet1K分类结果。结果表明,当具有相似的模型大小和flop时,所提出模型的性能比以前的模型更好。CloFormerXXS仅用4.2M参数和0.6G FLOPs实现了77.0%的Top-1准确率,分别比ShuffleNetV2 2×、MobileViT-XS和EdgeViT-XXS提高了1.6%、2.2%和2.6%。此外,CloFormer-XXS的失败次数大约是MobileViT-XS的一半。CloFormerXS的性能与QuadTree-B-b1非常相似,但只需要QuadTree-B-b1的53%的参数和48%的FLOPs。对于具有大约1200万个参数和2.0GFLOPs的模型,CloFormer-S比VAN-B1高出0.5%,但使用的参数更少,FLOPs更低。以上结果验证了CloFormer的优越性。

4.2、COCO目标检测

实验设置。在COCO 2017数据集[32]上进行目标检测和实例分割。我们的实验设置遵循PVTv2[56]。我们使用RetinaNet[31]进行目标检测,Mask R-CNN[17]与FPN[30]进行实例分割。在训练过程中,图像被调整为800像素的短边。对于这两个任务,使用在ImageNet1K上预训练的骨干,并在COCO训练集上进行微调,batch大小为16,AdamW优化器的初始学习率设置为1 × 10−4。我们实现的coco目标检测是基于MMDetection[2]的。
在这里插入图片描述

结果。表3显示了RetinaNet和Mask R-CNN在1× schedule下的结果。CloFormer几乎在所有比较中都取得了最好的性能。对于RetinaNet,我们的CloFormer-XXS超过了最近的EdgeViT +0.9 box AP, CloFormer-XS超过了MPViT-T +0.4 box AP。当我们使用Mask R-CNN时,CloFormerXXS超过了EdgeViT- xxs的+0.4 box AP和+0.4 Mask AP。

4.3. ADE20K语义分割

实验设置。我们使用语义FPN[24]对ADE20K数据集[73]进行语义分割。将预训练的CloFormer纳入语义FPN中。在EdgeViT[40]之后,在训练期间,我们创建了图像的512 × 512随机裁剪,在推理期间,我们调整图像的大小,使其具有512像素的较短的边。在ADE20K训练集上用AdamW对模型进行微调,进行80K次迭代,该模型使用1 × 10−4的初始学习率。批处理大小设置为16,并报告验证集上的平均交并比(mIoU)分数。
在这里插入图片描述

结果。在表4中,我们将CloFormer与之前的vit和cnn在语义FPN[24]框架下进行比较。CloFormer在这些模型中取得了最好的性能。具体来说,我们的CloFormer-XXS比EdgeViT-XXS高出+0.7,CloFormer-XS在mIoU上超过EdgeViT-XS高出+1.0。

4.4、消融实验

在本节中,我们将Clo模块解耦为多个模块,并进行详细的消融研究。验证了AttnConv各部分在ImageNet分类、COCO目标检测和ADE20K语义分割上的作用。
在这里插入图片描述

光谱分析。在频谱分析方面,我们从CloFormer的第二阶段和第三阶段中选择了两个特征图。在图4中,我们比较了三个特征图:一个只使用共享权重(AttnConv的一部分),另一个采用上下文感知+共享权重(完整的AttnConv),第三个只使用全局分支。分析表明,与仅共享权重相比,完整的AttnConv捕获了更多的高频特征,而注意力分支在聚合低频特征方面特别有效。

ConvFFN。首先使用只包含全局分支的CloFormer模型进行实验。此外,将ConvFFN中DWconv的内核大小从3增加到5。如表5所示,模型的内核尺寸越大,表现越好。在加入核大小为5的ConvFFN后,该模型的性能与LVT相当[62]。结果表明,ConvFFN的DWconv已经捕获了一些高频局部信息。
在这里插入图片描述

共享的权重。表5表明,尽管ConvFFN已经捕获了高频局部特征,但在全局分支之外加入局部分支进一步提高了模型性能,即使仅利用共享权重来聚合高频信息。具体来说,模型的性能提高了0.5%,而参数数量减少了0.1M。这些结果表明,融合高频和低频信息可以为模型提供额外的好处。

直接使用Q和k。我们在添加共享权重后引入上下文感知权重。最初,我们直接使用Q和K的Hardmard乘积作为上下文感知权重。然而,当对Q和k的Hardmard乘积不做任何操作时,模型的收敛速度显著放缓。事实上,在这些情况下,与仅使用共享权重相比,模型的精度下降了2.9%。

添加Tanh。继续上一步,我们引入使用Tanh激活的上下文感知权重。然后使用得到的权重来增强局部特征。这种方法的影响从表5中可以看出,加入Tanh后,模型的收敛速度有了明显的提高,经过300 epoch的训练后,Top1-acc明显高于原始情况。这种性能的提高可以归功于Tanh提供的权重归一化,它将权重限制在-1和1之间。

添加DWconv。在计算Q和K的Hadamard乘积之前,我们合并了两个DWconvs来聚合Q和K的局部信息。从表5中可以明显看出这一步的影响,我们在其中观察到改进的模型性能。这强调了在上下文感知权重生成过程中纳入局部信息的重要性。通过添加高频的局部信息,该模型可以生成高质量的上下文感知权重,最终导致更好的性能。事实上,这一步使我们的模型的分类精度提高了0.4%。

非线性的影响。除了Tanh和DWconv之外,还包括两个全连接层,扩展了生成上下文感知权重的过程。然而,如表5所示,仅添加线性变换并不能显著提高模型的性能。然后,在两个全连接层之间引入Swish函数,以增强权重生成过程的非线性;我们的实验如表5所示,表明Swish的加入使模型的性能有了显著的提升(0.5%)。更多实验请见附录。

Local&&Global分支。如表5所示,我们比较了仅使用局部分支、仅使用全局分支和完整CloFormer的模型性能。完整的CloFormer比仅使用本地分支的性能提高了0.3%,比仅使用全局分支的性能提高了2.3%。

Context-aware&&Shared权重。如表5所示,我们研究了将全局分支与共享权重或上下文感知权重相结合时的模型性能。仅使用共享权重提取高频局部信息时,分类Top1准确率比使用完整AttnConv时降低了1.8%。类似地,当只使用上下文感知权重时,结果降低了0.6%。这些结果充分证明了AttnConv的合理性。
在这里插入图片描述

上下文感知权重生成。我们将上下文感知权重生成方法与局部自注意力(窗口自注意力)方法进行了比较,在三种局部特征提取方法上进行了实验,如图5所示。这些方法包括:(a)仅使用共享权重的标准卷积;(b)上下文感知权重和共享权重的组合,其中上下文感知权重通过窗口自注意力计算;©我们的AttnConv。如表6所示,AttnConv以略微增加参数数量为代价实现了性能的提升。卷积到AttnConv的渐进转换验证了AttnConv的有效性。与图5中的(b)相比,所提出的AttnConv在top1精度上取得了1.2%的优势,在box AP上取得了1.1的优势,在mask AP上取得了1.2的优势,在mIoU上取得了0.9的优势。更多实验请见附录。
在这里插入图片描述

5、结论

在本文中,我们提出了一种具有上下文感知局部增强功能的轻量级视觉转换器CloFormer,并开发了一种新的局部感知方法。我们的CloFormer在具有类似FLOPs和模型尺寸的模型中实现了具有竞争力的性能。此外,精心设计的AttnConv通过充分利用共享权重和上下文感知权重,有效地提取高频局部表示。此外,我们还采用了双支路结构来混合高频和低频信息。AttnConv和结构使我们的模型能够在各种视觉任务中表现出色。大量的实验表明,CloFormer是一种坚固、轻量级的视觉骨干,性能优于许多现有的骨干。

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。