如何实现模拟人类视觉注意力的循环神经网络?

我们观察PPT的时候,面对整个场景,不会一下子处理全部场景信息,而会有选择地分配注意力,每次关注不同的区域,然后将信息整合来得到整个的视觉印象,进而指导后面的眼球运动。将感兴趣的东西放在视野中心,每次只处理视野中的部分,忽略视野外区域,这样做最大的好处是降低了任务的复杂度。

深度学习领域中,处理一张大图的时候,使用卷积神经网络的计算量随着图片像素的增加而线性增加。如果参考人的视觉,有选择地分配注意力,就能选择性地从图片或视频中提取一系列的区域,每次只对提取的区域进行处理,再逐渐地把这些信息结合起来,建立场景或者环境的动态内部表示,这就是本文所要讲述的循环神经网络注意力模型。

怎么实现的呢?

把注意力问题当做一系列agent决策过程,agent可以理解为智能体,这里用的是一个RNN网络,而这个决策过程是目标导向的。简要来讲,每次agent只通过一个带宽限制的传感器观察环境,每一步处理一次传感器数据,再把每一步的数据随着时间融合,选择下一次如何配置传感器资源;每一步会接受一个标量的奖励,这个agent的目的就是最大化标量奖励值的总和。

下面我们来具体讲解一下这个网络。

如上所示,图A是带宽传感器,传感器在给定位置选取不同分辨率的图像块,大一点的图像块的边长是小一点图像块边长的两倍,然后resize到和小图像块一样的大小,把图像块组输出到B。

图B是glimpse network,这个网络是以theta为参数,两个全连接层构成的网络,将传感器输出的图像块组和对应的位置信息以线性网络的方式结合到一起,输出gt。

图C是循环神经网络即RNN的主体,把glimpse network输出的gt投进去,再和之前内部信息ht-1结合,得到新的状态ht,再根据ht得到新的位置lt和新的行为at,at选择下一步配置传感器的位置和数量,以更好的观察环境。在配置传感器资源的时候,agent也会受到一个奖励信号r,比如在识别中,正确分类r是1,错误分类r是0,agent的目标是最大化奖励信号r的和:

梯度的近似可以表示为:

公式(1)也叫做增强学习的规则,它包括运用当前的策略运行agent去获得交互序列,然后根据可以增大奖励信号的行为调整theta。它的训练过程就是用增强学习的方法学习具体任务策略。关于给定任务,根据模型做出的一系列决定给出表现评价,最大化表现评价,对其进行端到端的优化。

首先为什么要用增强学习呢?因为数据的状态不是非常明确的,不是可以直接监督或者非监督来训练的,比如机器人的控制很难完全精确。

那么什么是增强学习呢?

增强学习关注的是智能体如何在环境中采取一系列行为,从而获得最大的累积回报。RL是从环境状态到动作的映射的学习,我们把这个映射称为策略。通过增强学习,一个智能体(agent)应该知道在什么状态下应该采取什么行为。

假设一个智能体处于下图(a)中所示的4x3的环境中。从初始状态开始,它需要每个时间选择一个行为(上、下、左、右)。在智能体到达标有+1或-1的目标状态时与环境的交互终止。如果环境是确定的,很容易得到一个解:[上,上,右,右,右]。可惜智能体的行动不是可靠的(类似现实中对机器人的控制不可能完全精确),环境不一定沿这个解发展。下图(b)是一个环境转移模型的示意,每一步行动以0.8的概率达到预期,0.2的概率会垂直于运动方向移动,撞到(a)图中黑色模块后会无法移动。两个终止状态分别有+1和-1的回报,其他状态有-0.4的回报。现在智能体要解决的是通过增强学习(不断的试错、反馈、学习)找到最优的策略(得到最大的回报)。

上述问题可以看作为一个马尔科夫决策过程,最终的目标是通过一步步决策使整体的回报函数期望最优。

提到马尔科夫,大家通常会立刻想起马尔可夫链(Markov Chain)以及机器学习中更加常用的隐式马尔可夫模型(Hidden Markov Model, HMM)。它们都具有共同的特性便是马尔可夫性:当一个随机过程在给定现在状态及所有过去状态情况下,未来状态的条件概率分布仅依赖于当前状态;换句话说,在给定现在状态时,它与过去状态是条件独立的,那么此随机过程即具有马尔可夫性质。具有马尔可夫性质的过程通常称之为马尔可夫过程。

马尔可夫决策过程(Markov Decision Process),其也具有马尔可夫性,与上面不同的是MDP考虑了动作,即系统下个状态不仅和当前的状态有关,也和当前采取的动作有关。

一个马尔科夫决策过程(Markov Decision Processes, MDP)有五个关键元素组成{S,A,{Psa},γ,R},其中:

这个就是马尔科夫决策过程。讲完马尔科夫决策之后我们回过头回顾一下训练的过程:每次agent只通过一个带宽限制的传感器观察环境,每一步处理一次传感器数据,再把每一步的数据随着时间融合,选择下一次如何配置传感器资源;每一步会接受一个标量的奖励,这个agent的目的就是最大化标量奖励值的总和。

注意力模型的效果如何

把注意力模型和全连接网络以及卷积神经网络进行比较,实验证明了模型可以从多个glimpse结合的信息中成功学习,并且学习的效果优于卷积神经网络。

由于注意力模型可以关注图像相关部分,忽视无关部分,所以能够在在有干扰的情况下识别,识别效果也是比其他网络要好的。下面这个图表现的是注意力的路径,表明网络可以避免计算不重要的部分,直接探索感兴趣的部分。

基于循环神经网络的注意力模型比较有特色的地方就在于:

● 提高计算效率,处理比较大的图片的时候非常好用;

● 阻塞状态下也能识别。

我们讲了半天,一个重要的概念没有讲,下面来讲讲循环神经网络RNN。

我们做卷积神经网络的时候样本的顺序并不受到关注,而对于自然语言处理,语音识别,手写字符识别来说,样本出现的时间顺序是非常重要的,RNNs出现的目的是来处理时间序列数据。

这个网络最直观的印象是什么呢,就是线多。在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,每层的节点之间是无连接的。但是这种普通的神经网络对于很多问题却没有办法。例如,要预测句子的下一个单词,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。RNNs之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关,网络会对前面的信息进行记忆并应用于当前输出的计算中,具体的表现形式为即隐藏层之间的节点不再无连接而是有连接的,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出。理论上,RNNs能够对任何长度的序列数据进行处理。但是在实践中,为了降低复杂性往往假设当前的状态只与前面的几个状态相关,下图便是一个典型的RNNs:

T时刻的输出是该时刻的输入和所有历史共同的结果,这就达到了对时间序列建模的目的。RNN可以看成一个在时间上传递的神经网络,它的深度是时间的长度。对于t时刻来说,它产生的梯度在时间轴上向历史传播几层之后就消失了,根本就无法影响太遥远的过去。因此,之前说“所有历史”共同作用只是理想的情况,在实际中,这种影响也就只能维持若干个时间戳。

为了解决时间上的梯度消失,机器学习领域发展出了长短时记忆单元LSTM,通过门的开关实现时间上记忆功能,并防止梯度消失。

RNN还可以用在生成图像描述之中,用CNN网络做识别和分类,用RNN网络产生描述语句,这就是李飞飞的实验室所研究的内容。

雷锋网相关阅读:

简单实用的 TensorFlow 实现 RNN 入门教程

当 AI 邂逅艺术:机器写诗综述



开发者专场 | 英伟达深度学习学院现场授课

英伟达 DLI 高级工程师现场指导,理论结合实践,一举入门深度学习!

课程链接:http://www.mooc.ai/course/90

====================================分割线================================

本文作者:AI研习社

本文转自雷锋网禁止二次转载,原文链接

时间: 2024-09-14 16:42:56

如何实现模拟人类视觉注意力的循环神经网络?的相关文章

简单入门循环神经网络RNN:时间序列数据的首选神经网络

更多深度文章,请关注:https://yq.aliyun.com/cloud 随着科学技术的发展以及硬件计算能力的大幅提升,人工智能已经从几十年的幕后工作一下子跃入人们眼帘.人工智能的背后源自于大数据.高性能的硬件与优秀的算法的支持.2016年,深度学习已成为Google搜索的热词,随着最近一两年的围棋人机大战中,阿法狗完胜世界冠军后,人们感觉到再也无法抵挡住AI的车轮的快速驶来.在2017年这一年中,AI已经突破天际,相关产品也出现在人们的生活中,比如智能机器人.无人驾驶以及语音搜索等.最近,

深度学习界冉冉升起的新星——循环神经网络(part1)

作者介绍:Hazem,机器学习以及深度学习爱好者 Blog:https://thebeautyofml.wordpress.com/ 当你实践机器学习方法的时候,我确信没有什么是比循环神经网络更让你激动的了.循环神经网络不仅是最强大,最成功的技术,它还是众多神经网络技术中最幸运的.尽管在大多数情况下,人们并不将之视为深度学习技术,今天我们介绍的研究仍然大量采用循环神经网络.循环神经网络的诞生要追溯到20世纪80年代,但是也就是随着深度学习技术的火爆,该技术才真正的蓬勃发展. 引言 在介绍循环神经

一直以来电脑只是在不断模拟人类的潜意识部分 - 思维部分就是电脑实现人工智能的目标

一直以来电脑只是在不断模拟人类的潜意识部分 - 思维部分就是电脑实现人工智能的目标 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 首先,需要再次明确,从抽象角度讲,人类有两个"大脑&

[译] RNN 循环神经网络系列 2:文本分类

本文讲的是[译] RNN 循环神经网络系列 2:文本分类, 原文地址:RECURRENT NEURAL NETWORKS (RNN) – PART 2: TEXT CLASSIFICATION 原文作者:GokuMohandas 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m- 译者:Changkun Ou 校对者:yanqiangmiffy, TobiasLee 本系列文章汇总 RNN 循环神经网络系列 1:基本 RNN 与 CHAR-RNN RNN 循环神

[译] RNN 循环神经网络系列 1:基本 RNN 与 CHAR-RNN

本文讲的是[译] RNN 循环神经网络系列 1:基本 RNN 与 CHAR-RNN, 原文地址:RECURRENT NEURAL NETWORKS (RNN) – PART 1: BASIC RNN / CHAR-RNN 原文作者:GokuMohandas 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m- 译者:Changkun Ou 校对者:CACppuccino, TobiasLee 本系列文章汇总 RNN 循环神经网络系列 1:基本 RNN 与 CHAR

Facebook开源 PyTorch版 fairseq,准确性最高、速度比循环神经网络快9倍

今年5月,Facebook AI研究院(FAIR)发表了他们的研究成果fairseq,在fairseq中,他们使用了一种新型的卷积神经网络来做语言翻译,比循环神经网络的速度快了9倍,而且准确性也是现有模型中最高的.此外,他们在GitHub公布了fair序列建模工具包的源代码和训练好的系统,其他的研究者可以在此基础上建立自己的关于翻译.文本总结和其他任务的模型. 详情可参见快9倍!Facebook开源机器学习翻译项目fairseq一文. 日前,Facebook AI研究团队又在GitHub上开源了

零基础入门深度学习(5) - 循环神经网络

  在前面的文章系列文章中,我们介绍了全连接神经网络和卷积神经网络,以及它们的训练和使用.他们都只能单独的取处理一个个的输入,前一个输入和后一个输入是完全没有关系的.但是,某些任务需要能够更好的处理序列的信息,即前面的输入和后面的输入是有关系的.   比如,当我们在理解一句话意思时,孤立的理解这句话的每个词是不够的,我们需要处理这些词连接起来的整个序列:当我们处理视频的时候,我们也不能只单独的去分析每一帧,而要分析这些帧连接起来的整个序列.这时,就需要用到深度学习领域中另一类非常重要神经网络:循

TensorFlow构建循环神经网络

前言 前面在<循环神经网络>文章中已经介绍了深度学习的循环神经网络模型及其原理,接下去这篇文章将尝试使用TensorFlow来实现一个循环神经网络,该例子能通过训练给定的语料生成模型并实现对字符的预测.这里选择使用最原始的循环神经网络RNN模型. 语料库的准备 这里就简单用纪伯伦的<On Friendship>作为语料吧. RNN简要说明 用下面两张图简要说明下,RNN模型有多个时刻的输入,从第一个图中看到输入x.隐层s和输出o都与时刻t有关,可以看到上一时刻的隐含层会影响到当前时

循环神经网络

RNN是什么 循环神经网络即recurrent neural network,它的提出主要是为了处理序列数据,序列数据是什么?就是前面的输入和后面的输入是有关联的,比如一句话,前后的词都是有关系的,"我肚子饿了,准备去xx",根据前面的输入判断"xx"很大可能就是"吃饭".这个就是序列数据. 循环神经网络有很多变种,比如LSTM.GRU等,这里搞清楚基础的循环神经网络的思想,对于理解其他变种就比较容易了. 与传统神经网络区别 下图是我们经典的全连