论文笔记——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张图片

论文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建模感受野方式存在较大的差异,猜测这种差异可能是主要的原因之一。

大卷积核优劣势

优势

  • 相比于使用多个小卷积核进行堆叠,直接采用大卷积核可以更高效地拓展有效感受野

        根据有效感受野理论(如下公式),有效感受野尺寸正比于卷积核尺寸、正比于卷积核层数开根号,故直接增大卷积核尺寸比增加深度更为有效

\sqrt{Var[s_{n}]}=\sqrt{n}\sqrt{\sum_{m=0}^{k-1}\frac{m^{2}}{k}-(\sum_{m=0}^{k-1}\frac{m}{k})^2}=\sqrt{\frac{n(k^2-1)}{12}}=O(k\sqrt{n})

有效感受野理论见论文:Understanding the effective receptive field in deep convolutional neural networks

  • 大卷积核可以部分回避模型深度增加带来的优化难题

        从图中可以看出,加深网络并不一定能带来更大的有效感受野,一些网络层数增加后有效感受野并没有相应提升(因为很多信号是从shortcut层过去的并没有实际增加有效深度,见图中A、B对比)。

论文笔记——Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs_第2张图片

  •  大卷积核对FCN-based的下游任务有明显提升

论文笔记——Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs_第3张图片论文笔记——Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs_第4张图片

 劣势

  • 大卷积核不够高效,容易造成计算量的成倍增加

        对策:更浅的网络结构、卷积核分解、FFT Conv、稀疏算子、高效实现。

 论文笔记——Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs_第5张图片

  •  大卷积核难以兼顾局部特征,容易出现过度平滑现象

        对策:引入Identity shortcut、采用结构重参数化方法。

论文笔记——Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs_第6张图片论文笔记——Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs_第7张图片

Identity shortcut相关理论可见论文:Attention is Not All You Need: Pure Attention Loses Rank Doubly Exponentially with Depth

  •  大卷积核归纳偏置能力过强,限制了在大数据集上的表示能力

        对策:在小特征图上使用更大的卷积,部分破坏平移等变性,以获取更大的表示能力;类比ViT的位置编码,有利于编码绝对位置信息(同时论文也指出,大卷积归纳形状偏置的模式与人类更接近,这也是其优点之一)。

 论文笔记——Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs_第8张图片

RepLKNet:基于大卷积核设计的CNN架构

论文笔记——Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs_第9张图片

 论文笔记——Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs_第10张图片

实验

        不同卷积核大小对比。

        ImageNet图像分类。

论文笔记——Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs_第11张图片

        语义分割。

论文笔记——Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs_第12张图片

        目标检测。

论文笔记——Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs_第13张图片

你可能感兴趣的:(cnn,人工智能,图像处理,计算机视觉)