从理论上推导了一种全局自注意力近似机制,它通过卷积操作在变换特征上对自注意力进行近似。基于所提逼近机制,作者构建了一种包含卷积与自注意力操作的多分支模块以同时利用了局部与非局部特征交互作用。更重要的是,完成训练后,该多分支模块可以通过结构重参数化转换为单个卷积操作。

上交&华为海思提出了新的“卷王”Xvolution:它对卷积与自注意力进行了统一集成,同时利用了卷积的局部特征提取能力与自注意力的全局建模能力。更重要的是,它通过结构重参数化思想将训练与推理进行了解耦:在训练阶段采用多分支结构进行训练,在推理阶段等价转换为单一动态卷积形式。

在本文中,华为上交&华为海思提出了一种集成卷积与自注意力的Xvolution,它将卷积与自注意力进行了集成,同时利用卷积的局部特征提取能力与自注意力的全局建模能力。更重要的是,它通过结构重参数化机制将卷积与自注意力组合的多分支结构转换成了等价单一卷积形式,达到了涨点的同时具有高度硬件实现友好的目的。此外,Xvolution是一种广义形式,其自注意力部分可以是自注意力形式还是可以是Involution形式。相比自注意力与Involution,所提方案取得了更佳的性能提升。

Abstract

卷积与自注意力是深度神经网络两种最基本部件,前者以线性方式提取局部图像特征,后者通过非局部方式编码高阶上下文关系。尽管两者本质上具有互补性,但由于两者计算模式的差异性,当前优秀的架构(包含CNN与Transformer)仍缺少一种将上述两部件统一到同一模块的方案。

我们从理论上推导了一种全局自注意力近似机制,它通过卷积操作在变换特征上对自注意力进行近似。基于所提逼近机制,我们构建了一种包含卷积与自注意力操作的多分支模块以同时利用了局部与非局部特征交互作用。更重要的是,完成训练后,该多分支模块可以通过结构重参数化转换为单个卷积操作。我们将其称之为X-volution,它是一种“即插即用”模块,可以嵌入到任意深度卷积网络中。

我们在ImageNet分类、COCO检测与分割等任务上验证了所提Xvolution的有效性。比如,Xvolution在ImageNet上取得了1.2%top1精度提升;在COCO检测任务上取得了1.7boxAP指标提升;在COCO分割任务上取得了1.5mAP指标提升。

Method

我们首先对卷积与自注意力的本质数学公式进行回顾;然后针对全局自注意力提出了一种简单的近似机制,它可以直接转为了卷积形式;最后我们了介绍了如何在推理阶段将卷积与自注意力合并为单一卷积操作。

The Convoution Module

X-volution_建模

从上述公式可以看到:卷积是一种一阶线性加权操作

The Self-Attention Module

X-volution_人工智能_02

从上述公式可以看到:自注意力是一种动态的、空间可变的操作,是一种高阶全局操作

The Approximation of Global Self-Attention

X-volution_卷积_03

X-volution_参数化_04

X-volution

卷积凭借局部与各向同性的归纳偏置具有平移不变性,然而卷积的局部特性使其无法构建长距离关系,而这对于图灵原子完备操作非常重要。相反,自注意力则忽视了上述归纳偏置,力求在没有明确模型假设的情况下从数据集中发现自然模式,这使得自注意力非常大的自由度进行复杂关系(比如长距离依赖于、各向异性、强局部相关等)探索,进而导致该机制需要更大的训练数据。此外,自注意力比较难以训练,需要更长的训练周期与复杂的技巧。

有鉴于此,AANet与CVT认为应当将卷积引入到自注意力中以改善其鲁棒性与性能。简而言之,同时利用不同模型假设,进而同时利用两者的优化特性、注意力范畴以及内容依赖性。

不同于AANet与CVT,我们采用前面Figure1所示的方案,它同时利用了结构重参数化思想将训练与测试进行解耦。

  • 在训练阶段,所提模块为多分支结构:一个分支为标准卷积,一个分支为本文所提全局自注意力近似版。
  • 在推理阶段,将两个分支合并为单一卷积操作。

结构重参数化可以简单网络结构使其变得更为规整,同时具有加速计算的效果。值得注意的是:在这里,我们对其进行扩展以合并卷积与自注意力。按照上述公式,我们可以等价的将多分支模块转换为动态卷积操作Xvolution。

Network Architecture

下表以ResNet50为例说明了所得到Xvolution的嵌入方式以及改进后ResNet50的架构信息。

X-volution_参数化_05

Experiments

在实验方面,我们在ImageNet分类、COCO检测与分割等任务上进行了对比。关于实验超参配置请自行查看原文,这里略多,仅提供主要结果。

X-volution_卷积_06

上表&图提供了ImageNet数据集上的结果对比以及所构建的Bottleneck示意图。从表中数据可以看到: 

  • 在ResNet34与ResNet50方面,所提Xvolution取得了一致性能提升,验证了所提多分支设计的有效性;
  • 不同阶段的Xvolutio嵌入具有不同的影响,Stage3嵌入可以带来更佳的性能提升。

X-volution_建模_07

上表给出了所提方案在COCO检测任务上的性能对比,从中可以看到:

  • 三个版本的Xvolution均超越了其对应的自注意力形式。
  • X-volution(SA)取得了最佳性能提升:1.7boxAP;
  • 上述结果表明:图灵完备原子操作有助于视觉理解,而这却被现有计算操作忽视了
  • 基于PSSA的Xvolution取得了与X-volution(SA)相当的性能,这意味着Xvolution的近似表现很好,而它对于硬件实现与计算更为友好。

X-volution_参数化_08

上表给出了所提方案在COCO分割任务上的性能对比,从中可以看到:

  • 所提Xvolution以较大优势超越了其他方案,比如自注意力与Involution;
  • 相比ResNet50,Xvolution(SA取得了2.0boxAP与1.5mAP指标提升,同时比自注意力方案提升1.7boxAP与1.1mAP指标;
  • 与Involution的组合取得了比Involution更佳的性能,指标超出0.3boxAP与0.1mAP;
  • 上述结果验证了Xvolution操作的优越性,说明:局部与全局上下文信息的集成有助于更精确的实例分割

个人理解

这篇论文从一个比较新颖的角度出发,将卷积与自注意力机制进行了巧妙集成与转换,达到了取二者之长的目的。

该文还采用结构重参数化机制进行训练与推理结构。但是,这里的结构重参数化与RepVGG、ACNet、DBB等重参数化不一样。之前的重参数化后的模块就是一个标准卷积,而这里结构重参数化后是一个动态卷积。但实际上,动态卷积并不是一个硬件实现友好的操作。

该文将自注意力与卷积通过多分支方式进行了巧妙集成,这种集成方式其实与RepMLP有异曲同工之妙。本文采用了自注意力机制进行全局信息建模,而RepMLP则采用MLP进行全局信息建模。两者的区别在于:全局建模的动态性与静态性

自注意力与卷积的结合其实在去年就已有了,比如港中文贾佳亚团队投于CVPR2020的SANet从双边滤波的角度同时集成了局部与自注意力特性,当然也可以转换成本文推理阶段的动态卷积形式。