注意力模块集合(CBAM & BAM & DANet)
论文:Convolutional Block Attention Module & Bottleneck Attention Module ,2018 & Dual Attention Network for Scene Segmentation, cvpr,2019
BAM
介绍
文中把重心放在了Attention对于一般深度神经网络的影响上,文中提出了一个简单但有效的Attention模型-BAM,它可以结合到任何前向传播的卷积神经网络中,该模型通过两个分离的路径channel 和spatial,得到一个Attention Map.
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7k2lgBfu-1606112099088)(C:\Users\Mr.fei\AppData\Roaming\Typora\typora-user-images\image-20201115212401280.png)]
两种attention的结合方式
element-wise summation
即逐元素相加perform是最好的。最后再通过sigmoid函数。具体可以参照下图:
需要注意的是图中的 **Mc(F)和Ms(F)**两者是相乘的,并且使用了sigmoid 进行归一化处理,最后得到 F ‘ ∈RC∗H∗W 的注意力特征图,然后将F’ 和 F 进行逐元素相乘,并且逐元素相加。
CBAM
简介
作者提出了一个简单但有效的模块CBAM,给定一个中间特征图,我们沿着空间和通道两个维度依次推断出注意力权重,然后与原始特征图相乘来对特征进行自适应调整。由于CBAM是一个轻量级的通用模块,可以无缝的集成到任何CNN架构中,并且可以和CNN一起进行端到端的训练,在不同的分类和检测数据集上,将CBAM 集成到不同的模型中后,模型的表现都有了一定的提升,展示了其广泛的可用性。
CBAM总体视图
作者将注意力过程分为两个独立的部分,通道注意力模块和空间注意力模块。这样不仅可以节约参数和计算力,而且保证了其可以作为即插即用的模块集成到现有的网络架构中去。
通道注意力模块
特征的每一个通道都代表着一个专门的检测器,因此,通道注意力是关注什么样的特征是有意义的。为了汇总空间特征,作者采用了全局平均池化(GlobalAvgPool)和最大池化(MaxPool)两种方式来分别利用不同的信息。
M c ( F ) = σ ( M L P ( A v g P o o l ( F ) ) + M L P ( M a x P o o l ( F ) ) ) = σ ( W 1 ( W 0 ( F a v g C ) ) + ( W 1 ( W 0 ( F m a x C ) ) ) Mc(F)=σ(MLP(AvgPool(F))+MLP(MaxPool(F)))=σ(W 1 (W 0 (F avg C ))+(W 1 (W 0 (F max C ))) Mc(F)=σ(MLP(AvgPo