服务粉丝

我们一直在努力
当前位置:首页 > 财经 >

Conv2Former:超简Transformer风格ConvNet,比ConvNeXt还秀,媲美VAN

日期: 来源:极市平台收集编辑:Happy
↑ 点击蓝字 关注极市平台

作者丨Happy
来源丨AIWalker
编辑丨极市平台

极市导读

 

本文旨在通过充分利用卷积探索一种更高效的编码空域特征的方式:通过组合ConvNet与ViT的设计理念,本文利用卷积调制操作对自注意力进行了简化,进而构建了一种新的ConvNet架构Conv2Former。 >>加入极市CV技术交流群,走在计算机视觉的最前沿

本文旨在通过充分利用卷积探索一种更高效的编码空域特征的方式:通过组合ConvNet与ViT的设计理念,本文利用卷积调制操作对自注意力进行了简化,进而构建了一种新的ConvNet架构Conv2Former。ImageNet分类、COCO检测以及ADE20K分割任务上的实验结果表明:所提Conv2Former取得了优于主流ConvNet(如ConvNeXt)、ViT(如Swin Transformer)的性能。

本文方案

上图给出了本文方案架构示意图,类似ConvNeXt、SwinT,Conv2Former采用了金字塔架构,即含四个阶段、四种不同尺寸的特征,相邻阶段之间通过Patch Embedding模块(其实就是一个卷积核与stride均为的卷积)进行特征空间分辨率与通道维度的恶变换。下表给出了不同大小Conv2Former的超参配置,

核心模块

上图给出了经典模块的架构示意图,从经典的残差模块到自注意力模块,再到新一代卷积模块。自注意力模块可以表示为如下形式:

尽管注意力 可以更好的编码空域相关性, 但其计算复杂性随 而爆炸性增长。

本文则旨在对自注意力进行简化:采用卷积特征对 进行调制。假设输入 , 所提卷积调制模块描述如下:

需要注意的是:上式中 表示Hadamard乘积。上述卷积调制模块使得每个位置的元素与其 近邻相关, 而通道间的信息聚合则可以通过线性层实现。下面给出了该核心模块的实现代码。

class ConvMod(nn.Module):  
    def __init__(self, dim):  
        super().__init__()  
        self.norm = LayerNorm(dim, eps=1e-6, data_format='channel_first')  
        self.a = nn.Sequential(  
            nn.Conv2d(dim, dim, 1),  
            nn.GELU(),  
            nn.Conv2d(dim, dim, 11, padding=5, groups=dim)  
        )  
        self.v = nn.Conv2d(dim, dim, 1)  
        self.proj = nn.Conv2d(dim, dim, 1)  
      

    def forward(self, x):  
        B, C, H, W = x.shape  
        x = self.norm(x)  
        a = self.a(x)  
        v = self.v(x)  
        x = a * v  
        x = self.proj(x)  
        return x  

微观设计理念

Larger Kernel than 如何更好的利用卷积对于CNN设计非常重要! 自从VGG、ResNet以来, 卷积成为ConvNet的标准选择; Xception引入了深度分离卷积打破了该局面; 再后来, ConvNeXt 表明卷积核从 3 提升到 7 可以进一步改善模型性能。然而, 当不采用重参数而进一步提升核尺寸并不会带来性能提升, 但会导致更高计算负担。

作者认为:ConvNeXt从大于 卷积中受益极小的原因在于使用空域卷积的方 式。 对于Conv2Former, 从 , 伴随核尺寸的提升可以观察到 Conv2 Former性能一致提升。该现象不仅发生在 Conv2 Former-T ), 同样在 Conv2 Former-B得到了体现 (84.1 。考虑到模型效率, 作者将默认尺寸设置为

Weighting Strategy 正如前面图示可以看到:作者采用Depthwise卷积的输出对特征 进行加权调制。需要注意的是, 在 Hadamard乘积之前并末添加任务规范化层 (如 Sigmoid、 ), 而这是取得优异性能的重要因素 (类似 SENet添加 Sigmoid会导致性能下降超

Normalization and Activations 对于规范化层,作者参考ViT与ConvNeXt采用了Layer Normalization,而非卷积网络中常用的Batch Normalization;对于激活层,作者采用了GELU(作者发现,LN+GELU组合可以带来0.1%-0.2%的性能提升)。

本文实验

上述两表给出了ImageNet分类任务上不同方案的性能对比,从中可以看到:

  • 在tiny-size(<30M)方面,相比ConvNeXt-T与SwinT-T,Conv2Former-T分别取得了1.1%与1.7%的性能提升。值得称道的是,Conv2Former-N仅需15M参数量+2.2GFLOPs取得了与SwinT-T(28M参数量+4.5GFLOPs)相当的性能。
  • 在base-size方面,相比ConvNeXt-B与SwinT-B,Conv2Former-B仍取得了0.6%与0.9%的性能提升
  • 相比其他主流模型,在相近大小下,所提Conv2Former同样表现更优。值得一提的是,相比EfficientNet-B7,Conv2Former-B精度稍有(84.4% vs 84.3%),但计算量大幅减少(15G vs 37G)。
  • 当采用ImageNet-22K预训练后,Conv2Former的性能可以进一步提升,同时仍比其他方案更优。Conv2Former-L甚至取得了87.7% 的优异指标

采用大核卷积是一种很直接的辅助CNN构建长程相关性的方法,但直接使用大核卷积使得所提模型难以优化。从上表可以看到:当不采用其他训练技术(如重参数、稀疏权值) 时, Conv2Former采用 时已可取得更好的性能;当采用更大的 核时, Conv2Former取得了进一步的性能提升。

上表给出了COCO检测任务上不同方案的性能对比,从中可以看到:

  • 在tiny-size方面,相比SwinT-T与ConvNeXt-T,Conv2Former-T取得了2% 的检测指标提升,实例分割指标提升同样超过1%;
  • 当采用Cascade Mask R-CNN框架时,Conv2Former仍具有超1%的性能提升。
  • 当进一步增大模型时,性能优势则变得更为明显;

上表给出了ADE20K分割任务上的性能对比,从中可以看到:

  • 在不同尺度模型下,Conv2Former均具有比SwinT与ConvNeXt更优的性能;
  • 相比ConvNeXt,在tiny尺寸方面性能提升1.3%mIoU,在base尺寸方面性能提升1.1%;
  • 当进一步提升模型尺寸,Conv2Former-L取得了54.3%mIoU,明显优于Swin-L与ConvNeXt-L。

一点疑惑解析

到这里,关于Conv2Former的介绍也就结束了。但是,心里仍有一点疑惑存在:Conv2Former与VAN的区别到底是什么呢?关于VAN的介绍可参考笔者之前的分享:《优于ConvNeXt,南开&清华开源基于大核注意力的VAN架构》。

先来看一下两者的定义,看上去两者并无本质上的区别(均为点乘操作),均为大核卷积注意力

  • VAN:

  • Conv2Former

结合作者开源代码,笔者绘制了上图,左图为Conv2Former核心模块,右图为VAN核心模块。两者差别还是比较明显的!

  • 虽然大核卷积注意力均是其核心,但Conv2Former延续了自注意力的设计范式,大核卷积注意力是其核心;而VAN则是采用传统Bottleneck设计范式大核卷积注意力的作用类似于SE
  • 从大核卷积内在机理来看,Conv2Former仅考虑了的空域建模,而VAN则同时考虑了空域与通道两个维度
  • 在规范化层方面,Conv2Former采用了Transformer一贯的LayerNorm,而VAN则采用了CNN一贯的BatchNorm;
  • 值得一提的是:两者在大核卷积注意力方面均未使用Sigmoid激活函数。两者均发现:使用Sigmoid激活会导致0.2%左右的性能下降。

为更好对比Conv2Former与VAN的性能,特汇总上表(注:GFLOPs列仅汇总了)在Image输入时的计算量Net-1K上的指标进行了对比,可以看到:在同等参数量前提下,两者基本相当,差别仅在0.1%。此外,考虑到作者所提到的“LN+GELU的组合可以带来0.1%-0.2%的性能提升”,两者就算是打成平手了吧,哈哈。

公众号后台回复“1124”获取极市年末CV资源汇总下载

极市干货
技术干货数据可视化必须注意的30个小技巧总结如何高效实现矩阵乘?万文长字带你从CUDA初学者的角度入门
实操教程Nvidia Jetson TX2使用TensorRT部署yolov5s模型基于YOLOV5的数据集标注&训练,Windows/Linux/Jetson Nano多平台部署全流程

CV技术社群邀请函 #

△长按添加极市小助手
添加极市小助手微信(ID : cvmart2)

备注:姓名-学校/公司-研究方向-城市(如:小极-北大-目标检测-深圳)


即可申请加入极市目标检测/图像分割/工业检测/人脸/医学影像/3D/SLAM/自动驾驶/超分辨率/姿态估计/ReID/GAN/图像增强/OCR/视频理解等技术交流群


极市&深大CV技术交流群已创建,欢迎深大校友加入,在群内自由交流学术心得,分享学术讯息,共建良好的技术交流氛围。

点击阅读原文进入CV社区
获取更多技术干货

相关阅读

  • 一文弄懂 Diffusion Model

  • ↑ 点击蓝字 关注极市平台作者丨梁德澎来源丨GiantPandaCV编辑丨极市平台极市导读 最近 AI 绘图非常的火,其背后用到的核心技术之一就是 Diffusion Model(扩散模型),虽然想要完
  • GET!2022魔都咖啡店攻略!

  • 源自越南的优质咖啡品牌中原传奇集团旗下第①家海外旗舰店已于上海南京西路699号开业中原传奇咖啡由创始人邓黎原武先生于1996年成立,经过26年的发展与品牌创新在全球超过83

热门文章

  • “复活”半年后 京东拍拍二手杀入公益事业

  • 京东拍拍二手“复活”半年后,杀入公益事业,试图让企业捐的赠品、家庭闲置品变成实实在在的“爱心”。 把“闲置品”变爱心 6月12日,“益心一益·守护梦想每一步”2018年四

最新文章

  • 关于高中档案管理现代化建设的研究

  • 作者/杨鄂湘 长沙市雅礼中学)  摘要:现如今社会信息技术正在快速的发展与进步,随着人们生活水平不断提高,信息化技术的应用范围也越发广泛。使用信息技术让人们的生活水平随之
  • 一文弄懂 Diffusion Model

  • ↑ 点击蓝字 关注极市平台作者丨梁德澎来源丨GiantPandaCV编辑丨极市平台极市导读 最近 AI 绘图非常的火,其背后用到的核心技术之一就是 Diffusion Model(扩散模型),虽然想要完