前言
本文章为个人学习笔记整理,所学习的内容来自b站up主@老弓的学习日记,附有实例讲解。
归类
长短期记忆神经网络(LSTM)是一种特殊的循环神经网络(RNN)。原始的RNN在训练中,随着训练时间的加长以及网络层数的增多,容易出现梯度爆炸或梯度消失的问题,导致无法处理较长序列数据,从而无法获取长距离数据的信息。为解决该问题,提出了它的改进方案,即LSTM神经网络。
设计思路
RNN神经网络:记住所有信息,无论是有用的还是无用的。
LSTM神经网络:选择一个记忆细胞,对信息有选择性地记忆。
LSTM的前向传播
其中, t为时刻,为记忆细胞,为状态,为输入,为遗忘门,为更新门,为输出门。
运算过程如下所示:
(注:公式中的与图中tanh上方的一致)
实例讲解
以上内容看不懂没关系,这里会用简单的例子来讲解,让我们回到这个图:
假设现在是期末考试周且你的脑容量有限,昨天你考完了高等数学,后天将考线性代数,你的线性代数老师也为你贴心地划好了考试重点。上文已经提到过,RNN会记住所有的信息,无论是有用信息还是无用信息,即你复习了整本线性代数的书本,并将其内容与上一门高等数学的内容全部记忆了下来。而对于LSTM来说,你将遗忘大部分高等数学的内容,而只保留基础数学运算等通用内容,并且只复习记忆线性代数书本中老师划出的重点。
图中的会生成一系列0-1之间的数,如[0,1,0.7,0,0.3,1],对其赋权重后,进行选择性遗忘。对应刚才的例子,此处为刚考完的高等数学,的处理结果为:遗忘大部分高等数学的知识,记忆能够用到线代考试中的基础数学运算等知识。
那么如何理解更新门呢?老师所划出的重点并不会全部出现在试卷上,你可以在复习的过程中根据自己的理解,判断哪些内容可能考,哪些内容肯定不考,由此再进行筛选过滤。这就是更新门的作用。
在LSTM的每个时间步里,都有一个记忆cell,给予LSTM选择记忆的功能。
LSTM的反向传播(能够解决梯度消失问题的原因)
通过调节、、 ,可以灵活控制的值,当要从n时刻长期记忆某个东西直到m时刻时,该路径上的,从而大大缓解了梯度消失。
(原up有这部分的具体公式推导,感兴趣的小伙伴可以去看一下)