本文分享自天翼云开发者社区《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. hashcode和equals为何要同时重写

    浅谈为何要重写 hashcode()与equals() 首先,这两个方法都来自于Object对象,根据API文档查看下原意.(1)public boolean equals(Objectobj),对于 ...

  2. SQL Server数据表模糊查询(like用法)详解

    在SQL Server Management Studio (SSMS) 中,进行模糊查询主要是通过使用like操作符来实现的.like操作符用于在where语句中搜索列中具有指定模式的数据.我们在简 ...

  3. 分析Java值传递与引用传递

    背景 今天在公司做需求的时候,突然遇到了这个问题,八股文背过,但是又记不大清楚了.索性写下来,方便我这笨蛋脑子下次看. 解释 理解这个问题在于看它的角度(强调.加粗) 那我们开始,Java中一切都是值 ...

  4. PL/SQL中文乱码修正

    我根据需求,,需要修改 数据库的部分表格的部分字段,然而在Update的时候,出现了中文乱码(Type字段). 此时,我用的是客户端,服务器没有安装,在另一台机器上,所以,我需要做的是修改客户端编码: ...

  5. 获取Map中选择的要素

    <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255) ...

  6. [Java] Stream流使用最多的方式

    Java 中 Stream 流的用法全解析 在 Java 编程中,Stream 流提供了一种高效.便捷的方式来处理集合数据.它可以让我们以声明式的方式对数据进行各种操作,如过滤.映射.排序.聚合等,大 ...

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

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

  8. Day01 Markdown 学习笔记

    Day01 Markdown 学习笔记 1.标题 n级标题 = n个"#" + 空格 + 标题名称 (最多6个) 2.文本 Hello World ​ Hello World ​ ...

  9. 腾讯云 TStor 统一存储通过信通院首批文件存储基础能力评测

    在大数据上升为国家战略背景下,当前我国各行业.各领域正积极提升数据资源掌控能力和深度价值挖掘能力.存储作为数据基础设施建设的关键支柱,在国民经济发展过程中的重要性日益凸显. 2022年6月16日,中国 ...

  10. HttpClientFacotry Part 4: 集成 Polly 处理瞬时失效

    HttpClientFacotry Part 4: 集成 Polly 处理瞬时失效 原文地址:https://www.stevejgordon.co.uk/httpclientfactory-usin ...