论文链接: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 分类