第6章 循环神经网络

  • 在前馈神经网络中,信息的传递是单向的,这种限制虽然使得网络变得更容易学习,但在一定程度上也减弱了神经网络模型的能力.在生物神经网络中,神经元之间的连接关系要复杂得多.前馈神经网络可以看作一个复杂的函数,每次输入都是独立的,即网络的输出只依赖于当前的输入.但是在很多现实任务中,网络的输出不仅和当前时刻的输入相关,也和其过去一段时间的输出相关.比如一个有限状态自动机,其下一个时刻的状态(输出)不仅仅和当前输入相关,也和当前状态(上一个时刻的输出)相关.此外,前馈网络难以处理时序数据,比如视频、语音、文本等.时序数据的长度一般是不固定的,而前馈神经网络要求输入和输出的维数都是固定的,不能任意改变.因此,当处理这一类和时序数据相关的问题时,就需要一种能力更强的模型.
  • 循环神经网络(Recurrent Neural Network,RNN)是一类具有短期记忆能力的神经网络.在循环神经网络中,神经元不但可以接受其他神经元的信息,也可以 接受自身的信息,形成具有环路的网络结构.和前馈神经网络相比,循环神经网 络更加符合生物神经网络的结构.循环神经网络已经被广泛应用在语音识别、语言模型以及自然语言生成等任务上。循环神经网络的参数学习可以通过随时间反向传播算法[Werbos, 1990] 来学习.随时间反向传播算法即按照时间的逆序将错误信息一步步地往前传递.当输入序列比较长时,会存在梯度爆炸和消失问题[Bengio et al., 1994;Hochreiter et al., 1997, 2001],也称为长程依赖问题.为了解决这个问题,人们对循环神经网络进行了很多的改进,其中最有效的改进方式引入门控机制(Gating Mechanism).
  • 此外,循环神经网络可以很容易地扩展到两种更广义的记忆网络模型:
    • 递归神经网络
    • 图网络

6.1 给网络增加记忆能力

  • 一般来讲,我们可以通过以下三种方法来给网络增加短期记忆能力
    • 延时神经网络
      图片说明
    • 有外部输入的非线性自回归模型
      图片说明
    • 循环神经网络
      图片说明
      由于循环神经网络具有短期记忆能力,相当于存储装置,因此其计算能力十分强大.理论上,循环神经网络可以近似任意的非线性动力系统(参见第6.2.1节).前馈神经网络可以模拟任何连续函数,而循环神经网络可以模拟任何程序。