超越 ConvNeXt、RepLKNet | 看 51×51 卷积核如何破万卷!

点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

aa34ed1d3acc72afef43b8110831220c.jpeg

作者丨ChaucerG

来源丨集智书童

超越 ConvNeXt、RepLKNet | 看 51×51 卷积核如何破万卷!_第1张图片

自从Vision Transformers (ViT) 出现以来,Transformers迅速在计算机视觉领域大放异彩。卷积神经网络 (CNN) 的主导作用似乎受到越来越有效的基于Transformer的模型的挑战。最近,一些先进的卷积模型使用受局部大注意力机制驱动设计了大Kernel的卷积模块进行反击,并显示出吸引人的性能和效率。其中之一,即 RepLKNet,以改进的性能成功地将Kernel-size扩展到 31×31,但与 Swin Transformer 等高级 ViT 的扩展趋势相比,随着Kernel-size的持续增长,性能开始饱和。

在本文中,作者探索了训练大于 31×31 的极端卷积的可能性,并测试是否可以通过策略性地扩大卷积来消除性能差距。这项研究最终得到了一个从稀疏性的角度应用超大kernel的方法,它可以平滑地将kernel扩展到 61×61,并具有更好的性能。基于这个方法,作者提出了Sparse Large Kernel Network(SLaK),这是一种配备 51×51 kernel-size的纯 CNN 架构,其性能可以与最先进的分层 Transformer 和现代 ConvNet 架构(如 ConvNeXtRepLKNet,关于 ImageNet 分类以及典型的下游任务。

1应用超过 31×31 的超大卷积核

作者首先研究了大于 31×31 的极端Kernel-size的性能,并总结了3个主要观察结果。这里作者以 ImageNet-1K 上最近开发的 CNN 架构 ConvNeXt 作为进行这项研究的 benchmark

作者关注最近使用 MixupCutmixRandAugmentRandom Erasing 作为数据增强的作品。随机深度标签平滑作为正则化应用,具有与 ConvNeXt 中相同的超参数。用 AdamW 训练模型。在本节中,所有模型都针对 120 个 epoch 的长度进行了训练,以仅观察大Kernel-size的缩放趋势。

观察1:现有的技术不能扩展卷积超过31×31

最近,RepLKNet 通过结构重新参数化成功地将卷积扩展到 31×31。作者进一步将Kernel-size增加到 51×5161×61,看看更大的kernel是否能带来更多的收益。按照RepLKNet中的设计,依次将每个阶段的Kernel-size设置为[51,49,47,13]和[61,59,57,13]。

超越 ConvNeXt、RepLKNet | 看 51×51 卷积核如何破万卷!_第2张图片

测试精度如表 1 所示。正如预期的那样,将Kernel-size7×7 增加到 31×31 会显著降低性能,而 RepLKNet 可以克服这个问题,将精度提高 0.5%。然而,这种趋势不适用于较大的kernel,因为将Kernel-size增加到 51×51 开始损害性能。

一种合理的解释是,虽然感受野可以通过使用非常大的kernel,如51×5161×61来扩大感受野,但它可能无法保持某些理想的特性,如局部性。由于标准ResNetConvNeXt中的stem cell导致输入图像的4×降采样,具有51×51的极端核已经大致等于典型的224×224 ImageNet的全局卷积。因此,这一观察结果是有意义的,因为在ViTs的类似机制中,局部注意力通常优于全局注意力。在此基础上,通过引入局部性来解决这个问题的机会,同时保留了捕获全局关系的能力。

观察2:将一个方形的大kernel分解为2个矩形的parallel kernels,可以将Kernel-size平滑地缩放到 61。

超越 ConvNeXt、RepLKNet | 看 51×51 卷积核如何破万卷!_第3张图片

虽然使用中等大小的卷积(例如,31×31)似乎可以直接避免这个问题,但作者就是想看看是否可以通过使用(全局)极端卷积来进一步推动cnn的性能。作者这里使用的方法是用2个平行和矩形卷积的组合来近似大的 M×M kernel,它们的Kernel-size分别为M×NN×M(其中N),如图1所示。在RepLKNet之后,保持一个5×5层与大kernel并行,并在一个批处理范数层之后汇总它们的输出。

超越 ConvNeXt、RepLKNet | 看 51×51 卷积核如何破万卷!_第4张图片

这种分解不仅继承了大kernel捕获远程依赖关系的能力,而且可以提取边缘较短的局部上下文特征。更重要的是,随着深度Kernel-size的增加,现有的大kernel训练技术会受到二次计算和内存开销的影响。

超越 ConvNeXt、RepLKNet | 看 51×51 卷积核如何破万卷!_第5张图片

与之形成鲜明对比的是,这种方法的开销随着Kernel-size线性增加(图 4)。N = 5kernel分解的性能在表 2 中报告为“分解”组。由于分解减少了 FLOP,与具有中等kernel的结构重新参数化 (RepLKNet) 相比,预计网络会牺牲一些准确性,即 31×31。然而,随着卷积大小增加到全局卷积,它可以惊人地将Kernel-size扩展到 61 并提高性能。

观察3:“use sparse groups, expand more”显著提高了模型的容量

最近提出的 ConvNeXt 重新访问了ResNeXt中引入的原理,该原理将卷积滤波器分成小但更多的组。ConvNeXt没有使用标准的组卷积,而是简单地使用增加宽度的深度卷积来实现“use more groups, expand width”的目标。在本文中,作者试图从另一个替代的角度来扩展这一原则——“use sparse groups, expand more”。

具体来说,首先用稀疏卷积代替密集卷积,其中稀疏核是基于SNIP的分层稀疏比随机构造的。构建完成后,用动态稀疏度训练稀疏模型,其中稀疏权值在训练过程中通过修剪最小幅值的权值,随机增加相同数量的权值进行动态调整。这样做可以动态地适应稀疏权值,从而获得更好的局部特征。

由于kernel在整个训练过程中都是稀疏的,相应的参数计数和训练/推理流只与密集模型成正比。为了评估,以40%的稀疏度稀疏化分解后的kernel,并将其性能报告为“稀疏分解”组。可以在表2的中间一列中观察到,动态稀疏性显著降低了FLOPs超过2.0G,导致了暂时的性能下降。

超越 ConvNeXt、RepLKNet | 看 51×51 卷积核如何破万卷!_第6张图片

接下来,作者证明了上述动态稀疏性的高效率可以有效地转移到模型的可扩展性中。动态稀疏性允许能够友好地扩大模型的规模。例如,使用相同的稀疏性(40%),可以将模型宽度扩展1.3×,同时保持参数计数和FLOPs与密集模型大致相同。这带来了显著的性能提高,在极端的51×51 kernel下,性能从81.3%提高到81.6%。令人印象深刻的是,本文方法配备了61×61内核,性能超过了之前的RepLKNet,同时节省了55%的FLOPs。

2Sparse Large Kernel Network - SLaK

到目前为止,已经发现了本文的方法可以成功地将Kernel-size扩展到61,而不需要反向触发性能。它包括2个受稀疏性启发的设计。

在宏观层面上,构建了一个本质稀疏网络,并进一步扩展网络,以提高在保持相似模型规模的同时的网络容量。

在微观层面上,将一个密集的大kernel分解为2个具有动态稀疏性的互补kernel,以提高大kernel的可扩展性。

与传统的训练后剪枝不同,直接从头开始训练的网络,而不涉及任何预训练或微调。在此基础上提出了Sparse Large Kernel Network(SLaK),这是一种纯CNN架构,使用了极端的51×51 kernel

SLaK 是基于 ConvNeXt 的架构构建的。阶段计算比和干细胞的设计继承自ConvNeXt。每个阶段的块数对于 SLaK-T 为 [3, 3, 9, 3],对于 SLaK-S/B 为 [3, 3, 27, 3]。stem cell只是一个具有 kernel-size为4×4和stride=4的卷积层。作者将 ConvNeXt 阶段的Kernel-size分别增加到 [51, 49, 47, 13],并将每个 M×M kernel替换为 M×55×M kernel的组合,如图 1 所示。作者发现添加在对输出求和之前,直接在每个分解的kernel之后的 BatchNorm 层是至关重要的。

遵循 “use sparse groups, expand more”的指导方针,进一步稀疏整个网络,将阶段宽度扩大 1.3 倍,最终得到 SLaK-T/S/B。尽管知道通过调整模型宽度和稀疏度之间的权衡来提高 SLaK 的性能有很大的空间,但为了简单起见,将所有模型的宽度保持为 1.3 倍。所有模型的稀疏度设置为 40%。

虽然模型配置了极端的 51×51 kernel,但整体参数计数和 FLOP 并没有增加太多,并且由于RepLKNet提供的出色实现,它在实践中非常有效。

3实验

3.1 分类实验

超越 ConvNeXt、RepLKNet | 看 51×51 卷积核如何破万卷!_第7张图片

3.2 语义分割

超越 ConvNeXt、RepLKNet | 看 51×51 卷积核如何破万卷!_第8张图片

4参考

[1].More ConvNets in the 2020s : Scaling up Kernels Beyond 51 × 51 using Sparsity.

本文仅做学术分享,如有侵权,请联系删文。

干货下载与学习

后台回复:巴塞罗自治大学课件,即可下载国外大学沉淀数年3D Vison精品课件

后台回复:计算机视觉书籍,即可下载3D视觉领域经典书籍pdf

后台回复:3D视觉课程,即可学习3D视觉领域精品课程

计算机视觉工坊精品课程官网:3dcver.com

1.面向自动驾驶领域的多传感器数据融合技术

2.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)
3.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进
4.国内首个面向工业级实战的点云处理课程
5.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解
6.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦
7.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化
8.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)

9.从零搭建一套结构光3D重建系统[理论+源码+实践]

10.单目深度估计方法:算法梳理与代码实现

11.自动驾驶中的深度学习模型部署实战

12.相机模型与标定(单目+双目+鱼眼)

13.重磅!四旋翼飞行器:算法与实战

14.ROS2从入门到精通:理论与实战

15.国内首个3D缺陷检测教程:理论、源码与实战

16.基于Open3D的点云处理入门与实战教程

重磅!计算机视觉工坊-学习交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有ORB-SLAM系列源码学习、3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、深度估计、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。

超越 ConvNeXt、RepLKNet | 看 51×51 卷积核如何破万卷!_第9张图片

▲长按加微信群或投稿

超越 ConvNeXt、RepLKNet | 看 51×51 卷积核如何破万卷!_第10张图片

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、激光/视觉SLAM自动驾驶等)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近4000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

超越 ConvNeXt、RepLKNet | 看 51×51 卷积核如何破万卷!_第11张图片

 圈里有高质量教程资料、答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

你可能感兴趣的:(卷积,算法,网络,大数据,计算机视觉)