长短时记忆网络 LSTM

NC

LSTM(Long Short-Term Memory)网络是一种特殊的 RNN,它的设计是为了解决 RNN 中的梯度消失和梯度爆炸问题,其还能优化长期依赖的问题。

RNN LSTM

上面两张图分别是 RNN 和 LSTM 的示意图,可以看到 LSTM 的结构更加复杂,引入了更多的元素来控制信息的流动。而更重要的是,其比 RNN 多了一整条信息流(横向)。

模型

LSTM 的结构如下图所示:

相比于 RNN 只使用 用于保存信息流,LSTM 新增了一个 来保存长期信息。

LSTM 的计算总结来说有 4 个不同的状态:遗忘,存储,更新和输出。

遗忘门 Forget Gate

其是为了计算长期记忆 保留多少信息。其计算公式如下:

这个公式的意义是,我们需要计算一个遗忘门 ,其值在 0 到 1 之间,用于控制 保留多少信息。当 接近 0 时,表示忘记所有信息;当 接近 1 时,表示保留所有信息。

记忆门 Store Gate

这一步,LSTM 将计算有多少比例的新信息 要被加入到长期记忆中 。其计算公式如下:

更新 Update

这一步,LSTM 将计算新的长期记忆 。其计算公式如下:

其中 是遗忘门(记忆比例), 是存储门(存储比例), 是新的信息。

输出门 Output Gate

输出门 控制着输出 的信息量。其计算公式如下:

和 RNN 类似, 输出为:

训练

LSTM 的训练过程与 RNN 类似,我们可以使用梯度下降法来更新参数。使用 BPTT 算法来计算梯度。LSTM尽管引入了很多新的元素,但这并不影响最终的梯度是连续的,因此我们可以使用梯度下降法来更新参数。