李宏毅深度学习笔记(十三)LSTM(长短期记忆网络)

1.结构

在这里插入图片描述

2.计算

在这里插入图片描述例1:
在这里插入图片描述假设 x 1 x_1 x 2 x_2 x 3 x_3 均为输入,当 x 2 = 1 x_2=1 的时候将 x 1 x_1 加入记忆单元,当 x 2 = 1 x_2=-1 时将将记忆单元清空,当 x 3 = 1 x_3=1 的时候输出记忆单元里面的数值。根据规则,最开始记忆单元里面存储的是0,当输入 x 1 = 1 x_1=1 时因为 x 2 = 0 x_2=0 x 3 = 0 x_3=0 所以记忆单元和输出都不工作,到了第二列,因为 x 1 = 3 x_1=3 x 2 = 1 x_2=1 x 3 = 0 x_3=0 ,所以将 x 1 = 3 x_1=3 加入记忆单元,输出依旧为0,第三列, x 1 = 2 x_1=2 x 2 = 0 x_2=0 x 3 = 0 x_3=0 ,所以 x 1 = 2 x_1=2 不会被加入到记忆单元,输出依旧为0,第四列 x 1 = 4 x_1=4 x 2 = 1 x_2=1 x 3 = 0 x_3=0 ,所以 x 1 = 4 x_1=4 会被加入到记忆单元此时记忆单元变为7,输出依然为零,直到出现 x 3 = 1 x_3=1 ,记忆单元的数才会被输出。

例2:
在这里插入图片描述
还是假设最开始记忆单元里面储存的是0,经过函数 g ( x ) g(x) 可以得到3,经过Input Gate的sigmoid函数可以求出1,经过Output Gate的sigmoid函数计算出0,经过Forget Gate的sigmoid函数计算出1,然后根据上面的公式就可以算出最终的输出。
在这里插入图片描述

3.LSTM与传统神经网络的联系

我们只要把LSTM看作是传统神经网络的一个神经元(neuron)即可
在这里插入图片描述另外,LSTM需要四个输入
在这里插入图片描述

4.LSTM的最终形态

在这里插入图片描述LSTM的四个输入都是从最初始的x乘以不同的权重得来的,然后还要考虑上一个时间点的 c t c^t h t h^t

5.LSTM的数学公式

将上图的LSTM封装起来就是:
在这里插入图片描述输入 x t x_t 和上一个时间点的隐藏状态 h t 1 h_{t-1} 相加经过一个sigmoid函数得 f t f_t
所以遗忘门(foget gate)的路径和式子是:
在这里插入图片描述输入 x t x_t 和上一个时间点的隐藏状态 h t 1 h_{t-1} 相加经过一个sigmoid函数得 i t i_t ,这是一个输入门,
在这里插入图片描述记忆单元 C t C_t 的值由上面提到的几个式子决定:
在这里插入图片描述
输出 o t o_t 和这一个时刻的隐藏状态 h t h_t 式子如下
在这里插入图片描述注: [ h t 1 , x t ] [h_{t-1},x_t] 表示把两个向量连接成一个更长的向量

Pytorch中LSTM的参数与案例理解.
Pytorch中文文档.
LSTM.
重推:详解LSTM.
刘建平讲LSTM.
pytorch实现LSTM.
外国大神的博文.
Understanding LSTM Networks.

发布了41 篇原创文章 · 获赞 13 · 访问量 6692

猜你喜欢

转载自blog.csdn.net/comli_cn/article/details/104393056