LSTM详解

1 什么是LSTM

长短期记忆(Long short-term memory, LSTM)是一种特殊的RNN,主要是为了解决长序列训练过程中的梯度消失和梯度爆炸问题。简单来说,就是相比普通的RNN,LSTM能够在更长的序列中有更好的表现。
在这里插入图片描述
在这里插入图片描述

2 深入LSTM结构

下面具体对LSTM的内部结构来进行剖析。
在这里插入图片描述
下面开始进一步介绍这四个状态在LSTM内部的使用。(敲黑板)
在这里插入图片描述
在这里插入图片描述
下图是普通RNN公式
在这里插入图片描述
下图是LSTM公式
在这里插入图片描述

3 总结

在这里插入图片描述

4 补充

为什么RNN中的

hth^t

ht 对应于 LSTM中的

ctc^t

ct ?
答:LSTM中的

ctc^t

ct主要是用来保存先前节点的数据,而RNN起此作用的必然就是

hth^t

ht了。

为什么传递下去的

ctc^t

ct 改变得很慢,通常输出的

ctc^t

ct 是上一个状态传过来的

ct?1c^{t-1}

ct?1 加上一些数值;而

hth^t

ht 则在不同节点下往往会有很大的区别?
答:

ctc^t

ct也就是cell state中的内容,可以理解为主线,主要是用来保存节点传递下来的数据的,每次传递会对某些维度进行“忘记”并且会加入当前节点所包含的内容,总的来说还是用来保存节点的信息,改变相对较小。

hth^t

ht则主要是为了和当前输入组合来获得门控信号,对于不同的当前输入,传递给下一个状态的

hth^t

ht区别也会较大。

5 LSTM为什么能够缓解梯度消失问题

在这里插入图片描述
下图为RNN中连乘的部分:
在这里插入图片描述
在这里插入图片描述