归类

长短期记忆神经网络(LSTM)是一种特殊的循环神经网络(RNN)。原始的RNN在训练中,随着训练时间的加长以及网络层数的增多,容易出现梯度爆炸或梯度消失的问题,导致无法处理较长序列数据,从而无法获取长距离数据的信息。为解决该问题,提出了它的改进方案,即LSTM神经网络。

LSTM神经网络数学模型 lstm神经网络案例_LSTM神经网络数学模型

 

设计思路
RNN神经网络:记住所有信息,无论是有用的还是无用的。
LSTM神经网络:选择一个记忆细胞,对信息有选择性地记忆。

LSTM的前向传播

LSTM神经网络数学模型 lstm神经网络案例_数据_02

LSTM神经网络数学模型 lstm神经网络案例_线性代数_03

其中, t为时刻,

为记忆细胞,

为状态,

为输入,

为遗忘门,

为更新门,

为输出门。

运算过程如下所示:

LSTM神经网络数学模型 lstm神经网络案例_线性代数_04

(注:公式中的

与图中tanh上方的

一致) 

实例讲解 

以上内容看不懂没关系,这里会用简单的例子来讲解,让我们回到这个图:

LSTM神经网络数学模型 lstm神经网络案例_线性代数_05

假设现在是期末考试周且你的脑容量有限,昨天你考完了高等数学,后天将考线性代数,你的线性代数老师也为你贴心地划好了考试重点。上文已经提到过,RNN会记住所有的信息,无论是有用信息还是无用信息,即你复习了整本线性代数的书本,并将其内容与上一门高等数学的内容全部记忆了下来。而对于LSTM来说,你将遗忘大部分高等数学的内容,而只保留基础数学运算等通用内容,并且只复习记忆线性代数书本中老师划出的重点。

图中的

会生成一系列0-1之间的数,如[0,1,0.7,0,0.3,1],对其赋权重后,进行选择性遗忘。对应刚才的例子,此处

为刚考完的高等数学,

的处理结果为:遗忘大部分高等数学的知识,记忆能够用到线代考试中的基础数学运算等知识。那么如何理解更新门

呢?老师所划出的重点并不会全部出现在试卷上,你可以在复习的过程中根据自己的理解,判断哪些内容可能考,哪些内容肯定不考,由此再进行筛选过滤。这就是更新门的作用。

在LSTM的每个时间步里,都有一个记忆cell,给予LSTM选择记忆的功能。

LSTM的反向传播(能够解决梯度消失问题的原因) 

LSTM神经网络数学模型 lstm神经网络案例_线性代数_06

通过调节



 ,可以灵活控制

的值,当要从n时刻长期记忆某个东西直到m时刻时,该路径上的

,从而大大缓解了梯度消失。