Tensorflow2.0学习笔记(六)LSTM

目录

1 短时记忆

2 LSTM与基础的RNN对比

3 门控

4 输入门和遗忘门的典型行为

5 LSTM层的使用

 

1 短时记忆

在处理较长的句子时,循环神经网络往往只能理解有限长度内的信息,而对于较长范围内的有用信息往往不能很好的利用起来。那么,能不能延长短时记忆,提高记忆力呢?——LSTM

 

2 LSTM与基础的RNN对比

与基础的RNN对比,除了有一个状态向量ht,LSTM新增加了一个状态向量Ct,同时引入了门控(Gate)机制,通过门控单元来控制信息的遗忘和刷新。

基础的RNN:

Tensorflow2.0学习笔记(六)LSTM

LSTM:

Tensorflow2.0学习笔记(六)LSTM

在LSTM中,有两个状态向量c和h,其中c作为LSTM的内部状态向量,可以理解为内存状态向量Memory,而h表示LSTM的输出向量。同时,利用输入门、遗忘门和输出门来控制内部信息的流动。

 

3 门控

  • 遗忘门

(1)遗忘门作用于LSTM状态向量c上面,用于控制上一个时间戳的记忆Tensorflow2.0学习笔记(六)LSTM对当前时间戳的影响。

 (2)遗忘门的控制变量:Tensorflow2.0学习笔记(六)LSTM

(3)Tensorflow2.0学习笔记(六)LSTM为遗忘门的参数张量,可以通过反向传播算法自动优化。Tensorflow2.0学习笔记(六)LSTM为**函数,一般为Sigmoid函数。

(4)当门控Tensorflow2.0学习笔记(六)LSTM的时侯,门打开,LSTM接受上一个状态Tensorflow2.0学习笔记(六)LSTM的所有信息;

        当门控Tensorflow2.0学习笔记(六)LSTM的时侯,门关闭,LSTM忽略状态Tensorflow2.0学习笔记(六)LSTM的所有信息,输出为0的向量。

(5)经过遗忘门后,LSTM的状态向量变为Tensorflow2.0学习笔记(六)LSTM

Tensorflow2.0学习笔记(六)LSTM

  •  输入门

(1)通过对当前时间戳的输入Tensorflow2.0学习笔记(六)LSTM和上一个时间戳的输出Tensorflow2.0学习笔记(六)LSTM做非线性变换得到新的输入向量:Tensorflow2.0学习笔记(六)LSTM其中,Tensorflow2.0学习笔记(六)LSTM为输入门的参数,可以通过反向传播算法自动优化。tanh为**函数,将输入标准化到 [-1,1]。Tensorflow2.0学习笔记(六)LSTM并不会全部刷新进LSTM的Memory,而是通过输入门控制接受输入的程度。

(2)输入门控制变量:Tensorflow2.0学习笔记(六)LSTM

(3)Tensorflow2.0学习笔记(六)LSTM为输入门的参数张量,可以通过反向传播算法自动优化。Tensorflow2.0学习笔记(六)LSTM为**函数,一般为Sigmoid函数。

(4)当门控Tensorflow2.0学习笔记(六)LSTM的时侯,门打开,LSTM全部接受Tensorflow2.0学习笔记(六)LSTM的所有信息;当门控Tensorflow2.0学习笔记(六)LSTM的时侯,门关闭,LSTM不接受Tensorflow2.0学习笔记(六)LSTM

(5)经过输入门后,待写入Memory向量变为Tensorflow2.0学习笔记(六)LSTM

 

 Tensorflow2.0学习笔记(六)LSTM

  • 刷新Memory 

在遗忘门和输入门的控制下,LSTM有选择地读取上一个时间戳的记忆Tensorflow2.0学习笔记(六)LSTM和当前时间戳的新输入Tensorflow2.0学习笔记(六)LSTM,状态向量Tensorflow2.0学习笔记(六)LSTM的刷新方式为:Tensorflow2.0学习笔记(六)LSTM

  • 输出门 

(1)LSTM的内部状态向量Tensorflow2.0学习笔记(六)LSTM并不会直接用于输出。而是在输出门的控制下有选择地输出。

(2)输出门控制变量:Tensorflow2.0学习笔记(六)LSTM

(3)Tensorflow2.0学习笔记(六)LSTM为输出门的参数张量,可以通过反向传播算法自动优化。Tensorflow2.0学习笔记(六)LSTM为**函数,一般为Sigmoid函数。

(4)当门控Tensorflow2.0学习笔记(六)LSTM的时侯,门打开,LSTM的状态向量Tensorflow2.0学习笔记(六)LSTM全部输出;当门控Tensorflow2.0学习笔记(六)LSTM的时侯,门关闭,此时输出为0的向量。

(5)LSTM的输出:Tensorflow2.0学习笔记(六)LSTM

由于Tensorflow2.0学习笔记(六)LSTM,因此LSTM的输出Tensorflow2.0学习笔记(六)LSTM

 

 Tensorflow2.0学习笔记(六)LSTM

 

4 输入门和遗忘门的典型行为

 

输入门控

遗忘门控

LSTM行为

0

1

只使用记忆

1

1

输入和记忆

0

0

清零记忆

1

0

输入覆盖记忆

 

5 LSTM层的使用

(1)LSTMCell

LSTM的状态变量List有两个Tensorflow2.0学习笔记(六)LSTM,需要分别初始化。调用Cell完成前向运算时,返回两个元素,第一个元素为cell的输出,也就是Tensorflow2.0学习笔记(六)LSTM,第二个元素为cell的更新后的状态List:Tensorflow2.0学习笔记(六)LSTM

(2)layers.LSTM层

layers = layers.LSTM(64)# 创建一层LSTM层,内存向量长度为64

layers = layers.LSTM(64, return_sequences=True)

 

 

参考资料:Tensorflow 深度学习 龙龙老师