当前位置: 首页 > news >正文

CBAM 的整体结构#

在具体展开之前,我们先从宏观看看 CBAM 的架构思路。
CBAM 由两个子模块串联而成:

  1. 通道注意力模块(Channel Attention Module,CAM)
  2. 空间注意力模块(Spatial Attention Module,SAM)


(很推荐去看原论文,几张传播图做的非常清晰,一目了然。)

如图,给定特征图 ,CBAM 依次应用两个模块:

  1. 通道注意力得到 ,与输入逐通道相乘。
  2. 空间注意力得到 ,与上一步结果逐空间位置相乘。

需要说明的是,这两个模块的顺序并不是随意的。作者在消融实验中测试了三种排列方式:

排列方式Top-1 准确率
无注意力(baseline)93.04%
空间 → 通道93.50%
通道 → 空间(CBAM)93.86%

结果表明,先通道后空间是最优排列
直觉上也说得通:先明确"哪个特征重要",再定位"特征位置在哪",逻辑上更加自然。

下面分别展开两个模块的细节。

2. 通道注意力模块 CAM#

CBAM 的通道注意力模块和 SE 模块的思路非常相似,核心差异在于池化方式
SE 只使用了全局平均池化 GAP来压缩空间信息。
但 CBAM 的作者认为:仅靠平均值会丢失信息的"峰值",而最大池化能够捕捉到特征图中最强烈的响应位置,这对注意力权重的估计是有益的。

因此,CBAM 同时使用了两种池化方式:

  1. 全局平均池化:反映通道的整体响应强度
  2. 全局最大池化:反映通道的最强响应值

二者并行,各自得到一个 的通道描述向量:

这两个向量各自输入到一个和 SE 中结构相同的 MLP中,得到:

然后将两个输出逐元素相加,再经过 Sigmoid 得到最终的通道权重:

两者结合,比 SE 单独用 GAP 的鲁棒性更强。

3. 空间注意力模块 SAM#

通道注意力解决了"该关注哪个通道"的问题,但特征图上不同的空间位置对任务的贡献显然也不一样。
于是,CBAM 在对通道注意力进行改进的基础之上,继续提出空间注意力模块。

它的做法是先沿通道维度进行统计聚合,将 个通道压缩为 1 个通道,这里也同时使用了平均池化和最大池化,但操作方式有所不同:

  1. 沿通道维度做平均池化:生成 的平均特征图。
  2. 沿通道维度做最大池化:生成 的最大特征图。

将这两张特征图在通道维度上拼接,得到一个 的张量:

然后经过一个 的卷积层,设计padding = 3, stride = 1保证空间尺寸不变,融合两图信息,降维到 ,最后通过 Sigmoid 得到空间权重:

这里选择 卷积而非 ,是因为空间注意力需要较大的感受野来确定哪个区域重要,较小的卷积核可能只能看到局部,难以感知全局的空间分布。

最终得到的 就是空间注意力权重图,每个位置的数值表示该位置的重要性,然后与输入特征图逐元素相乘,实现空间维度上的特征重标定。

在原始特征图上依次应用两个模块得到的权重,就完成了 CBAM 的完整逻辑。

4. CBAM 和 SE#

在 SE 中,我们提到它是一个轻量级模块,我们先来看看 CBAM 会让其“变重多少”:
首先,CBAM 的额外开销主要来自空间注意力中的 卷积,而通道注意力的参数量与 SE 完全相同。
因此,对于一个 通道的特征图,二者参数量对比为(忽略偏置):

  1. SE:两层 MLP
  1. CBAM:两层 MLP + 一层 卷积

可以看到,相比于 SE,CBAM 增加的计算量几乎可以忽略不计。
因此,虽然 CBAM 已经是八年前的工作,但其同样简单高效、即插即用的特性,让其在许多轻量级网络(如 MobileNetV3)中仍然被广泛采用

作者:哥布林学者

出处:深度学习进阶(十六) 混合注意力 CBAM - 哥布林学者 - 博客园

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

给自己一些时间。

合集: 深度学习进阶

分类: 深度学习进阶

http://www.jsqmd.com/news/1080610/

相关文章:

  • 泛化管理化技术中的泛化计划泛化实施泛化验证
  • 剪辑气口工具哪个好用,2026年剪气口工作流,5款深度对比
  • 【稀缺首发】VMware KB官方未公开的3类“伪不支持”场景:Hyper-V共存冲突、TPM 2.0驱动劫持、UEFI Secure Boot签名绕过方案
  • 【企业级开发环境标准化实践】:基于VMware的12类开发镜像模板设计规范(含Docker+K8s桥接方案)
  • 微软推送Windows 11蓝牙功能大更新 修复大量漏洞并优化AirPods配对
  • Python asyncio 性能调优与陷阱
  • 深度剖析“2026鼠标推荐性价比”榜单:迈从双机型凭硬核实力登榜
  • 集之互动 AIGC 换装服务帮助电商行业实现降本增效
  • 康复训练系统:运动捕捉与进度跟踪技术
  • Frida与夜神模拟器环境搭建:7大常见错误与根治方案
  • 打通 OpenClaw 本地自动化,先搞定解压、权限、网关各类问题(含安装包)
  • 华为认证2026最全攻略:我帮人选课踩过的那些坑,说出来都是泪
  • GRASP:完全免参数随机优化方法,告别超参数调优
  • 嵌入式GUI开发实战:emWin 2D图形库核心API与优化技巧解析
  • 侧边栏主题切换高级动效实战(Vue2/Element UI 可复用版)
  • 区块链存储方案对比
  • 易元智创APP:适配实体商家引流,海南易元现实科技有限公司助力实体店线上拓客增收
  • 家里吃灰的电脑再利用,买个域名就能当服务器用
  • 如何快速配置Realtek 8852AE Wi-Fi 6驱动:完整实用指南
  • RoboScience 发布通用具身大模型 Visics,破解具身智能泛化与数据难题!
  • 30+文档平台自由获取指南:突破内容获取障碍的智能工具
  • 世界杯主题活动海报转化拆解:信息层级、利益点与生成输入实操
  • 企业加密文件解密指南:从天锐蓝盾原理到合规操作实践
  • uniapp组件uni-datetime-picker常见bug
  • Python的__enter__中的清理异常
  • 多模型动态路由(Fusion):从“算力霸权”到“架构分权”的工程范式转型
  • 网络安全监控体系
  • 从零到生产就绪,VMware+Ubuntu开发环境搭建全流程,含SSH、Docker、IDE远程调试配置
  • 销售离职带不走客户?一部剪流AI员工手机,如何彻底杜绝销售飞单与客户流失
  • 如何用video-compare实现专业级视频质量分析与技术对比