上一篇关于RNN的文章最后,我们提到过由于梯度消失和梯度爆炸问题,使得RNN很难处理长距离的依赖。本文我们介绍两种改进后的RNN:LSTM(Long Short Term Memory Network)和Gated Recurrent Unit(GRU)。它们成功的解决了原始RNN的缺陷,成为当前比较流行的RNN,并在许多领域中成功应用。
Long Short Term Memory Network,LSTM
LSTM的结构
LSTM和RNN其实本质上很类似,只是在隐藏层做了“手脚”。原始的RNN的隐藏层只有一个状态,即h,它对短期的输入非常敏感。于是,LSTM就又添加了一个状态c,让它来保存长期的状态。如图:
新增加的状态c,我们称为单元状态(cell state)。我们把上图按照时间维度展开得到:
从图中我们可以看出,在t时刻,LSTM的输入有三个:当前时刻网络的输入值