论文链接:https://arxiv.org/pdf/2303.17803.pdf
code:https://github.com/qhfan/CloFormer
1.背景
近年来,Vision Transformer在视觉识别、目标检测和语义分割等视觉任务上表现出优异的性能。然而,Vision Transformer的参数量和计算量太大,其大尺寸和高FLOPs不适合部署到移动设备。当直接缩小到适合移动设备的尺寸时,它们的性能又会显著降低。因此,不少工作都在聚焦于探索轻量级的视觉变换器,使 ViTs 适用于移动设备。
2.作者研究动机
研究现状:
Swin-Transformer在局部非重叠窗口中注意,而PVT使用平均池来合并令牌。然而,由于它们的模型尺寸大、FLOPs高,这些vit不适合移动设备。当直接缩小到移动友好的大小时,它们的性能会急剧下降。因此,最近的工作专注于探索轻量级视觉转换器以使 ViT 适用于移动设备。例如,MobileViT研究了如何将cnn与变压器相结合,而MobileFormer将轻量级MobileNet与变压器融合。此外,最近的EdgeViT提出了一个局部-全局-局部模块来聚合信息。以上所有的工作都旨在设计高性能、更少的参数和低FLOPs的移动友好模型。
以上模型 EdgeViT 和 MobileViT,只是简单使用原始卷积提取局部表示,这些方法仅使用卷积中的全局共享权重处理高频局部信息。虽然这些轻量级模型在多个数据集上取得了良好的结果,但没有一种方法尝试将共享权重与上下文感知权重相结合来处理高频局部信息。
本文创新点:
(1)本文设计了一种轻量级视觉变换器——CloFormer,引入了一个称为 AttnConv 的卷积算子,它采用注意力的风格,并充分利用共享和上下文感知权重对局部感知的好处。此外,它使用一种新方法,该方法结合了比普通局部自注意力更强的非线性来生成上下文感知权重。
(2)使用双分支架构,其中一个分支利用AttnConv捕获高频局部信息,而另一个分支通过下采样,利用传统的注意力机制捕获低频全局信息。双支路结构使CloFormer能够同时捕获高频和低频信息。
(3)在图像分类、目标检测和语义分割等任务上进行了大量的实验,证明了CloFormer的优越性。值得注意的是,CloFormer在ImageNet1k上仅使用4.2M的参数和0.6G的FLOPs就实现了77.0%的准确率,显著优于其他模型。
3.整体方案
如图所示,CloFormer前有四个阶段,包括conv stem、Clo block和ConvFFN。我们首先通过conv stem传递输入图像以获得标记。 conv stem由五个卷积和GroupNormal组成,前四个卷积的卷积核为3,步幅分别为 2、2、1、1,最后一个加一个点卷积,。随后,token经历 Clo block和ConvFFN的四个阶段来提取层次特征。
4.步骤说明
clo block
上图中,原文代码使用GroupNormal(组归一化),非LN;FC代表点卷积,matmul表示矩阵相乘,pool表示平均池化,DWconv代表深度可分离卷积,mul代表点乘,Swish表示swish激活函数
全局分支:
假设输入一张图片x(1,3,256,256),经过clo stem下采样得到x(1,64,64,64)。全局分支中先将x通过点卷积降维得到q, x(1,64,64,64)->(1,16,64,64);并将x通过8*8的窗口做平均池化得到kv; x(1,64,64,64)->kv(1,64,8,8)再通过点卷积降维得到k,v ;k=v(1,16,8,8)将q与k做矩阵乘法,经过softmax,再与v相乘得到注意力分数。
局部分支:
将x通过线性映射得到qkv,(1,144,64,64)->(3,1,144,64,64),将qkv通过3*3的深度可分离卷积映射(DWconv权值共享),q=k=v(1,48,64,64);q和k做点乘,然后做点卷积、swish激活函数、点卷积,最后与v相乘得到注意力分数。
将全局注意力分数与全局注意力分数在第一维度(通道维度)上拼接,再做点积。
convFFN
ConvFFN在普通的FFN的基础上,在GeLU激活之后采用深度可分离卷积(DW Conv),这使ConvFFN能够聚合局部信息。
CloFormer使用两种类型的ConvFFN。第一种是直接利用跳跃连接的In-Stage ConvFFN。另一种是两个stage的downsample。假如depth=8,前七层主要通过in-stage聚和局部信息,最后一层通过downsample下采样。
5.实验细节
基于 Clo 块和 ConvFFN 提出了 Clo前三种变体。ConvFFN 扩展比率设置为 4,所有 ConvFFN 层的内核大小设置为 5。为了在以后的阶段捕获高频特征和低频特征,我们逐渐增加 AttnConv 中使用的内核大小。具体来说,我们在第一阶段将 AttnConv 的内核大小设置为 3,在最后阶段将 9 设置为 9。
6.实验结果
实验设置:所有的模型都是从头开始训练的 300 个 epoch,将输入大小设置为 224 × 224。对于优化器,使用具有余弦衰减学习率调度器的 AdamW 。在 DI 之后,我们将初始学习率、权重衰减和总批量大小分别设置为 0.001、0.05 和 1024。从 XXS 到 S,随机深度的最大比率设置为 0/0.06/0.06。
实验结果:当cloFormer具有相似的模型大小和 FLOP 时,此模型优于以前的模型。具体来说,CloFormerXXS 仅使用 4.2M 参数和 0.6G FLOPs 实现了 77.0% 的 Top-1 准确率,分别超过了 ShuffleNetV22×、MobileViT-XS 和 EdgeViT-XXS 1.6%、2.2% 和 2.6%。以上所有结果都验证了CloFormer的优越性
7.总结
本文提出了一种具有上下文感知局部增强的轻量级视觉转换器 CloFormer,并开发了一种用于局部感知的新方法。在具有相似 FLOP 和模型大小的模型中,CloFormer实现了很强的的性能。此外,AttnConv 通过充分利用共享权重和上下文感知权重来有效地提取高频局部表示,双分支结构来混合高频信息和低频信息。AttnConv 和结构使我们的模型能够在各种视觉任务中表现出色。大量实验表明,CloFormer 是一种固体、轻量级的视觉主干,其性能优于许多现有的主干。