论文笔记——Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs
论文PDF
作者
一作:丁霄汉 谷歌学术主页
通讯:张祥雨 谷歌学术主页
摘要
现代卷积神经网络模型普遍倾向于使用多个小卷积核来代替大卷积核,受到ViT的启发,论文重新审视了大卷积核在现代卷积神经网络中的使用情况,指出采用少量大卷积核的设计范式要明显优于目前采用大量小卷积核堆叠的设计范式,并提出了五条设计准则,用于指导高效大卷积核卷积神经网络的设计。根据这些准则,论文提出了一种称为RepLKNet的纯CNN架构,该架构采用了31*31的大卷积核代替了目前普遍使用的3*3卷积核。与Swin Transformer相比,RepLKNet在ImageNet和目标检测、语义分割任务上的性能相当或更好,且RepLKNet速度更快。此外,RepLKNet也展示出了在大数据和大模型上的优越的性能,如ImageNet上精度达到87.8%,ADE20K上mIoU达到56%。
贡献
1、基于对感受野差异的分析,本文发现采用少量大卷积核是比大量小卷积核更优秀的设计范式,于是尝试通过引入少量大核卷积来弥补ViT和CNN之间的性能差异。作者提出了五条准则来有效使用现代CNN中的超大卷积核,使其性能和速度大幅提高。五条设计范式如下:
- 使用depth-wise等结构稀疏化卷积,辅以恰当的底层优化
- 在网络中加入identity shortcut
- 用小卷积核做重参数化,避免过度平滑的问题
- 更多地关注下游任务的性能,而非ImageNet点数高低
- 在小的特征图上使用比特征图更大的卷积核
2、借鉴了Swin Transformer的宏观架构,提出了一种RepLKNet这样一个纯CNN架构并在其中使用了超大卷积( 27×27、 31×31)取代了MHSA(多头自注意力),在分类、检测、分割等任务上均强于传统的CNN架构,同时运行效率更高。
3、论文指出自注意力模块的大感受野是ViT取得优异性能的重要原因,在使用大卷积核设计之后CNN架构也可以拥有相当的性能并在shape bias等方面和ViT的表现更为接近。
动机
核心思考:ViT为什么能如此成功?
目前也有许多论文从不同的方面对ViT成功的原因进行了分析(如下列所示),但大部分论文都聚焦在ViT的self attention机制。
- 灵活的数据表示形式(Tensor、集合、序列、图)
- 长程关系建模能力
- 更强的表征能力
- 架构的合理性
- 对遮挡、噪声的鲁棒性
自注意机制是ViT成功的关键因素么?从一些文献的分析结果(如下列所示)来看,答案是未必的。
- query-key的交互并不是多头自注意力机制中对性能影响最大的单元
- 多头自注意力机制内部存在三要素:稀疏连接、权值共享、动态权重
- 将多头自注意力结构替换成MLP、Pooling后,仍能保持较强的性能
论文发现ViT和CNN建模感受野方式存在较大的差异,猜测这种差异可能是主要的原因之一。
大卷积核优劣势
优势
- 相比于使用多个小卷积核进行堆叠,直接采用大卷积核可以更高效地拓展有效感受野
根据有效感受野理论(如下公式),有效感受野尺寸正比于卷积核尺寸、正比于卷积核层数开根号,故直接增大卷积核尺寸比增加深度更为有效
有效感受野理论见论文:Understanding the effective receptive field in deep convolutional neural networks
- 大卷积核可以部分回避模型深度增加带来的优化难题
从图中可以看出,加深网络并不一定能带来更大的有效感受野,一些网络层数增加后有效感受野并没有相应提升(因为很多信号是从shortcut层过去的并没有实际增加有效深度,见图中A、B对比)。
- 大卷积核对FCN-based的下游任务有明显提升
劣势
- 大卷积核不够高效,容易造成计算量的成倍增加
对策:更浅的网络结构、卷积核分解、FFT Conv、稀疏算子、高效实现。
- 大卷积核难以兼顾局部特征,容易出现过度平滑现象
对策:引入Identity shortcut、采用结构重参数化方法。
Identity shortcut相关理论可见论文:Attention is Not All You Need: Pure Attention Loses Rank Doubly Exponentially with Depth
- 大卷积核归纳偏置能力过强,限制了在大数据集上的表示能力
对策:在小特征图上使用更大的卷积,部分破坏平移等变性,以获取更大的表示能力;类比ViT的位置编码,有利于编码绝对位置信息(同时论文也指出,大卷积归纳形状偏置的模式与人类更接近,这也是其优点之一)。
RepLKNet:基于大卷积核设计的CNN架构
实验
不同卷积核大小对比。
ImageNet图像分类。
语义分割。
目标检测。
论文笔记——Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs相关推荐
- 【论文阅读】Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs
[论文阅读]Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs 1.摘要 2.通过ViTs审视CNN 3. ...
- 深度学习论文: Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs及其PyTorch实现
深度学习论文: Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs及其PyTorch实现 Scaling ...
- Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs笔记
论文地址:https://arxiv.org/pdf/2203.06717.pdf 代码地址:GitHub - DingXiaoH/RepLKNet-pytorch: Scaling Up Your ...
- RepLKNet:Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs
<Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs> 论文: https://arxiv.o ...
- 【卷积核设计】Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs
文章目录 一.背景 二.方法 三.RepKLNet:a Large-Kernel Architecture 3.1 结构 3.2 尽可能的让卷积核变大 3.3 图像分类 3.4 语义分割 3.5 目标 ...
- Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs
文章目录 摘要 介绍 使用大卷积的指南 在深度卷积中使用大核 shotcut的使用 用小内核重新参数化[29]有助于弥补优化问题 对比提升ImageNet分类效果,大型卷积更能提升下游任务的效果 大型 ...
- 论文笔记(七)ISOINTENSE INFANT BRAIN SEGMENTATION WITH A HYPER-DENSE CONNECTED CNNs
论文地址:ISOINTENSE INFANT BRAIN SEGMENTATION WITH A HYPER-DENSE CONNECTED CNNs 摘要 提出超密集连接的3D卷积神经网络,该网络使 ...
- 论文笔记目录(ver2.0)
1 时间序列 1.1 时间序列预测 论文名称 来源 主要内容 论文笔记:DCRNN (Diffusion Convolutional Recurrent Neural Network: Data-Dr ...
- CLIP论文笔记--《Learning Transferable Visual Models From Natural Language Supervision》
CLIP论文笔记--<Learning Transferable Visual Models From Natural Language Supervision> 1.Introducti ...
最新文章
- python中的time库安装步骤-python中time模块需要安装么
- 【C 语言】数据类型本质 ( 数据类型别名 | typedef 关键字 | 为复杂数据类型设置别名 | 为简单数据类型设置别名 )
- 逻辑操作符的备选表示
- 2017.3.3 双栈排序 失败总结
- 初识Firebug 全文 — firebug的使用
- C++11中移动语义(std::move)和完美转发(std::forward)
- centos6.2安装office及PDF阅读器
- 医院各领域榜单。22个科室、100种常见疾病
- 马克思主义基本原理【0163】
- 案例|工业物联网解决方案•空调系统智能监控运维云平台
- StataIC——线性回归计算个股的β值
- CISCO路由器交换机简介及Packet+Tracer使用说明
- 解决IDEA启动失败 Improperly specified VM option...问题
- 50个BA分析工具第二个-Balanced ScoreCard
- JavaScript弹性透明的图片放大代码
- 【torch.optim】优化器的使用 / 学习率的调整 / SWA策略
- PB级大规模Elasticsearch集群运维与调优实践
- ubuntu系统20.4搭建c语言环境,ubuntu 20.04 中文环境和英文环境切换
- 拍拍贷业务数据探索分析-基于R语言
- python QT designer tableview 滑条QScrollBar样式设置后失效解决方案