最近,有一些大型内核卷积网络的研究,但考虑到卷积的平方复杂度,扩大内核会带来大量的参数,继而引发严重的优化问题。受人类视觉的启发,论文提出了外围卷积,通过参数共享将卷积的复杂性从
O ( K 2 ) " role="presentation"> 降低到O ( l o g K ) " role="presentation">,有效减少 90% 以上的参数数量并设法将内核尺寸扩大到极限。在此基础上,论文提出了参数高效的大型内核网络(PeLK),将CNN的内核大小扩展到前所未有的101 × 101 " role="presentation">,性能的也在持续提升。来源:晓飞的算法工程笔记 公众号
论文: PeLK: Parameter-efficient Large Kernel ConvNets with Peripheral Convolution

Introduction
ViT的强大性能归因于其巨大的感受野,在自注意力机制的帮助下可以从大的空间范围捕获上下文信息并建模远程依赖关系。受此启发,CNN的最新进展表明,当配备大内核(例如 CNN架构在各种视觉任务上的表现可以与最先进的ViT相当甚至更好。
虽然大核卷积网络表现出强大的性能和吸引人的效率,但其相对于核大小
RepLKNet将大内核重参数化为并行的5 × 5 " role="presentation"> 内核,从而弥补优化问题。SLaK妥协地使用条带卷积将复杂度降低为线性,并扩展到51 × 51 " role="presentation">(即51 × 5 " role="presentation"> 和5 × 51 " role="presentation">)。
然而,这对于下游任务的分辨率来说仍然是有限的交互范围(例如ADE20K上的
论文先在统一的现代框架(即SLaK)下对卷积形式进行了全面的剖析,验证了密集网格卷积在不同内核大小下均优于条带卷积的猜想。这种现象不仅适用于分类任务,而且适用于下游任务,这表明密集卷积相对于条带形式的本质优势。然而,大密集卷积的平方复杂度导致参数激增阻碍其进一步缩放,是个亟需解决的问题。
与卷积或自注意力的密集计算不同,人类视觉拥有更高效的视觉处理机制,称为周边视觉。具体来说,人类视觉根据到注视中心的距离将整个视野分为中心区域和周边区域,并且中心区域的感光细胞数量是周边区域的100倍以上。这样的生理结构赋予了人类视觉具有模糊感知的特点:中心区域感知力强,看得很清楚,能识别形状和颜色;而在外围区域,视野变得模糊,分辨率降低,只能识别抽象的视觉特征,例如运动和高级上下文。这种机制使人类能够仅通过一小部分视野(
受人类视觉的启发,论文提出一种新颖的外围卷积,将卷积的参数复杂度从
- 聚焦和模糊机制。在卷积核的中心区域保留细粒度的独立参数,在外围区域则使用大范围的共享参数。
- 呈指数级增加的共享粒度。共享网格以指数级增长的方式增长,这比固定粒度更有效。
- 内核级位置嵌入。引入内核级位置嵌入,以优雅且廉价的方式解决因大范围的外围共享而导致的细节模糊问题。
基于外围卷积,论文提出了参数高效的纯CNN大型内核网络(PeLK),其有效感受野(ERF)与参数量呈指数增长。在精心设计的参数共享机制的帮助下,PeLK以非常小的参数成本扩展了内核大小,实现了极大的密集内核(例如 PeLK在各种视觉任务中实现了最先进的性能,在配备极大的内核尺寸时展示了纯CNN架构的潜力。
PeLK被证明能够覆盖比之前的大型内核模型更大的ERF区域,这是其强大的性能所在。更有趣的是,论文的实验分析和消融实验表明,外围卷积的最佳设计原理与人类视觉具有惊人的相似性,这表明受生物学启发的机制可以成为设计强大的现代网络的有希望的候选者。
Dense Outperforms Stripe Consistently
论文通过SLaK和RepLKNet研究密集网格卷积是否比条纹卷积更好,先在ImageNet训练得到预训练模型,然后将预训练模型作为UperNet的主干网络在ADE20K上进行训练和对比。

SLaK通过两个步骤将内核扩大到 SLaK和RepLKNet所采取的方法,重参数化

论文进一步探索不同内核大小下的卷积形式(即 SLaK的条带卷积的短边固定为 5 作为默认设置(
但是,密集网格卷积的平方复杂度会导致参数量激增。如图 2 所示,条带卷积的内核从 7 放大到 51 只会带来
Parameter-efficient Large Kernel Network
Peripheral Convolution
标准的2D卷积核由4D向量组成:
首先,定义共享网格

为了简洁起见,规定
接下来进行下一步升级,将共享网格重新表示为轴对称形式:
类似于人类的周边视觉,共享网格主要由两个核心设计组成:
- 聚焦和模糊机制。如图 1b 所示,将细粒度参数保留在卷积核的中心区域,其对应共享网格设置为 1 (即不共享)。对于外围区域,利用大范围参数共享来探索外围视觉的空间冗余。
- 呈指数级增加的共享粒度。受人类视觉的启发,论文设计了以指数级的方式增长的共享网格。这种设计可以优雅地将卷积的参数复杂度从
O ( K 2 ) " role="presentation"> 降低到O ( log K ) " role="presentation">,从而可以进一步扩大密集卷积的内核大小。具体来说,共享网格S " role="presentation"> 的构造如下:
其中
Kernel-wise Positional Embedding
尽管外围卷积能够有效地减少密集卷积的参数,但大范围的参数共享可能导致外围区域的局部细节模糊。尤其当内核大小以外围卷积的形式放大到 50 以上甚至 100 以上时,这种现象会进一步放大,单个参数需要处理
为了解决这个问题,论文提出了基于内核的位置嵌入。给定一组输入特征 trunc normal来初始化位置嵌入
输出位置
其中

如图 3 所示,通过引入位置嵌入,可以区分共享区域中的特定位置,从而弥补共享带来的局部细节模糊的问题。实际上,这可以被视为向输入特征添加相对位置信息的偏置。值得注意的是,同一个阶段中的所有内核共享相同的位置嵌入
Partial Peripheral Convolution
大型内核卷积网络已被证明具有高度通道冗余性,非常适合进行稀疏化。外围卷积使得论文能够设计具有更强空间感知能力的大型密集卷积,因此可以进一步优化大卷积的通道冗余。
论文引入了一种Inception风格的设计,其中只有特征图的部分通道将通过卷积进行处理。整体设计遵循一个简单的理念:更多的恒等映射来优化通道冗余。具体来说,对于输入
其中
最后,将两个分支的输出连接起来以恢复原始形状:
这种设计可以看作是Inception类型结构的特例,如Inception、Shufflenet和InceptionNeXt。他们在并行分支中使用不同的运算符,而论文采用更简单的设计:仅外围卷积和恒等映射。这种设计非常适合具有极大内核的外围卷积,可显著减少FLOP而不会产生降低性能。
Architecture Specification
基于上述设计和观察,论文设计了参数高效的大型内核网络(PeLK)的架构,按照ConvNeXt和SLaK来构建多种尺寸的模型:
- 采用了 4 阶段的框架。
- stem 包含一个
4 × 4 " role="presentation"> 内核和 4 步幅的卷积层。 - 对于
tiny和small/base大小的模型,各阶段的块数量是分别为[ 3 , 3 , 9 , 3 ] " role="presentation"> 和[ 3 , 3 , 27 , 3 ] " role="presentation">。 - 不同阶段的内核大小默认为
[ 51 , 49 , 47 , 13 ] " role="presentation">。对于PeLK-101,内核大小放大至[ 101 , 69 , 67 , 13 ] " role="presentation">。 - 默认情况下,保持中心
5 × 5 " role="presentation"> 区域作为细粒度。对于PeLK-101,中心区域则放大到7 × 7 " role="presentation">。 - 遵循
SLaK的设计,使用动态稀疏性来增强模型容量,所有超参数设置相同(1.3 × " role="presentation"> 网络宽度,40% 稀疏度)。
Experiments

对于语义分割,在ADE20K上评估PeLK作为主干网络的效果。

对于目标检测/分割,在MS-COCO上使用Cascade Mask R-CNN进行实验。

对于图像分类,在ImageNet-1K上进行对比。

表 5 展示不同共享粒度的性能对比。由于网格是轴对称的,表格中仅表示半个网格。

表 6 展示了不同中心细粒度内核大小的性能对比。

表 7 展示了不同内核大小配置的性能对比。

图 4 展示不同模型最后一层对输入图片的感受野对比。

图 5 中对语义分割中使用的PeLK-T架构的FLOP进行详细的分类。

表 8 中比较了推理吞吐量。

图 6 展示了内核缩放对模型参数量的影响。
如果本文对你有帮助,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】