【WACV2020】ULSAM: Ultra-Lightweight Subspace Attention Module

论文代码:https://github.com/Nandan91/ULSAM

Motivation

作者首先指出 Self-attention mechanism 在计算机视觉领域中提供了 infinite receptive filed size,同时可以捕获特征空间中的 long-range dependency 。同时,对比了当前主流的一些 self-attention 模型:

同时,指出这些方法,要么使用 1x1 的卷积来生成 attention map (non-local, A2-net, BAM),要么使用 MLP 来对通道间的依赖进行建模(SENET, BM, CBAM)。这样参数量较大,计算复杂。

方法

为了解决当前方法的问题,作者提出了“ultra-lightweight subspace attention module” (ULSAM) ,并指出该方法的优点是,在子空间计算 attention,大体框架如下图所示:

这个粗略的图中可以看出,是把输入特征分为多组分别处理,同时,各个组里也都有类似 SENet 的 squeeze 和 excitation 的效果。只是作者改了名字,叫做 “ gather 和 broadcast ” 。接下来我们来看这个 gather 和 broadcast 的实现细节。

该模块的实现细节如下图所示:

可以看出,对于输入的通道数为 \(m\) 的特征,分为了 \(g\) 组,每组有 \(G\) 个 feature map。(\(m=g\times G\))这样就划分为多个特征子空间,每个空间的特征为 \(h\times w\times G\).

各个子空间的特征首先用 depth-wise conv 处理,卷积核大小为 1x1 ; 接着进行步长为1,尺寸为 3x3 的 max pooling,为保持 feature map 大小不变,加了 padding ;再接着,使用 1x1 的 point-wise conv 处理,得到 \(h\times w \times 1\) 的特征;使用 softmax 处理,将特征扩展为 \(h\times w\times G\)。再后面就是给输入特征逐点分配权重 (点乘),以及残差处理,输出特征维度为 \(h\times w\times G\) ,和输入一样

最后将各个子空间得到的特征拼接,得到最终的特征。

这里列举一下 作者使用MobileNet-V1作为backbone,在 ImageNet-1K 上的实验。 Top-1 accuracy on ImageNet-1K has increased by 0.27% and 0.21%。作者得出的结论是:Separate attention maps for the different subspace of feature maps helps in better feature representation.

作者还做了细粒度分类的实验,得出的结论是:The accuracy of both MV1 and MV2 is higher than the baseline model with significantly lower computation and number of parameters. 具体可以参考作者论文。

小结

作者认为当前的 self-attention,没有捕获特征子空间里的关系。但是,子空间里的特征是对于建模 cross-channel interaction 时更加有效。作者提出的方法,可以实现 multi-scale and multi-frequency 的特征表达,同时,multi-frequency 的特征表达,对于细粒度分类更为重要。

也可能读论文较为粗略,我有两个地方不太明白:1、在depth-wise conv 和 point-wise conv 中间加 max pool 是否必要? 这个 pool 不知道起什么作用。2、不清楚 multi-frequency 是如何体现的。

posted @ 2020-08-29 14:26  高峰OUC  阅读(703)  评论(0编辑  收藏  举报