• LSTM入门学习——结合《LSTM模型》文章看


    摘自:https://zybuluo.com/hanbingtao/note/581764 写得非常好 见原文

    长短时记忆网络的思路比较简单。原始RNN的隐藏层只有一个状态,即h,它对于短期的输入非常敏感。那么,假如我们再增加一个状态,即c,让它来保存长期的状态,那么问题不就解决了么?如下图所示:

    新增加的状态c,称为单元状态(cell state)。我们把上图按照时间维度展开:

    上图仅仅是一个示意图,我们可以看出,在t时刻,LSTM的输入有三个:当前时刻网络的输入值、上一时刻LSTM的输出值、以及上一时刻的单元状态;LSTM的输出有两个:当前时刻LSTM输出值、和当前时刻的单元状态。注意都是向量。

    LSTM的关键,就是怎样控制长期状态c。在这里,LSTM的思路是使用三个控制开关。第一个开关,负责控制继续保存长期状态c;第二个开关,负责控制把即时状态输入到长期状态c;第三个开关,负责控制是否把长期状态c作为当前的LSTM的输出。三个开关的作用如下图所示:

    接下来,我们要描述一下,输出h和单元状态c的具体计算方法。

     

    长短时记忆网络的前向计算

    下图显示了遗忘门的计算:

    接下来看看输入门,下图表示了输入门的计算:

    接下来,我们计算用于描述当前输入的单元状态,它是根据上一次的输出和本次输入来计算的,下图是计算:

    现在,我们计算当前时刻的单元状态。它是由上一次的单元状态按元素乘以遗忘门,再用当前输入的单元状态按元素乘以输入门,再将两个积加和产生的,下图是计算:

    这样,我们就把LSTM关于当前的记忆和长期的记忆组合在一起,形成了新的单元状态。由于遗忘门的控制,它可以保存很久很久之前的信息,由于输入门的控制,它又可以避免当前无关紧要的内容进入记忆。下面,我们要看看输出门,它控制了长期记忆对当前输出的影响。

    下图表示输出门的计算:

    LSTM最终的输出,是由输出门和单元状态共同确定的。

    下图表示LSTM最终输出的计算:

    式1到式6就是LSTM前向计算的全部公式。至此,我们就把LSTM前向计算讲完了。

  • 相关阅读:
    学习asp.net完整步骤
    UltraEdit中Matlab语法高亮显示的操作方法
    C#基础完成和深入
    75道程序员面试逻辑思维题
    模拟退火算法解决函数优化问题
    模拟退火算法解决TSP问题
    C#入门
    简单感知器模型解决简单真值表问题
    jQuery 1.3.2 :visible选择器问题
    NUnit2.0详细使用方法
  • 原文地址:https://www.cnblogs.com/bonelee/p/7715131.html
Copyright © 2020-2023  润新知