本文分享自天翼云开发者社区《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. bootstrapTable初始化常用参数

    bootstrapTable初始化常用参数,前端分页排序,后端获取表格数据 $('#table').bootstrapTable({ toolbar: '#mybar', //工具按钮用哪个容器 st ...

  2. Spring 开发 Swing GUI 简介

    依赖注入和富客户机 Chad Woolley (thewoolleyman@gmail.com), 软件开发人员, Ionami 简介:  本教程介绍了 Spring 框架以及依赖注入的概念(也称为反 ...

  3. Android开发重要知识点

    一.网络 1.https原理 2.tcp/ip协议 三次握手:https://www.cnblogs.com/cenglinjinran/p/8482412.html 四次挥手:https://www ...

  4. 前端每日一知之让Chrome支持小于12px的文字

    脑图在线链接 本文内容依据[js每日一题]公众号精彩文章总结而来

  5. 《刚刚问世》系列初窥篇-Java+Playwright自动化测试-7-元素基础定位方式-下篇 (详细教程)

    1.简介 上一篇主要是讲解我们日常工作中在使用Playwright进行元素定位的一些比较常用的基础定位方式的理论基础知识以及在什么情况下推荐使用.今天这一篇讲解和分享一下剩下部分的基础定位方式. 2. ...

  6. arm mattermost

    It's not so hard, here is my working steps for arm64 device. cd ~/build/mattermost wget https://raw. ...

  7. virtualbox设置了共享文件夹却无权限访问

    在virtualbox中设置共享文件夹后,然后登陆ubuntu系统访问共享文件夹,发现没有权限.查看共享文件夹的属性可知,共享文件夹的所有者是root,所属的组是vboxsf.以用户登录的时候,自然是 ...

  8. Qt开发经验小技巧186-190

    关于是使用QList还是QVector的问题,一直是众多Qter的选择问题,主要是这两个玩意提供的的接口函数基本一致,比如插入.删除.取值等. 大多数情况下可以用QList.像append.prepe ...

  9. Qt音视频开发1-vlc解码播放

    一.前言 最开始接触视频监控这块的时候,用的就是vlc作为解码的内核,主要是因为vlc使用简单方便,直接传入一个句柄即可,简单几行代码就可以实现一个视频流播放,很适合初学者使用,也推荐初学者用qt+v ...

  10. 手写 PromiseA+ 实现,轻松通过 872 条用例

    手写 Promise/A+ 实现,轻松通过 872 条用例 规范参考:Promise/A+ 规范 - 中文版本 测试工具:https://github.com/promises-aplus/promi ...