7月28日,清华大学计图团队和南开大学程明明教授团队合作,在CVMJ上在线发表一篇关于视觉骨干网络的论文Visual Attention Network,介绍了一种新型的注意力机制大核注意力机制(LKA)和新的骨干网络 VAN。该网络在图像分类、目标检测、语义分割和姿态估计等任务上均取得了优异的效果。该论文已2022年2月在ArXiv上发布,目前该文章的Google scholar的引用次数已达215次。
Part1
视觉骨干网络的发展
对图像进行特征提取,是计算机视觉任务的基础。在计算机视觉中,用于对图像进行特征提取的网络被称之为骨干网络。随着骨干网络的不断演进,计算机视觉也取得了飞跃式发展。视觉骨干网络的发展大致可以分为三个阶段:
2021年 11 月,清华大学的计图团队和南开大学程明明教授团队合作发布了一篇计算机视觉中的注意力机制的综述[1],分析了目前已有的各种注意力机制。通过完成这篇综述,作者意识到,如果从Transformer 的角度去看自注意力机制,那么自注意力机制是Transformer 中不可或缺的一部分,但是从注意力机制的角度去看自注意力机制,那么自注意力机制就是一种特殊的注意力机制,完全可能被替代。
在这篇文章中,计图团队提出了一种全新的针对于视觉任务的注意力机制 —大核注意力(Large-Kernel Attention, LKA),其机理和self-attention不同。基于这种大核注意力机制,作者提出了一种简单且有效的视觉骨干网络 Visual Attention Network(VAN), 该网络在图像分类、目标检测和语义分割任务上均取得了优异的效果[2]。
Part2
研究动机
自注意力(self-attention)首先被成功应用于自然语言处理领域,并很快在计算机视觉中也取得了非常显著的效果。但有一个很重要的问题:简单地将自然语言处理中的自注意力机制应用到计算机视觉中是否合理? 事实上,这种简单的应用有三个不足之处:
当然,自注意力也有自身的优势,比如:
除了自注意力,另外一种在计算机视觉中常用的操作是卷积,卷积操作本身也有可取之处,比如:
经过了上述的分析,作者希望为计算机视觉专门设计一种新的注意力机制,而不是简单沿用自然语言处理中的自注意力机制。于是,作者在该论文中提出了一种专门针对计算机视觉任务的大核注意力(LKA)机制,基于该注意力,作者进一步提出了一种全新的视觉骨干网络VAN。
Part3
大核注意力机理与骨干网络
下面介绍大核注意力的机理和VAN的设计。
注意力机制
注意力机制可以理解为:计算机视觉系统在模拟人类视觉系统中可以迅速高效地关注到重点区域的特性。注意力过程是一个自适应(动态)过程,根据输入去调节输出的过程。
注意力机制大概可以分成两个步骤: 1)得到注意力图(attention map),2)根据注意力图对输入进行处理。
一个很自然的问题:attention map 是什么呢 ?attention map 应该反映不同特征的重要程度。对于SENet[3] 来说,attention map 是一个C维向量,该向量反映了每个通道的重要程度。对于自注意力来说,每个点都有一个 H x W 的 attention map,这个attention map 反映的是空间中每个点的重要程度。
如何判断一个点的重要程度呢?
由于缺乏语义信息,根据单个点的信息,你难以判断这个点重要还是不重要,你需要知道它周围点的信息你才可以进行判断。所以我们需要得到周围点的信息,并且点越多(long-range dependence),可能判断的就越准确。如图1所示,attention map表示表示每个点的重要程度,你需要知道周围点的信息,才能判断一个黄色点的重要性。

图1 Attention map的计算原理
如何去捕捉长距离的依赖呢?
捕捉长距离的依赖有两种常见的方法:
1) 使用自注意力机制。在研究动机中已经讲述了在视觉中使用自注意力机制的不足。
2) 使用大核卷积来捕捉长距离依赖。使用该方法的不足在于,大卷积核的参数量和计算量太大,难以接受。
本文针对 2) 进行了改进,提出了一种新的分解方式,用于减少大卷积的计算量和参数量。
如图2所示:我们可以将一个Kx K 的大卷积分解成三部分:
a) 一个(K/d) x (K/d) 的depth-wise dilation convolution,其中dilation的大小为d;
b) 一个(2d-1)x (2d-1) 的 depth-wise convolution;
c) 一个 1x1 卷积。
这种分解可以理解为如何选择三种基本的构件来布满整个卷积空间。图2展示了将一个 13 x 13 的卷积分解成一个 5 x 5 的 depth-wise convolution 、一个 5 x 5 的depth-wise dilation convolution,和一个 1 x 1 的卷积,其中 d = 3 。

图2 13 x 13 卷积的分解
如上这种分解与 mobilenet[4] 中的分解相比,不同之处在于,作者对空间进行了二次分解,这使得该方法更加适用于大卷积核的分解。
文中选用了 21 x 21 的卷积,通过求导可以发现,按照这种分解方式,分解一个 21 x 21 的卷积时候,d = 3 可以使得参数量和计算量最小。通过该分解方式与原始卷积、mobilenet[3]分解的参数量的对比,发现该分解在大卷积核时,有着明显的优势。如表1所示,X 表示标准 21 x 21 的卷积,Y 表示使用mobilenet分解方式的卷积,Our表示文中的分解方式。
表1 该图展示了不同方式的参数量的对比

大核注意力 (LKA)
下面给出大核注意力的实现方式,

其中DW-Conv 表示 depth-wise convolution, DW-D-Conv 表示 depth-wise dilation convolution, Conv1x1 表示1 x 1 卷积。⊗ 表示逐元素相乘。
我们可以用图来表示神经网络模块:(a) 即为本文提出的大核注意力 (Large Kernel Attention);(b)是传统的卷积网络模块;(c)是自注意力模块;(d)是 VAN 的一个Stage,CFF 表示卷积前馈网络。
可以看到,(a) 和(b) 之间的区别是元素乘法。值得注意的是,(c)最初是为一维序列设计的。

图3 不同模块的结构
视觉注意力网络VAN
基于LKA,本文搭建了一个新的视觉骨干网络VAN。文中使用了类似层次化transformer 的结构,即 Attention-FFN 结构,具体如表2所示。作者给出了四种不同大小的VAN网络 (Tiny, Small, Base, Large),具体配置如下。
表2 不同大小的网络设置

Part4
实验结果
作者针对图像分类、检测和分割等任务做了实验,并和 Swin Transformer[5] 以及 ConvNeXt[6]进行了详尽的对比和分析,具体详见论文的实验章节。这里仅展示部分实验结果和可视化结果。

图4 与 ConvNeXt、Swin transformer以及 PVT 的比较
通过 Grad-CAM方法[7],进行可视化的结果如下。

图5 表2中VAN-B2的可视化效果
Part5
后续工作
继该工作之后,计图团队在大核注意力的基础上继续探索。比如,如何将大核注意力用于语义分割任务和三维视觉任务。针对语义分割任务,计图团队提出了一种新型的多尺度卷积注意力机制以及用于分割的网络 SegNeXt[8], 该成果目前已经在NeurIPS 2022上发表;针对三维视觉任务,计图团队提出了一种新型的池化操作,即长距离池化,并基于该池化提出了用于三维数据的网络 LRPNet[9],该成果已经在 CVPR 2023 上发表。
VAN论文的正式发表链接为
https://link.springer.com/article/10.1007/s41095-023-0364-2
VAN的计图代码已经在Github开源,链接为
https://github.com/Visual-Attention-Network/VAN-Jittor
论文的第一作者是清华大学的博士生国孟昊,其他作者还包括南开大学硕士生陆承泽、清华大学博士生刘政宁、南开大学程明明教授和清华大学胡事民教授。
参考文献