本文分享自天翼云开发者社区《CBAM注意力模型介绍》,作者:Liuzijia

近年来,注意力机制在各项深度学习任务中表现出色。研究表明,人类视觉感知过程中,注意力机制发挥了积极的效果,可以帮助人们高效和自适应的处理视觉信息并聚焦于显著的画面区域,从而能够做出最准确的判断。因此,通过模拟视觉注意力机制,在网络结构中加入注意力模块,使模型可以更加关注待分类图像中的关键信息,抑制不相关的特征信息,促使模型对重要的特征区域更加敏感,从而有效提升相关任务的性能。本文简要介绍一种经典的混合注意力模型CBAM。

CBAM[1]是一种结合了通道与空间注意力的混合注意力模块,通过该模块可以自适应的强化特征提取过程。

图1 CBAM结构(引用自文献[1]) 

图1为CBAM的结构。对于输入特征图,该模块会依次推断出一个通道注意力图M_c和一个空间注意力图M_s,如式1和式2所示:

其中,F表示输入特征图;M_c表示得到通道注意力图;F'表示通道注意力模块的输出特征图;M_s表示得到的空间注意力图;F''表示该模块的最终输出;x表示矩阵对应元素相乘。

图2 通道注意力模块(引用自文献[1]) 

图2为CBAM的通道注意力模块结构。对于输入特征图,首先利用在空间维度上的平均池化和最大值池化进行压缩,结合两种池化是为了对特征权重的学习更加精细,从而提升网络的特征表示能力,然后将池化后的特征输入到多层感知机中,为了减少计算参数量,会对隐藏层的大小进行降维,最后经激活函数得到注意力图,其计算过程如式3所示:

其中,σ表示Sigmoid激活函数;F_avg和F_max分别表示空间维度上的平均池化(AvgPool)和最大值池化(MaxPool);W_0和W_1表示多层感知机(MLP)的共享参数;F表示输入特征图。

图3 空间注意力模块(引用自文献[1]) 

图3为CBAM的空间注意力模块。首先利用在通道维度上的平均池化和最大值池化对输入特征图进行操作,然后拼接大小均为H×W×1的两个特征图,这样可以得到一个大小为H×W×2的特征图,最后利用一个卷积操作并经激活函数后得到空间注意力图,其计算过程如式4所示:

其中,σ表示Sigmoid激活函数;f(7×7)表示尺寸为7 的卷积核;F_avg和F_max分别表示在通道维度上的平均池化(AvgPool)和最大值池化(MaxPool);F表示输入特征图。

[1] Woo S, Park J, Lee J Y, et al. CBAM: Convolutional block attention module[C]//Proceedings of the European conference on computer vision (ECCV). 2018: 3-19

CBAM注意力模型介绍的更多相关文章

  1. 【NLP】Attention Model(注意力模型)学习总结

    最近一直在研究深度语义匹配算法,搭建了个模型,跑起来效果并不是很理想,在分析原因的过程中,发现注意力模型在解决这个问题上还是很有帮助的,所以花了两天研究了一下. 此文大部分参考深度学习中的注意力机制( ...

  2. 深度学习方法(九):自然语言处理中的Attention Model注意力模型

    欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.NET/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术感兴趣的同学加入. 上一篇博文深度学习方法(八):Enc ...

  3. Selenium(十四):自动化测试模型介绍、模块化驱动测试案例、数据驱动测试案例

    1. 自动化测试模型介绍 随着自动化测试技术的发展,演化为了集中模型:线性测试.模块化驱动测试.数据驱动测试和关键字驱动测试. 下面分别介绍这几种自动化测试模型的特点. 1.1 线性测试 通过录制或编 ...

  4. zz深度学习中的注意力模型

    中间表示: C -> C1.C2.C3 i:target -> IT j: source -> JS sim(Query, Key) -> Value Key:h_j,类似某种 ...

  5. [深度概念]·Attention Model(注意力模型)学习笔记

    此文源自一个博客,笔者用黑体做了注释与解读,方便自己和大家深入理解Attention model,写的不对地方欢迎批评指正.. 1.Attention Model 概述 深度学习里的Attention ...

  6. TensorFlow系列专题(十一):RNN的应用及注意力模型

    磐创智能-专注机器学习深度学习的教程网站 http://panchuang.net/ 磐创AI-智能客服,聊天机器人,推荐系统 http://panchuangai.com/ 目录: 循环神经网络的应 ...

  7. IO模型介绍

    先理解几个问题: (1)为什么读取文件的时候,需要用户进程通过系统调用内核完成(系统不能自己调用内核)什么是用户态和内核态?为什么要区分内核态和用户态呢? 在 CPU 的所有指令中,有些指令是非常危险 ...

  8. Attention Model(注意力模型)思想初探

    1. Attention model简介 0x1:AM是什么 深度学习里的Attention model其实模拟的是人脑的注意力模型,举个例子来说,当我们观赏一幅画时,虽然我们可以看到整幅画的全貌,但 ...

  9. 深度学习之Attention Model(注意力模型)

    1.Attention Model 概述 深度学习里的Attention model其实模拟的是人脑的注意力模型,举个例子来说,当我们观赏一幅画时,虽然我们可以看到整幅画的全貌,但是在我们深入仔细地观 ...

  10. pytorch做seq2seq注意力模型的翻译

    以下是对pytorch 1.0版本 的seq2seq+注意力模型做法语--英语翻译的理解(这个代码在pytorch0.4上也可以正常跑): # -*- coding: utf-8 -*- " ...

随机推荐

  1. 域渗透之利用WMI来横向渗透

    目录 前言 wmi介绍 wmiexec和psexec的区别 wmic命令执行 wmiexec.vbs wmiexec.py Invoke-WmiCommand.ps1 前言 上一篇打红日靶场拿域控是用 ...

  2. Apache APISIX 和 Kong 的选型对比

    从 API 网关核心功能点来看,两者均已覆盖: 功能 Apache APISIX Kong 动态上游 支持 支持 动态路由 支持 支持 健康检查和熔断器 支持 支持 动态SSL证书 支持 支持 七层和 ...

  3. 利用 Java 实现组合式解析器

    Ward Cunningham 曾经说过,干净的代码清晰地表达了代码编写者所想要表达的东西,而优美的代码则更进一步,优美的代码看起来就像是专门为了要解决的问题而存在的.在本文中,我们将展示一个组合式解 ...

  4. xtrabackup脚本

    xtrabackup是MySQL的一种物理备份工具,相对于mysqldump,备份和还原速度更快 , 我写了一份可以进行备份 + 还原的脚本 #!bin/bash all_bak_path=" ...

  5. RabbitMQ快速入门 整合 SpringBoot

    RabbitMQ快速入门 整合 SpringBoot 概述 大多应用中,可通过消息服务中间件来提升系统异步通信.扩展解耦能力.流量削峰 消息服务中两个重要概念: 消息代理(`message broke ...

  6. 【并查集+dfs】codeforces 1833 E. Round Dance

    题意 输入一个正整数 \(T(1 \leq T \leq 10^4)\),表示接下来输入 \(T\) 组测试用例,对于每一个测试用例: 第一行,输入一个正整数 \(n(2 \leq n \leq 2 ...

  7. csrf跨站请求伪造与校验策略

    目录 一.csrf跨站请求伪造 概念引入 概念讲解 二.csrf校验策略 概念讲解 form表单操作csrf策略 ajax请求csrf策略 三.csrf相关装饰器 一.csrf跨站请求伪造 概念引入 ...

  8. Qt开发经验小技巧201-205

    编译生成debug版本动态库,文件末尾自动加上d结尾. CONFIG(debug, debug|release) { win32: TARGET = $$join(TARGET,,,d) mac: T ...

  9. IM通讯协议专题学习(五):Protobuf到底比JSON快几倍?全方位实测!

    本文由陶文分享,InfoQ编辑发布,有修订和改动. 1.前言 本系列的前几篇主要是从各个角度讲解Protobuf的基本概念.技术原理这些内容,但回过头来看,对比JSON这种事实上的数据协议工业标准,P ...

  10. JMeter 线程组全家桶教程

    宝子们,今天咱就来唠唠 JMeter 里那些超重要的线程相关的玩意儿,学会了它们,你就能在性能测试的世界里 "横冲直撞" 啦! 一.线程组 -- 性能测试的主力军 想象一下,你开了 ...