菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
262
0

注意力机制论文 --- A Simple and Light-weight Attention Module for Convolutional Neural Networks(BAM)

原创
05/13 14:22
阅读数 63089

最近找了十几篇神经网络注意力机制的论文大概读了一下。这篇博客记录一下其中一篇,这篇论文大概只看了摘要,方法。在ADCM论文中我们提到它的设计参考了BAM来的,因而找了这篇论文。它主要利用channel和spatial来结合组成一种bottleneck attention module(BAM)的模块,这个模块可以直接插入到神经网络中。主要还是通道注意力与空间注意力结合的方法,当然它并没有ADCM中的dropout这个过程。

Channel attention branch

通道注意力分支,找出哪个通道特征是最有效的,只从特征来看。分为三部分,第一部分就是全局平均池化,它会将每一个通道特征都变成一个值,这个值代表该通道的总体特征。第二部分就是MLP,找出通道之间的关系,并且得出通道之间的权重。第三部分就是归一化层,将输入进行统一来看。整体的过程可以用如下的公式来表示:

 

 

 

 

Spatial attention branch

空间注意力分支,强调或者suppress不同空间位置,可以找出哪些空间位置是有效的。总共分为四部分,第一部分就是使用1X1卷积来缩减通道,缩减系数是r,经过这一层,通道数为C/r,第二部分就是俩层空洞卷积,为了得到上下文信息,这里需要更大的感受野,使用了俩层空洞卷积,第三部分又是一层1X1的卷积,将通道变为1。最终就是归一化层。整体的过程可以用如下公式来表示:

 

 

Combine two attention branches

合并注意力分支,主要将$M_c(F)$和$M_s(F)$合并,在合并之前,将$M_c(F)$和$M_s(F)$统一维度为C个通道,长宽为H、W,然后将对应元素相加,之后使用sigmoid函数变成0到1范围内的值

 

 

 

对于整个模块来说,它有俩大优势,第一有效的得到全局上下文信息,CNN堆积许多卷积层和池化层来获取上下文信息,虽然有效,但是增加了时间和空间复杂度,第二忽略了底层特征,而BAM可以放在模块的开始,那么底层特征也能得到上下文信息。整个模块的放置如下图所示

发表评论

0/200
262 点赞
0 评论
收藏