在CVPR2022中,一篇专注于优化卷积核大小的分类网络论文吸引了大量的关注,这就是由清华和旷视提出的RepLKNet[1]。RepLKNet与目前流行的CNN模型背道而驰,其核心模块由31×31的大卷积核构成。在Vision Transformer (ViT) 流行的大背景下,RepLKNet以纯CNN的架构获得了超过Swin Transformer( Top-1 acc: 87.3%)的性能。今天就来深入解读下这篇被CVPR2022收录的论文,以及使用飞桨框架实现RepLKNet。
卷积神经网络曾是现代计算机视觉系统里编码器的常见选择。然而近两年,Vision Transformer在图像分类任务及其下游任务(如目标检测和语义分割等任务)中不断冲击着CNN的地位。
为什么ViTs如此强大?一些研究认为,多头自注意(MHSA)机制在ViTs中起着关键作用。一些工作认为MHSA具有CNN缺乏的获取长期依赖的能力,能够对输入的特征进行全局建模,因此单个MHSA层的每个输出都能够获取全局信息。但是CNN中,除了第一层外很少会采用较大的卷积核,一般都是通过多个小卷积核叠加来增加感受野,只有一些比较老的网络和采用神经网络搜索搜索出来的网络结构会使用较大的卷积核(大于5x5)。
大的卷积核也可以很有效的进行计算
大卷积核首先带来的问题就是大量的参数和浮点运算量,大多数现有的深度学习框架对大卷积核的支持很差,无法有效率地进行卷积运算。为了解决参数量和浮点运算量的问题,作者运用了深度可分离卷积。
深度可分离卷积分为DepthWise(DW) convolution、PointWise(PW) convolution两部分。DepthWise(DW) convolution是输入通道和输出通道以及分组数都相同的卷积形式,与传统的卷积不同的是,DW卷积的每一个卷积核只计算对应的一张特征图,参数量和计算量是原来的1/n(n为输入通道数)。虽然DW卷积能够减少大量的参数,但会减少不同层特征像素点之间的信息交互,最终会带来精度上的损失。PointWise(PW) convolution是输出为n通道的1×1卷积,用来尽量弥补DW卷积缺少的特征交互过程,PW实际上对所有的特征图进行了点对点的乘加运算,尽量地结合不同特征图的信息。
残差结构对于大卷积核模型至关重要
大卷积核需要依靠残差连接。作者使用MobileNetV2作为基线网络进行实验。将基线网络中深度可分离卷积的3×3大小的卷积核替换为13×13大小的卷积核,重新训练后分类准确率增加了0.77%。但是在去掉模型中的残差结构后,准确率只有53.98%。可以得出结论:残差结构对大卷积核的收益远大于小卷积核,因此在具有大卷积核的模型中,残差结构至关重要。
使用小卷积核重参数化来补优化问题
大卷积核在下游任务中表现更加优秀
大卷积核在小特征图上依然效果显著
在MobileNetV2的模型中,将224×224尺寸的图像作为输入,MobileNetV2中由bottleneck组成的stage层会对图像进行特征提取以及尺寸缩减,最后一个stage层输入的是7×7尺寸的特征,再对这个特征进行卷积、池化、分类的操作就可以得到分类结果。 作者将MobileNetV2结构中最后一个stage层的卷积核变为7×7和13×13的大小。结果如下表所示,发现对比原模型,修改后的模型效果依然有明显的增加。这说明了大卷积核在小特征图同样有效。
RepLKNet网络结构介绍
在上一节所述的5条经验准则的指导下,作者构建如下图所示的RepLKNet。
图片处理主要包括三个层次:
Stem层:
Stage层:
Transition层:
随着卷积核变大,ADE20K的mIoU在逐渐变高,因此作者采用了31组作为最终模型,即RepLKNet-B。此外,作者通过增加通道数设计了不同版本的RepLKNet,即四个stage分别为192,384,768,1536通道数的RepLKNet-L以及有着256,512,1024,2048通道数的RepLKNet-XL。
性能介绍
分类性能
检测与分割性能
语义分割数据集为Cityscapes和ADE20K。RepLKNet以UperNet的经典分割模型作为网络结构,与多种模型进行了对比,并取得了state-of-the-art的效果。目标检测数据集为COCO,RepLKNet以Cascaded Maks R-CNN的经典目标检测模型作为网络结构。在于其他模型的对比下,同样达到了SOTA的效果。
讨论
讨论一:大卷积核拥有更大的感受野
感受野是一个在分割和检测领域上备受关注的概念,正如人的视野一样,感受野体现的是卷积核对当前输入特征图的感知范围,如果范围很小,那么接收的信息是片面的、局部的。如果增大感受野,那么就可以获得更多的全局信息,从而更有利于对当前局面的判断。现有的CNN模型都通过堆叠的卷积核与池化层来扩充感受野的大小,有些模型甚至有成百上千个卷积,那么为什么这么多的小卷积,比不过大卷积核呢?
可以看到,ERF对K的大小更敏感,增加深度没有增加卷积核大小直观。另外,增加深度还会引起优化问题。虽然ResNet解决了网络退化的问题,但是ResNet的有效感受野仍不一定很大。
如上表所示,RepLKNet的感受野是远大于ResNet的,这也是为什么RepLKNet效果好于ResNet的原因。作者在ImageNet上选取了50张图像,并且缩放到1024×1024的大小,然后测试模型输出最后特征中心点和输入图像相关区域点的比例,发现随着ResNet深度的增加,有效感受野并未发生显著变化(如下图所示)。
讨论二:大卷积 VS 空洞卷积
空洞卷积在相邻的卷积核中插入孔洞,使得原卷积核拥有了更大的感受野。ASPP模块堆叠了多种具有不同大小孔洞率的空洞卷积,从而获取到具有不同感受野的多级特征,多级特征有助于模型更好地理解输入的特征信息。然而,空洞卷积会造成不可避免的局部特征损失,从而导致预测图出现网格状的缺失。RepLKNet用深度可分离卷积重新思考了大卷积核的使用,同样是扩大感受野,RepLKNet则取得了更好的效果。如下表所示,纯空洞卷积组成的MobileNet V2效果比原模型更差。
讨论三:局限性
[1] Ding X , Zhang X , Zhou Y , et al. Scaling Up Your Kernels to 31x31: Revisiting Large Kernel Design in CNNs[J]. arXiv e-prints, 2022.
关注【飞桨PaddlePaddle】公众号
获取更多技术内容~