作者丨科技猛兽

编辑丨极市平台

导读

本文提出一种卷积调制模块,利用卷积来建立关系,这比注意力机制在处理高分辨率图像时更高效,称为 Conv2Former。作者在 ImageNet 分类、目标检测和语义分割方面的实验也表明,Conv2Former 比以前基于 CNN 的模型和大多数基于 Transformer 的模型表现得更好。

本文目录

1 Conv2Former:Transformer 风格的卷积网络视觉基线模型
(来自南开大学,字节跳动)
1.1 Conv2Former 论文解读
1.1.1 背景和动机
1.1.2 卷积调制模块
1.1.3 Conv2Former 整体架构
1.1.4 实验结果

1 Conv2Former:Transformer 风格的卷积网络视觉基线模型

论文名称:Conv2Former: A Simple Transformer-Style ConvNet for Visual Recognition

论文地址:https://arxiv.org/pdf/2211.11943.pdf

1.1.1 背景和动机

以 VGGNet、Inception 系列和 ResNet 系列为代表的 2010-2020 年代的卷积神经网络 (ConvNets) 在多种视觉任务中取得了巨大的进展,它们的共同特点是顺序堆叠多个基本模块 (Basic Building Block),并采用金字塔结构 (pyramid network architecture),但是却忽略了显式建模全局上下文信息的重要性。SENet 模块系列模型突破了传统的 CNN 设计思路,将注意力机制引入到 CNN 中以捕获远程依赖,获得了更好的性能。

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

为了解决这个问题,一些 2022 年经典的工作试图回答:如何借助卷积操作,打造具有 Transformer 风格的卷积网络视觉基线模型?

比如 ConvNeXt[1]:将标准 ResNet 架构现代化,并使用与 Transformer 相似的设计和训练策略,ConvNeXt 可以比一些 Transformer 表现得更好。

从原理和代码详解FAIR去年的惊艳之作:全新的纯卷积模型ConvNeXt

再比如 HorNet[2]:通过建模高阶的相互作用,使得纯卷积模型可以做到像 Transformer 一样的二阶甚至更高的相互作用。

精度超越ConvNeXt的新CNN!HorNet:通过递归门控卷积实现高效高阶的空间信息交互

再比如 RepLKNet[3],SLaK[4]:通过 31×31 或者 51×51 的超大 Kernel 的卷积,使得纯卷积模型可以建模更远的距离。

又对ConvNets下手了!详解SLaK:从稀疏性的角度将卷积核扩展到 51×51

到目前为止,如何更有效地利用卷积来构建强大的 ConvNet 体系结构仍然是一个热门的研究课题。

1.1.2 卷积调制模块

本文的关键就是本小节介绍的卷积调制模块。如下图1所示, 对于传统的 Self-attention, 给定一个序列长度为 的输入 , 自注意力模块首先通过线性层得到 key , query , 和 value , 其中 是通道数。 和 是输入的空间大小。输出是注意力矩阵 (本质是相似度得分矩阵) :

式中, 度量每一对输入令牌之间的关系,可以写成:

为了简单起见,这里省略了 scale factor,自注意模块的计算复杂度随着序列长度N的增加呈二次增长,带来了更高的计算代价。

在卷积调制模块中, 不通过2式计算相似度得分矩阵 。具体来说, 给定输入 , 作者使用一个大小为 的 Depth-wise 卷积 和 Hadamard 积计算输出:

式中, 是 Hadamard 积, 是两个线性层的参数。上述卷积调制操作使每个空间位置 与以 为中心的 平方区域内的所有像素相关, 通道之间的信息交互可通过线性层实现。每个空间位置的输出是正方形区域内所有像素的加权和。

优势: 卷积调制模块利用卷积来建立关系,这比注意力机制在处理高分辨率图像时更高效。

图1:卷积调制模块示意图

ConvNeXt 表明,将 ConvNets 的核大小从3扩大到7可以提高分类性能。然而,进一步增加 Kernel 的大小几乎不会带来性能上的提升,反而会在没有重新参数化的情况下增加计算负担。但作者认为,使 ConvNeXt 从大于 7×7的 Kernel Size 中获益很少的原因是使用空间卷积的方式。对于 Conv2Former,当 Kernel Size 从 5×5 增加到 21×21 时,可以观察到一致的性能提升。这种现象不仅发生在 Conv2Former-T (82.8→83.4) 上,也发生在参数为80M+ 的 Conv2Former-B (84.1→84.5) 上。考虑到模型效率,默认的 Kernel Size 大小可以设置为 11×11。

图2:几种模块的空间编码过程比较

权重策略的优化: 注意这里作者直接将深度卷积的输出作为权重,对线性投影后的特征进行调制。Hadamard 积之前既没有使用激活层,也没有使用归一化层 (例如 Sigmoid 或 LN 层),如果像 SE 模块那样加一个 Sigmoid 函数,会使性能降低 0.5% 以上。

1.1.3 Conv2Former 整体架构

如下图3所示,与ConvNeXt 和 Swin Transformer 相似,作者的 Conv2Former 也采用了金字塔架构。总共有4个 Stage,每个 Stage 的特征分辨率依次递减。根据模型大小尺寸,一共设计了5个变体:Conv2Former-N,Conv2Former-T, Conv2Former-S, Conv2Former-B,Conv2Former-L。

图3:Conv2Former 整体架构

当可学习参数数量固定时,如何安排网络的宽度和深度对模型性能有影响。原始的 ResNet-50 将每个 Stage 的块数设置为 (3,4,6,3)。ConvNeXt-T 按照 Swin-T 的模式将 Block 数之比更改为 (3,3,9,3),并对较大的模型将 Block 数之比更改为 (1,1,9,1)。Conv2Former 的设置如下图4所示。可以观察到,对于一个小模型 (参数小于30M),更深的网络表现更好。

图4:Conv2Former 的架构配置

1.1.4 实验结果

ImageNet-1K 实验分为两种,一种是直接在 ImageNet-1K 上面训练和验证,另一种是先在 ImageNet-22K 上预训练,再在 ImageNet-1K 上微调和验证。

ImageNet-1K 实验设置

数据集:ImageNet-1K 训练 300 Epochs,ImageNet-1K 验证。

优化器: AdamW, lr batch_size :1024, , weight decay 为 , 数据增强: MixUp, CutMix, Stochastic Depth, Random Erasing, Label Smoothing, RandAug。

ImageNet-22K 实验设置

数据集:ImageNet-22K 预训练 90 Epochs,ImageNet-1K 微调 30 Epochs,ImageNet-1K 验证。

如下图5所示是 ImageNet-1K 实验结果。对于小型模型 (< 30M),与 ConvNeXt-T 和 Swin-T 相比,Conv2Former 分别有 1.1% 和 1.7% 的性能提升。即使 Conv2Former-N 只有 15M 参数和 2.2G FLOPs,其性能也与具有 28M 参数和 4.5G FLOPs 的 SwinT-T 相同。对于其他流行的模型,Conv2Former 也比类似模型尺寸的模型表现更好。Conv2Former-B 甚至比 EfficientNetB7 表现得更好 (84.4% vs . 84.3%),后者的计算量是 Conv2Former 的两倍 (37G vs. 15G)。

图5:ImageNet-1K 实验结果

如下图6所示是 ImageNet-22K 的实验结果。作者遵循 ConvNeXt 中使用的设置来训练和微调模型。与 ConvNeXt 的不同变体相比,当模型尺寸相似时,Conv2Former 都表现得更好。此外,我们可以看到,当在更大的分辨率384×384 上进行微调时,Conv2Former-L 获得了比混合模型 (如 CoAtNet 和 MOAT) 更好的结果,Conv2Former-L 达到了 87.7% 的最佳结果。

图6:ImageNet-22K 实验结果

如下图8所示是关于卷积核大小的消融实验结果。在 大小增加到 21 × 21 之前,性能增益似乎已经饱和。这个结果与 ConvNeXt 得出的结论截然不同,ConvNeXt 得出的结论是,使用大于 7×7 的 Kernel 不会带来明显的性能提升。

图7:onv2Former 对于大卷积核的泛化效果很好

消融实验1:卷积核大小

如下图8所示是关于卷积核大小的消融实验结果。在 Kernel Size 增加到 21 × 21 之前,性能增益已经饱和。这个结果与 ConvNeXt 得出的结论截然不同,ConvNeXt 得出的结论是,使用大于 7×7 的 Kernel Size 不会带来明显的性能提升。这表明 Conv2Former 的做法能比传统方式更有效地利用大 Kernel 的优势。

图8:卷积核大小,融合策略的消融实验结果

消融实验2:不同融合策略的影响

如下图8, 9所示是关于不同融合策略影响的消融实验结果。除了上述两种融合策略外, 作者还尝试使用其他方法来融合特征映射, 包括在 之后添加一个 Sigmoid 函数, 对 进行 归一化 处理, 将 的值线性归一化到(0,1]。可以看到, Hardmard 积比其他操作的结果更好。作者发现, 无论是通过 Sigmoid 函数, 还是通过线性的归一化操作, 将 线性化到 之间, 都会对性能有损害。

直筒架构实验结果

遵循 ConvNeXt 的做法,作者也训练了 Conv2Former 的直筒架构 (Isotropic Models) 版本,结果如下图9所示。作者将 Conv2Former-IS 和 Conv2Former-IB 的块数设置为18,并调整通道数以匹配模型大小。字母 "I" 表示直筒架构,可以看到,对于 22M 参数左右的小型模型,Conv2Former-IS 比 DeiT-S 的表现要好得多。当将模型尺寸放大到 80M+ 时,Conv2Former-IB 达到了 82.7% 的 Top-1 Accuracy,这也比 ConvNeXt-IB 高 0.7%,比 DeiT-B 高0.9%。

图9:直筒架构实验结果

目标检测实验结果

如下图10所示是不同骨干网络,以 Mask R-CNN 为检测头和 Cascade Mask R-CNN 为实例分割头在 COCO 数据集的实验结果。训练策略遵循 ConvNeXt。对于小模型,使用 Mask R-CNN 框架时,Conv2Former-T 比 SwinT-T 和 ConvNeXt-T 获得了约 2% AP 的改进。

图10:目标检测实验结果

语义分割实验结果

如下图11所示是不同骨干网络,以 UperNet 为分割头在 ADE20k 上的实验结果。对于不同尺度的模型,我们的Conv2Former可以优于Swin Transformer和ConvNeXt。

总结

本文试图回答:如何借助卷积操作,打造具有 Transformer 风格的卷积网络视觉基线模型。本文提出一种卷积调制模块,利用卷积来建立关系,这比注意力机制在处理高分辨率图像时更高效。最终的模型称为 Conv2Former,它通过只使用卷积和 Hadamard 积,简化了注意力机制。卷积调制操作是一种利用大核卷积的更有效的方法。作者在 ImageNet 分类、目标检测和语义分割方面的实验也表明,Conv2Former 比以前基于 CNN 的模型和大多数基于 Transformer 的模型表现得更好。

参考

  1. ^A ConvNet for the 2020s

  2. ^HorNet: Efficient High-Order Spatial Interactions with Recursive Gated Convolutions

  3. ^Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs

  4. ^More ConvNets in the 2020s: Scaling up Kernels Beyond 51 × 51 using Sparsity

往期精彩回顾适合初学者入门人工智能的路线及资料下载(图文+视频)机器学习入门系列下载机器学习及深度学习笔记等资料打印《统计学习方法》的代码复现专辑机器学习交流qq群955171419,加入微信群请扫码

【深度学习】超越ConvNeXt!Transformer 风格的卷积网络视觉基线模型Conv2Former相关推荐

  1. 芒果改进YOLOv5系列:原创结合Conv2Formers改进结构,Transformer 风格的卷积网络视觉基线模型,超越ConvNeXt结构

  2. 芒果改进YOLOv7系列:超越ConvNeXt结构,原创结合Conv2Former改进结构,Transformer 风格的卷积网络视觉基线模型,高效涨点

  3. 深度学习笔记(27) 经典卷积网络

    深度学习笔记(27) 经典卷积网络 1. 前言 2. LeNet-5 3. AlexNet 4. VGGNet 1. 前言 讲了基本构建,比如卷积层.池化层以及全连接层这些组件 事实上,过去几年计算机 ...

  4. 深度学习笔记(29) 1×1 卷积

    深度学习笔记(29) 1×1 卷积 1. 1×1 卷积 2. 1×1 卷积的作用 3. 1×1 卷积的应用 1. 1×1 卷积 在架构内容设计方面,其中一个比较有帮助的想法是使用1×1卷积 过滤器为1 ...

  5. 【深度学习】Swin Transformer结构和应用分析

    [深度学习]Swin Transformer结构和应用分析 文章目录 1 引言 2 Swin Transformer结构 3 分析3.1 Hierarchical Feature Representa ...

  6. 深度学习网络模型——Vision Transformer详解 VIT详解

    深度学习网络模型--Vision Transformer详解 VIT详解 通用深度学习网络效果改进调参训练公司自己的数据集,训练步骤记录: 代码实现version-Transformer网络各个流程, ...

  7. 【深度学习】深入浅出transformer内部结构

    [深度学习]深入浅出transformer内部结构 文章目录 1 概述 2 Self-Attention与Transformer 3 Feed Forward Neural Network 4 enc ...

  8. 深度学习100例 | 第25天-卷积神经网络(CNN):中文手写数字识别

    大家好,我是『K同学啊』! 接着上一篇文章 深度学习100例 | 第24天-卷积神经网络(Xception):动物识别,我用Xception模型实现了对狗.猫.鸡.马等四种动物的识别,带大家了解了Xc ...

  9. [深度学习] 自然语言处理---Transformer原理(一)

    <Attention Is All You Need>是Google在2017年提出的一篇将Attention思想发挥到极致的论文.该论文提出的Transformer模型,基于encode ...

最新文章

  1. 【数据库】sqlite3数据库备份、导出方法汇总
  2. C语言strcpy,strncpy和strlcpy讲解
  3. 经常误提交.DS_Store文件怎么办?Git全局排除配置了解一下!
  4. php ci 参数,CI如何写一个控制器,并传递参数正常解析访问?
  5. 【Python】原创 | 写一个符合人类思维的四舍五入函数(No round !!!)
  6. 卡内基·梅隆大学计算机科学系主任周以真的父母是中国人吗,一篇是王飞跃等人翻译的美国卡内基梅隆大学计算机科学系主任.PPT...
  7. Java内存区域(运行时数据区域)和内存模型(JMM)
  8. linux流式访问日志,流式实时日志分析系统的实现原理
  9. sql server合并行_合并SQL Server复制参数化的行筛选器问题
  10. 最近完成的一个可伸缩性的WEB开发框架
  11. vue中使用flexible.js并配合px2rem-loader实现移动端布局
  12. Silverlight实用窍门系列:20.后台CS代码中创建四种常用的动画效果【附带源码实例】...
  13. python的序列类型包括_python基础之常用序列类型(字符串)
  14. Adobe Reader PDF阅读器背景设置为护眼豆沙色
  15. 智慧仓储管理系统实时仓储作业管理
  16. 空间频率(spatial frequency)
  17. 如何保证虚拟机ip地址不变
  18. sizeof 知多少
  19. 实战游戏项目管理1-规划篇
  20. 骨传导也有动铁单元般的音质,绝对品质,真的是诚意满满

热门文章

  1. comm.PSKModulator函数详解
  2. nginx api接口代理配置细节
  3. 3个月工作经历能不能写在简历上呢
  4. 2014 WOT全球软件技术峰会第一天(上午)
  5. hdu 1845(最大匹配)
  6. mega盘要_[MEGA DEAL]支付您想要的:White Hat Hacker 2017捆绑包
  7. 天翼云赋能工业行业 安全上云更有保障
  8. SAP中通过生产版本有效期控制物料生产入库分析测试
  9. 可乐瓶游戏c语言,大班活动玩可乐瓶教案
  10. 英语2017年6月听力