参考博文链接:
作者:Not_GOD
链接:http://www.jianshu.com/p/9dc9f41f0b29
來源:简书
http://www.jianshu.com/p/9dc9f41f0b29
RNN与LSTM理解还可以参考http://blog.csdn.net/Dark_Scope/article/details/47056361,包含LSTM前向传播公式推导
LSTM的反向传播公式推导http://www.cnblogs.com/ooon/p/5594438.html
LSTM逐步理解
h_{t-1}
和
x_t
,输出一个在 0 到 1 之间的数值给每个在细胞状态
C_{t-1}
中的数字。1 表示“完全保留”,0 表示“完全舍弃”。
让我们回到语言模型的例子中来基于已经看到的预测下一个词。在这个问题中,细胞状态可能包含当前 主语的性别,因此正确的 代词可以被选择出来。当我们看到新的 主语,我们希望忘记旧的 主语。
\tilde{C}_t
,会被加入到状态中。下一步,我们会讲这两个信息来产生对状态的更新。
在我们语言模型的例子中,我们希望增加新的主语的性别到细胞状态中,来替代旧的需要忘记的主语。
![确定更新的信息](https://i-blog.csdnimg.cn/blog_migrate/7c74656cbfced173a7d2bdcd64982446.webp?x-image-process=image/format,png)
现在是更新旧细胞状态的时间了,C_{t-1}
更新为 C_t
。前面的步骤已经决定了将会做什么,我们现在就是实际去完成。
我们把旧状态与 f_t
相乘,丢弃掉我们确定需要丢弃的信息。接着加上 i_t * \tilde{C}_t
。这就是新的候选值,根据我们决定更新每个状态的程度进行变化。
在语言模型的例子中,这就是我们实际根据前面确定的目标,丢弃旧代词的性别信息并添加新的信息的地方。
![更新细胞状态](https://i-blog.csdnimg.cn/blog_migrate/ee05d7014a442ff63fa3b30cce61b37d.webp?x-image-process=image/format,png)
最终,我们需要确定输出什么值。这个输出将会基于我们的细胞状态,但是也是一个过滤后的版本。首先,我们运行一个 sigmoid 层来确定细胞状态的哪个部分将输出出去。接着,我们把细胞状态通过 tanh 进行处理(得到一个在 -1 到 1 之间的值)并将它和 sigmoid 门的输出相乘,最终我们仅仅会输出我们确定输出的那部分。
在语言模型的例子中,因为他就看到了一个 代词,可能需要输出与一个 动词 相关的信息。例如,可能输出是否代词是单数还是负数,这样如果是动词的话,我们也知道动词需要进行的词形变化。
![输出信息](https://i-blog.csdnimg.cn/blog_migrate/71c4e77cbf2d646e7305668eb67d344e.webp?x-image-process=image/format,png)
LSTM 的变体
我们到目前为止都还在介绍正常的 LSTM。但是不是所有的 LSTM 都长成一个样子的。实际上,几乎所有包含 LSTM 的论文都采用了微小的变体。差异非常小,但是也值得拿出来讲一下。
其中一个流形的 LSTM 变体,就是由 Gers & Schmidhuber (2000) 提出的,增加了 “peephole connection”。是说,我们让 门层 也会接受细胞状态的输入。
![peephole 连接](https://i-blog.csdnimg.cn/blog_migrate/8bfc6f2022d8964d8e55e4a41016320c.webp?x-image-process=image/format,png)
上面的图例中,我们增加了 peephole 到每个门上,但是许多论文会加入部分的 peephole 而非所有都加。
另一个变体是通过使用 coupled 忘记和输入门。不同于之前是分开确定什么忘记和需要添加什么新的信息,这里是一同做出决定。我们仅仅会当我们将要输入在当前位置时忘记。我们仅仅输入新的值到那些我们已经忘记旧的信息的那些状态 。
![coupled 忘记门和输入门](https://i-blog.csdnimg.cn/blog_migrate/356a4697805e14c2552c9d5f9de73c9f.webp?x-image-process=image/format,png)
另一个改动较大的变体是 Gated Recurrent Unit (GRU),这是由 Cho, et al. (2014) 提出。它将忘记门和输入门合成了一个单一的 更新门。同样还混合了细胞状态和隐藏状态,和其他一些改动。最终的模型比标准的 LSTM 模型要简单,也是非常流行的变体。
![GRU](https://i-blog.csdnimg.cn/blog_migrate/30e3cdc26585922681b51dcb4f228d97.webp?x-image-process=image/format,png)
作者:Not_GOD
链接:http://www.jianshu.com/p/9dc9f41f0b29
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。