动态卷积学习了一个由n个静态卷积核线性混合而成的混合卷积核,通过它们的样本相关注意力进行加权,与普通卷积相比表现出卓越的性能。然而,现有的设计在参数效率方面存在问题:它们将卷积参数的数量增加了n倍。这一问题以及优化的难度导致动态卷积领域没有取得研究进展,无法允许使用较大的n值(例如,n > 100,而不是典型的n < 10)来推动性能的界限。
本文提出了KernelWarehouse,这是一种更通用的动态卷积形式,可以在参数效率和表示能力之间取得有利的平衡。其关键思想是从减少卷积核维度和显著增加卷积核数量的角度,重新定义动态卷积中“卷积核”和“组装卷积核”的基本概念。原则上,KernelWarehouse通过巧妙的kernel partition和 warehouse sharing ,在同一层内以及连续层之间增强了卷积参数的依赖关系。
具体而言,KernelWarehouse在ConvNet的任何卷积层上,将静态卷积核逐个划分为具有相同维度的m个不相交的卷积核单元,然后根据预定义的包含n个卷积核单元的“ warehouse ”(例如,n = 108)计算每个卷积核单元的线性混合,这个“ warehouse ”还被共享到多个相邻的卷积层中,最后按顺序组装其相应的m个混合,从而在满足所需参数预算的情况下提供了较高的自由度。为了促进学习用于对卷积核单元进行求和的注意力,作者还提出了一种新的注意力函数。
作者在ImageNet和MS-COCO数据集上验证了本文的方法,使用不同的ConvNet架构,结果显示它达到了最先进的效果。例如,在ImageNet上,使用KernelWarehouse训练的ResNet18 | ResNet50 | MobileNetV2 | ConvNeXt-Tiny模型分别达到了76.05% | 81.05% | 75.92% | 82.51%的top-1准确率。
由于其灵活的设计,KernelWarehouse甚至可以在提高准确率的同时减小ConvNet模型的大小,例如,作者的ResNet18模型在Baseline 的基础上减少了36.45% | 65.10%的参数,并且top-1准确率增加了2.89% | 2.29%。
1、简介
卷积是现代卷积神经网络(ConvNets)中的基本操作。在卷积层中,普通卷积 通过将相同的卷积核 W(定义为一组卷积滤波器)应用于每个输入样本 来计算输出 。为了简洁起见,作者将“卷积核”称为“核”,并在本文中省略了偏置项。
虽然在许多计算机视觉应用中,正常卷积的有效性已经得到了广泛验证,与各种类型的ConvNets,但在高效ConvNet架构设计方面的最近进展表明,动态卷积,也称为CondConv 和DY-Conv,取得了大幅度的性能提升。动态卷积的基本思想是通过n个具有相同维度的卷积核的线性混合 αα 来取代正常卷积中的静态卷积核,其中 αα 是由输入相关的注意力模块生成的标量注意力。由于n个卷积核的加法性质以及紧凑的注意力模块设计,动态卷积可以在很小的额外乘加成本下提高特征学习能力。然而,它将卷积参数的数量增加了n倍,这导致了模型大小的巨大增加,因为现代ConvNet的卷积层占据了绝大部分参数。
为了缓解这个问题,DCD通过矩阵分解直接学习基本卷积核和稀疏残差,以近似动态卷积。这种粗略的近似方法放弃了基本的混合学习范式,并且当n变大时,不能很好地保持动态卷积的表示能力。
最近,ODConv提出了一个更强大的注意力模块,可以在不同维度上动态加权静态卷积核,而不是仅仅在一个单一维度上进行加权,这可以在减少卷积核数量的情况下获得竞争性的性能。在相同的n设置下,ODConv的参数比普通动态卷积更多。简而言之,基于混合学习范式的现有动态卷积方法不具备参数效率,它们通常设置n = 8 或n = 4。
更重要的是,一个简单的事实是,使用动态卷积构建的ConvNet的改进容量来自于通过注意力机制在每个卷积层中增加卷积核的数量。这导致了所需模型大小和容量之间的内在冲突,阻止了研究人员探索带有显著大的核数(例如,n > 100)的动态卷积的性能界限。
在本文中,作者试图突破这个障碍,并对动态卷积的研究提供新的见解。为此,作者提出了KernelWarehouse(图1),这是一种更通用的动态卷积形式,可以在参数效率和表示能力之间取得有利的平衡。KernelWarehouse的构造灵感来自于两方面的观察。
- 一方面,作者注意到现有的动态卷积方法将正常卷积层中的所有参数都视为一个卷积核,并将核数从1增加到n,然后使用他们的注意力模块将n个核组装成一个线性混合的核。虽然直观且有效,但它们并不关注卷积层内静态卷积核的参数依赖关系。
- 另一方面,作者注意到现有的动态卷积方法为ConvNet的每个单独的卷积层分配了一组不同的n个卷积核,忽略了相邻层之间的参数依赖关系。
作者假设通过灵活地利用这两种类型的卷积参数依赖性来重新构建动态卷积,可以消除上述讨论的障碍。在这种分析的驱动下,作者在制定KernelWarehouse时引入了两种简单的策略,即 kernel partition和 warehouse sharing 。通过这些策略,作者从减少卷积核维度和显著增加卷积核数量的角度,重新定义了动态卷积中“卷积核”和“组装卷积核”的基本概念,充分利用了上述参数依赖性。
通过 kernel partition,常规卷积层的静态卷积核被逐个划分为m个具有相同维度的不相交卷积核单元,然后线性混合可以基于更小的卷积核单元来定义,而不是整体卷积核。具体而言,m个卷积核单元中的每个都被表示为一个线性混合,基于一个预定义的“ warehouse ”,该“ warehouse ”包含n个卷积核单元(例如,n = 108),然后静态卷积核将被替换为按顺序组装其相应的m个混合。
通过 warehouse sharing ,ConvNet的多个相邻卷积层可以共享同一个 warehouse ,只要在 kernel partition过程中使用相同的卷积核单元大小,进一步增强了其参数效率和表示能力。然而,当n取一个显著大的值时,KernelWarehouse的优化比现有方法更具挑战性。
作者发现,流行的动态卷积注意力函数在这种情况下效果不佳。作者通过设计一个新的简单注意力函数来解决这个问题。这些简单的概念转变为在不同的参数预算下平衡KernelWarehouse的参数效率和表示能力提供了高度的灵活性。
作为普通卷积的即插即用替代方案,KernelWarehouse可以轻松地应用于不同的ConvNet架构。在ImageNet和MS-COCO上进行的大量实验表明,作者的方法比其动态卷积对应方法取得了更好的结果。
2、相关工作
2.1、ConvNet架构
在过去的十年里,许多开创性的ConvNet架构,如AlexNet、VGGNet、GoogLeNet、ResNet、DenseNet、ResNeXt和RegNet等,已经被提出,这些架构显著提升了在ImageNet基准测试上的性能。与此同时,一些轻量级架构,如MobileNet、ShuffleNet和EfficientNet,也被设计用于资源受限的应用。
最近,刘等人提出的ConvNeXt的性能可以与新兴的视觉Transformer媲美。作为一种即插即用的设计,作者的方法可以用来提高它们的性能。
2.2、特征再校准
增强ConvNet容量的一种有效方法是特征再校准。它依靠注意力机制来自适应地优化由卷积块学习到的特征映射。流行的特征再校准模块,如RAN、SE、BAM、CBAM、GE、SRM和ECA,关注不同的设计方面:使用通道注意力、空间注意力或混合注意力来强调重要特征并抑制不必要的特征。
与特征再校准在多个方面的不同之处在于,动态卷积通过使用带有注意力机制的n个核的线性混合来替换卷积层的静态卷积核。
2.3、动态权重网络
在深度学习领域,许多研究工作致力于开发有效的方法来生成神经网络的权重。Jaderberg等人提出了一个空间变换模块,该模块使用一个本地化网络来预测特征变换参数,这些参数取决于学习到的特征本身。动态滤波网络和核预测网络引入了两种滤波器生成框架,它们共享同样的思想:使用深度神经网络生成依赖于输入的适应性滤波器。基于这个思想,DynamoNet使用动态生成的运动滤波器来增强视频中的人类动作识别。
CAREFE和Involution进一步扩展了这个思想,通过设计高效的生成模块来预测提取信息特征的权重。通过将这个思想与SE相结合,WeightNet、CGC和WE设计了不同的注意力模块,以调整ConvNet的卷积层中的权重。与这些方法不同,超网络使用一个小网络为一个更大的递归网络生成权重,而MetaNet引入了一个由基础学习器和元学习器组成的元学习模型,允许学习到的网络在不同任务之间快速泛化。
本文关注于推进动态卷积研究,其在表述上与这些工作有所不同。
3、本文方法
图1显示了作者的方法KernelWarehouse的示意图,它具有3个关键组成部分,即 :
- kernel partition
- warehouse sharing
- 一个新的注意力函数
接下来,作者描述KernelWarehouse的构造,并澄清这些组成部分。
3.1、 Formulation of KernelWarehouse
对于一个卷积层,设 为具有个特征通道、分辨率为 的输入,而 为具有¥个特征通道、与输入分辨率相同的输出。普通卷积 使用一个由个卷积滤波器组成、空间大小为 的静态卷积核 ,而动态卷积则通过 αα,将这个静态卷积核替换为n个相同维度的静态卷积核的线性混合,这些静态卷积核根据其输入相关的标量注意力 αα 进行加权。
与现有的动态卷积方法类似,KernelWarehouse 也采用了关注混合学习范式。与它们不同的是,KernelWarehouse 通过 kernel partition和 warehouse sharing ,将关注混合学习范式应用于静态卷积核的稠密局部尺度,而不是单一的整体尺度。
1、 kernel partition
kernel partition的基本思想是通过在同一卷积层中显式增强参数依赖关系,降低核维度并增加核数量。首先,作者将静态卷积核 在常规卷积层中逐个划分为个不相交的部分 ,称为“核单元”,这些核单元具有相同的维度。为简洁起见,这里作者省略了核单元的维度定义。 kernel partition可以定义为:
在 kernel partition后,作者将核单元 视为“局部核”,并定义一个包含 n 个核单元的“ warehouse ” ,其中 的维度与 相同。
然后,在同一卷积层中共享 warehouse ,作者将每个核单元 表示为:
其中 αα 是由基于输入 x 的注意力模块 ϕ 生成的标量注意力。最后,在常规卷积层中,将静态卷积核 W 替换为按顺序组装其相应的 m 个线性混合。
注意,核单元的维度可以远远小于静态卷积核 W 的维度(例如,当 m = 16 时,核单元的参数数量仅为静态卷积核 W 的 1/16)。在相同的参数预算下,这允许一个 warehouse 可以具有较大的 n 设置(例如,n > 100),与现有的动态卷积方法形成鲜明对比,后者在定义线性混合时涉及 n 个“整体核”,并且由于其参数效率低下的缺点,通常使用较小的 n 设置(例如,n < 10)。
2、 warehouse sharing
在遵循 kernel partition的简单设计哲学的基础上, warehouse sharing 的主要目标是通过在连续的卷积层之间显式增强参数依赖性,进一步提高KernelWarehouse的参数效率和表示能力。
具体而言,在ConvNet的同一阶段构建块的l个相邻卷积层中共享一个 warehouse 来表示每个核单元,这允许它在 kernel partition中可以使用更大的 n 设置。这通常很容易实现,因为现代ConvNet(如ResNet、MobileNet和ConvNeXt)通常采用模块化设计方案,其中同一阶段卷积层中的静态卷积核通常具有相同或相似的维度。
在实现中,给定所需的卷积参数预算,作者仅仅使用共同的维度除数作为 kernel partition的统一核单元维度,这自然地确定了 m 和 n 的值。另一方面,相邻卷积层之间的参数依赖性对于增强ConvNet的容量也是至关重要的。
3、参数效率和表示能力
设 是一个共享给ConvNet的个卷积层的 warehouse 中的核单元数量,而 是这些个卷积层中核单元的总数量(当 时,)。那么, 可以作为一个缩放因子,用于指示KernelWarehouse相对于普通卷积的卷积参数预算。在此情况下,作者不考虑生成 个标量注意力的注意力模块 ϕ 中的参数数量,因为它远远小于个卷积层上普通卷积的总参数数量。
在实现中,作者对每个ConvNet的所有卷积层使用相同的 值。在这样的条件下,可以看出KernelWarehouse可以通过改变 来轻松地扩大或缩小ConvNet的模型大小。
与普通卷积相比:
- 当 b < 1 时,KernelWarehouse倾向于获得减小的模型大小
- 当 b = 1 时,KernelWarehouse倾向于获得类似的模型大小
- 当 b > 1 时,KernelWarehouse倾向于获得增大的模型大小
有趣的是,给定所需的 b 值,只需通过改变 m 来获得合适且较大的 n 值,为KernelWarehouse提供了表示能力的保证。因此,KernelWarehouse可以在不同的卷积参数预算下,在参数效率和表示能力之间取得有利的平衡。
4、KernelWarehouse vs. 动态卷积
根据上述构造,当在 kernel partition中均匀设置 (即,每个 warehouse 中的所有核单元都具有与普通卷积的静态卷积核 W 相同的维度)以及在 warehouse sharing 中设置 (即,每个 warehouse 限制在其特定的卷积层)时,KernelWarehouse将退化为普通的动态卷积。因此,KernelWarehouse是动态卷积的一种更通用的形式。
3.2、Attention Module of KernelWarehouse
与现有的动态卷积方法类似,KernelWarehouse 也采用了紧凑的SE类型结构作为注意力模块 ϕ(如图1所示),用于为 warehouse 中的核单元生成权重。对于任何具有静态卷积核 W 的卷积层,它首先进行通道维度的全局平均池化(GAP)操作,将输入 映射为特征向量,然后经过一个全连接(FC)层、一个修正线性单元(ReLU)、另一个FC层和一个新的注意力函数。第一个FC层将特征向量的长度缩减了16倍,第二个FC层并行地生成了m组n个特征,最后通过逐组设置的注意力函数进行归一化。
1、注意力函数
相对而言,KernelWarehouse 的优化更具挑战性,主要是因为它的新构造。在KernelWarehouse中的线性混合中:
- warehouse 中的核单元数量要大得多(例如,n = 108,而 n < 10);
- 一个 warehouse 不仅被共享以表示ConvNet的特定卷积层中的每个m个核单元,还被共享以表示其他个相同阶段的卷积层中的每个核单元。
在这种情况下,选择适当的注意力函数至关重要。理想的注意力函数应该具有同时为所有线性混合分配多样化注意力的属性,使得个卷积层中的混合核单元可以分层地学习信息特征。然而,作者通过实验证明, 和 等流行的注意力函数在KernelWarehouse中表现不佳。即使使用温度退火,它们的结果也比普通的动态卷积差(见表2和表8)。
为了解决这个联合优化问题,作者提出了一个新的注意力函数。对于静态卷积核 W 中的第 个核单元,让 为第二个FC层生成的特征,则作者的注意力函数定义为:
其中 τ 是一个温度,它在早期训练阶段从1线性减少到0; 是一个线性归一化函数,它可以具有负的注意力输出,这对于鼓励网络学习共享相同 warehouse 的所有线性混合之间的对抗性注意关系至关重要;β 是一个二进制值(0或1),用于初始化注意力。
请注意,l个卷积层中 β 的设置非常重要,它确保共享 warehouse 可以分配:
- 至少一个指定的核单元(β= 1)给每个线性混合,给定所需的卷积参数预算
- 最多一个特定的核单元(β= 1)给每个线性混合,给定
在实现中,作者采用简单的策略,将共享 warehouse 中的总 n 个核单元之一分配给 l 个卷积层中的每个 个线性混合,而且不会重复。当 n 小于 时,一旦使用了 n 个核单元,作者让剩余的线性混合总是有 β= 0。
在附录中,作者提供了可视化示例来说明这一策略,并通过一组剥离性实验来与其他替代方案进行比较。广泛的实验验证了作者的注意力函数的有效性(见图3和表8)。
4、实验
4.1、Image Classification on ImageNet
作者首先采用了许多先前研究所采用的传统训练策略,比如 DY-Conv、ODConv,其中模型训练了100个epochs。
结果如表1所示。可以观察到,动态卷积方法(CondConv、DY-Conv和ODConv)引入了明显更多的额外参数,相对于其他方法(SE、CBAM、ECA、CGC、WeightNet和DCD)更倾向于具有更好的性能。
值得注意的是,作者的KW(1/2×),其参数比Baseline 少了36.45%,甚至在CondConv(8×)和DY-Conv(4×)将模型大小增加到约6.96倍|3.89倍时,除ODConv(4×)外,可以超过所有以上基于注意力的方法,包括 CondConv(8×)和 DY-Conv(4×)。
作者的KW(2×)取得了最佳结果,进一步超过了ODConv(4×)0.06% 的top-1增益,而仅使用了大约一半的参数。然而,当作者将KW从2×增加到4×时,top-1增益从3.78% 下降到3.29%。
图2展示了具有ODConv(4×)和作者的KW(1×、2×、4×)的ResNet18网络的训练和验证准确率曲线。作者可以看到,KW(2×)的训练准确率已经高于ODConv(4×)。
然而,与KW(2×)相比,KW(4×)在训练集上进一步提高了2.79% 的准确率,但在验证集上下降了0.49%。作者认为验证准确率下降的原因是,KW(4×)在很大程度上增强了ResNet18网络的容量,但在使用传统的训练策略时也可能受到潜在的过拟合影响。
采用传统的训练策略,作者的KW(1/2×、1×、2×)已经在ResNet18网络上展现出了有希望的结果。为了进一步探索KernelWarehouse在带有更大的b值的大型ConvNets上的潜力,作者接下来采用了ConvNeXt 提出的训练策略,使用更长的训练周期(300个epochs)和更激进的数据增强,以在ResNet18、ResNet50和ConvNeXt-Tiny上进行比较。
从表2中的结果可以观察到:
- 在先进的训练策略下,DY-Conv(4×)、ODConv(4×)和作者的KW(1/2×、1×、4×)在ResNet18网络上显示出更好的结果,并对Baseline 模型带来了更大的top-1增益,与传统的训练策略相比。可以看出,先进的训练策略成功缓解了KW(4×)的过拟合问题,它获得了最佳结果,带来了5.61% 的绝对top-1增益。即使在36.45% | 65.10% 的参数减少情况下,KW(1/2×)| KW(1/4×)仍然使Baseline 模型的top-1准确率提高了2.89% | 2.29%;
- 在更大的ResNet50网络上,尽管传统的动态卷积方法(DY-Conv)显示出较低的性能增益,KW(1/2×、1×、4×)仍然为Baseline 模型带来了很大的性能改进。通过30.99% 的参数减少,KW(1/2×)将ResNet50网络的top-1准确率提高了0.86%。作者的KW(4×)始终比DY-Conv(4×)和ODConv(4×)都获得了2.05% | 0.43% 的top-1增益。
除了ResNets,作者还将KernelWarehouse应用于ConvNeXt-Tiny网络,以研究其在最先进的ConvNet架构上的性能。作者的方法在ConvNeXt-Tiny上表现出很好的泛化能力,在KW(1×)的情况下,将Baseline 模型的top-1准确率提高了0.44%。
作者进一步将KernelWarehouse应用于MobileNetV2(1.0×、0.5×)上,以验证其在轻量级ConvNet架构上的有效性。由于轻量级的MobileNetV2模型相对于ResNet和ConvNeXt模型具有较低的容量,作者在MobileNetV2上没有使用激进的数据增强。
结果如表3所示。作者的KernelWarehouse在轻量级ConvNets以及较大的ConvNets之间能够在参数效率和表示能力之间取得有利的平衡。即使在参数为3.50M|1.97M的轻量级MobileNetV2(1.0×、0.5×)上,作者的KW(1/2×)可以减少模型大小24.29% | 25.38%,同时带来0.55% | 0.89% 的top-1增益。同样,作者的KW(4×)在MobileNetV2(1.0×)和MobileNet(0.5×)上都获得了最佳结果。
4.2、Object Detection on MS-COCO
在不同的主干网络上,Mask R-CNN的比较结果如表4所示。对于使用ResNet50网络的Mask R-CNN模型,作者观察到与在ImageNet数据集上的主要实验类似的趋势:KW(4×)在目标检测和实例分割任务上均优于DY-Conv(4×)和ODConv(4×)。作者的KW(1×)在目标检测和实例分割任务上都带来了2.2% | 2.0% 的AP改进,与ODConv(4×)相当。
使用MobileNetV2(1.0×)网络,KernelWarehouse在Baseline 模型上持续提高了准确性。作者的KW(4×)获得了最佳结果。使用ConvNeXt-Tiny网络,KW(1×)在MS-COCO数据集上对Baseline 模型的性能改进比在ImageNet数据集上更为明显,显示出其较高的容量和对下游任务的良好泛化能力。
4.2、消融实验
为了更深入地理解KernelWarehouse,作者在ImageNet数据集上进行了大量的剖析性实验。所有模型都是根据ConvNeXt [6]中提出的训练策略进行训练。
1、不同范围的 warehouse sharing
为了验证 warehouse sharing 的有效性,作者首先在ResNet18网络上进行了不同范围的 warehouse sharing 的剖析性实验。从表5所示的结果可以看出,在更宽范围内共享 warehouse 时,KernelWarehouse对Baseline 模型带来了更大的性能改进。这表明在同一卷积层内和跨连续层之间明确增强参数依赖性都可以增强网络容量。
2、具有不同维度的内核之间的 warehouse sharing
在主流的ConvNet设计中,一个卷积块通常包含几个具有不同维度(k × k × c × f)的核。接下来,作者在ResNet50网络上进行了剖析性实验,以探索卷积块内具有不同维度的kernel之间的 warehouse sharing 的效果。
结果在表6中,显示在具有不同维度的kernel之间进行 warehouse sharing 相对于仅在具有相同维度的kernel之间进行 warehouse sharing 表现更好。结合表5和表6中的结果,作者可以得出结论,加强KernelWarehouse中更多kernel单元之间的 warehouse sharing 通常会导致更好的性能。
3、 kernel partition的效果
通过使用 kernel partition,KernelWarehouse可以应用更多的Kernel单元进行更密集的kernel assembling。在表7中,作者对ResNet18网络上的 kernel partition进行了比较。没有 kernel partition,KernelWarehouse对Baseline 的top-1增益急剧下降,从4.33%下降到0.05%,这证明了 kernel partition对KernelWarehouse的重要性。
4、注意力函数
回顾一下,KernelWarehouse使用了一种新的注意力函数。在实验中,作者在ResNet18网络上比较了不同注意力函数下KernelWarehouse的性能。
如表8所示,注意力函数在KernelWarehouse中起着重要作用,作者的设计和Softmax|Sigmoid之间的性能差距达到了2.10%|2.68%。作者的设计还比 函数优越了2.03%,验证了引入负值以鼓励网络学习敌对关注关系的重要性。
5、注意初始化策略
为了帮助KernelWarehouse在早期训练阶段的优化,使用温度γ来初始化标量注意力β。在实验中,作者使用ResNet18作为Backbone网络,研究了作者的注意力初始化策略的效果。如表9所示,对标量注意力进行适当的初始化策略有利于网络学习线性混合物和Kernel单元之间的关系,这在基于KW(1×)的ResNet18网络上带来了1.38%的top-1改进。
6、可视化
为了更好地理解KernelWarehouse的 warehouse sharing 机制,作者进一步分析了的统计均值,以研究其学习到的注意值。结果是从预训练的ResNet18网络使用KW(1×)获得的。可视化结果如图3所示,从中作者可以观察到:
- 每个线性混合可以为不同的Kernel单元学习自己的标量注意力分布;
- 在每个 warehouse 中,每行中的最大值在整个 warehouse 中主要出现在对角线上。这表明作者的注意力初始化策略可以帮助KernelWarehouse根据作者的β设置在线性混合物和Kernel单元之间建立一对一的关系;
- 与不同层中的线性混合物相比,同一层中具有更高绝对值的注意力有更多的重叠。这表明同一Kernel中的参数依赖性强于跨层次的依赖性,这可以由KernelWarehouse学习到。
7、局限性
表格10提供了两组推理速度分析的实验结果,作者可以观察到,在类似的模型尺寸预算下,使用KernelWarehouse训练的模型的运行时速度通常比其动态卷积对应模型要慢,特别是对于大型ConvNet。这种限制的主要原因是KernelWarehouse中线性混合的密集计算。
此外,作者相信KernelWarehouse可以应用于更深更大的ConvNet,但受限于作者的计算资源,作者无法进一步探索这一点。
5、参考
[1].KernelWarehouse: Towards Parameter-Efficient Dynamic Convolution.