目录

一、什么是LSTM?

二、LSTM详解

 0.什么是门?

1. 遗忘门

2.输入门

3.更新记忆

4.输出门


一、什么是LSTM?

LSTM是RNN的一种,可以解决RNN短时记忆的不足,当一条序列足够长,那RNN将很难将信息从较早的时间步传送到后面的时间步,而LSTM能学习长期依赖的信息,记住较早时间步的信息,因此可以做到联系上下文。

比如:

1.

LSTM适合迁移学习吗 lstm详解_lstm

RNN可以根据前面几个单词有效预测出空白处单词为sky。

2.

LSTM适合迁移学习吗 lstm详解_人工智能_02

RNN可以根据空格处附近的信息得出,这里应该填一种语言,但还不知道具体是哪种语言,我们想的是让模型根据前文的I grew up in France,得出这里应该是法语,但是序列相隔距离太远,RNN做不到有效利用历史信息,所以我们需要依靠LSTM来完成。

二、LSTM详解

LSTM有三个门,分别为遗忘门,输入门(有的也叫更新门,候选门,作用是一样的),输出门。通过这三个门来控制哪些信息该遗忘丢弃,哪些信息该保留,或者保持不变。就像管道阀门一样,控制流通不流通。

先来看一张lstm结构的展开图,后面对三个门及作用进行拆解。

LSTM适合迁移学习吗 lstm详解_人工智能_03

符号说明:

LSTM适合迁移学习吗 lstm详解_rnn_04

:当前时刻输入信息 

LSTM适合迁移学习吗 lstm详解_LSTM适合迁移学习吗_05

:上一时刻的隐藏状态

LSTM适合迁移学习吗 lstm详解_深度学习_06

:传递到下一时刻的隐藏状态 

LSTM适合迁移学习吗 lstm详解_lstm_07

:sigmoid函数,通过这个函数可以将数据变为0-1范围的数值。

tanh: tanh函数,通过这个函数可以将数据变为[-1,1]范围的数值

LSTM的特点:

lstm比rnn多一个细胞状态(cell state),也有人叫记忆细胞。

下图中的水平黑线表示上一时刻的细胞状态

LSTM适合迁移学习吗 lstm详解_LSTM适合迁移学习吗_08

通过三个门的控制及线性运算来决定哪些信息该遗忘丢弃,哪些信息该保留,或者不变,从而生成当前时刻的细胞状态

LSTM适合迁移学习吗 lstm详解_人工智能_09

,然后输出到下一时刻,以此来进行记忆的更新。这只是某个时刻的细胞状态的更新过程,在整个长序列中,每个时刻的细胞状态都对上一时刻的信息选择性的进行遗忘丢弃,或者保留,或者不变,对记忆进行更新,从

LSTM适合迁移学习吗 lstm详解_人工智能_10

传送到

LSTM适合迁移学习吗 lstm详解_人工智能_09

,因此可以做到长期记忆。

LSTM适合迁移学习吗 lstm详解_rnn_12

 0.什么是门?

LSTM通过门(gate)来控制细胞状态遗忘或添加记忆,门的结构就是一个sigmoid层再点乘上一时刻的细胞状态,下图就是一个门。

LSTM适合迁移学习吗 lstm详解_rnn_13

sigmoid层输出的值范围在[0, 1],可以作为门控信号,0点乘任何值还是0,表示过不去,这些记忆就遗忘了,1表示可以通过,记忆就保留下来了。

1. 遗忘门

遗忘门的作用对象是细胞状态

LSTM适合迁移学习吗 lstm详解_LSTM适合迁移学习吗_08

,作用是控制细胞状态中的信息进行选择性的遗忘,决定哪部分需要丢弃,哪些需要保留。那么是如何控制细胞状态选择性遗忘记忆的呢,我们结合公式来看:

LSTM适合迁移学习吗 lstm详解_lstm_15

遗忘门的公式: 

 

LSTM适合迁移学习吗 lstm详解_rnn_16

 权重矩阵

LSTM适合迁移学习吗 lstm详解_深度学习_17


LSTM适合迁移学习吗 lstm详解_LSTM适合迁移学习吗_05


LSTM适合迁移学习吗 lstm详解_rnn_04

拼接而成的矩阵进行矩阵相乘,再加上偏置

LSTM适合迁移学习吗 lstm详解_深度学习_20

,投入到sigmoid函数中,得到一个与

LSTM适合迁移学习吗 lstm详解_LSTM适合迁移学习吗_08

相同维度的矩阵

LSTM适合迁移学习吗 lstm详解_rnn_22

, 比如,得到

LSTM适合迁移学习吗 lstm详解_rnn_22

为[ 0,0,1,0],矩阵中每一个值都决定

LSTM适合迁移学习吗 lstm详解_LSTM适合迁移学习吗_08

中对应信息的遗忘或保留,0代表彻底丢弃,1代表完全保留。

比如一个语言模型,根据之前的所有词预测下一个词。细胞状态可能已经记住了当前人物的性别,以便下次预测人称代词(他还是她),但当出现一个新人物时,需要将上一个人物的性别忘掉。

举例:

小明是一个帅气的男生,小美喜欢...,当处理到‘’小美‘’的时候,需要选择性的忘记前面的’小明’,或者说减小这个词对后面词的作用。

2.输入门

输入门的作用对象也是细胞状态,作用是决定要往细胞状态中存储哪些新的信息,也就是细胞状态选择性的添加哪些新的记忆。那么如何决定添加哪些新的信息呢,输入门分两个部分进行。

LSTM适合迁移学习吗 lstm详解_深度学习_25

 第一部分:

 构建一个输入门,决定哪些信息被添加到细胞状态中,作为新的记忆。

LSTM适合迁移学习吗 lstm详解_rnn_26

输入门公式: 

LSTM适合迁移学习吗 lstm详解_lstm_27

与遗忘门公式差不多,输入门通过线性运算得到一个与

LSTM适合迁移学习吗 lstm详解_人工智能_28

相同维度的矩阵

LSTM适合迁移学习吗 lstm详解_rnn_29

, 比如,得到

LSTM适合迁移学习吗 lstm详解_rnn_29

为       [ 0,0,1,0],矩阵中每一个值都决定

LSTM适合迁移学习吗 lstm详解_人工智能_28

中对应信息的丢弃或保留,0代表彻底丢弃,1代表完全保留

 第二部分:

构建出一个候选细胞状态

LSTM适合迁移学习吗 lstm详解_人工智能_28

,它保存了 

LSTM适合迁移学习吗 lstm详解_rnn_04


LSTM适合迁移学习吗 lstm详解_LSTM适合迁移学习吗_05

中的信息,然后与

LSTM适合迁移学习吗 lstm详解_rnn_29

的值点乘,来决定哪些记忆是有用的,依然

LSTM适合迁移学习吗 lstm详解_rnn_29

中0代表彻底丢弃,1代表完全保留,这样保留下来的信息作为新的记忆添加给新的细胞状态,所以这里

LSTM适合迁移学习吗 lstm详解_人工智能_28

候选细胞状态,它只是一个等候选择的,有用的才会被作为新记忆添加。 

LSTM适合迁移学习吗 lstm详解_lstm_38

候选细胞状态 

LSTM适合迁移学习吗 lstm详解_人工智能_28

的公式: 

LSTM适合迁移学习吗 lstm详解_深度学习_40

接着上一个例子:

这一步传入了一些信息,比如小美喜欢穿裙子,输入门就是要在这些信息中筛选出来有用的,用来记住新人物的性别,记住小美的性别为女,作为新的记忆添加。

3.更新记忆

新的细胞状态中的记忆由两部分构成。

一部分是,上一时刻的记忆细胞遗忘掉没用的记忆后剩下的旧记忆

另一部分是,输入门中把有用的信息筛选出来当作新的记忆

LSTM适合迁移学习吗 lstm详解_人工智能_41

新的细胞状态的公式:

LSTM适合迁移学习吗 lstm详解_rnn_42

 

LSTM适合迁移学习吗 lstm详解_rnn_22

点乘

LSTM适合迁移学习吗 lstm详解_LSTM适合迁移学习吗_08

表示处理后的旧记忆,

LSTM适合迁移学习吗 lstm详解_rnn_29

点乘

LSTM适合迁移学习吗 lstm详解_人工智能_28

表示需要添加的新记忆,加起来就是新的细胞状态。

继续举例:

小明是一个帅气的男生,小美喜欢穿裙子,这一步是要忘记小明性别为男,记住小美性别为女。

4.输出门

输出门的作用是决定最终输出什么,也就是

LSTM适合迁移学习吗 lstm详解_深度学习_06

,这个输出是以新的细胞状态

LSTM适合迁移学习吗 lstm详解_人工智能_09

为基础的,分两部分进行。

LSTM适合迁移学习吗 lstm详解_深度学习_49

第一部分:

依然使用sigmoid层来得到

LSTM适合迁移学习吗 lstm详解_rnn_50

,比如

LSTM适合迁移学习吗 lstm详解_rnn_50

=[0,0,0,1],来决定哪部分细胞状态需要被输出,需要的记忆才输出,并不是所有的都输出。

LSTM适合迁移学习吗 lstm详解_人工智能_52

 

LSTM适合迁移学习吗 lstm详解_rnn_50

的公式:

LSTM适合迁移学习吗 lstm详解_人工智能_54

 第二部分:

把新的细胞状态通过tanh函数处理,将输出值变为[-1. 1],再点乘

LSTM适合迁移学习吗 lstm详解_rnn_50

,来控制哪部分需要输出。

LSTM适合迁移学习吗 lstm详解_lstm_56

 

LSTM适合迁移学习吗 lstm详解_深度学习_06

的公式: 

LSTM适合迁移学习吗 lstm详解_深度学习_58