2022年2月
Arxiv Link : https://arxiv.org/abs/2202.09741
Code Link : https://github.com/Visual-Attention-Network
1 简介
简单的将自然语言处理中的自注意力机制拿到计算机视觉中是否合理 ?
卷积的优点是可以充分利用图像本身的2D结构信息。
而自注意力机制的优点是可以捕捉长距离依赖,并具有空间维度上的自适应性。
但也存在一些缺点:
- 自注意力在自然语言处理中用于处理一维序列,直接用于处理图像时会忽略图像自身的二维结构信息。
- 由于自注意力自身的复杂度问题,难以用于处理高分辨率图像。
- 自注意力机制仅仅考虑了空间上了自适应性,而忽略了通道维度上的自适应性。
我们希望设计一种针对计算机视觉的注意力机制,要有局部性、长距离依赖和空间及通道维度的自适应性。因此提出大核注意力(Large-kernel Attention ,LKA),吸收自注意力和卷积操作的优点,并且避免自注意力和卷积的不足。
2 大核注意力 (Large Kernel Attention)
attention map 反映了不同特征的重要程度。对于 SENet 来说,attention map 是一个 C 维向量,该向量反映了每个通道的重要程度。对于自注意力来说,每个点都有一个 H x W 的 attention map,这个 attention map 反映的是空间中每个点的重要程度。
而每个点的重要程度又需要根据它周围点的信息来判断,这个周围点越多越好,因此需要获取长距离的依赖关系。有两种常见的方式去捕捉长距离的依赖:
使用自注意力机制以及使用大核卷积。
但是大卷积核的参数量和计算量太大,难以接受。
因此想办法将大卷积核卷积进行分解,如下图所示:
一个K*K的大卷积可以分解为三部分:
- 一个K/d * K/d的depth-wise dilation conv
- 一个(2d-1)*(2d-1)的depth-wise conv
- 一个1*1卷积
下图展示了将一个13*13卷积分解为一个5*5的depth-wise dilation conv 一个5*5depth-wise conv(d=3) 和一个1*1卷积
本文默认选择使用21*21的卷积,d=3可以使参数量和计算量最小。
根据以上分解方式,可以得到attention map:
即下图a所示。
3 visual attention network(VAN)
有了 Large kernel attention,就可以搭建一个新的基于注意力机制的视觉主干网络。使用类似层次化 transformer 的结构,即 Attention - FFN 结构,具体结构如图 3 (d) 所示。
四种不同大小的网络 (Tiny, Small, Base, Large)配置如下表。