1.结构
2.计算
例1:
假设
,
,
均为输入,当
的时候将
加入记忆单元,当
时将将记忆单元清空,当
的时候输出记忆单元里面的数值。根据规则,最开始记忆单元里面存储的是0,当输入
时因为
,
所以记忆单元和输出都不工作,到了第二列,因为
,
,
,所以将
加入记忆单元,输出依旧为0,第三列,
,
,
,所以
不会被加入到记忆单元,输出依旧为0,第四列
,
,
,所以
会被加入到记忆单元此时记忆单元变为7,输出依然为零,直到出现
,记忆单元的数才会被输出。
例2:
还是假设最开始记忆单元里面储存的是0,经过函数
可以得到3,经过Input Gate的sigmoid函数可以求出1,经过Output Gate的sigmoid函数计算出0,经过Forget Gate的sigmoid函数计算出1,然后根据上面的公式就可以算出最终的输出。
3.LSTM与传统神经网络的联系
我们只要把LSTM看作是传统神经网络的一个神经元(neuron)即可
另外,LSTM需要四个输入
4.LSTM的最终形态
LSTM的四个输入都是从最初始的x乘以不同的权重得来的,然后还要考虑上一个时间点的 和 。
5.LSTM的数学公式
将上图的LSTM封装起来就是:
输入
和上一个时间点的隐藏状态
相加经过一个sigmoid函数得
。
所以遗忘门(foget gate)的路径和式子是:
输入
和上一个时间点的隐藏状态
相加经过一个sigmoid函数得
,这是一个输入门,
记忆单元
的值由上面提到的几个式子决定:
输出
和这一个时刻的隐藏状态
式子如下
注:
表示把两个向量连接成一个更长的向量
Pytorch中LSTM的参数与案例理解.
Pytorch中文文档.
LSTM.
重推:详解LSTM.
刘建平讲LSTM.
pytorch实现LSTM.
外国大神的博文.
Understanding LSTM Networks.