视觉注意的recurrent模型
在人们认识物体的过程中,往往不是对物体整体进行一次性地观察,同样其中人类视觉感知的一个重要特性是,人们不倾向于一次性处理整个场景。相反是有选择地将注意力集中在视觉空间的某些部分,以便在需要的时候和地方获取信息。并且随着时间的推移,大脑将来自不同注视点的信息结合起来,构建场景的内部表征,指导之后的眼球运动等行为。文章从机器模拟人的“视觉观察”角度出发,来探讨视觉注意的recurrent模型,开发了一个新的基于注意力的任务驱动的神经网络视觉处理框架。
The Recurrent Attention Model(RAM)
该模型为一个按照时间顺序处理输入的回归神经网络模型(recurrent neural network,RNN)。A是一个 Glimpse传感器,而B则是Glimpse的工作网络,C为总体的RNN模型线路
*Glimpse:从视网膜(L t-1)中提取到的图像坐标ρ(xt, L t-1) 会比原始图像 x 维度较低,被称作Glimpse
文章把注意问题看做是目标引导的视觉环境交互序列决策过程(a goal-directed agent interacting with a visual environment.)。 在每一个时间t中,由代理(agent)接收部分观察到的信息并且由感知器(sensor)处理
*感知器Senor:代理器没有处理全幅图像的权限,只能根据有带宽限制的感知器来观察全局,但是agent可以自主的控制如何布置感知器的资源,并通过感知器ρ来提取从观察图像坐标Xt中得到的信息。每一步,agent都会收到奖励或者惩罚的反馈(其实没有惩罚,如果分类正确则获得奖励,失败则没有奖励),而其模型目标就是将奖励最大化。
内部结构(Internal state):agent 保持一个间隔状态,用来总结从过去观察得到的历史信息。内部结构由RNN的隐单元 ht 构成,随着时间利用核心的网络core network进行更新,该网络有额外输入——the glimpse feature vector gt。
行动(Actions):agent也可以通过执行actions来影响环境的真实状态,当然由于环境只是部分可观察的,所以需要额外的信息来辅助agent进行决定如何行动和最有效地布置感知器。每一步,agent 执行两个步骤:通过感知控制 lt 来决定如何布置感知器,或者进行一个可能会影响环境状态的环境动作(action)
模型训练(training)
如图中C所示,模型的整体线路由3部分网络组成:the glimpse network, the core network, the action network。训练的目标就是使模型所得到的奖励(J)最大化。
但由于涉及对高维交互序列的期望(an expectation over the high-dimensional interaction sequences)作者提出将问题看做是一个POMDP。
*POMDP:部分可观测马氏决策过程。即由于信息不完全,可能一开始agent并不知道自己在A还是在B,于是需要给分别可能在A,或者B的可能性赋予权重:假设有0.4的可能一开始在A,则有0.6的可能性一开始在B
在此基础上引入了RL的思想:
*用log函数的变式一样成立,M为M次的采样。在进行了无偏估计后,形式转化为:
混合监督损失(Using a Hybrid Supervised Loss):上述算法允许在最佳行为未知、学习信号仅通过奖励提供的情况下来训练agent。在某些情况下,我们确实知道要采取的正确操作:例如,在对象检测任务中,代理必须输出对象的标签作为最终操作。对于训练图像,该标签将是已知的,并且我们可以直接优化策略以在观察序列结束时输出与训练图像相关的正确标签
文章用几种图片分类任务一个简单的游戏实验来检验模型。这些实验中有共同的选择设计:
1、视网膜和位置编码(Retina and location encoding):视网膜编码ρ(x,l)提取以位置l为中心的k个正方形色块(square patches),第一个色块尺寸为gw × gw个像素,并且每个连续色块具有前一个宽度的两倍。
2、Glimpse网络: Glimpse网络fg(x,l)有两个全连接层。Linear(x)表示向量x的线性变换,Linear(x)=Wx+b (W为权重矩阵,b为偏置)。glimpse网络的输出g被定义为g=Rect(Linear(hg)+Linear(hl)),其中hg=Rect(Linear(ρ(x,l))),hl=Rect(Linear(l))。hg和hl的维度为128,而本文中训练的所有注意模型的维度为256.
3、位置网络(location network):位置l的策略由具有固定方差的双分量高斯定义。位置网络在时间t输出位置策略的均值并且被定义为fl(h)=Linear(h),其中h是核心网络/ RNN的状态。
4、核心网络(core network):对于核心fh后面的分类实验,整流器单元网络定义为ht=fh(ht−1)=Rect(Linear(ht-1)+Linear(gt))。在动态环境下进行的实验使用了LSTM单元的核心。
对于图像分类任务,首先实验用MNIST数字数据集来验证模型的居中数字分类能力(图a),此实验的“视网膜”只是一个8×8的色块,只能容纳一个数字的一部分,因此该实验还测试了RAM结合多次glimpse信息的能力;
而之后实验者还建立了一个Translated MNIST的新任务(图b),通过将MNIST数字放置在较大空白补丁的随机位置生成数据,以此检验模型的非居中数字分类能力。
*图为两个分类的结果(a为居中数字任务,b为非居中数字任务)。FC表示具有两层整流器单元的全连接网络。 卷积网络具有一个8步10×10个步长为5的滤波器,其后是每层之后的具有256个单元整流器的完全连接层。 注意力模型的实例标有glimpse的数量,视网膜中的色块数量和视网膜的大小
杂乱的非居中数(Cluttered Non-Centered Digits):注意机制的一个可能的优点是它可以通过关注图像的相关部分并且忽略不相关部分而使得在存在杂乱的情况下学习更容易。作者用称为Cluttered Translated MNIST的新任务进行了几次实验来验证这个假设(上图)。该任务的数据是通过首先将MNIST数字放置在较大空白图像的随机位置,然后将来自其他随机MNIST数字的随机8乘8个子图像添加到图像的随机位置来生成的。实验目标是分类图像中的完整数字(第一幅图)。
如表所示,杂波的存在使得任务变得更加困难,但是RAM模型的性能受到的影响要小于其他模型的性能。这些结果表明,由于RAM在杂波存在的情况下对卷积网络的相对误差提高较大,基于注意力模型在处理杂波时可能比卷积网络更好,因为它们可以通过不去注意而简单地忽略。
游戏测验——动态环境(Dynamic Environments)
对于游戏来说,环境状态将是游戏引擎的真实状态体现,并且代理的传感器将在屏幕上显示的视频帧上运行。实验中的环境行动将对应于操纵杆控制,并且用奖励将反映得分。
RAM模型的一个特性是它可以像静态图像任务一样容易地应用于具有视觉输入的视频或交互式任务。实验用游戏为一个简单的“catch”游戏,在24×24像素的二进制像素屏幕上播放,涉及两个对象:一个单一的像素代表一个球,它从屏幕的顶部落下,同时从屏幕的侧面弹起,还有一个位于屏幕底部的两个像素的“桨”,代理控制该桨以捕捉球。当下降的像素到达屏幕的底部时,如果桨与球重叠,则agent获得1奖励,否则无奖励,之后游戏重新开始。
作者训练了RAM模型,只使用最终奖励作为输入来玩“Catch”游戏。该网络在三个维度上有一个6×6的视网膜作为其输入,这意味着agent必须在6×6的最高分辨率区域捕捉球,以便知道其精确位置。文章通过随机搜索来寻找合适的超参数,并对每个agent进行了2000万帧的训练。结果显示,循环注意力模型通过追踪屏幕底部附近的球来学习玩游戏。由于代理人没有以任何方式被告知追踪球并且仅因为获得奖励而获得奖励,这一结果表明该模型有能力学习有效的特定任务的关注策略。
讨论
文章的出发点是如何减少图像相关任务的计算量,提出通过使用 attention based RNN 模型建立序列模型(recurrent attention model, RAM), 每次基于上下文和任务来适应性的选择输入的的 image patch, 而不是整张图片, 从而使得计算量独立于图片大小, 从而缓解 CNN 模型中计算量与输入图片的像素数成正比的缺点。尽管模型是不可微分的(not differentiable),但文章通过强化学习的方式来学习任务明确的策略来解决这方面的问题