Convolutional Block Attention Module

Convolutional Block Attention Module

1 Introduction

本文提出了卷积块注意模块(Convolutional Block Attention Module,CBAM), 一个简单而有效的前馈卷积注意力模块神经网络。给定一个中间特征图,本论文的模块设置为沿两个独立的维度按顺序推断注意力图:通道和空间,然后将注意力图与输入特征相乘用于自适应特征细化的映射。 因为CBAM是一种轻量级且 通用模块,它可以集成到任何CNN架构中较少的开销可以忽略不计,并且可以进行端到端的训练基础CNN。也就是说,加了模块之后依旧可以使用预训练模型进行refine。

通常认为影响卷积神经网络模型性能有三个主要因素:深度,宽度,基数,本文并且列举了一些代表新的网络结构,比如和深度相关的VGG和ResNet系列,和宽度相关的GoogLeNet和wide-ResNet系列,和基数相关的Xception和ResNeXt。

本文随之提出,除了这三个因素之外,还有一个模块,也能影响网络的性能,这就是attention—注意力机制。

注意力机制的作用是告诉模型中间的feature map那个地方更应该关注,并且提高这个感兴趣地方的表达能力,也就是让模型更加关注这一块区域的意思。

所以文章提出了两个注意力机制的模块,分别是channel attention module和spatial attention module。

channel attention module主要是对不同通道的feature map进行处理,告诉模型应该更重视那些feature map。而spatial attention module主要是对feature map上的特征区域进行处理,告诉模型应该更加注意feature map的哪些特征区域。

2 Method

QQ截图20211212203626
2.1 Channel attention module

通道注意力模块主要是探索不同通道之间的feature map的关系。每一个通道的feature map本身作为一个特征检测出器(feature detetor),通过这个通道注意力模块来告诉模型,我们更应该注意哪一部分特征。

观察上面的图示,输入的feature map为[C, H, W]:

  1. 对于不同通道上的feature map做一个全局的Maxpooling或者Averagepooling,得到MaxPool Channel Attention vector([C, 1, 1])和AvgPool Channel Attention vector([C, 1, 1])。
  2. 然后将这两个vector输入到一个权重共享的只有一个隐藏层的感知机里(MLP),其中隐藏层的的权重向量的shape为C/r, 1, 1,最终得到两个经过处理的Channel Attention vector。
  3. 最后一步是将这两个vector进行element-wise summation操作和sigmoid激活函数处理,并和原特征图进行元素之间的相乘,得到新的特征图。

公式如下:

QQ截图20211212203634

其中 W 0 ∈ R C / r × C \large{\mathrm{W}_0\in{\mathbb{R}^{C/r\times{C}}}} W0RC/r×C, W 1 ∈ R C / r × C \large{\mathrm{W}_1\in{\mathbb{R}^{C/r\times{C}}}} W1RC/r×C为MLP的权重矩阵, σ \sigma σ为sigmoid函数,

2.2 Spatial attention module

利用空间注意力模块来生成一个spatial attention map,用来利用不同特征图之间的空间关系,以此来使模型注意特征图的哪些特征空间位置。

  1. 这一次是在轴的方向上对不同特征图上相同位置的像素值进行全局的MaxPooling和AvgPooling操作,分别得到两个spatial attention map并将其concatenate,shape为[2, H, W]。
  2. 再利用一个7*7的卷积对这个feature map进行卷积。后接一个sigmoid函数。得到一个语言特征图维数相同的加上空间注意力权重的空间矩阵。
  3. 最后把得到的空间注意力矩阵对应相乘的原特征图上,得到的新的特征图。

公式如下:

QQ截图20211212203644

3 Conclusion

QQ截图20211212203858

上图为将AvgPool和MaxPool加入ResNet50框架中的一个消融实验,实验表明不管是AvgPool Channel attention module还是MaxPool Channel attention module,都会对精度有一定的提升作用。但是单独使用时,AvgPool又要比MaxPool要好,精度最高的是两者一起用。本文还指出max-pooled feature包含最显著部分的特征,正好能够与包含全局语义信息特征的average-pooled features互补。虽然注意力的引入会受到所加入层的位置,数据集的大小、构成等诸多因素影响,并且网络越深越宽越复杂,它带来的影响也就越小,但类似CBAM类似的后续工作还是值得关注。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值