RNN 参考视频:https://www.bilibili.com/video/BV1e5411K7oW/?p=2&spm_id_from=pageDriver&vd_source=7a1a0bc74158c6993c7355c5490fc600
LSTM 参考视频:https://www.bilibili.com/video/BV1qM4y1M7Nv?p=5&vd_source=7a1a0bc74158c6993c7355c5490fc600
斯坦福教授讲解的 RNN 和 LSTM:https://www.bilibili.com/video/BV1s64y1P7Qm?p=9&vd_source=7a1a0bc74158c6993c7355c5490fc600 (这个视频并没有提到 LSTM 的反向传播推导,skip)
先来复习一下 RNN,以下是 RNN 网络模型结构的示图:
需要注意的是,RNN 神经网络中的激活函数通常使用 tanh,原因参考这篇博客 【sigmod Relu tanh三种常见的激活函数】
链接在:https://blog.csdn.net/purple_love/article/details/134487378
首先要理解 LSTM 的 motivation:已知 RNN 模型能够处理时间序列信息。但是它有一个问题,RNN 模型在进行反向传播算法训练的时候,对于距离 “cur_time” 较远的信息存在 “梯度消失” 问题,所以 RNN 只具备短期记忆、不具备长期记忆。此外,RNN 也很难区分哪些信息是重要的,哪些信息是不重要的。因此,需要对 RNN 模型进行改良。而其中,最成功的改良产品就是 LSTM。
如下图,是 LSTM 的网络结构
可以和 RNN 的网络结构对比一下:
为了理解 LSTM,我们要同时理解它的前向传播过程和反向传播过程,让我们看看下面的三张图片:
如下图是对 LSTM 的反向传播的手算推导,可以证明 LSTM 能够缓解梯度消失问题