论文链接:https://arxiv.org/abs/2202.09741 代码链接:https://github.com/Visual-Attention-Network
一、背景
源于 NLP 的 self-attention 机制在应用于 2D 图像的时候,有三个问题: 将 2D 的结果看做 1D 的序列,会损失 2D 空间结构 高分辨率的图像会导致很大的计算复杂度 一般的 self-attention 都是只会捕捉空间上的相关性,忽略了通道上的相关性
二、动机
为了解决上述问题,本文提出了一个适用于视觉任务的 large kernel attention (LKA),使得 self-attention 能够自适应捕捉长距离关系。
三、方法
LKA 吸收了卷积和 self-attention 的优势——包括局部结构信息、长距离依赖、自适应性
基于 LKA,作者提出了新的视觉 backbone——visual attention network(VAN)。
3.1 Large Kernel Attention
如图 2,一个大尺寸的卷积可以分成三个部分:
- 空间上的局部卷积(depth-wise convolution)
- 空间上的 long-range convolution(depth-wise dilation convolution)
- 通道上的卷积(1x1 convolution)
也就是说,一个
K
×
K
K \times K
K×K 的卷积可以被拆分如下:
- 一个 $\frac{K}{d} \times \frac{K}{d} $ 的 depth-wise dilation convolution,
d
d
d 为膨胀率
- 一个
(
2
d
?
1
)
×
(
2
d
?
1
)
(2d-1) \times (2d-1)
(2d?1)×(2d?1) 的depth-wise convolution
- 一个 1x1 卷积
拆分后的卷积可以捕捉长距离信息,并且节省计算资源,得到长距离关系后,能够估计每个点的重要程度,生成 attention map。
如图3a所示,LKA 模型如下:
3.2 VAN
VAN 结构简单,有四层,不同量级的模型结构如表 2 所示:
对图3d中的每个stage,首先将输入进行下采样,然后再进行后续操作。
复杂度分析:
实现细节如下,使用下面三种卷积实现类似 21x21 的卷积
- 1 个 5x5 depth-wise convolution
- 1 个 7x7 depth-wise convolution(d=3)
- 1 个 1x1 卷积
四、效果
4.1 分类
4.2 目标检测
4.3 语义分割
|