特征图注意力_注意力机制之Residual Attetion Network
本文是在阅读完《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的输出是
在Attention Module中,mask不仅做为前向传播的特征选择器,还做为反向传播的梯度过滤器,公式一看便知,
其中
那为什么要使用多个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可重新定义为:
在介绍处提到的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
其中i是像素点的位置,c是对应的通道位置,
实验结果如上图,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相关推荐
- 空间注意力 通道注意力_注意力发生了什么变化?
空间注意力 通道注意力 "The addictive nature of web browsing can leave you with an attention span of nine ...
- 交替性注意力_注意力
注意力是指人的心理活动指向和集中于某种事物的能力.俄罗斯教育家乌申斯基曾精辟地指出:"'注意'是我们心灵的惟一门户." 注意力是学习的窗口,是感知觉信息处理和认知思维的基础,学龄儿 ...
- 特征图大小_新手向快速了解图神经网络
这两天稍微看了点图神经网络的东西,稍微做个记录,第一次接触这个名词的推荐可以看一下知乎上一个视频 简单粗暴带你快速理解图神经网络GNN 图神经网络处理的数据一般就是个图,图网络具有节点特征和结构特征, ...
- 点云特征图离散化_点云采样
原文链接 点云采样分类 点云采样的方法有很多种,常见的有均匀采样,几何采样,随机采样,格点采样等.下面介绍一些常见的采样方法. 格点采样 格点采样,就是把三维空间用格点离散化,然后在每个格点里采样一个 ...
- 交替性注意力_注意力不足的小朋友通常都是持续性专注力
注意力不足的小朋友通常都是持续性专注力.集中性专注力与选择性专注力出现了问题. 1 .持续性专注力的提升 ■ 让幼儿学习 " 一次只做一件事.每次都把事情完成 " 的生活及游乐模式 ...
- 特征图注意力_计算机视觉中的Non-local-Block以及其他注意力机制
Non-local Neural Networksarxiv.org 之前看的一篇论文继续总结一下,本质是一种注意力机制模块,文章相对来说比较老,CVPR2018. 我将从以下几个方面总结一下论文, ...
- 注意力机制+软阈值化 = 深度残差收缩网络(Deep Residual Shrinkage Network)
目录 1. 相关基础 1.1 残差网络 1.2 软阈值化 1.3 注意力机制 2. 深度残差收缩网络理论 2.1 动机 2.2 算法实现 2.3 优势 结论 顾名思义,深度残差收缩网络是由" ...
- 深度残差网络_注意力机制+软阈值化=深度残差收缩网络
顾名思义,深度残差收缩网络是由"残差网络"和"收缩"两部分所组成的,是在"残差网络"基础上的一种改进算法. 其中,残差网络在2016年斩获了 ...
- 特征图注意力_ICLR2017 | AT_注意力引导的知识蒸馏
ICLR2017 | Paying More Attention to Attention https://github.com/szagoruyko/attention-transfer 1.注意力 ...
最新文章
- 使用ISA实现用户级验证(1~3篇)
- JDK9的JShell简单使用
- 【CF1194E】Count The Rectangles【类扫描线】【单调性】【树状数组】
- q7goodies事例_Java 8 Friday Goodies:新的新I / O API
- python零基础学习书-零基础学Python,不容错过的入门书籍
- 什么是mysql显错注入_十种MYSQL显错注入原理讲解(三)
- UE4之插件打包提示安装vs2017
- 多台服务之间共享Session
- 飞书信外贸移动社交自建站系统玩转海外拼团分销
- VIOS挂载ISO文件
- 闲来没事自己研究了下RBAC
- 目标管理之SMART原则
- MakeCert CAB压缩 Signcode
- 《IT售前工程师修炼之道》2019年9月笔记
- 用函数实现求一元二次方程ax^2+bx+c=0的根
- qt5报错Installed Qt WebEngine locales directory not found at location
- L1、L2正则化与稀疏性
- 带娃学Scratch之六狩猎游戏制作
- 实现strchr函数
- 无高氯酸盐 羟脯氨酸检测试剂盒的储存条件和试剂制备
热门文章
- Codeforces Round #395 Div.1 C pacifist【JZOJ5449】Pacifist
- 如何将swf转换成MP4格式?视频转换器如何使用
- 图像为什么糊了(MATLAB)
- 【PCIE体系结构十四】电气物理层之发送端FFE
- 敏捷考证?你应该知道的敏捷体系认证(最全名单)
- 根据公式计算网络qoe
- 一次由Spring构造注入引发的错误Parameter 1 of constructor in org.rongyilian.service.impl.VerificationCodeService
- CSDN早报-2019-04-26
- 修改计算机网络适配器的IPv4地址
- 清洁机器人--沿边测距传感器 sharp psd红外传感器的FOV角度分析