查看原文
其他

【青年学者专栏】递归神经网络(Recurrent Neural Network)学习

2016-08-16 崔振 深度学习大讲堂
点击上方“深度学习大讲堂”可订阅哦!
深度学习大讲堂是高质量原创内容的平台,邀请学术界、工业界一线专家撰稿,致力于推送人工智能与深度学习最新技术、产品和活动信息!

摘要

递归神经网络(Recurrent Neural Network, RNNs)的研究最近取得了很大进展,成功应用包括手写识别、语音识别、自然语言处理以及计算机视觉等一系列问题。本文介绍了递归神经网络的基本原理与近期进展,并对若干代表性工作进行了回顾。

导读

递归神经网络(RNN)是目前最流行的几种深度学习网络结构之一,因其递归处理历史信息和建模历史记忆的功能特点而特别适用于处理时间、空间序列上有强关联的信息。2016年Gartner智能机器成熟度曲线图中目前处于发展途上的NLP和NLG(以及基于此的智能客服、交流机器人、音频/视频理解等领域)都是典型的RNN应用方向,截至2016年3月,全球已经有将近300家企业活跃于NLP、NLG应用领域。

除了应用在NLP、NLG领域,RNN在计算机机视觉领域也发挥着日益重要的作用。本期青年学者专栏由东南大学的崔振副教授为大家带来递归神经网络学习专题,文章总结了RNN的技术框架与发展脉络梳理,系统介绍了其在计算机视觉领域的最新研究进展,是RNN在计算机视觉领域的一个前沿技术综述。(本导读由线性资本提供)

递归神经网络(Recurrent Neural Network, RNNs)的研究最近取得了很大进展。其(成功)应用包括手写识别[Graves09]、语音识别[Graves13]、自然语言处理[Sutskever11][Sutskever14]以及计算机视觉等一系列问题。从生物机理上来看,这种类型的网络可以认为对神经系统的环式连接(recurrent connection)的一种简单模拟。环式连接(recurrent connection)在新大脑皮质(neocortex)上是普遍存在的,从侧面反映了人类学习是一个动态变化的过程。因而对它的建模是有重要意义的。

事实上,递归(/循环)思想已经融入许多模式识别和机器学习方法。例如,更抽象的看,深层神经网络中重复的层级结构(如卷积神经网络“卷积(convolution)+池化(pooling)”层);级联式(cascade)模型中重复的迭代操作(如级联式形状回归);迭代优化方法(如Adaboost)等。


RNN通常用于描述动态时间行为序列,将状态在自身网络中循环传递,可以接受更为广泛的时序序列结构输入。不同于前馈深层神经网络,RNN更重视网络的反馈作用。由于存在当前状态和过去状态的连接,RNN可以具有一定的记忆功能。当前代表性的递归神经网络包括传统RNN模型,长短期记忆神经网络(long short-term memory, LSTM) [Hochreiter97]以及GRU(gated recurrent unit)模型[Cho14], 如图1所示。

LSTM模型包括输入门(input gate)、输出门(output gate)、忘记门(forget gate)和专门的记忆存储单元(memory cell),适合于处理和预测时间序列中间隔和延迟非常长的重要事件。GRU模型可以看作是LSTM的变种。Chung等[Chung15]对LSTM和GRU进行了广泛的评测发现:LSTM中最重要的是忘记门,其次是输入门,最后是输出门;GRU相比于LSTM更加具有竞争力。

RNN通常用来建模视频序列以及它们之间的依赖关系。其优点是可以用RNN将一段视频编码为固定长度的表示,进而可以采用另外的RNN解码器作用于不同的任务。例如,建模视频表示的无监督RNN学习[Srivastava15]和视频序列预测的递归CNN网络[Donahue15]等。另外,利用序列帧的时间信息,RNN可以应用于视频序列中显著点检测以及行为识别等问题。Gregor等[Gregor15]通过模拟人类视觉关注机制修订了自编码机框架来重复迭代生成图像。Mnih等[Mnih14]提出自适应地选取显著区域的动态视觉控制系统,它可以在不需要任何训练信息情况下实现跟踪比较简单的目标。Yang等[Yang15]采用循环自编码机的策略学习大规模网上视频数据中的重要视频事件。为了捕获视频序列中的运动行为信息,微分(differential)递归神经网络[Veeriah15]在LSTM中引入了两个状态的差信息来描述前后帧之间的信息变化量。针对人体行为任务,Du等[Du15]建立了基于人体骨架(skeleton)的分层RNN网络模型,Fragkiadaki等[Fragkiadaki15]提出了ERD(encoder-recurrent-decoder)网络模型。RNN也被尝试应用于视频目标跟踪任务,以建立序列帧的动态依赖性[Gan15][Ondruska16]。此外,Huang等[Huang15]提出了基于双向RNN网络的视频超分辨率(super-resolution, SR)方法。

RNN也用来建模图像空间域的依赖性。这仅需要采用一些规则遍历二维平面以形成能使用RNN描述的序列,其代表性模型是多维RNN模型[Graves09a]。目前主要的应用领域包括场景标注(scene labeling)[Pinheiro14][Liang15]和图像分割(segmentation)。Pinheiro等[Pinheiro14]重复利用CNN网络模型的场景标注方法,Shuai等[Shuai15]和Byeon等[Byeon15]利用四个方向的RNN子网络来完成图像标注任务,Liang等[Liang15][Liang15a]提出带有层内反馈连接的卷积神经网络并应用于场景标注和物体识别。Visin等[Visin15a]提出了不断堆积多层RNN模型的Reseg网络以用于图像分割任务。此外,通过利用RNN建模大范围(long-range)依赖性的能力,Theis等[Theis15]提出了基于空间LSTM的纹理合成方法。

RNN最近也用来生成描述图像文字的跨模态任务[Mao2015][Karpathy15] [Chen15]。它们通常采用RNN网络建模语句,CNN网络提取图像特征表示,并尝试设置跨模态嵌入层以完成模态之间的交互。

通过观察可以发现,上述RNN基本上是建模数据序列的,可以统称为时间递归神经网络(recurrent neural network, RNN)。除此之外,另一种网络是结构递归神经网络(recursive neural network, RNN)。这类网络通常用来建模循环或迭代的学习过程。Socher等[Socher11]采用RNN建模树形结构的图像内容解析(parsing)过程。Zheng等[Zheng15]将复杂的条件随机场建模为RNN网络,并成功应用于图像分割任务。最近,Visin等[Visin15]提出了Renet网络,它重新设计CNN为多层RNN模型,并在物体分类上获得了可以与CNN相匹配的性能。

针对RNN网络的训练,常用方法是采用BPTT(back propagation through time)梯度下降方法。但由于需要学习长期的依赖性,RNN训练通常伴随着梯度衰退缓慢和梯度爆炸增长现象[Pascanu13]。为了避免这些问题,可以采用特有的一些策略[Bengio13a],如梯度截断(clipping)。此外,为了缓解训练RNN模型的共适应(co-adaptation)问题,Zaremba等[Zaremba15]提出了如何在RNN中正确使用dropout策略。针对一阶梯度收敛慢的问题,基于Hessian矩阵的二阶优化方法[Martens11][Cho15]最近也被提出。

除此之外,一些学者对RNN模型本身进行了初步探索。Pascanu等[Pascanu14]在RNN网络的不同位置增加深度以形成不同类型深层网络。Jozefowicz等[Jozefowicz15]对LSTM和GRU进行了系统性的实验比较,并进一步提出了一些性能可与之匹配的RNN变种。另外,文献[Lipton15]回顾了最近RNN的相关工作。

下面简单介绍最近的一些文章/工作:

1
Recurrent Attentional Networks for Saliency Detection
本文在常用的convolutional-deconvolution neural network(CNN-DeCNN)方法的基础上提出了一种recurrent attentional convolutional-deconvolution neural network (RACDNN)的方法用于检测图像中的显著区域。该方法将递归神经网络(RNN)的思想用于CNN-DeCNN的框架中,相比于传统的CNN-DeCNN方法具有以下优点:

1.在处理多尺度情况下的物体时,RACDNN可以实现精细的显著区域检测,而CNN-DeCNN方法难以达到很好的效果。

2.在RACDNN迭代检测的过程中,之前迭代的信息可以为本轮迭代时的显著区域检测提供上下文信息。即图像中距离较远的子区域之间可以提供相关信息。

算法流程:

1.用在ImageNet上训练好的CNN-DeCNN生成粗略的显著区域检测结果。

2. 用空间转换矩阵生成RNN的输入图像序列,序列中的图像为原图像的子区域。

3.子区域图像序列送入两层的RNN中,对于RNN第一层的输出用DeCNN进行解码,并使用解码的结果对粗略显著检测结果中对应于该子区域的部分进行细化。RNN第一层可以表示为:
4.RNN的第二层的输出用于生成空间转换矩阵。空间转换矩阵用于生成RNN的输入图像子区域序列,以及生成RNN第一层的解码结果对应于粗略的显著检测结果的位置。 RNN的第二层可表示为:
粗略的显著区域检测结果细化后即得到最终的显著检测结果。

2
Structure Inference Machines: Recurrent Neural Networks for Analyzing Relations in Group Activity Recognition
本文的任务是完成对图像中群体的行为识别。通过将整幅图像的场景以及图中的每个人都视为节点,本文将图模型的思想整合到深度神经网络中提出了Structure Inference Machine(SIM)。SIM对个体到个体,个体到场景,以及场景到个体之间的信息传递(message passing)进行建模,从而对群体行为进行分析。该方法流程为:

1.对于给定的图片,将整幅图像以及图像中的个人送入CNN中得到节点的描述,并对节点之间的信息传递进行初始化。

2.对节点之间的信息建立RNN模型。通过对各个节点间的信息传递进行反复迭代,从而获得观测节点的边缘分布。节点间的信息传递可分为三类:(1)从个体节点到个体节点的信息传递,(2)从图像节点到个体节点的信息传递,(3)从个体节点到图像节点的信息传递

3.计算节点之间的门限函数。对各个节点之间的信息传递设置门限从而学习到整体的结构信息。

4.最后,对各个节点预测该节点的行为类别。

3
ReNet: A Recurrent Neural Network Based Alternative to Convolutional Networks
本文采用递归神经网络(RNN)代替卷积神经网络中的卷积层和池化(pooling)层,提出了一种新的网络:ReNet。相比于原网络,改进后的网络优点在于:卷积操作仅能利用到图像的局部信息,而ReNet在处理图像时,之前扫描过的图像序列的信息可以传播到当前状态下,从而该操作可以利用到整幅图像的整体信息。

ReNet一层的具体操作为:首先将一幅图像分成若干个互不重叠的子区域,然后按照一定的方向对图像区域进行扫描,并按顺序输入RNN层并更新RNN层的隐状态,该过程可以表述为:
重复堆积该层并加入全连接层和Softmax层就可以组成深层的ReNet网络。

4
Recurrent Convolutional Network for Video-based Person Re-Identification
本文将CNN和RNN网络相结合,提出了一种鉴定视频中人的身份的网络。在CNN的基础上加入RNN使得该网络可以处理视频序列,而在RNN层上加入时域池化(Temporal Pooling)层使得该网络可以处理任意长度的视频,缓解RNN的强判别性的状态向后几帧偏移,以及解决视频序列的多尺度问题。本文使用的时域池化操作包含时域平均池化和时域最大池化两种。

在训练阶段,CNN的输入为彩色图像以及该图像对应的光流图。两段视频被同时输入到该网络,而两段视频中的人可以是相同身份或不同身份。该网络采用了两种损失函数联合对网络参数进行调整。总的损失函数可以表示如下:
E在两组视频所包含的人的身份相同或不同时分别对应不同的输出,而则为Softmax函数。

在测试时,对于输入的视频提取时域池化层输出的特征,并使用该特征通过计算马氏距离来确定视频中人的身份。

5
Recurrent Face Aging
本文解决一个比较难的问题,即跨年龄人脸的验证和识别问题。在本文中,提出了一种基于递归神经网络的recurrent face aging (RFA) 网络框架。该框架可以确定从0~80 岁的人脸变化。

由于缺乏同一个人不同年龄的带标签的人脸数据,传统的人脸老化模型一般是将年龄分割成离散的组。一个人某个年龄的人脸数据直接由其相邻的另一个不同年龄的数据经过特征变换获得。然而,这些方法忽视了相邻年龄组之间固有的进化状态。合成之后的人脸往往具有一些重影尾迹。因为人脸老化是一个平滑的过程,所以它更适合采用平滑变化的状态来估计人脸的年龄。

这种思路与递归神经网络的思想相合。所以本文采用基于GRU的递归神经网络模型来模拟这种年龄缓慢变化的状态。

6
Recurrent Shape Regression

这是我们组的工作,形状检测可以建模为一个渐进式的非线性回归过程,如图(a)展示的级联式形状回归模型。依据当前第t步估计的形状,采用特征提取函数抽取表示当前形状的表观纹理特征,然后通过回归函数预测接下来的形状。在若干个迭代阶段(stage)之后,期望估算的形状逼近于真实形状。显然,级联式回归存在一些不足之处:(i)每一个回归阶段是相对孤立的;(ii)每一个阶段的回归子一旦训练好之后则固定不变。这意味着每一回归子拥有自己特有的定义空间。如果上一阶段的输出在当前阶段的定义空间之内,则形状预测能顺利进行,否则,其预测的形状很容易发散。

我们拟采取的研究方案是构建递归形状模型,如图(b)所示每一阶段使用共享的模型。

但这个模型可以根据当前形状而进行动态调整,即建立形状依赖的回归子。我们拟将该动态回归子参数化如下
该递归形状回归框架与基本步骤如图5所示。针对形状依赖的回归子,可以借鉴三路神经网络(3-way neural network)进行参数化如下:
其中“.”表示逐元素的相乘操作,是一般的S型函数,是矩阵形式的参数。
一阶递归形状回归。在(a)中,每个递归单元包括两个基本步骤:动态回归子学习(橘色线条)和形状预测(黑色虚线)。模型参数包括
它们在整个回归过程中作为共享模型。

进一步,可以建立回归子
之上的回归操作,即高阶回归子。高阶回归子表示状态变化的二阶信息,因此可以建模更为复杂的数据。其形式化可以表示为,
最后,可以构建一个端到端的一体式递归网络。这将涉及到形状索引的特征梯度计算问题。对此我们将特征提取过程建模为可以进行梯度反向传播的神经网络。一种直接的做法是采用现有的卷积神经网络,如VGG,GoogLeNet等。但缺点是需要花费很高的计算代价,以致于形状检测速度较慢。另一种方法构建简单的基于统计特征的学习网络,如图所示构建类似于梯度直方图特征的神经网络。
7
Recurrently Target-Attending Tracking

本文主要贡献有:(i)多方向空间递归神经网络生成候选目标区域的置信图谱, 以便预测可信区域、抑制噪声区域;(ii) 提出正则化的关联滤波器(Correlation Filter, CF), 以加权跟踪滤波器学习过程;(iii) 提出低复杂度的封闭形式的解,通过因子化分解矩阵,将原解从复杂度
。整个框架如下图。
注:以上仅属于个人观点,请大家指正批评。

致谢:在本文写作过程中,张桐、李阳参与了文献整理和文章修订,在此表示感谢。此外,感谢深度学习大讲堂青年学者专栏的邀请。

该文章属于“深度学习大讲堂”原创,如需要转载,请联系loveholicguoguo。
作者简介:
 
青年学者专栏介绍:
深度学习大讲堂青年学者专栏面向在人工智能领域取得博士学位,在科研机构任职、年龄四十周岁以内的青年教师,提供一个系统性介绍个人研究成果、分析研究领域发展趋势的原创内容发布平台。青年学者专栏第一季由线性资本提供赞助,设置以下两个奖项:
1. 最受关注文章奖:根据文章发表后一周内的阅读人数(以微信后台七天阅读量统计数据为准)对单篇阅读量进行排序,给予阅读量靠前文章的作者“最受关注文章奖”。

2.最佳文章奖:在一季文章发表结束之后由公众号粉丝参与投票,按得票高低授予“最佳文章奖”。

奖项设置:

1.最受关注文章奖奖品设置:
线性资本纪念T恤一件+王淮签名《打造Facebook》一本。

2.最佳文章奖奖品设置:
Rokid一台
线性资本公众号二维码:

往期精彩回顾
深度学习在计算机视觉领域成功的启示与开放问题讨论
一箭N雕:多任务深度学习实战
天津大学深度学习一线实战研讨班干货总结与资源下载
深度学习中的激活函数导引
深度学习在人脸识别中的应用 ——优图祖母模型的“进化”
Bengio教授的深度学习终极思考:文化、进化与迷因
 
  
欢迎关注我们!
深度学习大讲堂是高质量原创内容的平台,邀请学术界、工业界一线专家撰稿,致力于推送人工智能与深度学习最新技术、产品和活动信息!
深度学习大讲堂

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存