上海交通大学与华为海思提出了一种新颖的“卷王”xvolution:它将卷积和自注意力机制进行了统一的集成,同时利用了卷积的局部特征提取能力和自注意力的全局建模能力。更重要的是,通过结构重参数化思想,xvolution在训练阶段采用多分支结构进行训练,而在推理阶段等价转换为单一动态卷积形式。
标题与作者团队
摘要 卷积与自注意力是深度神经网络的两种基本组成部分,前者通过线性方式提取局部图像特征,后者通过非局部方式编码高阶上下文关系。尽管两者在本质上具有互补性,但由于其计算模式的差异,当前优秀的架构(包括CNN与Transformer)仍然缺乏将这两部分统一到同一模块的方案。
我们从理论上推导出了一种全局自注意力的近似机制,通过卷积操作在变换特征上对自注意力进行近似。基于这种近似机制,我们构建了一种包含卷积与自注意力操作的多分支模块,以同时利用局部与非局部特征的交互作用。更重要的是,完成训练后,该多分支模块可以通过结构重参数化转换为单一卷积操作。我们将其称为X-volution,它是一种“即插即用”模块,可以嵌入到任何深度卷积网络中。
我们在ImageNet分类、COCO检测与分割等任务上验证了Xvolution的有效性。例如,Xvolution在ImageNet上取得了1.2%的top1精度提升;在COCO检测任务上取得了1.7boxAP指标提升;在COCO分割任务上取得了1.5mAP指标提升。
方法 我们首先回顾了卷积与自注意力的基本数学公式;然后针对全局自注意力提出了一种简单的近似机制,它可以直接转换为卷积形式;最后介绍了如何在推理阶段将卷积与自注意力合并为单一卷积操作。
卷积模块 卷积是一种计算密集型算子,它通过在局部区域进行线性加权的方式估计输出。给定输入张量
X \in R^{C_i \times H \times W},估计的输出
Y \in R^{C_o \times H \times W}可以通过以下公式计算得到:
Y_{Co, i,j} = \sum{c_i=0}^{Ci} \sum{(\delta_i, \delta_j) \in \Deltak} w{c_o, c_i, \delta_i + \lfloor K/2\rfloor, \deltaj +\lfloor K/2 \rfloor} X{c_i, i+\delta_i, j+\deltaj} + B{c_o}从上述公式可以看出:卷积是一种一阶线性加权操作。
自注意力模块 自注意力是视觉任务中另一种提升性能的必备模块,它旨在通过构建长距离语义交互来提升模型性能。与卷积不同,自注意力不是直接在张量层面上进行处理,而是先将特征张量重塑为向量
X \in R^{C\times L},然后通过以下方式计算:
Y = softmax((W^Q X)^T W^K X) W^V X = \tilde{W}(X) X从上述公式可以看出:自注意力是一种动态的、空间可变的操作,是一种高阶全局操作。
全局自注意力的近似 全局自注意力是最原始的注意力机制,其优势源自全局性。然而,其计算复杂度
O(n^2)是不可接受的,这使得其在视觉任务中的应用极为有限。关键问题在于:我们能否推导出一个关于
\tilde{W}(X)的合理近似?也就是说,我们能否从离线操作(比如卷积、元素乘)中找到一个关于
\tilde{W}(X)的紧凑计算模式?接下来,我们将表明:通过简单的元素移位与点乘,我们可以通过卷积形式进行全局自注意力的近似。
假设特征张量X某一位置的特征向量表示为
x_o,其注意力
s_0可以描述如下:
其中,
\alpha_t = w^p w^q w^k x。从上式可以看出,它将全局自注意力转换为了两部分:局部与非局部,可参见下图,绿色区域代表局部区域,灰色区域代表非局部区域。
因此,
x_0处的全局自注意力可以通过对近邻像素的注意力结果加权得到。也就是说,我们可以设计一种近似操作,通过点到点的上下文相关传播来估计全局注意力。因此,我们提出了全局注意力近似机制:PSSA(Pixel Shift Self-Attention),它采用像素移位与卷积来估计全局注意力。具体来说,我们首先对特征图沿给定方向(比如左、右、上、下)移位L像素,然后计算两者之间的点乘得到变换特征。事实上,移位乘操作构建了近邻点之间的上下文关系,通过分层堆叠,我们可以将上下文关系传播到全局区域。最后,我们在变换后特征上执行加权和得到近似自注意力图。注:所提PSSA的计算复杂度为
O(n)。特别值得一提的是:PSSA将自注意力转成了变换特征的标准卷积操作。其计算流程可参见下图。
X-volution卷积凭借局部与各向同性的归纳偏置具有平移不变性,然而卷积的局部特性使其无法构建长距离关系,而这对于图灵原子完备操作非常重要。相反,自注意力则忽视了上述归纳偏置,力求在没有明确模型假设的情况下从数据集中发现自然模式,这使得自注意力具有非常大的自由度进行复杂关系(比如长距离依赖、各向异性、强局部相关等)的探索,进而导致该机制需要更大的训练数据。此外,自注意力比较难以训练,需要更长的训练周期与复杂的技巧。
有鉴于此,AANet与CVT认为应当将卷积引入到自注意力中以改善其鲁棒性与性能。简而言之,同时利用不同模型假设,进而同时利用两者的优化特性、注意力范畴以及内容依赖性。
不同于AANet与CVT,我们采用前面图1所示的方案,它同时利用了结构重参数化思想将训练与测试进行解耦。
在训练阶段,所提模块为多分支结构:一个分支为标准卷积,一个分支为本文所提的全局自注意力近似版。在推理阶段,将两个分支合并为单一卷积操作。结构重参数化可以简化网络结构,使其变得更为规整,同时具有加速计算的效果。值得注意的是:在这里,我们对其进行扩展以合并卷积与自注意力。按照上述公式,我们可以等价地将多分支模块转换为动态卷积操作Xvolution。
网络架构 下表以ResNet50为例说明了所得到Xvolution的嵌入方式以及改进后ResNet50的架构信息。
实验 在实验方面,我们在ImageNet分类、COCO检测与分割等任务上进行了对比。关于实验超参配置请自行查看原文,这里略多,仅提供主要结果。
上表与图提供了ImageNet数据集上的结果对比以及所构建的Bottleneck示意图。从表中数据可以看出:
在ResNet34与ResNet50方面,所提Xvolution取得了一致的性能提升,验证了所提多分支设计的有效性;不同阶段的Xvolution嵌入具有不同的影响,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进行全局信息建模。两者的区别在于:全局建模的动态性与静态性。
以上就是“卷王”X-volution | 将卷积与自注意力进行高效集成,上交与华为海思提出了Xvolution的详细内容,更多请关注php中文网其它相关文章!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号