一、背景
文章题目:《Recurrent Models of Visual Attention》
近两年越来越多的看到attention机制应用到图像领域中了,所以想总结一下attention机制,于是就找到了这篇文章。
文章的下载链接:http://papers.nips.cc/paper/5542-recurrent-models-of-visual-attention.pdf
或: https://arxiv.org/abs/1406.6247
文章的引用格式:V. Mnih, N. Heess, A. Graves, K. Kavukcuoglu. "Recurrent Models of Visual Attention." Conference and Workshop on Neural Information Processing Systems(NIPS). 2014
项目地址:可参考:https://github.com/hehefan/Recurrent-Attention-Model (tensorflow版本)
以及:https://github.com/jlindsey15/RAM (tensorflow版本)
二、文章导读
这篇文章比较早,网上有部分解读的博客:
[1] 论文阅读:《Recurrent Models of Visual Attention》
[2] 论文笔记之: Recurrent Models of Visual Attention
看一下文章的摘要部分:
Applying convolutional neural networks to large images is computationally expensive because the amount of computation scales linearly with the number of image pixels. We present a novel recurrent neural network model that is capable of extracting information from an image or video by adaptively selecting a sequence of regions or locations and only processing the selected regions at high resolution. Like convolutional neural networks, the proposed model has a degree of translation invariance built-in, but the amount of computation it performs can be controlled independently of the input image size. While the model is non-differentiable, it can be trained using reinforcement learning methods to learn task-specific policies. We evaluate our model on several image classification tasks, where it significantly outperforms a convolutional neural network baseline on cluttered images, and on a dynamic visual control problem, where it learns to track a simple object without an explicit training signal for doing so.
摘要部分也比较明确的说到了,作者提出了一种新的循环神经网络RNN(Recurrent Attention Model (RAM)),该网络能够自适应的选择图像中的连续区域,然后重点针对这些区域进行处理,以提取图像或者视频中的信息。这种网络的优势在于,计算量可以根据输入图像的尺寸来控制;可以使用强化学习来训练。
三、文章详细介绍
神经网络在图像分类以及目标识别中有着非常好的表现,但是带来的问题则是,训练和测试过程都有着巨大的计算量。类似于人眼,人类看到一张图之后不会立刻仔细观察整张图,而是有选择性的关注部分区域以获取信息,最后再结合这些信息以建立对整张图像的感受。作者的灵感来自于此,作者将注意力机制引入到RNN中,以实现对图像的分类工作。
之前的减少计算量的方法主要有两个:一是减少窗口数量,限制分类器的输出;二是引入注意力。
下面就是作者提出的模型循环注意力网络Recurrent Attention Model (RAM):
我们可以将注意力问题看作目标驱动的序列决策问题,我们使用了一个代理(agent)实现与环境的可视交互。代理每次只会用有限波长宽度的sensor来检测图像中的环境,但不会是全部图像。由于环境也都只是被部分检测到,因此后面还需要agent整合所有信息。在每一步,代理都会得到一个奖励,我们的目的是要最大化代理得到奖励。
整个模型的结构如下图所示:
关于sensor结构:
假设第t步,代理对图像进行检测,通过限制的波段宽传感器(sensor)
来提取图像中的信息。我们用图像
在位置
附近的函数表示
。利用l附近的低分辨率提取的像元,再进一步提取高分辨率的像元。我们将这个提取出的低分辨率图像叫做glimpse,而glimpse网络
可以生成glimpse特征向量
,其中
。
关于内部状态internal state:
代理基于历史检测到的结果提取信息。内部状态由两部分组成:一是循环神经网络RNN的隐藏单元,二是核心网络的更新结果
。
行为actions:
每一步代理都会执行两个行动:怎样通过sensor控制和怎样使用环境行为(environment action)
。假设位置网络
在时间t内随机采样得到位置行为
:
。环境行为
提取自第二个网络输出
的条件分布。对于分类来说,输出层一般是softmax。最后,模型的结束可以通过何时停止glimpse来控制。
奖励制度rewards:
代理执行完上述行动之后,会获得一个奖励以及环境的可视化结果
,代理的最终目的就是最大化这个奖励,这个过程
往往是稀疏的。
以上过程都可以看作部分可观测马尔可夫过程(Partially Observable Markov Decision Process (POMDP))。环境的真实状态是不可观测过程,因此代理还需要学习一个随机策略。
下面是关于训练过程。
核心网络(core network)见图中的1c,我们要最大化奖励是建立在如下分布的条件下:
这种分布的近似梯度可以表示为:
上式是梯度的无偏估计(unbiased estimate),但是会产生方差。因此我们将梯度的估计改写成:
方程(2)和方程(1)的期望是相同的,但方差更小。
学习信号只是通过奖励制度提供,"最好"的行为还是不知道的。但是一些情况下的正确行为是可以知道的,比如图像分类的训练过程,我们是可以知道目标图像的输出标签和真实标签,以此可以来建立优化策略(就是一般的loss函数)。这是一种通过最大化图像真实标签的条件概率实现的监督学习。这里采用了交叉熵(cross entropy loss)来训练行为网络(action network),通过glimpse network和core network来进行梯度的后向传播(backpropagate)。
最后就是实验的结果部分了:
首先是一些网络结构参数的设置:
(1)Retina and location encodings:在位置l处选择k*k的patch
(2)Glimpse network:有两个全连接层
(3)Location network:在位置l处定义的方差修正的双组分高斯函数
(4)Core network:纠正单元网络(rectifier units)。这里用的是LSTM。
关于图像分类的实验,作者把图像分成了3类:(1)数字在图像的中心(Centered Digits)(2)数字不在图像的中心(Non-Centered Digits)(3)杂乱且不在中心的数字图像(Cluttered Non-Centered Digits)
先来看一下前两类的结果:
Table1左边是MNSIT数据集的结果,数字都在图像的中心,Table1右边是非中心的数字图像结果,数据集由MNIST经过变换得来。Fig2的左边就是做好的示意图,右边则是生成的杂乱的数字图像(里面由很多干扰噪声)。
对于杂乱图像的处理结果:
左边第一列是glimpse path,第2-7列则是不同的glimpse的选择结果,可以看到,这样做能够很好避免杂乱图像上噪声部分的影像。
最后就是总结了,RAM的优点主要表现在:(1)参数量和计算量都能够通过输入图像的尺寸进行控制(2)RAM能够忽略杂乱图像中的噪声部分(3)能够方便的进行扩展(4)网络对输入图像采样的尺度能够控制,使它可用于不同尺寸的图像。
四、小结
1. attention机制在这里用的glimpse表示,并结合了LSTM和RNN网络。