简介

注意力机制(Attention Mechanism)是机器学习中的一种数据处理方法,起源于自然语言处理(NLP)领域,后来在计算机视觉中广泛应用。注意力机制本质上与人类对事物的观察机制相似:一般而言,我们在观察事物的时候,首先会倾向于观察事物一些重要的局部信息(如下图所示,我们会首先将注意力集中在目标而不是背景的身上),然后再去关心一些其他部分的信息,最后组合起来形成整体印象。

注意力机制能够使得深度学习在提取目标的特征时更加具有针对性,使得相关任务的精度有所提升。注意力机制应用于深度学习通常是对输入每个部分赋予不同的权重,抽取出更加关键及重要的信息使模型做出更加准确的判断,同时不会对模型的计算和存储带来更大的开销,这也是注意力机制广泛使用的原因。

在计算机视觉中,注意力机制主要和卷积神经网络进行结合,按照传统注意力的划分,大部分属于软注意力,实现手段常常是通过掩码(mask)来生成注意力结果。掩码的原理在于通过另一层新的权重,将输入特征图中关键的特征标识出来,通过学习训练,让深度神经网络学到每一张新图片中需要关注的区域,也就形成了注意力。说的更简单一些,网络除了原本的特征图学习之外,还要学会通过特征图提取权重分布,对原本的特征图不同通道或者空间位置加权。因此,按照加权的位置或者维度不同,将注意力分为空间域、通道域和混合域

典型方法

卷积神经网络中常用的注意力有两种,即空间注意力和通道注意力,当然也有融合两者的混合注意力,画了个示意图如下。

首先,我们知道,卷积神经网络输出的是维度为C×H×WC\times H \times WC×H×W的特征图,其中CCC指的是通道数,它等于作用与输入的卷积核数目,每个卷积核代表提取一种特征,所以每个通道代表一种特征构成的矩阵。H×WH \times WH×W这两个维度很好理解,这是一个平面,里面的每个值代表一个位置的信息,尽管经过下采样这个位置已经不是原始输入图像的像素位置了,但是依然是一种位置信息。如果,对每个通道的所有位置的值都乘上一个权重值,那么总共需要CCC个值,构成的就是一个CCC维向量,将这个CCC维向量作用于特征图的通道维度,这就叫通道注意力。同样的,如果我学习一个H×WH\times WH×W的权重矩阵,这个矩阵每一个元素作用于特征图上所有通道的对应位置元素进行乘法,不就相当于对空间位置加权了吗,这就叫做空间注意力

下面我列举一些常见的使用了注意力机制的卷积神经网络,我在下面一节会详细介绍它们。

  1. NL(Non-local Neural Networks)
  2. SENet(Squeeze-and-Excitation Networks)
  3. BAM(Bottleneck Attention Module)
  4. CBAM(Convolutional Block Attention Module)
  5. A2A^2A2-Nets(Double Attention Networks)
  6. GSoP-Net(Global Second-order Pooling Convolutional Networks)
  7. GCNet(Non-local Networks Meet Squeeze-Excitation Networks and Beyond)
  8. ECA-Net(Efficient Channel Attention for Deep Convolutional Neural Networks)
  9. SKNet(Selective Kernel Networks)
  10. CCNet(Criss-Cross Attention for Semantic Segmentation)
  11. ResNeSt(ResNeSt: Split-Attention Networks)
  12. Triplet Attention(Convolutional Triplet Attention Module)

网络详解

NL

Non-local Neural Networks 应该算是引入自注意力机制比较早期的工作,后来的语义分割里各种自注意力机制都可以认为是 Non-local 的特例,这篇文章作者中同样有熟悉的何恺明大神

视觉注意力机制(上)相关推荐

  1. 华为诺亚方舟加拿大实验室提出BANet,双向视觉注意力机制用于单目相机深度估计...

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 这篇文章的作者是华为加拿大诺亚方舟实验室,是一篇将双向注意力机制用于弹幕深度估计的工作.主要的创新点在 ...

  2. 视觉注意力机制(中)

    简介 在上篇文章中,我介绍了视觉注意力机制比较早期的作品,包括Non-local.SENet.BAM和CBAM,本篇文章主要介绍一些后来的成果,包括A2A^2A2-Nets.GSoP-Net.GCNe ...

  3. 计算机视觉注意力机制-Attention

    注意力机制本质上与人类对外界事物的观察机制相似.通常来说,人们在观察外界事物的时候,首先会比较关注比较倾向于观察事物某些重要的局部信息,然后再把不同区域的信息组合起来,从而形成一个对被观察事物的整体印 ...

  4. 视觉注意力机制(下)

    简介 在上篇文章中,我介绍了视觉注意力机制一些比较新的作品,包括 A 2 A^2 A2-Nets.GSoP-Net.GCNet和ECA-Net,本篇文章主要介绍一些近年以来最新的成果,包括SKNet. ...

  5. android 广播观察者,作业三——观察者模式在Android广播机制上的应用

    观察者模式在Android广播机制上的应用 点击跳转项目git地址:https://github.com/Arfer-ustc/practice-Android.git 一.观察者模式在Android ...

  6. 【每周CV论文推荐】初学视觉注意力机制有哪些值得阅读的论文?

    欢迎来到<每周CV论文推荐>.在这个专栏里,还是本着有三AI一贯的原则,专注于让大家能够系统性完成学习,所以我们推荐的文章也必定是同一主题的. 注意力机制是当下计算机视觉和自然语言处理中非 ...

  7. 视觉注意力机制的发展历程-Attention-Family

    目录 视觉注意力机制的发展历程-Attention-Family ---------------------------------2015------------------------------ ...

  8. 清华南开出品最新视觉注意力机制Attention综述

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源丨量子位 编辑丨极市平台 导读 清华大学计图团队和南开大学程明明 ...

  9. Attribute在拦截机制上的应用

    http://blog.csdn.net/niuyongjie/article/details/1295842 从这一节开始我们讨论Attribute的高级应用,为此我准备了一个实际的例子:我们有一个 ...

最新文章

  1. 压力测试工具ab 及 centos下单独安装方法
  2. 转-OpenJDK源码阅读导航跟编译
  3. DHCP Client 无法启动 拒绝访问
  4. Python基础系列讲解——继承派生和组合的概念剖析
  5. [渝粤教育] 中国地质大学 结构力学 复习题
  6. linux中的line函数,Linux-shell)
  7. Centos6.7 64位安装配置kvm虚拟化
  8. 《精通LabVIEW虚拟仪器程序设计与案例实现》一2.1 LabVIEW安装
  9. karto探秘之open_karto 第四章 --- 回环检测与后端优化
  10. java生成16位唯一性的订单号
  11. oracle11g和10的区别,同平台升级 oracle 10 到 oracle11g的一些考虑和实际操作
  12. 实数系的连续性的含义
  13. C# 替换Word文档中的书签内容【详细步骤】
  14. FP-XH 松下PLC控制器资料下载
  15. 【视频转码】ubuntu视频转windows视频
  16. HTV-VIVE 连接 PC端 720云
  17. [CSP2020]儒略日
  18. 《C语言程序设计》第4版 何钦铭、颜晖主编 课后习题答案 第5章 习题5
  19. 计步器锁屏后依然工作的原理
  20. knex入门学习使用方法

热门文章

  1. MyBatis 源码解读-environmentsElement()
  2. SpringMVC的数据响应-回写数据-返回对象或集合2(应用)
  3. 课程分类管理-添加课程分类
  4. 从源码深处体验Spring核心技术--IOC容器初体验
  5. 后台服务系统之dubbo架构
  6. 方法引用_通过类名引用静态成员方法
  7. MySQL常用存储引擎之MyISAM
  8. Rocketmq原理最佳实践
  9. 默认标准错误文件linux,Linux中标准输出和标准错误的重导向
  10. Spring AOP源码解析(一)——核心概念