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. flash 和 第三方程序交互

    一.flash 端 修改 1.flash cs6  修改脚本 为as3 2.修改 按钮 实例 名 (不是sprite列表中的名字  实例名称 和这个名字 是2个) 3.时间轴上 添加代码 当前选择 A ...

  2. PHPSESSID的cookie

    如果PHP脚本中有: 1 session_start(); 则说明使用了SESSION. SESSION是一种机制,可以在服务器端跨文件暂时保存数据或传递数据,常用于购物车等方面. SESSION只在 ...

  3. Javascript之clipBoard操作

    1.clipBoard 是网页上剪贴板,可以获取剪切板上值,可能类似物键-值对这种模式取值\赋值,如果在copy网上的某篇博客时,往往会带有“转载自xxxx地方 http://www.xxx.com/ ...

  4. ZOJ 1654 - Place the Robots (二分图最大匹配)

    题意:在一个m*n的地图上,有空地,草和墙,其中空地和草能穿透攻击光线,而墙不能.每个机器人能够上下左右攻击,问在地图上最多能放多少个不互相攻击的机器人. 这个题和HDU 1045 -  Fire N ...

  5. color 的一些处理

    1.UIImage转换成UIcolor cell.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@" ...

  6. Form表单的操作

    form对象 <form name=“form1” action=“login.php” method=“post”></form> form对象的属性 name:表单名称 m ...

  7. stm32 dac 配置过程

    DAC模块的通道1来输出模拟电压,其详细设置步骤如下: 1)开启PA口时钟,设置PA4为模拟输入. STM32F103ZET6的DAC通道1是接在PA4上的,所以,我们先要使能PORTA的时钟,然后设 ...

  8. 使用 VisualVM 进行性能分析及调优

    VisualVM 是一款免费的性能分析工具.它通过 jvmstat.JMX.SA(Serviceability Agent)以及 Attach API 等多种方式从程序运行时获得实时数据,从而进行动态 ...

  9. hdu 2047

    PS:又是上课偷懒..去递推.. 代码: #include "stdio.h"#include "math.h"long long dp[55];long lo ...

  10. UI基础:UIActionSheet和UIAlterView

    iOS中有两个弹出视图的控件,分别是UIActionSheet和UIAlterView.效果图如下:       主要代码如下: - (void)viewDidLoad { [super viewDi ...