大白话理解LSTM神经网络(附实例讲解)

前言

本文章为个人学习笔记整理,所学习的内容来自b站up主@老弓的学习日记,附有实例讲解。

 

归类

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

大白话理解LSTM神经网络(附实例讲解)_第1张图片

 


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

LSTM的前向传播

大白话理解LSTM神经网络(附实例讲解)_第2张图片

大白话理解LSTM神经网络(附实例讲解)_第3张图片

其中, t为时刻,C_{t}为记忆细胞,h_{t}为状态,x_{t}为输入,f_{t}为遗忘门,i_{t}为更新门,o_{t}为输出门。

运算过程如下所示:

大白话理解LSTM神经网络(附实例讲解)_第4张图片

(注:公式中的g_{t}与图中tanh上方的c_{t}一致) 

实例讲解 

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

大白话理解LSTM神经网络(附实例讲解)_第5张图片

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

图中的C_{t-1}\bigotimes f _{t}会生成一系列0-1之间的数,如[0,1,0.7,0,0.3,1],对其赋权重后,进行选择性遗忘。对应刚才的例子,此处C_{t-1}为刚考完的高等数学,C_{t-1}\bigotimes f _{t}的处理结果为:遗忘大部分高等数学的知识,记忆能够用到线代考试中的基础数学运算等知识。

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

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

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

大白话理解LSTM神经网络(附实例讲解)_第6张图片

通过调节w_{hf}w_{hi}w_{hg} ,可以灵活控制\frac{\partial C_{t}}{\partial C _{t-1}}的值,当要从n时刻长期记忆某个东西直到m时刻时,该路径上的\prod_{t=n}^{m}\frac{\partial C_{t}}{\partial C_{t-1}}\approx 1\times 1\times 1\cdot \cdot \cdot \times 1,从而大大缓解了梯度消失。

(原up有这部分的具体公式推导,感兴趣的小伙伴可以去看一下)

 

 

 

 

你可能感兴趣的:(神经网络)