本文是在阅读完《Residual Attention Network for Image Classification》所做的笔记,

由于本人对注意力机制了解甚浅,笔记当中若有不恰当的地方,还望指出。

0 前言

计算机视觉中的注意力机制的基本思想是让模型学会专注,把注意力集中在重要的信息上而忽视不重要的信息。

举个简单的例子,对于图像分类任务,有只狗在广阔无垠的沙漠里漫步,模型能识别出有只狗,那假如狗是在茂密的森林里散步呢,模型有可能识别不出来,这是为什么呢?

因为模型并没有把注意力放在狗上,而是放在整张图上,这样一旦换了背景,模型很有可能会分类出错。而我们人类却能很好地对此进行分类,因为我们只关注场景中是否有狗,而不关注背景究竟是沙漠还是森林,可以简单地理解这就是注意力机制。

那如果让模型也像我们一样只关注场景中是否有狗,那岂不是分类会更准?是的,会更准。

1 介绍

接下来本文将介绍Residual Attention Network,它是一种注意力网络。受注意力机制和深度神经网络的启发,作者提出了Residual Attention Network,它主要包含数个堆积的Attention Module,每一个Module专注于不同类型的注意力信息,而这样简单地堆积Attention Module会对特征的表达有负面的,所以作者提出了Attention Residual Learning。

Residual Attention Network的结构如下:

在详细介绍Residual Attention Network的设计之前,先看看它的优点。

优点:

(1) 生成的特征更具判别度,即在特征空间中,类内差距小,类间差距大

(2) 逐渐增加Attention Module的数量,能持续提高模型的性能

(3) 能以端到端的训练方式整合到深层网络当中

原因:

(1) Stacked network structure:分工不同,不同的Attention Module能捕获不同的注意力信息,这里的不同模块是指所处的位置不同,而模块的结构是一样的

(2) Attention Residual Learning:Stacked network structure会导致性能明显的下降,于是提出了Attention Residual Learning,这个会在下面介绍

(3) Bottom-up top-down feedforward attention

2 网络设计

2.0 Attention Module

Residual Attention Network由多个Attention Module组成。每一个Attention Module分为两条branch,一条是mask branch,另一条是trunk branch。trunk branch负责提取特征,mask branch负责生成注意力信息(即权重)。

假定一个模块H的输入是x,trunk branch的输出是T(x),mask branch的输出是M(x),则模块H的输出是

,其中i是像素点的位置,c是对应的通道位置。这其实是Residual Attention Network自称为mixed attention的原因。例如T(x)的维数为(channel, height, width),那么M(x)的维数也为(channel, height, width),这样两个张量进行点乘操作,也就是空间对应位置的值进行相乘。

在Attention Module中,mask不仅做为前向传播的特征选择器,还做为反向传播的梯度过滤器,公式一看便知,

其中

是mask branch的参数,
是trunk branch的参数。从上面的公式可以看出mask branch能抑制来自噪声的wrong gradients,这使得Attention Module对噪声具有更强的鲁棒性。

那为什么要使用多个Attention Module呢?

如果只使用单个的Attention Module,会存在以下问题:

(1) 图片的背景可能是混乱的、复杂的,前景的形态可能是多变的,例如不同的狗在不同的背景之下,而这把这样的重任交给单个的Attention Module,这样效果肯定是不如人意的

(2) 单个Attention Module只修正特征一次,如果恰好这次的修正是不恰当的,也就是注意力发挥的作用是负面的,那后续的特征就没有得到再次修正的机会了,那这样的结果肯定也是不如人意的

当然了,Residual Attention Network很好地解决了上述的两个问题,它使用多个Attention Module,每一个trunk branch有其对应的mask branch,这样不同的mask branch就能学到不同的注意力信息。

如上图,这是一张热空气气球的图片,在Low-level处,有对应的Sky mask清除蓝色的颜色特征,同时在High-level处,有对应的Ballon instance mask修正part feature。

2.1 Attention Residual Learning

然而,简单地堆积Attention Module却会导致性能的明显下降。这其中的原因有两个,一是mask的值是在0-1之间,如果特征图反复地和mask做点乘运算,无疑会降低深层特征层的值(0.9 * 0.9 * 0.9*0.9 ......会变得很小),另一个是soft mask会破坏trunk branch的良好特性。

为此,作者提出了attention residual learning。Attention Module的输出H可重新定义为:

,其中M(x)的取值范围在0-1之间,如果M(x)的值接近于0,那么H(x)的值会近似等于T(x),这样从理论上讲,有Attention Module的效果肯定不会差过没有Attention Module的效果。这里的M(x)是关键,通过添加这个Mask,模型可以自适应地提高重要的特征同时忽视来自trunk branch的噪声。

在介绍处提到的Bottom-up top-down feedforward attention其实就是这里的down sample和up sample。

堆积Attention Module并使用Attention residual learning,能使模型在保留重要的特征情况下还不破坏原始特征的特性。堆积的Attention Modules能渐渐地修正特征图,从下图可知,层数越深,特征越清晰。

2.2 Soft Mask Branch

其中r表示的是相邻最大池化之间残差模块的数目,上图就是其中一个Soft Mask Branch,包括fast feed-forward sweep和top-down feedback step,前者用于快速地收集整张图片的全局信息,后者用于把全局信息和原始特征图结合起来。

2.3 Spatial Attention and Channel Attenion

对应于mixed attention、channel attention、spatial attention这三种注意力机制,作者分别使用了三种不同类型的激活函数。对于mixed attention

,是在每个channel和每个spatioal position简单地使用了sigmoid函数,对于channel attention
,是在channel这个维度添加了L2正则化,对于spatial attention
,是在spatial这个维度使用了sigmoid函数。具体的公式如下:

其中i是像素点的位置,c是对应的通道位置,

分别表示第c层的均值和标准差,
是第i点这个位置的特征向量。

实验结果如上图,mixed attention的效果最好,这表示让Attention Module自适应地改变而不添加额外的约束会获得更好的性能。

3 总结

作者提出了Residual Attention Network,它包含数个Attention Module,并使用了Attention Residual Learning。Residual Attention Network效果好的原因有两,一是包含数个Attention Module,这样每个Attention Module都能关注不同类型的注意力信息,二是把top-down注意力机制整合到bottom-up top-down feedforward结构当中。

特征图注意力_注意力机制之Residual Attetion Network相关推荐

  1. 空间注意力 通道注意力_注意力发生了什么变化?

    空间注意力 通道注意力 "The addictive nature of web browsing can leave you with an attention span of nine ...

  2. 交替性注意力_注意力

    注意力是指人的心理活动指向和集中于某种事物的能力.俄罗斯教育家乌申斯基曾精辟地指出:"'注意'是我们心灵的惟一门户." 注意力是学习的窗口,是感知觉信息处理和认知思维的基础,学龄儿 ...

  3. 特征图大小_新手向快速了解图神经网络

    这两天稍微看了点图神经网络的东西,稍微做个记录,第一次接触这个名词的推荐可以看一下知乎上一个视频 简单粗暴带你快速理解图神经网络GNN 图神经网络处理的数据一般就是个图,图网络具有节点特征和结构特征, ...

  4. 点云特征图离散化_点云采样

    原文链接 点云采样分类 点云采样的方法有很多种,常见的有均匀采样,几何采样,随机采样,格点采样等.下面介绍一些常见的采样方法. 格点采样 格点采样,就是把三维空间用格点离散化,然后在每个格点里采样一个 ...

  5. 交替性注意力_注意力不足的小朋友通常都是持续性专注力

    注意力不足的小朋友通常都是持续性专注力.集中性专注力与选择性专注力出现了问题. 1 .持续性专注力的提升 ■ 让幼儿学习 " 一次只做一件事.每次都把事情完成 " 的生活及游乐模式 ...

  6. 特征图注意力_计算机视觉中的Non-local-Block以及其他注意力机制

    Non-local Neural Networks​arxiv.org 之前看的一篇论文继续总结一下,本质是一种注意力机制模块,文章相对来说比较老,CVPR2018. 我将从以下几个方面总结一下论文, ...

  7. 注意力机制+软阈值化 = 深度残差收缩网络(Deep Residual Shrinkage Network)

    目录 1. 相关基础 1.1 残差网络 1.2 软阈值化 1.3 注意力机制 2. 深度残差收缩网络理论 2.1 动机 2.2 算法实现 2.3 优势 结论 顾名思义,深度残差收缩网络是由" ...

  8. 深度残差网络_注意力机制+软阈值化=深度残差收缩网络

    顾名思义,深度残差收缩网络是由"残差网络"和"收缩"两部分所组成的,是在"残差网络"基础上的一种改进算法. 其中,残差网络在2016年斩获了 ...

  9. 特征图注意力_ICLR2017 | AT_注意力引导的知识蒸馏

    ICLR2017 | Paying More Attention to Attention https://github.com/szagoruyko/attention-transfer 1.注意力 ...

最新文章

  1. 使用ISA实现用户级验证(1~3篇)
  2. JDK9的JShell简单使用
  3. 【CF1194E】Count The Rectangles【类扫描线】【单调性】【树状数组】
  4. q7goodies事例_Java 8 Friday Goodies:新的新I / O API
  5. python零基础学习书-零基础学Python,不容错过的入门书籍
  6. 什么是mysql显错注入_十种MYSQL显错注入原理讲解(三)
  7. UE4之插件打包提示安装vs2017
  8. 多台服务之间共享Session
  9. 飞书信外贸移动社交自建站系统玩转海外拼团分销
  10. VIOS挂载ISO文件
  11. 闲来没事自己研究了下RBAC
  12. 目标管理之SMART原则
  13. MakeCert CAB压缩 Signcode
  14. 《IT售前工程师修炼之道》2019年9月笔记
  15. 用函数实现求一元二次方程ax^2+bx+c=0的根
  16. qt5报错Installed Qt WebEngine locales directory not found at location
  17. L1、L2正则化与稀疏性
  18. 带娃学Scratch之六狩猎游戏制作
  19. 实现strchr函数
  20. 无高氯酸盐 羟脯氨酸检测试剂盒的储存条件和试剂制备

热门文章

  1. Codeforces Round #395 Div.1 C pacifist【JZOJ5449】Pacifist
  2. 如何将swf转换成MP4格式?视频转换器如何使用
  3. 图像为什么糊了(MATLAB)
  4. 【PCIE体系结构十四】电气物理层之发送端FFE
  5. 敏捷考证?你应该知道的敏捷体系认证(最全名单)
  6. 根据公式计算网络qoe
  7. 一次由Spring构造注入引发的错误Parameter 1 of constructor in org.rongyilian.service.impl.VerificationCodeService
  8. CSDN早报-2019-04-26
  9. 修改计算机网络适配器的IPv4地址
  10. 清洁机器人--沿边测距传感器 sharp psd红外传感器的FOV角度分析