深度学习之——循环神经网络RNN及其变形LSTM,GRU

1. 什么是循环神经网络?

基于记忆模型的想法,记住前面出现的特征,并依据特征推断后面的结果,并且整体的网络结构不断循环,因此得名循环记忆网络。

RNN(Recurrent Neural Network)是一类用于处理序列数据的神经网络。常见的序列数据如语音、文本等,这类数据处理时需要依赖时间和记忆力。

百度百科词条:时间序列数据是指在不同时间点上收集到的数据,这类数据反映了某一事物、现象等随时间的变化状态或程度。这是时间序列数据的定义,当然这里也可以不是时间,比如文字序列,但总归序列数据有一个特点——后面的数据跟前面的数据有关系。

2. 循环神经网络RNN及2个经典变形应用:LSTM 和 GRU

2.1 RNN

这本身是一个网络,将网络的输出保存在一个记忆单元中,这个记忆单元和下一次的输入Xn一起进入神经网络中,但是却可以无限次的作用即展开后图下图右侧所示。

深度学习之——循环神经网络RNN及其变形LSTM,GRU

进一步展开该图为

深度学习之——循环神经网络RNN及其变形LSTM,GRU

但存在一定的问题,记忆最大的问题是在于它有遗忘性,RNN无法解决长时依赖问题。

更详细可参考:RNN讲解

2.2 LSTM

LSTM(long short-term memory)是1997年由Hochreiter和Schmiduber提出的。长短期记忆网络是RNN的一种变体,RNN由于梯度消失的原因只能有短期记忆,LSTM网络通过精妙的门控制将短期记忆与长期记忆结合起来,并且一定程度上解决了梯度消失的问题。

LSTM是由3个门来控制的,分别是输入门、遗忘门和输出门。输入门控制网络的输入、遗忘门控制着记忆单元、输出门控制着网络的输出。

深度学习之——循环神经网络RNN及其变形LSTM,GRU

深度学习之——循环神经网络RNN及其变形LSTM,GRU

更详细可参考:理解LSTM

2.3 GRU

GRU(Gated Recurrent Unit)是LSTM网络的一种效果很好的变体,它由Cho在2014年提出。它较LSTM网络的结构更加简单,在于GRU将遗忘门和输出门合成了一个“更新门”,效果也很好,因此也是当前非常流形的一种网络。GRU既然是LSTM的变体,因此也是可以解决RNN网络中的长依赖问题。

深度学习之——循环神经网络RNN及其变形LSTM,GRU

更详细可参考:GRU介绍