BAM: Bottleneck Attention Module算法笔记
论文地址
姊妹篇
BAM: Bottleneck Attention Module
这是CBAM的姊妹篇,原班人马打造,不得不服
摘要:在这项工作中,我们把重心放在了Attention对于一般深度神经网络的影响上,我们提出了一个简单但是有效的Attention 模型—BAM,它可以结合到任何前向传播卷积神经网络中,我们的模型通过两个分离的路径 channel和spatial, 得到一个Attention Map,实验验证了我们算法的有效性。
整体结构图如下:
这里作者将BAM放在了Resnet网络中每个stage之间。有趣的是,通过可视化我们可以看到多层BAMs形成了一个分层的注意力机制,这有点像人类的感知机制。BAM在每个stage之间消除了像背景语义特征这样的低层次特征,然后逐渐聚焦于高级的语义–明确的目标(比如图中的单身狗)。
主要思想:
channel attention branch
对于给定的feature map F∈\in∈RC∗H∗WR^{C*H*W}RC∗H∗W,BAM可以得到一个3D的Attention map M(F)∈\in∈RC∗H∗WR^{C*H*W}RC∗H∗W.加强的feature map F′'′:
F′'′=F+F⊗\otimes⊗M(F)
为了设计一个有效且强大的模型,我们首先计算channel attention,然后计算spatial attention.这时M(F)就变成:
M(F)=σ\sigmaσ(Mc_cc(F)+Ms_ss(F))
这里σ\sigmaσ代表sigmoid函数,为了聚合feature map在每个通道维度,我们采用全局平均池化得到FC_CC。这个向量然后对全局信息在每个通道进行软编码。为了评估Attention在每个通道的效果?,我们使用了一个多层感知(MLP)用一层隐藏层。在MLP之后,我们增加了BN去调整规模和空间分支一样的输出,channel attention可以被计算为:
Spatial attention branch
这个空间分支产生了空间Attention去增强或者抑制特征在不同的空间位置,众所周知,利用上下文信息是去知道应该关注哪些位置的关键点。在这里我们为了高效性运用空洞卷积去增大感受野。
我们观察到,与标准卷积相比,空洞卷积有助于构造更有效的spatial map.
细节图:
空洞模型结构 给与中间feature map F,这个module 计算对应的Attention mapM(F)通过两个单独的Attention 分支–channle Mc_cc和空间MS_SS.这里有两个超参数 dilation value (d)和reduction ratio®. d参数决定了感受野大小这对空间分支聚合上下文信息非常重要。这里我们set d=4 r=16.
在从两个注意力分支中获取通道注意力Mc_cc(F)和空间注意力MS_SS (F)后,我们将它们组合起来,生成最终的3D注意力mapM(F)。由于这两个注意图的形状不同,我们将注意图扩展到RC∗H∗WR^{C*H*W}RC∗H∗W,然后将它们合并。在逐项求和、乘法、max运算等多种组合方法中,针对梯度流的特点,选择逐项求和。我们通过实证验证了基于元素的求和在三种选择中效果最好。求和后,我们取一个sigmoid函数,得到0到1范围内的最终三维注意映射M(F)。将该三维注意图与输入特征图F巧妙相乘,然后将其添加到原始输入特征图上,得到细化后的特征图F′'′:
F′'′=F+F⊗\otimes⊗M(F)
实验
表1为四种不同dilation值的对比结果。虽然dilation值为4时已经饱和,但膨胀值越大,性能改善越明显。这种现象可以用上下文推理来解释,上下文推理在密集预测任务中早就得到了广泛的应用
由于扩展的卷积序列允许接受域的指数扩展,因此它使我们的模块能够无缝地聚合上下文信息。注意,标准卷积(即dilation值为1)的准确率最低,这表明上下文先验在推断空间注意图方面的有效性。
我们的实证研究证实了元素求和的效果是最好的。在信息流方面,元素求和是集成和保护前一层信息的有效方法。在前向阶段,它使网络能够使用来自两个互补分支的信息,通道和空间,而不丢失任何信息。在逆向阶段,梯度平均分布到所有的输入,导致有效的训练。基于元素的乘积可以为较小的输入分配较大的梯度,使得网络难以收敛,性能较差。基于元素的极大值只将梯度路由到较高的输入端,在一定程度上提供了正则化效果,由于我们的模块参数较少,导致训练不稳定。请注意,所有三种不同的实现都优于基线,这表明利用每个分支是至关重要的,而最佳组合策略将进一步提高性能。
(看轮文不能光听作者的解释,有时候需要自己考虑考虑!!!)
BAM: Bottleneck Attention Module算法笔记相关推荐
- 深度学习论文: BAM: Bottleneck Attention Module及其PyTorch实现
BAM: Bottleneck Attention Module PDF: https://arxiv.org/pdf/1807.06514.pdf PyTorch: https://github.c ...
- 2018 BMCV 《BAM: Bottleneck Attention Module》Pytorch实现
import torch from torch import nn from torch.nn import init# 通道注意力+空间注意力的改进版 # 方法出处 2018 BMCV <BA ...
- BAM: Bottleneck Attention Module
BAM 文章目录 BAM 参考 个人理解 Channel attention Spatial attention 结构合并 如何融入ResBlock中? 效果如何? 参考 CBAM: Convolut ...
- 【注意力机制】BAM: Bottleneck Attention Module论文理解
摘要 深度神经网络的最新进展是通过架构搜索来获得更强的表征能力. 瓶颈注意模块(BAM): 本研究关注深度神经网络中注意力机制的影响,提出了一个简单而有效的注意力模块,即瓶颈注意模块(BA ...
- A NIR-to-VIS face recognition via part adaptive and relation attention module阅读笔记
2021 Computer Vision and Pattern Recognition Rushuang Xu, MyeongAh Cho, Sangyoun Lee 一.简介 许多研究集中在提取领 ...
- Attention机制理解笔记(空间注意力+通道注意力+CBAM+BAM)
Attention机制理解笔记 声明 Attention分类(主要SA和CA) spitial attention channel attention SA + CA(spitial attentio ...
- SimAM: A Simple, Parameter-Free Attention Module for Convolutional Neural Networks
论文名称:SimAM: A Simple, Parameter-Free Attention Module for Convolutional Neural Networks 作者:Lingxiao ...
- CBAM CBAM: Convolutional Block Attention Module
#https://blog.csdn.net/u011699990/article/details/81276851?utm_medium=distribute.pc_relevant.none-ta ...
- 强化学习经典算法笔记(十二):近端策略优化算法(PPO)实现,基于A2C(下)
强化学习经典算法笔记(十二):近端策略优化算法(PPO)实现,基于A2C 本篇实现一个基于A2C框架的PPO算法,应用于连续动作空间任务. import torch import torch.nn a ...
最新文章
- ^和$ emeditor
- 使用StarUML创建类图
- 027_jQuery DOM 元素方法
- 多视图几何总结——等距变换、相似变换、仿射变换和射影变换
- Spark _04集群搭建及测试
- 169. 多数元素 golang
- mysql编译安装后目录空_MySQL源码安装完成后修改安装路径启动问题
- 斯坦福完全可解释深度神经网络:你需要用决策树搞点事
- java 单例方法_Java-单例模式 - 惊觉
- CSS语法和CSS优先级
- 图解TCPIP-传输层 UDP
- 搭建高可用 RocketMQ 集群
- 如何计算吃鸡游戏的物理碰撞?
- windows7系统安装中文语言包汉化问题
- html5页面关闭的回调函数,js回调函数例子 js 回调函数问题的执行结果想作为返回值...
- 如何简单理解光圈大小对手机摄影的影响?
- 【PostgreSQL逻辑复制数据同步到kafka】
- 浅谈海明码,码距及其计算问题(看过的都明白了)
- JavaScript(第四天)—爱创课堂专业前端培训
- roads 用户体验标准_在你眼中的RoadMap,其实并没有那么难搞定