HorNet:递归门控卷积的高效高阶空间交互
一、简介
论文: https://arxiv.org/abs/2207.14284
代码: https://github.com/raoyongming/HorNet
ECCV(鲁继文团队团队)
作者认为当前的 Transformer 取得成功主要是因为通过自注意力操作实现输入自适应、远程和高阶空间交互的空间建模新方法,但尚未研究高阶空间交互机制。因此,作者提出了 Recursive gated convolution (gnConv)。
递归门控卷积 (gnConv),它通过门控卷积和递归设计执行高效、可扩展和平移等变的高阶空间交互,即插即用来改进各种视觉 Transformer 和基于卷积的模型,并提出新的通用视觉骨干家族:HorNet,优于Swin、ConvNeXt等网络!
新操作具有高度的灵活性和可定制性,它兼容各种卷积变体,并将自注意力中的二阶交互扩展到任意阶,而不会引入大量额外的计算。
二、设计原因
1、利用点乘积的自我注意在视觉任务中的有效性尚未从高阶空间交互的方面进行分析;
2、由于非线性的原因,在深度模型中的两个空间位置之间存在复杂且通常是高阶的交互,自注意力和其他动态网络的成功表明,显式和高阶空间交互引入的设计有利于提高视觉模型的建模能力。
3、视觉建模的基本操作(例如自注意力中的点乘)趋势表明,可以通过增加空间交互的次数来提高网络容量。下图展示了普通卷积、注意力卷积、Transformer block以及本文的递归模块。顺序依次为a、b、c、d。
三、核心架构:递归门控卷积
门控卷积结构如下图所示,括号中表示输出通道数。从图中可以看出,门控卷积就是首先通过两个卷积层来调整特征通道数。接着,将深度可分离卷积的输出特征沿着特征分成多块,每一块与前一块交互的特征进一步进行逐元素相乘的方式进行交互,最终得到输出特征。这里递归就是不断地进行逐元素相乘操作,通过这种递归方式特征越在后面的特征高阶信息保存越多,这样在高阶中特征交互就会足够多。
(2)循环门控实现高阶交互。 循环的进行门控卷积,可以实现更高阶的特征交互。这里直接晒论文里的图和伪代码,非常容易理解。作者只进行了一次卷积,降低了计算量。从图中可以看出,各阶交互特征通道数依次是 C/4, C/2, C,这样就实现了精 粗到精的特征提取,低阶使用较少的通道。作者还有一个计算量的分析,表明gnConv可以在相近计算量的情况下实现高阶空间交互建模,感兴趣可以看论文。
(3)DWConv 中使用大卷积核。 VIT中因为具有较大的感受野,容易捕捉长距离依赖关系。受此启发,作者对于 DWConv 进行了如下改进:(1)使用 7x7 的卷积核;(2)对于一半的 channel 使用 global filter,另一半使用 3X3 的 DWConv,并且只在后面的 stage 使用。global filter 是 NeurIPS 2021 论文 Global Filter Networks for Image Classification 里提出的方法,之前还没有看过,这两天会抽空看一下。
四、HorNet 整体架构及代码复现
作者使用了典型 Transformer 网络的四阶段架构,如下图所示,把 attention 替换为 gnConv。作者直接沿用了 SWIN 各个阶段 block 的数量,并额外在 stage2 加了一个 block 使整体复杂度接近。各个stage的block数是[2, 3, 18, 2]。每个 stage中,gnConv空间阶数分别为[2,3,4,5]。四个 stage 的通道数依次为[C, 2C, 4C, 8C]。
代码链接: 超越 ConvNeXt、Swin(涨点神器): 利用递归门控卷积的高阶空间交互网络
五、总结
1、提出一种新的空间交互模块,即插即用,可以助力网络涨点;
2、表明高阶空间中信息交互对信息处理更有效;
3、是一个新的思路,可以在未来进行进一步探索。