动态卷积学习
n
个静态卷积核的线性混合,加权使用它们输入相关的注意力,表现出比普通卷积更优越的性能。然而,它将卷积参数的数量增加了n
倍,因此并不是参数高效的。这导致不能探索n>100
的设置(比典型设置n<10
大一个数量级),推动动态卷积性能边界提升的同时享受参数的高效性。为此,论文提出了KernelWarehouse
,通过利用卷积参数在同一层内部以及邻近层之间的依赖关系重新定义了“卷积核”、“组装卷积核”和“注意力函数”的基本概念。来源:晓飞的算法工程笔记 公众号,转载请注明出处
论文: KernelWarehouse: Rethinking the Design of Dynamic Convolution
Introduction
卷积是卷积神经网络(ConvNets
)中的关键操作。在卷积层中,普通卷积 y = W ∗ x \mathbf{y} = \mathbf{W}*\mathbf{x} y=W∗x 通过由一组卷积滤波器定义的相同卷积核 W \mathbf{W} W 应用于每个输入样本 x \mathbf{x} x 来计算输出 y \mathbf{y} y 。为简洁起见,将“卷积核”简称为“核”并省略偏置项。尽管常规卷积的有效性已经通过在许多计算机视觉任务上通过各种ConvNet
架构进行广泛验证,但最近在高效ConvNet
架构设计方面的进展表明,被称为CondConv
和DY-Conv
的动态卷积取得了巨大的性能提升。
动态卷积的基本思想是用 n n n 个相同维度的卷积核的线性混合来取代常规卷积中的单个核, W = α 1 W 1 + . . . + α n W n \mathbf{W}=\alpha_{1}\mathbf{W}_1+...+\alpha_{n}\mathbf{W}_n W=α1W1+...+αnWn ,其中 α 1 , . . . , α n \alpha_{1},...,\alpha_{n} α1,...,αn 是由一个依赖于输入的注意力模块生成的标量注意力。受益于 W 1 , . . . , W n \mathbf{W}_1,...,\mathbf{W}_n W1,...,Wn 的加法性质和紧凑的注意力模块设计,动态卷积提高了特征学习能力,而与普通卷积相比只增加了少量的乘加成本。然而,它将卷积参数的数量增加了 n n n 倍,因为现代ConvNet
的卷积层占据了绝大部分参数,这导致了模型大小的大幅增加。目前还很少有研究工作来缓解这个问题。DCD
通过矩阵分解学习基础核和稀疏残差,以逼近动态卷积。这种逼近放弃了基本的混合学习范式,因此当 n n n 变大时无法保持动态卷积的表征能力。ODConv
提出了一个改进的注意力模块,沿不同维度动态加权静态卷积核,而不是单个维度,这样可以在减少卷积核数量的情况下获得具有竞争力的性能。但是,在相同的 n n n 设置下,ODConv
的参数比原始动态卷积多。最近,有研究直接使用了流行的权重修剪策略,通过多个修剪和重新训练阶段来压缩DY-Conv
。
简而言之,基于线性混合学习范式的现有动态卷积方法在参数效率方面存在局限。受此限制,卷积核数量通常设置为 n = 8 n=8 n=8 或 n = 4 n=4 n=4 。然而,一个显而易见的事实是,采用动态卷积构建的ConvNet
的增强容量来源于通过注意机制增加每个卷积层的卷积核数量 n n n 。这导致了所需模型大小和容量之间的基本冲突。因此,论文重新思考了动态卷积的设计,旨在协调这种冲突,使其能够在参数效率的同时探索动态卷积性能边界,即能够设置更大的核数 n > 100 n>100 n>100 (比典型设置 n < 10 n<10 n<10 大一个数量级)。需要注意的是,对于现有的动态卷积方法, n > 100 n>100 n>100 意味着模型大小将大约比使用普通卷积构建的基础模型大100
倍以上。
为了实现这一目标,论文提出了一种更通用的动态卷积形式,称为KernelWarehouse
,主要受到现有动态卷积方法的两个观察的启发:(1
)它们将常规卷积层中的所有参数视为静态核,将卷积核数量从1
增加到 n n n ,并使用其注意模块将 n n n 个静态核组装成线性混合核。虽然直观有效,但它们没有考虑卷积层内部静态核之间的参数依赖关系;(2
)它们为ConvNet
的各个卷积层分配不同的 n n n 个静态核集合,忽略了相邻卷积层之间的参数依赖关系。与现有方法形成鲜明对比的是,KernelWarehouse
的核心理念是利用ConvNet
中同一层和相邻层的卷积参数依赖关系,重新构成动态卷积,以实现在参数效率和表示能力之间取得大幅度改进的权衡。
KernelWarehouse
由三个组件组成,分别是核分区、仓库的构建与共享和对比驱动的注意函数,它们之间紧密相互依赖。核分区利用同一卷积层内的参数依赖关系,重新定义了线性混合中的“核”,以较小的局部尺度而不是整体尺度来定义。仓库构建与共享利用相邻卷积层之间的参数依赖关系,重新定义了跨同一阶段卷积层的“组装核”,并生成了一个包含 n n n 个局部核(例如 n = 108 n=108 n=108 )的大型仓库,用于跨层线性混合共享。对比驱动的注意函数用于解决在具有挑战性的 n > 100 n>100 n>100 设置下,跨层线性混合学习范式下的注意力优化问题,重新定义了“注意力函数”。在给定不同的卷积参数预算下,KernelWarehouse
提供了很高的灵活性,允许以足够大的 n n n 值来很好地平衡参数效率和表示能力。
作为普通卷积的即插即用替代品,KernelWarehouse
可以轻松应用于各种类型的ConvNet
架构,通过对ImageNet
和MS-COCO
数据集进行大量实验证实了KernelWarehouse
的有效性。一方面,轮你问展示了与现有动态卷积方法相比,KernelWarehouse
实现了更优越的性能(例如,在ImageNet
数据集上,使用KernelWarehouse
训练的ResNet18
|ResNet50
|MobileNetV2
|ConvNeXT-Tiny
模型达到了76.05%
|81.05%
|75.92%
|82.55%
的top-1
准确率,为动态卷积研究创造了新的性能纪录)。另一方面,论文展示了KernelWarehouse
的三个组件对于模型准确性和参数效率的性能提升至关重要,而且KernelWarehouse
甚至可以在减小ConvNet
的模型大小同时提高模型准确性(例如,论文的ResNet18
模型相对于基准模型减少了65.10%
的参数,仍实现了2.29%
的绝对top-1
准确率增益),并且也适用于Vision Transformers
(例如,论文的DeiT-Tiny
模型达到了76.51%
的top-1
准确率,为基准模型带来了4.38%
的绝对top-1
准确率增益)。
Method
Motivation and Components of KernelWarehouse
对于一个卷积层,设 x ∈ R h × w × c \mathbf{x} \in \mathbb{R}^{h \times w \times c} x∈Rh×w×c 为输入,具有 c c c 个特征通道, y ∈ R h × w × f \mathbf{y} \in \mathbb{R}^{h \times w \times f} y∈Rh×w×f 为输出,具有 f f f 个特征通道,其中 h × w h \times w h×w 表示通道大小。普通卷积 y = W ∗ x \mathbf{y} = \mathbf{W}*\mathbf{x} y=W∗x 使用一个静态卷积核 W ∈ R k × k × c × f \mathbf{W} \in \mathbb{R}^{k \times k \times c \times f} W∈Rk×k×c×f ,包含 f f f 个具有空间大小 k × k k \times k k×k 的卷积滤波器。动态卷积通过一个由注意力模块 ϕ ( x ) \phi(x) ϕ(x) 生成的 $ \alpha_{1},…,\alpha_{n}$ 权重的 n n n 个相同维度的静态卷积核 W 1 , . . . , W n \mathbf{W}_1,...,\mathbf{W}_n W1,...,Wn 的线性混合取代普通卷积中的 W \mathbf{W} W 定义为:
KaTeX parse error: Undefined control sequence: \label at position 19: …egin{equation} \̲l̲a̲b̲e̲l̲{eq:00} \begin{…</