Recurrent Models of Visual Attention

Google DeepMind

  模拟人类看东西的方式,我们并非将目光放在整张图像上,尽管有时候会从总体上对目标进行把握,但是也是将目光按照某种次序(例如,从上倒下,从左到右等等)在图像上进行扫描,然后从一个区域转移到另一个区域。这么一个一个的区域,就是定义的part,或者说是 glimpse。然后将这些区域的信息结合起来用于整体的判断和感受。

  站在某个底层的角度,物体的显著性已经将这个物体研究的足够透彻。本文就是从这些东西上获得了启发,提出了一种新的框架,即:应用神经网络,基于 attention 任务驱动的视觉处理系统。本文模型考虑到一个视觉场景基于attention的处理看做是一个控制问题(a control problem),并且可以应用到动态图像,视频,或者处理动态视觉环境,像机器人,或者能够打游戏的agents。

  这个模型是一个 recurrent neural network(RNN),按照时间顺序处理输入,一次在一张图像中处理不同的位置,逐渐的将这些部分的信息结合起来,来建立一个该场景或者环境的动态间隔表示。并非马上处理整张图像甚至bbox,在每一个步骤中,模型基于过去的信息和任务的需要选择下一个位置进行处理。这样就可以控制模型的参数和计算量,使之摆脱输入图像的大小的约束。这里和CNN有明显的不同。我们就是要描述这么一个端到端的优化序列,能够直接训练模型,最大化一个性能衡量,依赖于该模型在整个任务上所做的决策。利用反向传播来训练神经网络的成分和策略梯度来解决 the non-differentiabilities due to the control problem。


  RAM:The Recurrent Attention Model

  本文将 attention problem 看做是目标引导的序列决策过程,能够和视觉环境交互。在每一个时间点,agent 只能根据有带宽限制的感知器来观察全局,即: it never senses the environment in full. 他只能在一个局部区域或者狭窄的频域范围进行信息的提取。The agent 可以自主的控制如何布置感知器的资源,即:选择感知的位置区域。该agent也可以通过执行 actions 来影响环境的真实状态。由于该环境只是部分可观察,所以他需要额外的信息来辅助其进行决定如何行动和如何最有效的布置感知器。每一步,agent 都会收到奖励或者惩罚,agent 的目标就是将奖励最大化。

  1. Model

  

  Sensor:

  在每一个步骤t,该agent 接收部分观察,没有处理全幅图像的权限,但是可以通过感知器 ρ 来提取从xt 得到的信息。假设从 Lt-1 提取的类似视网膜表示 ρ(xt, lt-1) ,该表示比原始图像 x 维度较低,我们称之为 glimpse。有一个叫 glimpse network  fg 的网络结构包含 glimpse sensor 来产生 glimpse feature vector gt,像上图B所示。

  Internal state:

  The agent 保持一个间隔状态,用来总结从过去观察得到的历史信息。The internal state 由RNN的隐单元 ht 构成,随着时间利用 core network进行更新,该网络的额外输入是: the glimpse feature vector gt.

  Actions

  每一步,agent 执行两个步骤:

    1. 通过感知控制 lt 来决定如何布置感知器;

    2. 一个可能会影响环境状态的环境动作 at 。

  Reward:

  在执行一个动作之后,agent会收到一个环境中得到的新的视觉观察 xt+1 和 一个奖励信号 rt+1。在目标识别场景中,如果分类正确,就奖励1分,否则奖励就设置为0.

  

  以上就是Partially Observable Markov Decision Process (POMDP) 的一种特殊示例。


  2. Training

  总结下,可以看出整个pipeline 有三个小网络,即: the glimpse network, the core network, and the action network。我们的训练目标就是学习到一种策略使得总的奖励达到最大。

  最大化 J 实际上是不容易的,因为这涉及到高维联系序列的期望,将这个问题看做是 POMDP, 然而,允许我们从RL的技术角度来解决该问题,即:一个样本近似的方法来逼近梯度:

  

  整体结构,引用下这个博客上的一个插图链接:http://www.cosmosshadow.com/ml/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/2016/03/08/Attention.html#_label2_3

  

  基于 Torch 的实现代码:

  https://github.com/Element-Research/rnn/blob/master/examples/recurrent-visual-attention.lua

   


    总结

  我觉得作为将强化学习和深度学习结合的先锋者,google deepmind 在这方面做的还算不错,论文的motivation 很自然,具体深度学习流程的设计也是比较合理的,其实我就有一个问题:

  ------------------------------

  更新一个网络架构的示意图:

  

  那么,可以看出,attention model 的输入是一个图像,那么根据任务的需要,可以输出一系列的图像 patch,即 attention region,仅仅对这些图像patch 进行处理,一方面可以减少非必要信息的干扰,降低噪声的影响,然后还可以减少计算量,可谓一举两得,一箭双雕,一石二鸟。。。。(一你妹,^_^)

  

 

论文笔记之: Recurrent Models of Visual Attention的更多相关文章

  1. recurrent model for visual attention

    paper url: https://papers.nips.cc/paper/5542-recurrent-models-of-visual-attention.pdf year: 2014 abs ...

  2. 论文笔记 Beyond Part Models: Person Retrieval with Refined Part Pooling_ECCV_2018

    1. 摘要 使用part-feature 能够起到更好的效果,不过这个需要我们很好地定位part的位置. 本文中作者集中考虑part内部的一致性,提出了 part-based convolutiona ...

  3. 论文笔记:Heterogeneous Memory Enhanced Multimodal Attention Model for Video Question Answering

    Heterogeneous Memory Enhanced Multimodal Attention Model for Video Question Answering 2019-04-25 21: ...

  4. A Survey of Visual Attention Mechanisms in Deep Learning

    A Survey of Visual Attention Mechanisms in Deep Learning 2019-12-11 15:51:59 Source: Deep Learning o ...

  5. 论文笔记之:Deep Attention Recurrent Q-Network

    Deep Attention Recurrent Q-Network 5vision groups  摘要:本文将 DQN 引入了 Attention 机制,使得学习更具有方向性和指导性.(前段时间做 ...

  6. 论文笔记之:Multiple Object Recognition With Visual Attention

     Multiple Object Recognition With Visual Attention Google DeepMind  ICRL 2015 本文提出了一种基于 attention 的用 ...

  7. 论文笔记:Show, Attend and Tell: Neural Image Caption Generation with Visual Attention

    Show, Attend and Tell: Neural Image Caption Generation with Visual Attention 2018-08-10 10:15:06 Pap ...

  8. Deep Reinforcement Learning for Visual Object Tracking in Videos 论文笔记

    Deep Reinforcement Learning for Visual Object Tracking in Videos 论文笔记 arXiv 摘要:本文提出了一种 DRL 算法进行单目标跟踪 ...

  9. Multimodal —— 看图说话(Image Caption)任务的论文笔记(二)引入attention机制

    在上一篇博客中介绍的论文"Show and tell"所提出的NIC模型采用的是最"简单"的encoder-decoder框架,模型上没有什么新花样,使用CNN ...

随机推荐

  1. SharePoint 2013 开发——发布SharePoint应用程序

    博客地址:http://blog.csdn.net/FoxDave 前几篇我们介绍了开发.部署和调试SharePoint应用程序的基础,本篇介绍更实用的操作,当我们开发一个SharePoint应用 ...

  2. MongoDB 聚合 (转) 仅限于C++开发

    MongoDB除了基本的查询功能,还提供了很多强大的聚合工具,其中简单的可计算集合中的文档个数, 复杂的可利用MapReduce做复杂数据分析. 1.count count返回集合中的文档数量 db. ...

  3. C# 启动关闭.exe进程(转)

    后台代码: 1 using System.Diagnostics;  2 3 protected void Button1_Click(object sender, EventArgs e)4     ...

  4. yum源的更新问题

    我们知道在linux下安装软件的方法有多种多样,其中利用yum的方式来安装较为简单,但需要等待的时间比较长.下面介绍一下如何更新yum的源的问题. 首先需要保证的是linux的机器能上网.然后按照下面 ...

  5. 《java作业》

    /* 2.编写一个类,该类有一个方法public int f(int a,int b), 该方法返回a和b的最大公约数.然后再编写一个该类的子类, 要求子类重写方法f,而且重写的方法将返回a和b的最小 ...

  6. 转载--Ubuntu设置环境变量

    Ubuntu设置环境变量并立即生效(以Ubuntu12.04为例) 标签: UbuntuLinux环境变量 2013-09-12 19:04 9961人阅读 评论(1) 收藏 举报  分类: Ubun ...

  7. 在MyEclipse上搭建web服务器

    a)       Servlet是什么? Servlet(服务器端小程序)是使用Java语言编写的服务器端程序[o1] ,可以使用脚本语言,生成动态的web页. b)      Servlet的架构? ...

  8. php大力力 [032节] php设计时候遇见麻烦:XQB50-H8268 进水电磁阀

    海信洗衣机 无法进水,刚才写程序,洗衣机不进水,在叫唤,去看了看,上网查了查,估计是进水电磁阀坏了. 打算自己拆了查出型号,淘宝买,自己修. 想起以前洗衣机坏了,找人修,对方报价好几百,淘宝看洗衣机主 ...

  9. PHP版本区别

  10. oracle第一招之神马都是浮云

    oracle: 一款关系型(二维表)数据库,可以用来存储海量数据.在大数据量并发检索的情况下,性能要高于其他的同类数据库产品.一般运行环境是Linux和Unix操作系统上! 目前最流行的商业数据库,主 ...