paper:https://arxiv.org/pdf/2403.07589
code:暂无
目录
0. 摘要
1. 引言
2. 相关工作
2.1. Large Kernel Convolutional Networks
2.2. Peripheral Vision for Machine Learning
3. 密集卷积优于条纹卷积
4. 参数高效的大核卷积神经网络
4.1. 外围卷积
4.2. 核位置嵌入
4.3. 局部外围卷积
4.4.架构规范
5. 实验
0. 摘要
近期,一些大卷积核卷积网络以其高效且高性能强势杀回。然而,因为其卷积的平方复杂度,增大卷积核会带来巨大的参数量增长,而急剧增长的的参数量又会带来很多优化问题。由于这个问题,导致最近的CNN 以条纹卷积(即 51 × 5 + 5 × 51)的形式扩展到 51 × 51,而且随着内核大小的持续增长已经开始趋于饱和。在本文中,我们深入研究了这些关键问题,并探索我们是否可以继续扩大内核以获得更高的性能增益。受人类视觉的启发,我们提出了一种类似人类的外围卷积,它通过参数共享有效地减少了超过 90% 的密集网格卷积的参数计数,并设法将内核大小扩大到非常大。我们的外围卷积的行为与人类高度相似,在不损失性能的情况下,将卷积的复杂度从 O(K2) 降低到 O(log K)。在此基础上,我们提出了参数高效的大核网络(PELK)。我们的 PELK 在 ImageNet 分类、ADE20K 上的语义分割和 MS COCO 上的对象检测等各种视觉任务中都优于 Swin、ConvNeXt、RepLKNet 和 SLaK 等现代视觉转换器和 ConvNet 架构。我们首次成功地将 CNN 的内核大小扩展到前所未有的 101 × 101,并展示了一致的改进。
1. 引言
卷积神经网络 (CNN) 几十年来在机器学习中发挥着关键作用 [17, 20, 21, 39]。然而,近年来,视觉Transformer (ViTs) [6, 13, 25, 46, 51] 极大地挑战了它们的优势。一些工作[36,48]将VITS的强大性能归因于它们的大感受野:受益于自注意力机制,ViT 可以从大空间范围内捕获上下文信息并建模远程依赖关系。受此启发,CNN [12, 24, 26] 的最新进展表明,当配备大内核大小(例如 31 × 31)时,纯 CNN 架构可以在各种视觉任务上的表现与最先进的 ViT 相当甚至更好。
尽管大核卷积网络表现出强大的性能和吸引人的效率,但存在一个致命的问题:核大小为 K时,其复杂度就是 O(K2)。由于这个问题,直接扩大内核会带来大量的参数。例如,31 × 31 内核的参数比 ResNet [17] 中典型的 3 × 3 对应物的参数大 100 倍,比 ConvNeXt [26] 中使用的 7 × 7 内核的参数大约 20 倍。增殖的参数随后会导致严重的优化问题,使其无用甚至不利于直接扩大内核大小[12,24,26]。为了解决这个问题,RepLKNet[12]重新参数化一个平行于大内核的5×5内核,以弥补优化问题,SLaK[24]妥协使用条纹卷积将复杂度降低到线性,并缩放到51 × 51(即51 × 5 + 5 × 51)。然而,对于下游任务的分辨率(例如,ADE20K 上的 2048 × 512),这仍然是一个有限的交互范围,更重要的是,条纹卷积缺乏密集卷积的范围感知,因此我们推测它可能会破坏模型的空间感知能力。
在本文中,我们首先在统一的现代框架(即 SLaK [24])下对卷积形式进行了全面剖析。我们凭经验验证了我们的猜想,即密集网格卷积优于条带卷积,在多个内核大小上有一致的改进。这种现象不仅适用于分类任务,而且对下游任务更为明显,表明密集卷积相对于条纹形式的基本优势。然而,如上所述,大密集卷积的平方复杂度导致参数激增,导致模型尺寸迅速增加,优化难度更大,从而阻止了它进一步增大。这就自然引出了一个问题:是否有一种方法可以在减少所需参数的同时保留密集网格卷积的形式。如果是这样,我们是否就可以进一步扩大密集网格卷积以获得更高的性能收益?
与卷积或自注意力的密集计算不同,人类视觉具有更有效的视觉处理机制,称为外围视觉 [22]。具体来说,人类视觉将整个视野划分为中心区域和外围区域,条件是注视中心的距离,中心区域的光感受器细胞(锥和杆)的数量超过外围区域[40]的100倍。这种生理结构为人类提供了模糊感知的特征:我们有强烈的感知,在中心区域清晰地看到,识别形状和颜色;而在外围区域,视野模糊,分辨率降低,因此我们只能识别抽象的视觉特征,如运动和高级上下文。这种机制使我们能够在视野的一小部分(< 5%)内感知重要的细节,同时最小化剩余部分(> 95%)中不必要的信息,从而促进人脑的高效视觉处理[2,10,11,28,37,38,52,54]。
受人类视觉和回答上述问题的启发,我们提出了一种新颖的外围卷积,在保持密集计算形式的同时,将卷积的参数复杂度从 O(K2) 降低到 O(log K)。我们的外围卷积由三个设计组成:i) 焦点和模糊机制。我们在卷积核的中心区域保持细粒度参数,并在外围区域使用广泛的参数共享; ii) 增加共享粒度。我们的共享网格以指数级增长的方式增长,这比固定粒度更有效; iii) 内核位置嵌入。我们引入了核位置嵌入来解决由宽范围外围共享以优雅且廉价的方式引起的细节模糊问题。由于我们的外围卷积显着减少了大内核的参数(超过 90%),我们能够设计出性能强的大型密集内核卷积网络。
基于上述外围卷积,我们提出了参数高效的大核网络(PELK),这是一种新的纯CNN架构,具有有效感受野(ERF)随参数呈指数增长。由精心设计的参数共享机制促进,PELK以非常小的参数成本扩大内核大小,实现了非常大的密集内核(例如,51 × 51, 101 × 101),并有一致的改进。我们的 PELK 在各种视觉任务中实现了最先进的性能,在配备非常大的内核大小时表现出纯 CNN 架构的潜力。
PELK被证明能够覆盖比以前的大内核范式更大的ERF区域,更有趣的是,我们的分析和消融表明,外围卷积的最佳设计原则与人类视觉有着惊人的相似之处,这表明生物启发的机制可能是设计强大现代网络有希望的候选者。
2. 相关工作
2.1. Large Kernel Convolutional Networks
从深度学习的早期开始,大核卷积网络可以追溯到一些早期模型[20,42,43]。在 VGG-Net [39] 之后,使用一堆小内核(例如 1 × 1 或 3 × 3)来获得的大感受野已成为过去十年间常见的做法。全局卷积网络 (GCN) [34] 通过使用条纹卷积 (1×M + M×1) 的组合来改进语义分割任务,将内核大小扩大到 15。然而,据报道所提出的方法会损害 ImageNet 的性能。最近,大型内核卷积网络以吸引人的性能返回[12,24,26,47]。ConvMixer [47] 使用 9 × 9 深度卷积来替换 ViT [13] 和 MLP-Mixer [44] 的空间混合器(即自注意力块和全连接块)。ConvNeXt[26]与Swin[25]的设计理念相一致,以探索一个强大的现代CNN架构,配备了7 × 7深度卷积。RepLKNet [12] 通过重新参数化与其平行的小内核(例如 5 × 5)并的性能与 Swin Transformer [25] 相当,令人印象深刻的将内核大小扩展到 31 × 31。我们的工作也受到LargeKernel3D[5]的启发,它将大内核设计引入到3D网络中,并扩展到17 × 17 × 17。相比之下,我们探索了2D通用卷积的极端,在类人模式下扩展到更大的101 × 101。SLaK[24]将分解后的卷积与动态稀疏性相结合,以条纹卷积的形式将核扩展到51×51(例如,51×5+5×51)。然而,随着内核大小的持续增长,它开始饱和。与现有技术不同,我们研究了哪种卷积形式在大型内核设计中更有效。更重要的是,我们探索了非常大的密集内核的设计,并测试了它是否可以带来进一步的收益。
2.2. Peripheral Vision for Machine Learning
人类视觉具有特殊的视觉处理系统,称为外围视觉[22]。它根据到中央凹的距离将整个视野划分为多个轮廓区域,每个区域都有不同的分辨率粒度进行识别。Rosenholtz[37]的工作讨论了深度重要发现和现有的关于周边视觉的神话,表明了外围视觉对人类在不同任务上的感知比以前认为的更为关键。在此之后,许多研究 [2, 10, 11, 28, 38, 54] 致力于揭示周边视觉机制的基本原理和深度影响。由于周边视觉在人类视觉中起着至关重要的作用,许多开创性的工作[11,14 -16,29,50]挖掘周边视觉与机器视觉(如cnn)之间的联系。[49]引入了一种受生物学启发的机制,以提高神经网络对小扰动的鲁棒性。FoveaTer [19] 使用径向极坐标池化区域将更多的固定/计算资源动态分配给更具挑战性的图像。PerViT [33] 建议将外围位置编码合并到多头自注意力层中,以将视觉场划分为不同的外围区域,表明网络学习感知视觉数据,类似于人类视觉的方式。继续之前的研究,本文探讨了将人类周边视觉与大核卷积网络混合,并引入了一种新的外围卷积来有效地减少密集卷积的参数。
3. 密集卷积优于条纹卷积
我们首先研究密集网格卷积是否优于条纹卷积。我们采用统一的现代框架 SLaK [24] 进行研究。根据RepLKNet[12],大核卷积比ImageNet分类更能促进下游任务。因此,我们不仅在 ImageNet-1K 上进行评估,还在 ADE20K 上进行评估作为我们的基准。本文采用MegEngine[1]开发的高效大卷积核实现。
仿照 SLaK [24] ,我们在 ImageNet 上训练所有模型 120 个 epoch 。数据增强、正则化和超参数都采用相同设置。然后我们使用预训练模型作为 ADE20K 上的主干。具体来说,我们使用MMSegmentation[7]实现的UperNet[56]和80K迭代训练计划。我们不使用任何高级技术或自定义算法,因为我们只寻求评估主干。
SLaK 引入了一个两步方法,用于将内核扩展到51 × 51: 1)将一个大核分解为两个矩形并行核; 2)利用动态稀疏性和扩展更多的宽度。为了彻底分析卷积形式的效果,我们对 w/ 和 w/o 稀疏性进行了实验。默认情况下,我们重新参数化 5 × 5 卷积以简化 SLaK 和 RepLKNet 所采取的优化问题。表 1 的结果表明,无论动态稀疏性如何,密集网格卷积都超过条纹卷积。
我们进一步在不同的内核大小下探索了卷积形式(即 K×K vs.K×N) 。具体来说,我们将 SLaK 的条形 conv 的较短边固定为 5 作为默认设置 (N=5),然后逐渐将 K 从 51 减少到 7。我们不使用动态稀疏性来完全消融卷积形式。如图 2 所示,密集网格卷积在多个内核大小之间始终优于条带卷积,增益随着内核大小的增加而增加,证明了密集网格大内核卷积的基本优势。
然而,如第 1 节所述,密集网格卷积的平方复杂度可以带来激增的参数。例如,如图 2 所示,将内核从 7 缩放到 51 只会为条纹 conv 带来大约 7.3 倍的参数,而对于密集 conv 则为 53.1 倍。鉴于人类的周边视觉在外围区域只有少量的光感受器细胞,我们认为密集参数对于外围相互作用不是必需的。受此启发,我们试图通过引入外围视觉机制来降低参数复杂度,同时保留密集计算以保持密集卷积的强大性能。
4. 参数高效的大核卷积神经网络
4.1. 外围卷积
形式上,标准的 2D 卷积核由一个 4D 向量组成:,其中 c_in 代表输入通道,c_out 是输出通道,k 表示空间核维度。我们试图通过空间参数共享用更小的核参数化w,其中0 < k '≤k。首先,我们定义共享网格 S = [s0, s1,..., sk′ -1],其中 Pk′ -1i=0 si = k。根据 S,我们将 k×kposition 划分为 k′ × k′ 区域:对于 a, b = 0, 1,。.., k′ − 1,
通过这种方式,我们可以利用一个小内核来参数化更大的内核,实现空间参数共享。图 1a 描述了这种设计的说明。
接下来,我们详细阐述了外围卷积的关键设计。我们将 w_θ 的内核半径表示为 r。为了便于理解,这里我们将共享网格重新表述为轴对称形式:,其中r = (k' -1 ) / 2。
类似于人类的外围视觉,我们的外围卷积的共享网格主要由两个核心设计组成:
i) 焦点和模糊机制。如图1b所示,我们在卷积核中心区域保持细粒度参数,其中共享网格设置为 1(即不共享)。对于外围区域,我们利用远程参数共享来利用外围视觉的空间冗余。我们在第 5.4 节中证明,中心区域的细粒度至关重要,而外围区域可以在不损失性能的情况下承受广泛的参数共享;
ii) 指数增加的共享粒度。人类视觉以准指数模式[35]下降。受此启发,我们设计了我们的共享网格以指数级增长的方式增长。这种设计可以优雅地将卷积的参数复杂度从 O(K2) 降低到 O(log K),从而可以进一步扩大密集卷积的内核大小。具体来说,共享网格 S 由下面构成:
其中rc是中心细粒度区域的半径,mis是指数增长的基础,m默认设置为2。
4.2. 核位置嵌入
尽管所提出的外围卷积有效地减少了密集卷积的参数,但大量的参数共享可能会带来另一个问题:外围区域的局部细节模糊。特别是当内核大小以外围卷积的形式扩展到超过 50 甚至 100 时,当单个参数需要处理 8 × 8 甚至 16 × 16 外围区域时,这种现象会进一步放大。
为了解决这个问题,我们提出了内核位置嵌入。形式上,给定一组输入特征 X,我们通过核权重的卷积来处理这些特征。我们用trunc normal[53]初始化位置嵌入。输出位置 (x, y) 处的卷积过程可以表示为:
其中 Y 是输出。rw 是内核 w 的半径, r_w = (k - 1) / 2.
如图 3 所示,通过引入内核的位置嵌入,我们可以区分共享区域中的特定位置,从而弥补共享引起的模糊局部细节问题。实际上,这可以看作是向输入特征添加相对位置信息的偏差。值得注意的是,阶段中的所有内核共享相同的位置嵌入 h,因此 h 带来的附加参数可以忽略不计。这种设计以廉价和优雅的方式共享权重来解决位置不敏感问题,特别是对于非常大的内核,例如 51 × 51 和 101 × 101。
4.3. 局部外围卷积
大内核卷积网络已被证明具有高通道冗余[57],并且非常适合稀疏性[24]。由于我们的外围卷积使我们能够设计更大的密集卷积,具有更强的空间感知能力,我们希望进一步利用大卷积的通道冗余。我们引入了 Inception 风格的设计,其中只有特征图的部分通道将通过卷积处理。我们遵循一个简单的理念:更多的身份映射来利用通道冗余。具体来说,对于输入 X,我们将其沿通道维度分为两组,
其中 g 是卷积分支的通道数,默认情况下设置为 。然后将拆分的输入分别输入到外围卷积和恒等映射中,
最后,将两个分支的输出连接起来以恢复原始形状,
这种设计可以看作是 Inceptionstyle 结构的一个特例,例如 Inception [41]、Shufflenet [30, 61] 和 InceptionNeXt [57]。他们在并行分支中使用不同的运算符,而我们采用了更简单的理念:只有外围卷积和身份映射。我们凭经验发现,这种设计非常适合具有非常大内核的外围卷积,显着减少了 FLOPs,而不会损失性能。
4.4.架构规范
基于上述设计和观察,我们现在详细阐述了我们的参数高效大内核网络 (PELK) 的架构。我们主要遵循 ConvNeXt 和 SLaK 来构建具有多个大小的模型。具体来说,PelK 也采用了 4 阶段的框架。我们使用具有 4 × 4 内核和 4 个步幅的卷积层构建词干。小尺寸的块数为 [3, 3, 9, 3],小/基尺寸的块数为 [3, 3, 3, 27, 3]。PELK不同阶段的内核大小默认为[51,49,47,13]。对于 PELK101,内核大小扩大到 [101、69、67、13]。
默认情况下,我们将中心 5 × 5 区域保持细粒度。对于 PELK-101,我们将中心区域扩大到 7 × 7 以调整增加的内核。在 SLaK 之后,我们还使用动态稀疏性来增强模型容量。所有超参数都设置相同(1.3×宽度,40% 稀疏度)。我们在第 5.4 节中对内核配置进行了彻底的消融。