美文网首页
理解LSTM

理解LSTM

作者: 调参写代码 | 来源:发表于2017-05-10 18:10 被阅读226次

    本文主要参考这篇文章

    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 RNNGrid LSTMGenerative models

    相关文章

      网友评论

          本文标题:理解LSTM

          本文链接:https://www.haomeiwen.com/subject/ytugtxtx.html