论文信息

题目:Conv2Former: A Simple Transformer-Style ConvNet for Visual Recognition
Conv2Former:一种简单的Transformer风格的卷积神经网络用于视觉识别
作者:Qibin Hou, Member, Cheng-Ze Lu, Ming-Ming Cheng, Jiashi Feng
源码链接:https://github.com/HVision-NKU/Conv2Former

论文创新点

  1. Transformer风格的卷积神经网络:我们提出了一种简化的Transformer风格的卷积神经网络(ConvNet),通过卷积调制操作来替代传统的自注意力机制。这种设计原则的简化使得网络能够更好地利用大型卷积核,并在视觉识别任务中取得了优异的性能。

  2. 卷积调制操作:我们通过比较视觉Transformers(ViTs)和ConvNets的空间信息编码方式,提出了一种新的卷积调制操作。这种操作通过计算大核卷积的输出和值表示之间的Hadamard积来模拟自注意力机制,从而简化了ViTs中的自注意力。

  3. 大核卷积的高效利用:我们展示了Conv2Former可以从更大的卷积核中受益,特别是当核大小从5×5增加到21×21时,性能持续提升。这与之前的研究结论不同,即标准深度卷积中核大小大于9×9时几乎不带来性能提升。

摘要

视觉Transformer最近因其强大的全局信息编码能力而成为视觉识别领域最受欢迎的网络架构。然而,其在处理高分辨率图像时的高计算成本限制了在下游任务中的应用。在本文中,我们深入研究了自注意力的内部结构,并提出了一种简单的Transformer风格的卷积神经网络(ConvNet)用于视觉识别。通过比较最近的ConvNets和视觉Transformers的设计原则,我们提出通过利用卷积调制操作来简化自注意力。我们展示了这种方法可以更好地利用卷积层中嵌套的大核(≥ 7×7),并且我们观察到,当逐渐增加核大小从5×5到21×21时,性能持续提高。我们构建了一系列使用所提出的卷积调制的层次ConvNets,称为Conv2Former。我们的网络简单易行。实验表明,我们的Conv2Former在所有ImageNet分类、COCO目标检测和ADE20K语义分割任务中,超越了现有的流行的ConvNets和视觉Transformers,如Swin Transformer和ConvNeXt。

关键字

卷积神经网络,视觉Transformer,卷积调制,大核卷积。

I. 引言

2010年代视觉识别的显著进展主要归功于卷积神经网络(ConvNets),以VGGNet、Inception系列和ResNet系列等为代表。这些识别模型主要通过堆叠多个构建块和采用金字塔网络架构来聚合具有大感受野的响应,但忽视了显式建模全局上下文信息的重要性。SENet系列突破了CNNs的传统设计,引入了基于注意力的机制来捕获长距离依赖关系,取得了出奇好的表现。

自2020年以来,视觉Transformer(ViTs)进一步推动了视觉识别模型的发展,并在ImageNet分类和下游任务中展示了比最先进的ConvNets更好的结果。这是因为与提供局部连接的卷积相比,Transformer中的自注意力机制能够建模全局成对依赖关系,提供了一种更有效的编码空间信息的方式。然而,自注意力在处理高分辨率图像时造成的计算成本是相当大的。

最近,一个有趣的工作,名为ConvNeXt,揭示了通过简单地现代化标准ResNet并使用与Transformer相似的设计和训练方法,ConvNets可以表现得甚至比一些流行的ViTs更好。RepLKNet也展示了利用大核卷积进行视觉识别的潜力。这些探索鼓励许多研究人员重新思考ConvNets的设计,利用大核卷积或高阶空间交互或稀疏卷积核等。到目前为止,如何更有效地利用卷积构建强大的ConvNet架构仍然是计算机视觉中的一个热门研究课题。

在本文中,我们也对如何更好地利用空间卷积感兴趣。与ConvNeXt工作不同,后者旨在调整训练配方或构建块中空间卷积的位置,我们比较了ViTs和ConvNets用于编码空间信息的不同方式。如图1左半部分所示,自注意力通过所有其他位置的加权求和来计算每个像素的输出。这个过程也可以通过计算大核卷积的输出和值表示之间的Hadamard积来模拟,我们称之为卷积调制,如图1右半部分所示。不同之处在于卷积核是静态的,而自注意力生成的注意力矩阵可以根据输入内容适应。我们的实验表明,使用卷积生成权重矩阵也能获得很好的结果。

简单地用所提出的卷积调制操作替换ViTs中的自注意力,就得到了我们提出的网络,称为Conv2Former。它的背后含义是我们旨在使用卷积来构建一个Transformer风格的ConvNet,其中卷积特征用作权重来调制值表示。与具有自注意力的经典ViTs不同,我们的方法像许多经典ConvNets一样是完全卷积的,因此其计算量随着图像分辨率的提高而线性增加,而不是像Transformer那样随着图像分辨率的提高而二次方增加。这使得我们的方法对下游任务更为友好,如目标检测和高分辨率语义分割。

本文的另一个主要贡献是,我们展示了Conv2Former可以从更大的卷积中受益更多,如11×11和21×21。这与之前ConvNets的结论不同,后者表明使用标准深度卷积,核大小大于9×9几乎不带来性能提升,但计算负担增加。我们的实验表明,当卷积核大小从5×5逐渐增加到21×21时,可以获得一致的性能提升。我们还展示了我们使用11×11深度卷积的方法甚至比最近使用超大核卷积的工作表现得更好(例如,31×31),反映了我们所提出的空间编码方法的有效性。

我们在流行的视觉任务上评估了Conv2Former,包括ImageNet分类、COCO目标检测/实例分割和ADE20K语义分割。为了验证Conv2Former在更大数据集上的能力,我们还对ImageNet-22k数据集上的模型进行了预训练,并在下游任务上评估了性能。实验表明,Conv2Former的表现优于流行的ConvNets,如ConvNeXt和EfficientNetV2。我们希望我们的工作能为未来的视觉识别模型提供有益的设计选择。

III. 模型设计

A. 架构

整体架构已在图2中展示。与ConvNeXt和Swin Transformer网络类似,我们的Conv2Former也采用了金字塔架构。总共有四个阶段,每个阶段具有不同的特征图分辨率。在两个连续阶段之间,使用patch embedding块来降低分辨率,通常是一个步长为2的2×2卷积。不同阶段具有不同数量的卷积块。我们构建了五个Conv2Former变体,即Conv2Former-N、Conv2Former-T、Conv2Former-S、Conv2Former-B、Conv2Former-L。详细信息在表I中总结。

阶段配置:当可学习参数的数量固定时,如何安排网络的宽度和深度对模型性能有影响[17],[35]。原始的ResNet-50将每个阶段的块数设置为(3, 4, 6, 3)。ConvNeXt-T将块数更改为(3, 3, 9, 3),遵循Swin-T中使用的原则,并对于更大的模型使用1:1:9:1的阶段计算比例。不同地,我们稍微调整了比例,如表I所示。我们观察到,对于小型模型(参数少于30M),更深的网络表现更好。四个不同的小型模型之间的简要比较可以在表II中找到。

B. 卷积调制块

我们在每个阶段使用的卷积块与Transformers有类似的结构,主要包含一个用于空间编码的自注意力层和一个用于通道混合的MLP。不同之处在于,我们用一个简单的卷积调制层替换了自注意力层。

自注意力:对于输入令牌序列X,长度为N,自注意力首先使用线性层生成键K、查询Q和值V,其中X、K、Q、V ∈ RN×C,N = H × W,C是通道数,H和W是输入的空间尺寸。输出是基于值的加权平均值,基于相似性得分A,可以写成:

Attention(X)=AV, \text{Attention}(X) = AV, Attention(X)=AV,

其中A衡量每对输入令牌之间的关系,可以写成:

A=Softmax(QKT). A = \text{Softmax}(QK^T). A=Softmax(QKT).

注意,我们为了简单起见省略了缩放因子。尽管自注意力在编码空间信息方面效率很高,但相似性得分矩阵A的形状为RN×N,使得自注意力的计算复杂度随着序列长度N的增加而呈二次方增长。

卷积调制:在我们的卷积调制层中,我们不是通过上述方式计算相似性得分矩阵A,而是通过调制值V与卷积特征来简化自注意力。具体来说,给定输入令牌X ∈ RH×W×C,我们使用一个简单的k×k大小的深度卷积和Hadamard积来计算输出Z,如下所示:

Z=A⊙V, Z = A \odot V, Z=AV,

A=DConvk×k(W1X), A = DConv_{k \times k}(W_1X), A=DConvk×k(W1X),

V=W2X, V = W_2X, V=W2X,

其中⊙是Hadamard积,W1和W2是两个线性层的权重矩阵,DConvk×k表示k×k大小的深度卷积。上述卷积调制操作使得每个空间位置(h,w)与以(h,w)为中心的k×k正方形区域内的所有像素相关联。通道之间的信息交互可以通过线性层实现。每个空间位置的输出是正方形区域内所有像素的加权和。

优势:与自注意力相比,我们的方法利用卷积来构建关系,这在处理高分辨率图像时,特别是在内存效率方面,比自注意力更优。与经典的残差块[5]、[20]相比,我们的方法由于调制操作,也能够适应输入内容。

C. 微观设计

大于7×7的核:如何利用空间卷积对ConvNet设计至关重要。自从VGGNet和ResNets以来,3×3卷积已成为构建ConvNets的标准选择。后来,深度可分离卷积的出现改变了这种情况。ConvNeXt表明,将ConvNets的核大小从3扩大到7可以提高分类性能。然而,进一步增加核大小几乎不带来性能提升,但计算负担增加,而无需重参数化。

我们认为,ConvNeXt之所以从大于7×7的核大小中受益甚微,是因为使用空间卷积的方式。对于Conv2Former,我们观察到,当核大小从5×5增加到21×21时,性能持续提升。这不仅适用于Conv2Former-T(82.8→83.4),也适用于具有80M+参数的Conv2Former-B(84.1→84.5)。考虑到模型效率,我们默认将核大小设置为11×11。

加权策略:如图1所示,我们将深度卷积的输出视为权重,以调制线性投影后的特征。值得注意的是,我们在Hadamard积之前没有使用激活或归一化层(例如,Sigmoid或Lp归一化)。这是获得良好性能的一个重要因素。例如,像SENet中所做的那样添加Sigmoid函数会将性能降低超过0.5%。

我们想强调的是,FocalNet采用了与我们相似的加权策略,但其动机不同。FocalNet旨在通过3×3深度卷积和全局平均池化来提取多层次特征,以实现层次上下文聚合。不同地,我们试图通过利用简单的大核卷积来简化自注意力操作,并研究一种有效利用大核卷积的ConvNets方法。我们的方法比FocalNet简单得多,实验也证明了Conv2Former优于FocalNet。

归一化和激活:对于归一化层,我们遵循原始ViT和ConvNeXt,采用Layer Normalization而不是广泛使用的批量归一化。对于激活层,我们使用GELU。我们发现Layer Normalization和GELU的组合带来了0.1%-0.2%的性能提升。

IV. 实验

A. 实验设置

数据集:我们在广泛使用的ImageNet-1k数据集上评估了所提出的Conv2Former的分类性能,该数据集包含约120万训练图像和1000个不同类别。我们在总共有50k图像的验证集上报告结果。像其他一些流行的模型一样,我们还测试了所提出的Conv2Former在大规模ImageNet-22k数据集上的预训练能力,该数据集包含约1400万图像和21841个类别。预训练后,我们使用ImageNet-1k数据集进行微调,并在ImageNet-1k验证集上报告结果。

训练设置:我们基于PyTorch实现我们的模型。在训练期间,我们使用AdamW优化器,并采用线性学习率缩放策略 lr = LRbase × batch_size/1024。初始学习率LRbase设置为0.001,权重衰减率设置为5 × 10^-2,如之前工作所建议。在ImageNet上的实验中,我们随机裁剪图像大小为224×224,并采用一些常见的数据增强方法,如MixUp和CutMix。我们还使用了随机深度、随机擦除、标签平滑、RandAug和初始值为1e-6的Layer Scale。所有模型训练300个周期。对于ImageNet-22k上的实验,我们首先在该数据集上预训练我们的模型90个周期,然后在ImageNet-1k上微调30个周期,遵循ConvNeXt的设置。

B. 与其他方法的比较

我们将我们的Conv2Former与一些流行的网络架构进行比较,包括Swin Transformer、ResNet、ConvNeXt、NFNet、DeiT、DWNet、FocalNet、VAN、SLak、EfficientNets、CoAtNet、RepLKNet和MOAT。注意,其中一些是CNNs和Transformers的混合模型。

ImageNet-1k:我们首先在ImageNet-1k数据集上训练我们的Conv2Former,并在表III中显示结果。对于小型模型(<30M),我们的Conv2Former与ConvNeXt-T和Swin-TT相比,性能分别提高了1.1%和1.7%。即使是具有15M参数和2.2G FLOPs的Conv2Former-N,也与具有28M参数和4.5G FLOPs的Swin-T-T表现相同。对于基本模型,性能提升有所下降,但与ConvNeXt-B和Swin-T-B相比仍有0.6%和0.9%的提升。与其他具有相似模型大小的流行模型相比,我们的Conv2Former也表现更好。特别是,我们的Conv2Former-B甚至优于计算量大两倍的EfficientNet-B7(84.4%对84.3%,37G对15G)。

ImageNet-22k:我们在大型ImageNet-22k数据集上预训练Conv2Former,然后在ImageNet-1k数据集上微调。这个实验可以反映我们Conv2Former的数据扩展能力。对于所有实验,我们遵循ConvNeXt中使用的训练和微调模型的设置。结果列在表IV中。与ConvNeXt的不同变体相比,我们的Conv2Formers在模型大小相似时都表现更好。此外,我们可以看到,在384×384的更高分辨率上进行微调时,我们的Conv2Former-L比CoAtNet等混合模型获得了更好的结果。我们的Conv2Former-L实现了87.7%的最佳结果。

定时:这里,我们比较我们的Conv2Former与三个流行模型,包括ConvNeXt、Swin Transformer和FocalNet,在推理速度方面的表现。我们在图3中展示了所有四种方法的准确率-速度曲线。我们可以看到,我们的Conv2Former在ImageNet上实现了分类准确率和推理速度之间的最佳权衡。

有效感受野分析:为了证明所提出的Conv2Former为何优于最近的最先进的基于CNN的方法,我们分析了不同方法产生的效果感受野(ERFs),如表V所示。我们使用两个阈值0.5和0.75来计算边长和面积比率。此外,我们还计算了在0.5到0.9的不同阈值下的平均结果,步长为0.05。我们可以看到,我们的Conv2Former在边长方面优于FocalNet、VAN和ConvNeXt。在面积比率方面,我们的Conv2Former获得了最佳结果。

如图4所示,我们还尝试可视化四个模型的不同阶段的ERFs。可以清楚地看到,在第2阶段和第3阶段,我们的Conv2Former可以比其他三种方法拥有更大的ERFs。我们认为,这主要是因为所提出的卷积调制块可以以更合适的方式编码空间信息。它使得我们的Conv2Former的中间层也能够捕获大的ERFs。因此,我们的Conv2Former凭借简单的网络架构就能产生最先进的结果。

优于其他大核方法的优势:使用大核卷积是协助CNNs构建长距离关系的直接方法。然而,直接在现有的基于CNN的架构中使用大核卷积(>7×7)会使识别模型难以优化。最近,有一些工作旨在开发新技术以激发CNNs中大核卷积的使用。在表VI中,我们展示了最近具有不同核大小的最先进的ConvNets的结果。我们可以看到,无需任何其他训练技术,如重参数化或使用稀疏权重,我们的Conv2Former在基本模型设置下,即使使用7×7的核大小也比其他方法表现更好。使用更大的核大小11×11可以获得更好的性能提升。这些结果反映了我们卷积调制块的优势。

C. 方法分析

本小节,我们对所提出的卷积调制操作进行了一系列方法分析。

核大小:ConvNeXt的工作表明,当深度卷积的核大小超过7×7时,没有性能提升。这里,我们研究了使用更大的核大小时模型性能的变化。我们为深度卷积选择了6种不同的核,即{5×5, 7×7, 9×9, 11×11, 15×15, 21×21},并基于两个模型变体Conv2Former-T和Conv2Former-B展示了结果。结果可以在图5(a)中找到。性能提升似乎在核大小增加到21×21时趋于饱和。这与ConvNeXt的结论不同,后者认为使用大于7×7的核不会带来明显的性能提升。这表明,使用卷积特征作为权重,如公式(3)所制定的,可以比传统方法更有效地利用大核。

Hadamard积优于求和:如图1所示,我们使用深度卷积提取的卷积特征通过Hadamard积操作来调制右侧线性分支的权重。在我们的实验中,我们还尝试利用逐元素求和来融合两个分支。图5(b)显示了不同模型大小的Conv2Former的比较结果。Hadamard积的表现优于逐元素求和,表明卷积调制在编码空间信息方面比求和更有效。我们还可以观察到,小型模型从Hadamard积中受益更多。

加权策略:除了上述两种融合策略外,我们还尝试了其他方式来融合特征图,包括在A之后添加Sigmoid函数,对A应用L1归一化,以及将A的值线性归一化到(0, 1]。结果总结在表VII中。我们可以看到,Hadamard积比其他操作获得了更好的结果。更有趣的是,当使用Sigmoid函数或线性归一化将A的值调整为正值时,性能会更多地下降。这与传统的注意力机制不同,如SE和CA,在重新加权之前使用Sigmoid函数。我们将这一问题留作未来的研究。

D. 视觉分析

特征可视化:为了进一步证明所提出的方法与最近的最先进的模型(如FocalNet和ConvNeXt)相比的有效性,我们使用Grad-CAM对不同模型产生的特征图进行可视化。视觉结果如图6所示。我们可以看到,与其他三个模型相比,我们的Conv2Former可以更准确地定位目标对象。特别是,对于形状细长的物体(见前两行),我们的Conv2Former也能精确捕捉。这使得我们的Conv2Former比其他模型具有更好的识别能力。

E. 在等向性模型到ViTs上的结果

与采用层次架构的经典CNNs不同,原始的ViT由于重的自注意力层,采用了包含patch embedding层和相同序列长度的Transformer堆叠的平面架构。这种平面架构已在最近的工作中原封不动地使用。这里,我们遵循ConvNeXt的做法,也尝试研究Conv2Former在ViT风格架构设置下的性能。与ConvNeXt一样,我们将块的数量设置为18,对于Conv2Former-IS和Conv2Former-IB,并调整通道数以匹配模型大小。我们使用了两个版本的patch embedding模块:一个16×16的卷积,步长为16,以及像[45]中所做的三个卷积。

表VIII显示了结果。我们以DeiT-S和DeiT-B模型作为基线。为了简洁,我们在模型名称中添加了一个字母“I”,表示相应的模型使用与原始ViT相同的等向性架构。我们可以看到,对于大约22M参数的小型模型,我们的Conv2Former-IS比DeiT-S和ConvNeXt-IS表现要好得多,性能提升约为1.5%。当模型大小扩展到80M+时,我们的Conv2Former-IB实现了82.7%的top-1准确率,比ConvNeXt-IB好0.7%,比DeiT-B好0.9%。此外,使用三个卷积进行patch嵌入可以进一步提高结果。

F. 下游任务的结果

本小节,我们在两个下游任务上评估我们的方法,包括COCO上的目标检测和ADE20k上的语义分割。

COCO上的结果:按照之前工作的做法,我们使用两个流行的目标检测器,Mask R-CNN和Cascade Mask R-CNN,并报告目标检测和实例分割的结果。对于训练,我们遵循ConvNeXt中使用的实验设置,包括多尺度训练、AdamW优化器与3×学习计划、GIoU损失等。读者可以参考[20]、[85]了解更多详细的实验设置。我们使用MMDetection工具箱来运行所有的目标检测实验。

结果可以在表IX中找到。对于小型模型,我们的Conv2Former-T在使用Mask R-CNN框架进行目标检测时,比SwinT-T和ConvNeXt-T实现了约2%的AP提升。对于实例分割,性能提升也超过1%。当使用Cascade Mask R-CNN框架时,我们可以看到比SwinT-T和ConvNeXt-T超过1%的性能提升。当模型规模扩大时,提升也很明显。

ADE20K上的结果:按照[14]、[20]的做法,我们在训练集上训练模型,并在val集上报告结果。对于小型、小型-、基本尺寸的模型,我们随机裁剪图像到512×512,对于大型模型,我们裁剪图像到640×640。我们使用UperNet作为我们的解码器。

结果总结在表X中。对于不同规模的模型,我们的Conv2Former都能超越Swin Transformer和ConvNeXt。特别是,在小型规模上与ConvNeXt相比有1.3%的mIoU提升,基本规模上的提升是1.1%。当我们进一步增加模型大小时,我们的Conv2Former-L与UperNet实现了54.3%的mIoU得分,也明显优于Swin-L和ConvNeXt-L。

V. 结论和讨论

本文提出了Conv2Former,一种新的视觉识别卷积网络架构。我们Conv2Former的核心是卷积调制操作,它通过仅使用卷积和Hadamard积来简化自注意力机制。我们展示了我们的卷积调制操作是利用大核卷积的更有效方式。我们在ImageNet分类、目标检测和语义分割的实验也表明,我们提出的Conv2Former优于以前的基于CNN的模型和大多数基于Transformer的模型。我们相信ConvNets的性能还有很大的提升空间,我们希望我们的方法能为未来的ConvNets研究提供洞见。

声明

本文内容为论文学习收获分享,受限于知识能力,本文对原文的理解可能存在偏差,最终内容以原论文为准。本文信息旨在传播和学术交流,其内容由作者负责,不代表本号观点。文中作品文字、图片等如涉及内容、版权和其他问题,请及时与我们联系,我们将在第一时间回复并处理。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐