➢Part One.注意力机制
➢一、人类中的注意力机制
➢1.概述
所谓的注意力机制这里是指人视觉上的注意力机制,是人类处理视觉信息一种特有的方式。例如:人类的注意力(关注点或者第一印象)是黑盘,狗……等。也就是我们很快的关注到一个点,然后去发现它是什么。很多的研究,给你一个图像、视屏等,考察点是attention在哪里。好处是:大脑可以高效的处理有效的信息。
例如在人的疲劳驾驶检测中,关注点就是在人的头部,眼睛闭合,也就是意味着没有什么注意力了,头的倾斜程度也是司机疲劳驾驶注意力的考察点。
➢二、深度学习中的注意力机制
在深度学习中的注意力机制就是借鉴了人类的注意力机制,我们主要是选取以下几个具有代表性的工作来学习深度学习中的注意力机制。
❑ Recurrent Models of Visual Attention . NIPS 2014: 2204- 2212❑ Neural machine translation by jointly learning to align and translate , ICLR 2015❑ Show, Attend and Tell: Neural Image Caption Generation with Visual Attention , ICML 2015❑ Attention is all you need , NIPS 2017 (重点)
➢1.Recurrent Models of Visual Attention
该论文使用RNN模型处理图像分类任务,由于不可导,所以求解的时候,采用强化学习的方法训练方式。在这篇论文中是如何使用Attention机制的呢?
A部分对图像做一个处理,提取图像的输入。使用glimpse sensor(扫视器)模拟人类观看视觉场景的时候,一瞥乍一看的过程,glimpse sensor可能会获有全局的信息,也有可能获得有局部的信息。扫视器关键点在于先确定好图片中需要关注的点(像素)。坐标开始的时候在中心的位置, 截取(关注)一小块(红色正方形)。然后还可能是截取(关注)更大的一个区域(绿色/紫色正方形),由此,截取了这三个部分①②③,然后把这三个部分resize到相同的大小,大小为
,因此得到三个图像的序列。我们知道RNN比较容易的处理这种输入是序列的数据,所以这个相当于构成了这种时间顺序的序列化的输入。于是,在一张图像中,扫视器可以处理不同的位置,然后逐渐将这种部分的信息结合起来构建一个场景。即:把图像变成了一个序列化的信号。
总而言之,A部分表示:通过坐标位置信息,以其为中心提取长宽为w的倍数提取图像区域,并经他们归一化为w * w, 拼接得到图像层次信息。按照时间顺序处理输入,一次在一张图像中处理不同的位置,逐渐的将这些部分的信息结合起来,来建立一个该场景或者环境的动态间隔表示。
B部分表示通过Glimpse Network 构建一个网络,含有:;
;
。输入是感知到的序列化的信号
以及坐标位置信息
,位置信息的网络就是回归+ReLu,序列化的信号也是通过神经网络的形式产生特征层隐状态的输出,然后二者合在一起,作为回归+ReLu网络的输入,产生一个输出,作为循环神经网络的输入,这样处理以后,循环神经网络就可以比较好的处理这样的信号
下面是一个完整的网络结构,Action和Location提取。时刻有一个位置,然后在通过Glimpse Sensor提取序列化的信号得到
,然后二者通过Glimpse Network:
,得到神经网络的输入
,然后通过循环神经网络分别产生一个Action和下一时刻的位置Location(这个下一时刻的位置可以理解为:人类在下一时刻关注的点,在这里也就是人类观察时候觉得应该往上移,Attention应该在向上移动一点的区域,所以说会调整下一时刻具体的位置,然后进一步一个时间值一个时间值的处理),最后通过Action的操作(Action就是根据我们最终识别的反馈,通过强化学习得到的期望的最大反馈,相当于reward一个奖励,如果我们的判断朝着对的方向走,我们就有一个奖励),这样的话,我们就会得到图像到底是属于哪一个类别。
在实际生活中,人类的Attention机制是人类关注在哪里