ConvNext

论文:A ConvNet for the 2020s

地址:https://paperswithcode.com/paper/a-convnet-for-the-2020s

论文阅读

  ConvNext指出虽然ViTs在分类任务中表现优异屡次刷新SOTA,但是应用于其他计算机视觉任务比如目标检测和语义分割却存在问题,直到分层Transformers比如Swin Transformer引入了一些卷积玩过的先验知识,才让Transformers能够成为通用的视觉任务主干网络并且在一系列视觉任务中取得不错的精度,然而这种分层方式的有效性却被归功于Transformer的内在优势而非卷积网络固有的归纳偏置。该论文重新对传统卷积网络的设计空间以及其他局限进行测试,逐步将ViTs中的一些Tricks应用到标注的ResNet中,发现了一些能够提升网络性能的关键因素,最终输出的网络命名为ConvNext。

  具体地,首先将ResNet50按照ViT的训练方式进行训练,得到一个基准模型,应用如下图所示的一系列调整:

训练技巧

  以与DeiT和Swin Transformer相似的训练方式,具体地:Epoch:90->300,使用AdamW优化器,数据增强方式使用MixUp、CutMix、RandAugment、RandomErasing,正则化策略使用随机深度和标签松弛,增强之后的训练策略将ResNet50的精度从76.1%提升至78.8%。

宏观设计(大改动)

  • 将ResNet四个阶段的Block数值比由[3,4,6,3]变为[3,3,9,3],精度:78.8%->79.4%;
  • 调整网络初始阶段的快速下采样策略,原始ResNet的ConvStem包含一个步长为2的7×7卷积,一个最大池化,实现4x下采样;具体改动:仿照ViT中的patchify操作(大卷积核且区域不相交)将Stem阶段改为步长为4的4×4卷积,精度:79.4%->79.5%。

ResNext风格化

  相比原始ResNet,ResNext的精度与FLOPs二者间的均衡更佳,其中ResNext的核心模块即为分组卷积,核心思想即多分组大宽度。具体地,ResNext在Bottleneck模块中使用3×3的分组卷积,然后扩展宽度消除精度损失。

  论文使用深度卷积即极限的分组卷积并将宽度从64扩展为96,精度:79.5%->80.5%。

Inverted Bottleneck

  ResNext的Bottleneck的设计是大通道维度->小通道维度(3×3卷积)->大通道维度,参考Swin Transformer的设计,ConvNext的Bottleneck设计为小通道维度->大通道维度(3×3卷积)->小维度,单模块参数量提升,但是总体来看输出通道唯独较小,总的参数量会降低,精度:80.5%->80.6%(ResNet-200:81.9%->82.6)。

大卷积核

  ViT由于non-local自注意力的实现方式,使得每一层都具有全局感受野,虽然Swin Transformer在自注意力模块中引入了local windows,但是window的尺寸也不会小于7×7,不同于当下卷积网络使用3×3卷积堆叠代替大卷积核以获得更好的激素,ConvNext使用大卷积核7×7,为此Bottleneck中将深度卷积层向上提了一层,这里精度并没有发生变化。

微观设计

  • 替换ReLU为GeLU:也就是使用一个更平滑的ReLU,精度保持不变;
  • 更少的激活函数:Transformer每个MLP模块只有一个激活函数,而ConvNets中的每一层后面都会跟激活函数。改动后ConvNext只保留了两个1×1卷积之间的激活函数,精度:80.6%->81.3%;
  • 更少的正则化层:将ConvNets中的大部分BN层都去掉,只保留1×1卷积层之前的BN,精度:81.5%->81.5%;
  • BN替换为LN:精度:81.4%->81.5%;
  • 独立的下采样层:ResNet的下采样操作是在每个阶段的开始阶段使用步长为2的3×3卷积和直连步长为2得1×1卷积完成,Swin Transformers中则是在不同阶段之间进行独立得下采样,ConvNext采用相同得策略,使用补偿为2得2×2卷积进行空间下采样,这个改动会导致训练不稳定,所以在下采样操作前、Stem后以及全局池化层之后加入了一些LN层来稳定训练,精度:81.5%->82.0%。

模型架构对比

  最终ResNet、Swin和ConvNext的模块结构对比如上图,架构细节对比如下图:


欢迎扫描二维码关注微信公众号 深度学习与数学 ,每天获取免费的大数据、AI等相关的学习资源、经典和最新的深度学习相关的论文研读,算法和其他互联网技能的学习,概率论、线性代数等高等数学知识的回顾。

论文阅读-主干网络(2022)-ConvNext:下一代卷积网络相关推荐

  1. 【论文解读】一种基于时间卷积网络的知识驱动股票趋势预测方法

    写在前面 下面这篇文章的内容主要是来自论文<Knowledge-Driven Stock Trend Prediction and Explanation via Temporal Convol ...

  2. 【深度学习】语义分割:论文阅读:(CVPR 2022) MPViT(CNN+Transformer):用于密集预测的多路径视觉Transformer

    这里写目录标题 0详情 1摘要 2 主要工作 3 网络结构 3.1 Conv-stem 3.2 Multi-Scale Patch Embedding 3.3 Multi-path Transform ...

  3. 【论文阅读】使用周期一致的对抗网络的非匹配的图片到图片的翻译

    Unpaired Image-Image Translation using Cycle-Consistent Adversarial Networks 论文地址:https://arxiv.org/ ...

  4. 【论文阅读】(2022)A goal-driven ruin and recreate heuristic for the 2D variable-sized bin packing prob...

    文章目录 一.Abstract 摘要 二.Introduction 介绍 三.Solution representation 解决方案的表示 四.Ruin and recreate heuristic ...

  5. [时序数据趋势预测]论文阅读思考总结[2022.3.25-2022.4.1]

    文章目录 1.时序数据预测为什么要用LSTM网络? 2.LSTM结构介绍 LSTM单元的网络体系架构 3.深度学习在大数据环境下的时间序列预测 4.时序数据预测应用领域 5.元启发式算法 6.短期电力 ...

  6. 【论文阅读】WWW 2022:Cross-modal Ambiguity Learning for Multimodal Fake News Detection

    Cross-modal Ambiguity Learning for Multimodal Fake News Detection 论文来源:WWW 2022 论文链接:https://dl.acm. ...

  7. 语义分割之FCN网络详解 全卷积网络

    1. FCN网络结构图 原论文链接:https://paperswithcode.com/paper/fully-convolutional-networks-for-semantic 参考B站视频: ...

  8. 深度卷积网络基本模型,图卷积网络 图像分类

    如何利用卷积神经网络提取图像特征 . 卷积神经网络有以下几种应用可供研究:1.基于卷积网络的形状识别物体的形状是人的视觉系统分析和识别物体的基础,几何形状是物体的本质特征的表现,并具有平移.缩放和旋转 ...

  9. 【论文阅读】ICLR 2022: Scene Transformer: A unified architecture for predicting future trajectories of ...

    ICLR 2022: Scene Transformer: A unified architecture for predicting future trajectories of multiple ...

  10. [论文阅读]用于车辆轨迹预测的卷积社交池Convolutional Social Pooling for Vehicle Trajectory Prediction

    文章目录 一.摘要 二.介绍 三.相关研究 3.1 基于机动的模型 3.2 交互感知模型 3.3 运动预测的递归网络 四.问题制定 4.1 参照系 4.2 输入输出 4.3 概率运动预测 4.4 操作 ...

最新文章

  1. getIntExtra() 获取传递过来的int 值总是默认值
  2. 数据智能是大数据的未来
  3. 【Matlab 控制】Simulink仿真+S函数例子
  4. wifi信号增强android,WiFi信号增强大师APP
  5. java工程怎么构造成moven_将普通java工程结构改为由maven管理的工程结构域
  6. 硬件电子c语言笔试,电子类常见笔试试题
  7. linux嵌入式入门到精通视频教程 Linux开发工程师培训教程
  8. 邮箱服务器未运行,smtp服务器,smtp服务器未设置
  9. Hive教程(01)- 初识Hive
  10. C语言输出图形:宝塔形(三角形)字母。第一行A,第二行BB,第三行CCC……
  11. java闰年的计算方法_java中对 闰年的计算 以及月份天数
  12. word背景颜色怎么设置绿色?把word背景调成绿色
  13. python程序设计实用教程答案_Python程序设计实用教程
  14. 数据驱动VR流体仿真技能
  15. 【Codeforces】1635E Cars 题解
  16. 安卓/IOS苹果上架
  17. js for循环 遍历数组 遍历对象属性
  18. poj 2404 Jogging Trails
  19. 导读:生活中的设计模式——启程之前,请不要错过我
  20. 资源——对话框(Dialog Box)

热门文章

  1. 应用安全-安全设备-Waf系列-软Waf-安全狗(Safedog)
  2. 雷林鹏分享:jQuery EasyUI 数据网格 - 自定义排序
  3. 如何让gitbook与github仓库关联
  4. 面向对象组件开发一个弹窗
  5. 基于visual Studio2013解决面试题之0202上下排
  6. Spring的IOC机制
  7. 阻止事件冒泡(event.stopPropagation())/阻止默认事件(event.preventDefault())
  8. 如何在SqlServer中快速有条件删除海量数据
  9. C++11 实现defer功能(转载)
  10. VS error C3867: 非标准语法;请使用 来创建指向成员的指针