循环神经网络(Recurrent Neural Networks, RNN)

通过使用带自反馈的神经元,能够处理任意长度的序列。

  • 关键词:RNN – 记忆能力 – LSTM

一、具有记忆能力的网络

一般来讲,需要让网络具有短期记忆能力。给网络增加短期记忆能力的方法有三种:

1.时延神经网络

(time delay neural network, TDNN) [Waibel et al., 1989]

在前馈网络中的非输出层都添加一个延时器,记录最近几次神经元的输出。在第t个时刻,第l+1层的神经元和下一层神经元的最近q次输出相关,即:

image

通过延时器,前馈网络就具有了短期记忆的能力。延时神经网络,在时间维度上共享权值,以降低参数数量。

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

(nonlinear autoregressive with exogenous inputs model, NARX) [Leontaritis and Billings,1985]

通过延时器,记录最近几次的网络的输入和输出,将它们都作为前馈网络的输入,从而使得前馈网络具有短期记忆能力。

3.循环神经网络

通过使用带自反馈的神经元,能够处理任意长度的序列。

为了区别与递归神经网络(Recursive Neural Networks),我们称为循环神经网络。

循环神经网络

image

二、循环神经网络

循环神经网络可以应用到很多不同类型的机器学习任务,可以分为以下几种模式:

  • 序列到类别模式
  • 序列到序列模式(同步和异步)

在循环神经网络中主要有两种计算梯度的方式:

  • 随时间反向传播(backpropagation through time, BPTT)
  • 实时循环学习算法(real-time recurrent learning, RTRL)

长期依赖问题:梯度爆炸和梯度消失

三、基于门控制的循环神经网络

1.长短期记忆(LSTM)网络

LSTM循环网络除了外部的RNN循环外,还具有内部的“LSTM细胞”循环(自环),因此LSTM不是简单地向输入和循环单元的仿射变换之后施加一个逐元素的非线性。

LSTM

image

LSTM关键是加入“细胞状态”。历史信息直接在整个链上运行,只有一些少量的线性交互。信息在上面流传保持不变会很容易。

类似于传送带

image

决定从“细胞状态” 中丢弃什么信息

image

决定放什么新信息到“细胞状态”中

image

更新“细胞状态”

image

基于“细胞状态” 得到输出

image

2.门控制循环单元(GRU)网络

与LSTM的主要区别是,单个门控单元同时控制遗忘因子和更新状态单元的决定

四、优化长期依赖

1.截断梯度

2.引导信息流的正则化