RNN与LSTM
在上一讲中,我们简单介绍了RNN的思想。RNN是一种使用类似链表的形式、具有一定记忆能力的网络模型。对于具有序列性的样本数据,记住过去的信息对预测当前状态是非常必要的。相比于一般的神经网络的组成,RNN会额外增加一个T-1时刻隐含层到T时刻隐含层的传播矩阵。
RNN中的隐含层可以想象为我们的记忆,在当前作决定的时候我们会考虑记忆中过去的情况,这就是所谓的利用经验判断;而老的记忆会随时间的流失会被不断遗忘,因此在做当前判断时不会用到时间间隔很长的记忆。
然而不幸的是,当记忆的间隔时间需要很长的时候,训练 RNN 变得非常困难,其根本原因在于训练的时候会出现梯度消失或者梯度爆炸的现象,关于这一点此处不展开说明。LSTM(Long Short-Term Memory)是一种具有长记忆特征的RNN,它有效地解决了RNN在训练时出现的梯度问题。
LSTM的独特之处在于它有一个专门进行记忆的存储单元,这个存储单位由一些门神经元保护。这些门神经元与一般的神经元不同在于它们有开和关两个状态,当处于开的状态时,连接权值为1;反正则权重为0。最简单的LSTM包含以下3种不同功能的门神经元:keep(保存门/遗忘门):保存门开,存储单位记忆的内容不清除;保存们关,清除以前记忆的内容。
read(读取们/输出门):读取门开,其他神经元可读取存储单元保存的内容;读取门关,则其他神经元无法读取存储单元。
write(写入门/输入门):写入门开,存储单元可以写入其他神经元的内容作为记忆的一部分,反之则无法写入。
与RNN相比,LSTM在T-1时刻隐含层到T时刻隐含层之间增加了这样的一个结