Understanding LSTM and its diagrams

Understanding LSTM and its diagrams

这是LSTM的一个储存单元。

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

三个输入分别是:

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

Understanding LSTM and its diagrams

这是多个单元的连接图

Understanding LSTM and its diagrams

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

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

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

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

Understanding LSTM and its diagrams

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

Understanding LSTM and its diagrams

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

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

Understanding LSTM and its diagrams

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

Understanding LSTM and its diagrams

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


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

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

Understanding LSTM and its diagrams

即:

Understanding LSTM and its diagrams

分部分分析:

Understanding LSTM and its diagrams

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

Understanding LSTM and its diagrams

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

Understanding LSTM and its diagrams

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

Understanding LSTM and its diagrams

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

上一篇:react源码解析13.hooks源码


下一篇:react源码解析14.手写hooks