首先给出论文地址:[Recurrent Models of Visual Attention]【1】(https://arxiv.org/pdf/1406.6247v1.pdf)
先大概从整体上聊聊这篇文章,这篇论文,它的一个直接竞争对象就是卷积神经网络,文章指出卷积神经网络在任务中的准确率的确还不错,但是在训练方面的确是不尽如人意,大概训练一个模型需要花上几天的时间,而且还是在多GPU的情况下,尽管事先对图像进行了处理,比如:利用降采样来减少计算等。后来联想到人对图像的一个识别,人的眼睛一开始是看到一整个图像的,但是也是有注意点的,人的注意力会着重看到某一处,然后识别这个物体是什么。将这一机制运用到计算机的图像识别方面也是可行的,这就是visual attention的原始来源。
下面介绍一下这篇博文的大概框架(我觉得下面这两部分是论文中的核心部分):
1、模型介绍;
2、训练过程。
模型介绍
模型
这是论文提出的模型框架,也许第一次看到有点不知所措,没有关系,下面我会详细讲下这个模型的构成。
a)首先这里的lt−1是前一个时间传过来的位置信息,这里的xt是输入的数据,当位置信息lt−1传入xt时,将会对xt的lt−1位置进行采样,按照图里的样子,在这个特定的位置,要采集3个patchs,比如初始的采样图像大小为8*8,接着采样的大小为(8 * 2) * (8 * 2),(这里的“2”表示的是一个因子,是相对前一次采样的尺寸大小的乘子),最后一次采样的大小为(8 * 2 * 2) * (8 * 2 * 2),这3个采样的照片的中心位置不变,就是前面传过来的lt−1,接下来对这三个采样的照片进行一个resize,例如全部都重新设置成大小为8 * 8 尺寸的照片,最后得到ρ(xl,lt−1)。这就是Glimpse Sensor。
b)给定位置信息lt−1和输入的图片xt,用 a)的Glimpse Sensor来提取数据ρ(xl,lt−1),经过线性表示【也就是经过一个普通的神经网络】得到θg0,位置信息lt−1也经过线性表示【同上】得到θg1,然后θg0和θg1也经过一个线性层,结合两者得到θg2。Glimpse网络fg(.;θg0,θg1,θg2)定义了用来产生glimpse representation gt 的注意力网络的可训练带宽限制传感器。
c)这是一个整体的模型架构,总的来说,这是一个RNN模型。这个核心网络模型 fh(,;θh) 将glimpse 网络产生的输出和之前一个时间的核心网络产生的一个输出 ht−1,作为输入,产生当前的输出 ht,位置网络和动作网络将当前产生的 ht 来产生下一个位置和动作/分类。
返回目录
奖罚机制
在执行一次活动之后(意思也就是对一个输入图片,经过这个系统之后得出分类结果),如果分类正确,则判为1,否则判为0.其表达式为R = ∑tTrT。
返回目录
训练过程
在对一张图片进行分类的时候,我们需要最大化整个奖赏机制。
引入一个交互序列的分布s1:N, 我们的目标是在这个分布的条件下最大化我们的奖赏函数:
J(θ)=Ep(s1:T;θ)[∑t=1Trt]=Ep(s1:T;θ)[R],其中p(s1:T;θ)取决于策略。
最大化J不是一件简单的事情,因为这涉及到高维相互序列的期望,可能导致进入未知的环境空间。
按照论文的方法,得到下列解法:
ΔθJ=∑t=1TEp(s1:T;θ)[Δθlogπ(ut∣s1:t;θ)R]≈M1∑t=1M∑t=1TΔθlogπ(uti∣s1:ti;θ)Ri
但是上面这个式子可能会引入高方差,以此在上式上进行修改:
ΔθJ=∑t=1TEp(s1:T;θ)[Δθlogπ(ut∣s1:t;θ)R]≈M1∑t=1M∑t=1TΔθlogπ(uti∣s1:ti;θ)(Ri−bt)
这里的 Rti=∑t′=1Trt′i
Reference
[1]Recurrent Models of Visual Attention.