文章目录
-
- 0. 总述
- 1. SENet(CVPR18)
- 2. SKNet(CVPR19)
- 3. CBAM(ECCV18)&BAM(BMVC18)&scSE(MICCAI18)
- 4. Non-Local Network(CVPR19)
- 5. GCNet(ICCVW19)
- 6. CCNet(ICCV19)
- 7. Shuffle Attention(ICASSP21)
- 8. ECANet(CVPR20)
- 9. SGENet(CoRR19)
- 10. GSoPNet(CVPR19)
- 11. FCANet(CoRR20)
- 12. AutoNL(CVPR20)
- 13. ResNeSt(CoRR20)
- 14. DoubleAttention(NIPS18)
- 15. SAN(CVPR20)
- 16. APNB(ICCV19)
- 17. Efficient Attention(CoRR18)
- 18. OCRNet(ECCV20)
- 19. IAU-Net(TTNNLS20)
- 20. SCNet(CVPR20)
- 21. GENet
- 22. Triplet Attention(WACV21)
- 23. Dual Attention(CVPR19)
- 24. RGA(CVPR20)
- 25. Attentional Feature Fusion(WACV21)
0. 总述
注意力主要分为三种类型:空间注意力、通道注意力、Self-Attention。论文阅读注重以下几点:
- motivation
- method
- result
可能的思路:
- 搜索attention block,固定插入到人工设计的网络中。
- 同时搜索attention block和网络结构。
1. SENet(CVPR18)
链接:https://arxiv.org/abs/1709.01507
Squeeze and Excitation Network是在CV领域中应用Attention机制的鼻祖,且拿到了ImageNet17分类比赛冠军。
核心思想:自学习channel之间相关性,筛选针对通道的注意力。
看一下SE-ResNet Module具体实现:
详细解释:
- Sequeeze: 使用global average pooling, 得到具有全局感受野的1x1特征图。
- Excitation: 使用全连接神经网络,做非线性变换。
- 特征重标定:将Excitation得到的重要性权重赋给原来的输入特征得到新的特征。
人工调整:
需要人工参与的部分有:
-
reduction 参数的选取
-
squeeze方式:global average pooling 还是max pooling
-
excitation方式:ReLU、Tanh、Sigmoid等激活
-
stage: 将SE模块添加到网络不同的深度
2. SKNet(CVPR19)
链接:https://arxiv.org/pdf/1903.06586.pdf
Selective Kernel Network想法是提出一个动态选择机制让CNN每个神经元可以自适应的调整其感受野大小。初步引入了空间注意力机制。
上下两个分支和SENet一致,分支之间区别在于选择的kernel大小不同。SKNet方法非常类似于merge-and-run mapping(https://arxiv.org/pdf/1611.07718.pdf)的思想,该文中还提到了三个基础模块:
(a)类似ResNet的结构,添加残差链接。
(b)类似Inception结构,加了一个分支卷积。
(c)merge-and-run mapping结构,两个分支将残差结果处理(可以是add、multi、或者就是SKNet中这种带有Attention的方法),然后再合并到原先分支。
人工调整:
需要人工参与的部分有:
- kernel size的选取
- SK分支个数
- 组卷积分组个数
- SKNet中卷积的channel参数
- 激活方法,这里默认用的是softmax
- Reduction参数设置
- 卷积中的dilation参数设置
3. CBAM(ECCV18)&BAM(BMVC18)&scSE(MICCAI18)
CBAM链接:https://arxiv.org/pdf/1807.06521.pdf
BAM链接:https://arxiv.org/pdf/1807.06514.pdf
scSE链接:http://arxiv.org/pdf/1803.02579v2.pdf
Convolutional Block Attention Module和BottleNeck Attention Module两篇文章都是一个团队在同一个时期发表的文章,CBAM被ECCV18接收,BAM被BMVC18接收。
核心思想:通道注意力机制和空间注意力机制的串联(CBAM)或者并联(BAM)。
CBAM(串联)
通道注意力机制:与SENet不同,这里使用了MaxPool和AvgPool来增加更多的信息。
空间注意力机制:
CBAM将两者顺序串联,这个顺序也是通过实验决定得到的。
ResNet中这样调用CBAM模块,如下图所示:
然后简单看一下并联版本的BAM,通道注意力和SENet一致。
和BAM类似,scSE也是相似的思路,应用在U-Net中,能够让分割边缘变得更加精细。
人工调整:
需要人工调整的地方有:
- 空间注意力和通道注意力位置/串联或者并联
- 空间注意力
- kernel size
- 激活函数
- concate or add
- dilation rate
- 通道注意力
- reduction
- avgpool maxpool or softpool
- 融合方式的选择add multi
4. Non-Local Network(CVPR19)
链接:https://arxiv.org/abs/1711.07971
Non-Local是CVPR2018上的一篇文章,提出了自注意力模型。灵感来自于Non Local means非局部均值去噪滤波,所以称为Non-Local Network。
Non-local的通用公式表示:
y i = 1 C ( x ) ∑ ∀ j f ( x i , x j ) g ( x j ) y_i=\frac{1}{C(x)}\sum_{\forall j}f(x_i,x_j)g(x_j) yi=C(x)1∀j∑f(x