Attention 机制

所谓Attention机制,便是聚焦于局部信息的机制。当我们再看一样东西时,我们当前时刻关注的一定是我们当前正在看的东西的某一个地方。随着任务的变化,注意力区域往往会发生变化。

面对上面这张图,如果从整体上看,只看到了很多的车,但仔细一看会发现每辆车的车牌号不同,汽车厂家也不同。

图中除了汽车之外的信息均是无用信息,也对目标识别网络起不到作用。Attention机制便是要找到这些对训练最有用的信息。

1. 基于Attention的显著目标检测

和注意力机制相伴而生的一个任务是显著目标检测,即salient object detection。它的输入是一张图,输出是一张概率图,概率越大的地方,获得人眼关注的概率越大。典型的显著图目标检测图如下:

左侧图像为显著图,其中在头部和身体概率最大,远处的门也有一定的概率,这就是左侧图像中有用的信息。右侧图中为显著性目标检测图像,将关注的重点人突出显示出来。

显著目标检测需要一个数据集,而此数据集的收集便是通过追踪多个实验者的眼球在一定时间内的注意力方向进行平均得到,典型的步骤如下:

(1)让被测试者观察图。

(2)用eye tracker记录眼睛的注意力位置。

(3)对所有测试者的注意力位置使用高斯滤波进行综合。

(4)结果以0~1的概率记录。

于是得到下面这样的图,第二行是眼球追踪结果,第三行是显著目标概率图。

上面讲述的都是空间上的注意力机制,及关注的是不同空间位置,而在CNN结构中,还有不同的特征通道,因此不同特征通道也有类似的原理。

2. Attention模型框架

注意力机制的本质就是定位到感兴趣的信息,抑制无用信息,结果通常都是以概率图或者概率特征向量的形式展示,从原理上来说,主要分为空间注意力模型,通道注意力模型,空间和通道混合注意力模型三种,这里不区分soft和hard attention。

2.1 空间注意力模型(spatial attention)

不是图像中所有的区域对任务的贡献都是同样重要的,只有任务相关的区域才是需要关心的,比如分类任务的主体,空间注意力模型就是寻找网络中最重要的部位进行处理。

在这里给大家介绍两个具有代表性的模型,第一个就是Google DeepMind提出的STN网络(Spatial Transformer Network[1])。它通过学习输入的形变,从而完成适合任务的预处理操作,是一种基于空间的Attention模型,网络结构如下:

这里的Localization Net用于生成仿射变换系数,输入是C×H×W维的图像,输出是一个空间变换系数,它的大小根据要学习的变换类型而定,如果是仿射变换,则是一个6维向量。

这样的一个网络要完成的效果如下图:

即定位到目标的位置,然后进行旋转等操作,使得输入样本更加容易学习。

相比于Spatial Transformer Networks 一步完成目标的定位和仿射变换调整,Dynamic Capacity Networks[2]则采用了两个子网络,分别是低性能的子网络(coarse model)和高性能的子网络(fine model)。低性能的子网络(coarse model)用于对全图进行处理,定位感兴趣区域,如下图中的操作fc。高性能的子网络(fine model)则对感兴趣区域进行精细化处理,如下图的操作ff。两者共同使用,可以获得更低的计算代价和更高的精度。

由于在大部分情况下我们感兴趣的区域只是图像中的一小部分,因此空间注意力的本质就是定位目标并进行一些变换或者获取权重。

2.2 通道注意力机制

对于输入2维图像的CNN来说,一个维度是图像的尺度空间,即长宽,另一个维度就是通道,因此基于通道的Attention也是很常用的机制。

SENet(Sequeeze and Excitation Net)[3]是2017届ImageNet分类比赛的冠军网络,本质上是一个基于通道的Attention模型,它通过建模各个特征通道的重要程度,然后针对不同的任务增强或者抑制不同的通道,原理图如下:

在正常的卷积操作后分出了一个旁路分支,首先进行Squeeze操作(即图中Fsq(·)),它将空间维度进行特征压缩,即每个二维的特征图变成一个实数,相当于具有全局感受野的池化操作,特征通道数不变。

然后是Excitation操作(即图中的Fex(·)),它通过参数w为每个特征通道生成权重,w被学习用来显式地建模特征通道间的相关性。在文章中,使用了一个2层bottleneck结构(先降维再升维)的全连接层+Sigmoid函数来实现。

得到了每一个特征通道的权重之后,就将该权重应用于原来的每个特征通道,基于特定的任务,就可以学习到不同通道的重要性。

将其机制应用于若干基准模型,在增加少量计算量的情况下,获得了更明显的性能提升。作为一种通用的设计思想,它可以被用于任何现有网络,具有较强的实践意义。而后SKNet[4]等方法将这样的通道加权的思想和Inception中的多分支网络结构进行结合,也实现了性能的提升。

通道注意力机制的本质,在于建模了各个特征之间的重要性,对于不同的任务可以根据输入进行特征分配,简单而有效。

2.3 空间和通道注意力机制的融合

前述的Dynamic Capacity Network是从空间维度进行Attention,SENet是从通道维度进行Attention,自然也可以同时使用空间Attention和通道Attention机制。

CBAM(Convolutional Block Attention Module)[5]是其中的代表性网络,结构如下:

通道方向的Attention建模的是特征的重要性,结构如下:

同时使用最大pooling和均值pooling算法,然后经过几个MLP层获得变换结果,最后分别应用于两个通道,使用sigmoid函数得到通道的attention结果。

空间方向的Attention建模的是空间位置的重要性,结构如下:

首先将通道本身进行降维,分别获取最大池化和均值池化结果,然后拼接成一个特征图,再使用一个卷积层进行学习。

这两种机制,分别学习了通道的重要性和空间的重要性,还可以很容易地嵌入到任何已知的框架中。

除此之外,还有很多的注意力机制相关的研究,比如残差注意力机制,多尺度注意力机制,递归注意力机制等。

Spatial Attention相关推荐

  1. attention机制、self-attention、channel attention、spatial attention、multi-head attention、transformer

    文章目录 attention sequence attention attention 与 self-attention channel attention 与 spatial attention m ...

  2. Spatial Attention model

    这个方法来自于论文:<Context Aware Query Image Representation for Particular Object Retrieval> 在描述待查询图像时 ...

  3. SA-UNet: Spatial Attention U-Net for Retinal Vessel Segmentation

    论文阅读:SA-UNet: Spatial Attention U-Net for Retinal Vessel Segmentation 用于视网膜血管分割的空间注意力U-Net 摘要:视网膜血管的 ...

  4. 2021-Twins: Revisiting the Design of Spatial Attention

    文章目录 1. Title 2. Summary 3. Problem Statement 4. Method(s) 4.1 Twins-PCPVT 4.2 Twins-SVT 4.2.1 Local ...

  5. 论文笔记:Ask, Attend and Answer: Exploring Question-Guided Spatial Attention for Visual Question Answeri

    Ask, Attend and Answer: Exploring Question-Guided Spatial Attention for Visual Question Answering Hu ...

  6. 论文解读:Ask, Attend and Answer: Exploring Question-Guided Spatial Attention for VQA

    这是关于VQA问题的第五篇系列文章.本篇文章将介绍论文:主要思想:模型方法:主要贡献.有兴趣可以查看原文:Ask, Attend and Answer: Exploring Question-Guid ...

  7. 注意力之spatial attention

    spatial attention channel attention是对通道加权,spatial attention是对spatial加权 Parameter-Free Spatial Attent ...

  8. 论文阅读:An Empirical Study of Spatial Attention Mechanisms in Deep Networks

    1.研究空间注意力机制. (1)Transformer attention 处理自然语言序列的模型有 rnn, cnn(textcnn),但是现在介绍一种新的模型,transformer.与RNN不同 ...

  9. Ask, Attend and Answer: Exploring Question-Guided Spatial Attention for Visual Question Answering

      文中提到当前一些处理VQA任务的方法都是基于处理Image Captioning任务的方法,具体就是采用卷积递归神经网络,但是这种方法不能很好的模拟spatial inference.文中提出Sp ...

最新文章

  1. B站回港受热捧——破圈下的资本新故事
  2. mac vulkan_Mac OSX系统下使用OpenGL
  3. C++11系列学习之三----array/valarray
  4. Google 的 “行星级” cron 系统
  5. kali 如何使用word_如何学习并玩好kali?
  6. 【教程】Edraw Max使用教程:Edraw Max快速入门指南
  7. STM32F4 + HAL库 + W25Q256的验证
  8. Unity3d开发wp8问题汇总
  9. 国内开源镜像网站列表
  10. pyinstaller 打包exe启动慢的问题
  11. 任天堂游戏 html5,任天堂Switch游戏销量排行Top40,赶快收藏跟着买就对啦!
  12. 提升你幽默感的经典短句
  13. 金龙云介绍——城轨云相关
  14. 关于mysql答辩的问题_答辩常见问题总结.doc
  15. R语言使用lightgbm包构建多分类的LightGBM模型、caret包的confusionMatrix函数输出多分类混淆矩阵(包含:准确率及其置信区、p值、Kappa、特异度、灵敏度等)
  16. freescale R10 ipu lib 分析 - ipu_param_mem.h
  17. 计算机等级考试《二级Java语言程序设计》题库
  18. mac电脑如何打开chrome浏览器摄像头?
  19. 交通事故风险预测——《TA-STAN: A Deep Spatial-Temporal Attention Learning Framework...》
  20. 使用openfeign调用报错java.io.IOException: too many bytes written,以及调用过程中参数传递为空等问题

热门文章

  1. Vue3+Quasar实现ins风格图片墙
  2. Jmeter 中断言操作
  3. python 中控考勤机实时接收多个考勤机的数据
  4. Python办公自动化之Word文档自动化:全网最全,看这一篇就够了!
  5. 启赟金融 CTO 马连浩:跨境支付系统架构
  6. 如何将逻辑地址转换成物理地址
  7. 数据分析案例-往届世界杯数据可视化
  8. HTTPS的SSL单向验证和双向验证
  9. noip初赛复习(全)(转)
  10. 社交网络中节点重要性的度量