zoukankan      html  css  js  c++  java
  • LSTM学习笔记|Understanding LSTM and its diagrams

    img

    这是LSTM的一个储存单元。

    将其看作一个黑盒,只看其输入输出。

    三个输入分别是:

    • X_t:当前时间的输入
    • h_t-1:上一个LSTM单元的输出
    • C_t-1:上一个单元的存储器
    • h_t:该单元的输出
    • C_t:该单元的内存

    img

    这是多个单元的连接图

    img

    在LSTM图中,顶部是内存管道,输入是旧的内存。

    它会首先穿过第一个阀门:X 忘记阀门。实际上,这个一个逐元素做乘法的运算单元,如果权重接近零则要忘记大部分记忆。

    然后,它会通过第二个操作符:+ 。这里将进行分段求和,将新内存和旧内存结合起来。

    之后,就会把旧内存更改为新内存。

    img

    在这部分,第一个是忘记阀门。它由简单的神经网络控制。输入是h_t-1,X_t,C_t-1。偏置量b_0。这个神经网络有sigmod函数作为激活函数。它的输出向量是忘记阀门,其将逐元素应用于C_t-1。

    img

    第二个阀门是新记忆阀门(左)。同样,是一个单层简单神经网络,输入与忘记阀门相同。该阀门控制新内存影响就内存的程度。

    右侧是新记忆,使用tanh作为激活函数。

    img

    这两个阀门分别是:忘记阀门和新记忆阀门。

    img

    最后一部我们需要产生这个单元的最终输出。这步骤的输出值是由新的记忆、之前的输出、输入和一个偏置向量决定的,这个值控制新的记忆应该输出到下一个LSTM的。


    最常用的结构是下图,主要区别在于下图不同记忆单元C看做单元输入,而是作为内部的Cell。

    下图试着用虚线和实线来表达延迟和顺序,虚线表达旧的记忆,这在开始是有效的。一些实线表示新的记忆。操作的执行必须要求新的记忆等待C_t可用。

    img

    即:

    img

    分部分分析:

    img

    这个是忘记阀门,用来减少过去的记忆。

    img

    这是新的记忆和记忆阀门。

    img

    这是两个阀门和元素求和器,来合并就的记忆和新的记忆,来生成C_t。流回Cell。

    img

    这是输出阀门和LSTM单元的输出。

  • 相关阅读:
    判断JS数据类型的四种方法
    JavaScript正则表达式精简
    virtio介绍
    DPDK与SRIOV应用场景及性能对比
    KVM和Xen的区别
    理解 JavaScript 闭包
    JS数组常用操作方法总结
    JavaScript中的 NaN 与 isNaN
    如何在Unity中复制多个组件并粘贴到另一个GameObject上
    Unity Umotion 导入动作发生漂移的解决办法
  • 原文地址:https://www.cnblogs.com/billdingdj/p/10588107.html
Copyright © 2011-2022 走看看