第六章 循环神经网络

第六章 循环神经网络

在前馈神经网络中,信息的传递是单向的,这种限制虽然使得网络变得更容 易学习,但在一定程度上也减弱了神经网络模型的能力。在生物神经网络中,神 经元之间的连接关系要复杂得多。前馈神经网络可以看作是一个复杂的函数,每 次输入都是独立的,即网络的输出只依赖于当前的输入。但是在很多现实任务 中,网络的输入不仅和当前时刻的输入相关,也和其过去一段时间的输出相关。 比如一个有限状态自动机,其下一个时刻的状态(输出)不仅仅和当前输入相关, 也和当前状态(上一个时刻的输出)相关。此外,前馈网络难以处理时序数据,比如视频、语音、文本等。时序数据的长度一般是不固定的,而前馈神经网络要求输 入和输出的维数都是固定的,不能任意改变。因此,当处理这一类和时序数据相关的问题时,就需要一种能力更强的模型。

循环神经网络(Recurrent Neural Network,RNN)是一类具有短期记忆能力的神经网络。在循环神经网络中,神经元不但可以接受其它神经元的信息,也可以接受自身的信息,形成具有环路的网络结构。和前馈神经网络相比,循环神经网络更加符合生物神经网络的结构。循环神经网络已经被广泛应用在语音识别、语言模型以及自然语言生成等任务上。循环神经网络的参数学习可以通过随时间反向传播算法[Werbos,1990]来学习。随时间反向传播算法即按照时间的 逆序将错误信息一步步地往前传递。当输入序列比较长时,会存在梯度爆炸和消失问题[Bengio等人; Hochreiter等人; Hochreiter等人,1994; 1997; 2001],也称 为长程依赖问题。为了解决这个问题,人们对循环神经网络进行了很多的改进, 其中最有效的改进方式引入门控机制。

此外,循环神经网络可以很容易地扩展到两种更广义的记忆网络模型:递归神经网络图网络

给网络增加记忆能力

为了处理这些时序数据并利用其历史信息,我们需要让网络具有短期记忆能力。而前馈网络是一种静态网络,不具备这种记忆能力。

一般来讲,我们可以通过以下三种方法来给网络增加短期记忆能力。

延时神经网络

在这里插入图片描述

有外部输入的非线性自回归模型

在这里插入图片描述

循环神经网络

在这里插入图片描述

简单循环网络

在这里插入图片描述
在这里插入图片描述

循环神经网络的计算能力

在这里插入图片描述

循环神经网络的通用近似定理

循环神经网络的拟合能力也十分强大。一个完全连接的循环网络是任何非 线性动力系统的近似器。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

图灵完备

在这里插入图片描述

应用到机器学习

循环神经网络可以应用到很多不同类型的机器学习任务。根据这些任务的 特点可以分为以下几种模式:序列到类别模式、同步的序列到序列模式、异步的 序列到序列模式。

下面我们分别来看下这几种应用模式。

序列到类别模式

同步的序列到序列模式

异步的序列到序列模式

在这里插入图片描述

参数学习

循环神经网络的参数可以通过梯度下降方法来进行学习。
在这里插入图片描述

随时间反向传播算法

随时间反向传播(Backpropagation Through Time,BPTT)算法的主要思
是通过类似前馈神经网络的错误反向传播算法 [Werbos,1990] 来计算梯度。

BPTT 算法将循环神经网络看作是一个展开的多层前馈网络,其中“每一 层”对应循环网络中的“每个时刻”(见图6.2)。这样,循环神经网络就可以按照前馈网络中的反向传播算法计算参数梯度。在“展开”的前馈网络中,所有层的参数是共享的,因此参数的真实梯度是所有“展开层”的参数梯度之和。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实时循环学习算法

在这里插入图片描述
两种方法的比较:

两种算法比较 RTRL算法和BPTT算法都是基于梯度下降的算法,分别通过前 向模式和反向模式应用链式法则来计算梯度。

在循环神经网络中,一般网络输出 维度远低于输入维度,因此 BPTT 算法的计算量会更小,但是 BPTT 算法需要保存所有时刻的中间梯度,空间复杂度较高。

RTRL 算法不需要梯度回传,因此非 常适合用于需要在线学习或无限序列的任务中。

长程依赖问题

循环神经网络在学习过程中的主要问题是由于梯度消失或爆炸问题,很难建模长时间间隔的状态之间的依赖关系。
在这里插入图片描述
在这里插入图片描述

改进方案

在这里插入图片描述
在这里插入图片描述

为了解决这两个问题,可以通过引入门控机制来进一步改进模型。

基于门控的循环神经网络

为了改善循环神经网络的长程依赖问题,一种非常好的解决方案是在公 式(6.50)的基础上引入门控机制来控制信息的累积速度,包括有选择地加入新的信息,并有选择地遗忘之前累积的信息。这一类网络可以称为基于门控的循环神经网络(Gated RNN)。本节中,主要介绍两种基于门控的循环神经网络:长短期记忆网络门控循环单元网络

长短期记忆网络

长短期记忆(Long Short-Term Memory,LSTM)网络[Gers等人; Hochre- iter等人,2000; 1997]是循环神经网络的一个变体,可以有效地解决简单循环神经网络的梯度爆炸或消失问题。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

LSTM 网络的各种变体

在这里插入图片描述
在这里插入图片描述

门控循环单元网络

门控循环单元(Gated Recurrent Unit,GRU)网络 [Cho等人; Chung等人, 2014; 2014]是一种比LSTM网络更加简单的循环神经网络。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

深层循环神经网络

在这里插入图片描述

堆叠循环神经网络

在这里插入图片描述
在这里插入图片描述

双向循环神经网络

在这里插入图片描述
在这里插入图片描述

扩展到图结构

如果将循环神经网络按时间展开,每个时刻的隐状态 ht 看做一个节点,那么 这些节点构成一个链式结构,每个节点 t 都收到其父节点的消息(Message),更新自己的状态,并传递给其子节点。而链式结构是一种特殊的图结构,我们可以 比较容易地将这种消息传递(Message Passing)的思想扩展到任意的图结构上

递归神经网络

递归神经网络(Recursive Neural Network,RecNN)是循环神经网络在有向无循环图上的扩展 [Pollack,1990]。递归神经网络的一般结构为树状的层次结构,如图6.11a所示。
在这里插入图片描述
在这里插入图片描述

同样,我们也可以用门控机制来改进递归神经网络中的长距离依赖问题,比 如树结构的长短期记忆模型(Tree-Structured LSTM)[Tai等人; Zhu等人,2015; 2015] 就是将 LSTM 模型的思想应用到树结构的网络中,来实现更灵活的组合 函数。

图网络

在实际应用中,很多数据是图结构的,比如知识图谱、社交网络、分子网络
等。而前馈网络和反馈网络很难处理图结构的数据。

图网络(Graph Network,GN)是将消息传递的思想扩展到图结构数据上的 神经网络。
在这里插入图片描述
在这里插入图片描述

总结和深入阅读

循环神经网络可以建模时间序列数据之间的相关性。和 延时神经网络[Lang 等人; Waibel等人,1990; 1989]以及有外部输入的非线性自回归模型[Leontaritis 等人,1985] 相比,循环神经网络可以更方便地建模长时间间隔的相关性。

常用的循环神经网络的参数学习算法是 BPTT 算法 [Werbos,1990],其计算 时间和空间要求会随时间线性增长。为了提高效率,当输入序列的长度比较大 时,可以使用带截断(truncated)的 BPTT 算法 [Williams 等人,1990],只计算固 定时间间隔内的梯度回传。

一个完全连接的循环神经网络有着强大的计算和表示能力,可以近似任 何非线性动力系统以及图灵机,解决所有的可计算问题。然而由于梯度爆炸和 梯度消失问题,简单循环网络存在长期依赖问题[Bengio等人; Hochreiter等人, 1994; 2001]。为了解决这个问题,人们对循环神经网络进行了很多的改进,其中 最有效的改进方式为引入门控机制,比如LSTM网络 [Gers等人; Hochreiter等 人,2000; 1997]和GRU网络[Chung等人,2014]。当然还有一些其它方法,比如时 钟循环神经网络(Clockwork RNN)[Koutnik等人,2014]、乘法RNN[Sutskever 等人; Wu等人,2011; 2016]以及引入注意力机制等。

LSTM 网络是目前为止最成功的循环神经网络模型,成功应用在很多领域, 比如语音识别、机器翻译 [Sutskever 等人,2014]、语音模型以及文本生成。LSTM 网络通过引入线性连接来缓解长距离依赖问题。虽然 LSTM 网络取得了很大的 成功,其结构的合理性一直受到广泛关注。人们不断尝试对其进行改进来寻找最 优结构,比如减少门的数量、提高并行能力等。关于 LSTM 网络的分析可以参考 文献[Greff等人; Jozefowicz等人; Karpathy等人,2017; 2015; 2015]。

LSTM 网络的线性连接以及门控机制是一种十分有效的避免梯度消失问题 的方法。这种机制也可以用在深层的前馈网络中,比如残差网络 [He 等人,2016] 和高速网络 [Srivastava 等人,2015] 都通过引入线性连接来训练非常深的卷积网

发布了64 篇原创文章 · 获赞 9 · 访问量 4331

猜你喜欢

转载自blog.csdn.net/Avery123123/article/details/103974080