理解LSTM

本文主要参考这篇文章

Recurrent Neural Networks

递归神经网络(Recurrent Neural Networks)主要用于对序列数据进行建模和预测。它允许状态不断转移和留存,这点与HMM有点类似。

理解LSTM_第1张图片

通常一个RNN网络可以展开为:

理解LSTM_第2张图片

Long-Term 依赖的问题

对于一个长序列,RNN将难以有效的传递信息:

理解LSTM_第3张图片

LSTM 网络

所有的RNN网络都有一个链式的重复结构。对于一个标准RNN来说,它的重复部分比较简单,比如只含有一个tanh层:

理解LSTM_第4张图片

而LSTM网络则有一个相对复杂的结构:

理解LSTM_第5张图片

LSTM的基本思想

核心是memory cel l(记忆单元)。这个记忆单元就像传送带一样将远处的信息传递过来:

理解LSTM_第6张图片

它的巧妙之处在于利用了一个遗忘门和输入门来控制memory的传递衰减和信息的流入。

理解LSTM_第7张图片

一步步构建LSTM

首先需要利用遗忘门(forget gate layer)决定多少信息需要继续传递。遗忘门的输出在[0,1]之间,0表示彻底遗忘,1表示不遗忘。

理解LSTM_第8张图片

接下来利用输入门(input gate layer)决定加入多少新信息。输入门的输出也在[0,1]之间。

理解LSTM_第9张图片

然后是状态记忆单元C的状态更新:


理解LSTM_第10张图片

最后是输出部分。这里利用输出门(output gate layer)决定将多少记忆信息输出为隐含状态。tanh用于将记忆信息映射到[-1,1]之间。

理解LSTM_第11张图片

一些变体

LSTM有相当多的变体,这里列举一二。
例如这篇文章,增加了‘peephole connections’,就是每个门的计算都基于已知的所有变量。

理解LSTM_第12张图片

这是一个耦合的版本,就是将遗忘和输入的计算结合到一起。


理解LSTM_第13张图片

更加引人注意的是Gated Recurrent Unit(GRU)网络。这个网络直接采用updata gate更新隐含状态。相当于把输出门的公式也做了改变。

理解LSTM_第14张图片

结论

最近,还有更多激动人心的最新进展,比如Attention RNN,Grid LSTM,Generative models

你可能感兴趣的:(理解LSTM)