论文分享第四期-2019.04.16

Residual Attention Network for Image Classification,CVPR 2017,RAN

核心:将注意力机制与ResNet结合,用于图像分类。论文设计了一个注意力模块(Attention Module),通过级联该模块(即增加模型深度),网络可以学到细粒度的特征图谱(fined-grained feature maps),因为随着层数的加深,来自不同模块的注意力感知特征可以自适应地改变。

除了注意机制带来的更具判别性的特征RAN还具有其他特性

  1. 增加注意模块数量可以提升性能,因为能广泛地捕捉不同类型的注意力
  2. 以端到端的训练方式与最先进的深层网络结构相结合。显著减少了计算

论文将自己的贡献总结为三点

  1. 堆叠的网络结构(stacked network structure):将多个注意力模块级联,处在不同网络深度的注意力模块捕捉不同类型的注意力
  2. 注意力残差训练(attention residual learning):直接堆叠注意力模块(没有加和的操作)会导致模型性能显著下降。因此提出类似于残差学习的训练方法,注意力模块的输出加上输入的特征,使模型学到具有残差性质的注意力
  3. 自底向上-自顶向下的前馈注意力(bottom-up top-down):即编码-解码的结构得到注意力图谱

注意力模块的网络结构(Attention Module):

如上图所示,是RAN网络的注意里模块的结构。先通过一个残差单元,然后分为主干分支(trunk branch)和掩码分支(mask branch),再将两个分支的输出依通道逐像素点乘,在与主干分支的输出依通道逐像素求和,最后通过一个残差单元,即得到该深度处的、结合了注意力机制的特征图谱。输出公式如公式(1)。

对于论文中自述的贡献2,将此公式与ResNet中残差训练的公式对比(公式2),ResNet中网络学到的是残差函数Fi,c(x),而RAN中的两个分支都是需要学习的,Fi,c(x)是主干分支的输出特征图谱;代表残差概念的是两个分支输出的点乘,也就是两个分支合起来的作用相当于ResNet中的残差函数,所以但就mask分支得到的并不是残差,而是一种掩码。但是mask分支输出的掩码,也有其作用,论文中总结为两点:

  1. 具有前向推理中的特征选择功能;
  2. 在反向传播时还具有梯度更新滤波的作用。掩码分支(mask branch)可以阻止错误的梯度来更新主干分支(trunk branch),使模型对噪声标签具有更好的鲁棒性。

论文中所提到的直接堆叠,应该是指没有上图中加和的操作。简单地直接堆叠注意模块会使性能显著下降,论文中解释的原因:1.在0和1之间不断与mask进行点积,会使更深层的特征数值降低。2.soft mask可能会破坏主干分支的好的特性,如残差单元的恒等映射。

对于论文中自述的贡献3,即mask分支中的编码-解码的结构,在图像分割的全卷积网络FCN、人体姿态估计的沙漏网络中都有体现,这种结构现在看来已经很普遍了,不算是很大的创新点。在本论文中还引入了跳转连接,但是该跳转连接经过了一个残差单元,这在其他一些结构中是没有的。处在网络浅层的注意力模型中,跳转连接较多,随着网络加深,这种跳转连接逐渐减少直至没有。

RAN网络的整体结构(Residual Attention Network):

上述整体结构对应于自述贡献1,处在不同网络深度中的注意力模型,会捕捉不同类型的注意力。

现在就有一个最核心的疑问:这样的卷积网络结构为什么就具有捕捉注意力的能力呢?到底什么是注意力机制,设计带有注意力机制的网络结构,其应该具有什么样的特点?或是说共性

论文分享NO.4(by_xiaojian)的更多相关文章

  1. 论文分享NO.3(by_xiaojian)

    论文分享第三期-2019.03.29 Fully convolutional networks for semantic segmentation,CVPR 2015,FCN 一.全连接层与全局平均池 ...

  2. 论文分享NO.2(by_xiaojian)

    论文分享第二期-2019.03.26 NIPS2015,Spatial Transformer Networks,STN,空间变换网络

  3. 论文分享NO.1(by_xiaojian)

    论文分享第一期-2019.03.14: 1. Non-local Neural Networks  2018 CVPR的论文 2. Self-Attention Generative Adversar ...

  4. [论文分享] DHP: Differentiable Meta Pruning via HyperNetworks

    [论文分享] DHP: Differentiable Meta Pruning via HyperNetworks authors: Yawei Li1, Shuhang Gu, etc. comme ...

  5. 论文分享|《Universal Language Model Fine-tuning for Text Classificatio》

    https://www.sohu.com/a/233269391_395209 本周我们要分享的论文是<Universal Language Model Fine-tuning for Text ...

  6. Graph Transformer Networks 论文分享

    论文地址:https://arxiv.org/abs/1911.06455 实现代码地址:https://github.com/ seongjunyun/Graph_Transformer_Netwo ...

  7. AAAI 2020论文分享:通过识别和翻译交互打造更优的语音翻译模型

    2月初,AAAI 2020在美国纽约拉开了帷幕.本届大会百度共有28篇论文被收录.本文将对其中的机器翻译领域入选论文<Synchronous Speech Recognition and Spe ...

  8. [论文分享]Channel Pruning via Automatic Structure Search

    authors: Mingbao Lin, Rongrong Ji, etc. comments: IJCAL2020 cite: [2001.08565v3] Channel Pruning via ...

  9. DNN论文分享 - Item2vec: Neural Item Embedding for Collaborative Filtering

    前置点评: 这篇文章比较朴素,创新性不高,基本是参照了google的word2vec方法,应用到推荐场景的i2i相似度计算中,但实际效果看还有有提升的.主要做法是把item视为word,用户的行为序列 ...

随机推荐

  1. Android Studio真机测试失败-----''No target device found"

    手机成功连接电脑,并且手机已经设置了开发者模式,但是启动真机还是失败,最后发现居然自己没有配置android sdk的环境变量,配置之后 如果还是不能启动,点击android studio上的tool ...

  2. python多版本共存问题

    1.环境变量配置,pip路径别忘记加入,否则pip不好使. 2.如果改名python.exe为其他名字,复制一份保留,否则pip容易无法启动进程 参见爆栈: http://stackoverflow. ...

  3. 企业搜索引擎开发之连接器connector(二十四)

    本人在上文中提到,连接器实现了两种事件依赖的机制 ,其一是我们手动操作连接器实例时:其二是由连接器的自动更新机制 上文中分析了连接器的自动更新机制,即定时器执行定时任务 那么,如果我们手动操作连接器实 ...

  4. DateUtils常用方法

    一.DateUtils常用方法   1.1.常用的日期判断 isSameDay(final Date date1, final Date date2):判断两个时间是否是同一天: isSameInst ...

  5. merge sort 的javascript实现

    递归 上一篇blog里,用js实现了quicksort算法,quicksort算法是一个递归调用过程. 递归是一种非常强大的编程思想,它广泛的的存在于各种语言当中,尤其lisp的各种方言中,大量的使用 ...

  6. mysql5.7 column cannot be null

    背景 独立测试环境安装了数据库,但安装的版本是mysql 5.7的版本,而研发用的是mysql5.6的版本,在执行某个数据库操作的提示,提示column “xxxx”cannot be null 问题 ...

  7. HTML 属性绑定

  8. C#中哈希表(HashTable)的用法详解

    描述: 哈希表存放 key.values ,key值可以用于快速调取用,values 对应object类型,也就是说所有类型. 实例: 1.HashTable存放学生的成绩 Hashtable ht1 ...

  9. .NET Framework 历史版本(2017年)

    .NET简介 这个平台相信我们都知道,不过随着技术发展,现在的.NET平台也今非昔比. .NET平台类似Java平台,是微软于2000年推出的Windows操作系统的应用软件开发框架,发展至今形成巨大 ...

  10. [C#学习笔记]你真的理解拆箱装箱吗?

    学习一项新知识的时候,最好的方法就是去实践它. 前言 <CLR via C#>这本神书真的是太有意思了!没错我的前言就是这个. 装箱 首先来看下,下面这段代码 可以看到,每次循环迭代都会初 ...