BAM: Bottleneck Attention Module算法笔记

论文地址
姊妹篇
BAM: Bottleneck Attention Module
这是CBAM的姊妹篇,原班人马打造,不得不服
摘要:在这项工作中,我们把重心放在了Attention对于一般深度神经网络的影响上,我们提出了一个简单但是有效的Attention 模型—BAM,它可以结合到任何前向传播卷积神经网络中,我们的模型通过两个分离的路径 channel和spatial, 得到一个Attention Map,实验验证了我们算法的有效性。
整体结构图如下:
BAM: Bottleneck Attention Module算法笔记_第1张图片

这里作者将BAM放在了Resnet网络中每个stage之间。有趣的是,通过可视化我们可以看到多层BAMs形成了一个分层的注意力机制,这有点像人类的感知机制。BAM在每个stage之间消除了像背景语义特征这样的低层次特征,然后逐渐聚焦于高级的语义–明确的目标(比如图中的单身狗)。

主要思想:
channel attention branch
对于给定的feature map F ∈ \in R C ∗ H ∗ W R^{C*H*W} RCHW,BAM可以得到一个3D的Attention map M(F) ∈ \in R C ∗ H ∗ W R^{C*H*W} RCHW.加强的feature map F ′ ' :
F ′ ' =F+F ⊗ \otimes M(F)
为了设计一个有效且强大的模型,我们首先计算channel attention,然后计算spatial attention.这时M(F)就变成:
M(F)= σ \sigma σ(M c _c c(F)+M s _s s(F))
这里 σ \sigma σ代表sigmoid函数,为了聚合feature map在每个通道维度,我们采用全局平均池化得到F C _C C。这个向量然后对全局信息在每个通道进行软编码。为了评估Attention在每个通道的效果?,我们使用了一个多层感知(MLP)用一层隐藏层。在MLP之后,我们增加了BN去调整规模和空间分支一样的输出,channel attention可以被计算为:
BAM: Bottleneck Attention Module算法笔记_第2张图片
Spatial attention branch
这个空间分支产生了空间Attention去增强或者抑制特征在不同的空间位置,众所周知,利用上下文信息是去知道应该关注哪些位置的关键点。在这里我们为了高效性运用空洞卷积去增大感受野。
我们观察到,与标准卷积相比,空洞卷积有助于构造更有效的spatial map.
细节图:
BAM: Bottleneck Attention Module算法笔记_第3张图片

空洞模型结构 给与中间feature map F,这个module 计算对应的Attention mapM(F)通过两个单独的Attention 分支–channle M c _c c和空间M S _S S.这里有两个超参数 dilation value (d)和reduction ratio®. d参数决定了感受野大小这对空间分支聚合上下文信息非常重要。这里我们set d=4 r=16.

在从两个注意力分支中获取通道注意力M c _c c(F)和空间注意力M S _S S (F)后,我们将它们组合起来,生成最终的3D注意力mapM(F)。由于这两个注意图的形状不同,我们将注意图扩展到 R C ∗ H ∗ W R^{C*H*W} RCHW,然后将它们合并。在逐项求和、乘法、max运算等多种组合方法中,针对梯度流的特点,选择逐项求和。我们通过实证验证了基于元素的求和在三种选择中效果最好。求和后,我们取一个sigmoid函数,得到0到1范围内的最终三维注意映射M(F)。将该三维注意图与输入特征图F巧妙相乘,然后将其添加到原始输入特征图上,得到细化后的特征图F ′ ' :
F ′ ' =F+F ⊗ \otimes M(F)
实验
表1为四种不同dilation值的对比结果。虽然dilation值为4时已经饱和,但膨胀值越大,性能改善越明显。这种现象可以用上下文推理来解释,上下文推理在密集预测任务中早就得到了广泛的应用
由于扩展的卷积序列允许接受域的指数扩展,因此它使我们的模块能够无缝地聚合上下文信息。注意,标准卷积(即dilation值为1)的准确率最低,这表明上下文先验在推断空间注意图方面的有效性。
我们的实证研究证实了元素求和的效果是最好的。在信息流方面,元素求和是集成和保护前一层信息的有效方法。在前向阶段,它使网络能够使用来自两个互补分支的信息,通道和空间,而不丢失任何信息。在逆向阶段,梯度平均分布到所有的输入,导致有效的训练。基于元素的乘积可以为较小的输入分配较大的梯度,使得网络难以收敛,性能较差。基于元素的极大值只将梯度路由到较高的输入端,在一定程度上提供了正则化效果,由于我们的模块参数较少,导致训练不稳定。请注意,所有三种不同的实现都优于基线,这表明利用每个分支是至关重要的,而最佳组合策略将进一步提高性能。
(看轮文不能光听作者的解释,有时候需要自己考虑考虑!!!)
BAM: Bottleneck Attention Module算法笔记_第4张图片

你可能感兴趣的:(BAM,BMVC,深度学习,图像分类,笔记,图像分类,计算机视觉,BMVC)