URL
https://arxiv.org/pdf/2006.15102.pdf
TL;DR
ULSAM
是一个超轻量级的子空间注意力网络,适合用在轻量级的网络中,例如MobileNet
、ShuffleNet
等- 适合用在图像细粒度分类任务中,能减少大约
13%
的Flops
和大约25%
的params
,在ImageNet - 1K
和 其他三个细粒度分类数据集上Top1 error
分别降低0.27%
和1%
- 与 SENet 有点类似,
SENet
在C
维度上添加注意力,ULSAM
在HW
维度上添加注意力
Algorithm
网络结构
- 将输入
tensor F
按照通道分为g
组:CHW
-->gGHW
,$F =
[F_1,F_2,…,F_g] $ ,每一组 被称为一个子空间 - 对每个子空间 进行如下运算:
Depth-wise Conv(kernel_size = 1)
MaxPool2d(kernel_size = 3, stride = 1, padding = 1)
, 这一步可以获得感受野同时减小方差Point-wise Conv(kernel_size = 1), kernels = 1
softmax
out = x + x * softmax
- 将所有子空间的结果
concat
作为输出
公式表示
源码表示
1 | import torch |
Grad-CAM++ 热力图
ULSAM
加入到MobileNet v1
和v2
之后,模型的focus
能力更好
Thoughts
- 虽然
Flops
和params
减小或者几乎不变,但引入了很多element-wise
运算,估计速度会慢 SENet
使用sigmoid
来处理权重,而ULSAM
使用HW
维度上softmax
处理权重,所以需要使用残差结构
网络表现
- 通过控制变量实验,验证子空间数量
g
和替换位置pos
对模型表现的影响
对比实验