本文主要参考这篇文章
Recurrent Neural Networks
递归神经网络(Recurrent Neural Networks)主要用于对序列数据进行建模和预测。它允许状态不断转移和留存,这点与HMM有点类似。
通常一个RNN网络可以展开为:
Long-Term 依赖的问题
对于一个长序列,RNN将难以有效的传递信息:
LSTM 网络
所有的RNN网络都有一个链式的重复结构。对于一个标准RNN来说,它的重复部分比较简单,比如只含有一个tanh层:
而LSTM网络则有一个相对复杂的结构:
LSTM的基本思想
核心是memory cel l(记忆单元)。这个记忆单元就像传送带一样将远处的信息传递过来:
它的巧妙之处在于利用了一个遗忘门和输入门来控制memory的传递衰减和信息的流入。
一步步构建LSTM
首先需要利用遗忘门(forget gate layer)决定多少信息需要继续传递。遗忘门的输出在[0,1]之间,0表示彻底遗忘,1表示不遗忘。
接下来利用输入门(input gate layer)决定加入多少新信息。输入门的输出也在[0,1]之间。
然后是状态记忆单元C的状态更新:
最后是输出部分。这里利用输出门(output gate layer)决定将多少记忆信息输出为隐含状态。tanh用于将记忆信息映射到[-1,1]之间。
一些变体
LSTM有相当多的变体,这里列举一二。
例如这篇文章,增加了‘peephole connections’,就是每个门的计算都基于已知的所有变量。
这是一个耦合的版本,就是将遗忘和输入的计算结合到一起。
更加引人注意的是Gated Recurrent Unit(GRU)网络。这个网络直接采用updata gate更新隐含状态。相当于把输出门的公式也做了改变。
结论
最近,还有更多激动人心的最新进展,比如Attention RNN,Grid LSTM,Generative models
网友评论