首发:AIWalker
作者:HappyAIWalker
大家好,我是Happy。
最近一段时间,各大公众号都在分发关于Transformer的各个进展,一时之间好像CNN没什么进展了,好像有段时间没出非常有意思的工作了。
今天,上交&华为海思提出了新的“卷王”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
卷积是一种计算密集型算子,它在局部区域通过线性加权方式估计输出。给定输入张量,估计的输出可以通过如下公式计算得到:
从上述公式可以看到:卷积是一种一阶线性加权操作。
The Self-Attention Module
自注意力是视觉任务中另一种涨点必备模块,它旨在通过构建长距离语义交互提升模型性能。与卷积不同,自注意力不是直接在张量层面进行处理,而是先将特征张量reshap为向量,然后通过如下方式计算:
从上述公式可以看到:自注意力是一种动态的、空间可变的操作,是一种高阶全局操作。
The Approximation of Global Self-Attention
全局自注意力是最原始的注意力机制,其优势源自全局性。然而,它的计算复杂度是不可接受的,这使得其在视觉任务中的应用极为有限。关键问题就变成了:我们能否推导出一个关于的合理近似?,也就是说我们能否从离线操作(比如卷积、元素乘)中找到一个关于的紧致计算模式?。接下来,我们将表明:通过简单的元素移位与点乘,我们可以通过卷积形式进行全局自注意力的近似。
假设特征张量X某一位置的特征向量表示为,其注意力可以描述如下:
其中,。从上式可以看到,它将全局子注意力转换为了两部分:局部与非局部,可参见下图,绿色区域代表局部区域,灰色区域代表非局部区域。
因此,处的全局自注意力可以通过对近邻像素的注意力结果加权得到。也就是说,我们可以设计一种近似操作通过点到点的上下文相关传播估计全局注意力。因此,我们提出了全局注意力近似机制:PSSA(Pixel Shift Self-Attention),它采用像素移位与卷积估计全局注意力。具体来说,我们首先对特征图沿给定方向(比如左、右、上、下)移位L像素,然后我们计算量两者之间的点乘得到变换特征。事实上,移位乘操作构建了近邻点之间的上下文关系,通过分层堆叠,我们可以将上下文关系传播到全局区域。最后,我们在变换后特征上执行加权和得到近似自注意力图。注:所提PSSA的计算复杂度为。尤其值得一提的是:PSSA转自注意力转成了变换特征的标准卷积操作。其计算流程可参见下图。
X-volution
卷积凭借局部与各向同性的归纳偏置具有平移不变性,然而卷积的局部特性使其无法构建长距离关系,而这对于图灵原子完备操作非常重要。相反,自注意力则忽视了上述归纳偏置,力求在没有明确模型假设的情况下从数据集中发现自然模式,这使得自注意力非常大的自由度进行复杂关系(比如长距离依赖于、各向异性、强局部相关等)探索,进而导致该机制需要更大的训练数据。此外,自注意力比较难以训练,需要更长的训练周期与复杂的技巧。
有鉴于此,AANet与CVT认为应当将卷积引入到自注意力中以改善其鲁棒性与性能。简而言之,同时利用不同模型假设,进而同时利用两者的优化特性、注意力范畴以及内容依赖性。
不同于AANet与CVT,我们采用前面Figure1所示的方案,它同时利用了结构重参数化思想将训练与测试进行解耦。
- 在训练阶段,所提模块为多分支结构:一个分支为标准卷积,一个分支为本文所提全局自注意力近似版。
- 在推理阶段,将两个分支合并为单一卷积操作。
结构重参数化可以简单网络结构使其变得更为规整,同时具有加速计算的效果。值得注意的是:在这里,我们对其进行扩展以合并卷积与自注意力。按照上述公式,我们可以等价的将多分支模块转换为动态卷积操作Xvolution。
Network Architecture
下表以ResNet50为例说明了所得到Xvolution的嵌入方式以及改进后ResNet50的架构信息。
Experiments
在实验方面,我们在ImageNet分类、COCO检测与分割等任务上进行了对比。关于实验超参配置请自行查看原文,这里略多,仅提供主要结果。
上表&图提供了ImageNet数据集上的结果对比以及所构建的Bottleneck示意图。从表中数据可以看到:
- 在ResNet34与ResNet50方面,所提Xvolution取得了一致性能提升,验证了所提多分支设计的有效性;
- 不同阶段的Xvolutio嵌入具有不同的影响,Stage3嵌入可以带来更佳的性能提升。
上表给出了所提方案在COCO检测任务上的性能对比,从中可以看到:
- 三个版本的Xvolution均超越了其对应的自注意力形式。
- X-volution(SA)取得了最佳性能提升:1.7boxAP;
- 上述结果表明:图灵完备原子操作有助于视觉理解,而这却被现有计算操作忽视了。
- 基于PSSA的Xvolution取得了与X-volution(SA)相当的性能,这意味着Xvolution的近似表现很好,而它对于硬件实现与计算更为友好。
上表给出了所提方案在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从双边滤波的角度同时集成了局部与自注意力特性,当然也可以转换成本文推理阶段的动态卷积形式。可以参考笔者之前的解读:
比CNN更强有力,港中文贾佳亚团队提出两类新型自注意力网络|CVPR2020
推荐阅读
本文章著作权归作者所有,任何形式的转载都请注明出处。更多动态滤波,图像质量,超分辨相关请关注我的专栏深度学习从入门到精通。