深度学习--长短时记忆神经网络LSTM,半完成
参考
史上最详细循环神经网络讲解(RNN/LSTM/GRU)
零基础入门深度学习(6) - 长短时记忆网络(LSTM)
Understanding LSTM Networks 最经典的一篇,那些文章基本都是解释这篇的,但是不容易看
大名鼎鼎的LSTM详解
如何从RNN起步,一步一步通俗理解LSTM 有动图,非常好的一篇,很推荐
LSTM
长短时记忆神经网络(Long Short-term Memory Networks,LSTM)是 RNN 的变种,具有更好的长期信息学习能力。
普通RNN受sigmoid导致的梯度消失的影响,无法充分保留早期记忆。而LSTM能选择性地存储信息,门控装置使得它可以选择遗忘不重要的信息,选择性地写入新的信息,控制隐藏状态的输出。
但是LSTM依然受到梯度消失的影响,不能彻底消除。
- Input Gate:输入门,在每一时刻从输入层输入的信息会首先经过输入门,输入门的开关会决定这一时刻是否会有信息输入到Memory Cell。
- Output Gate:输出门,每一时刻是否有信息从Memory Cell输出取决于这一道门。
- Forget Gate:遗忘门,每一时刻Memory Cell里的值都会经历一个是否被遗忘的过程,就是由该门控制的,如果打卡,那么将会把Memory Cell里的值清除,也就是遗忘掉。
按照上图的顺序,信息在传递的顺序,是这样的:
先经过输入门,看是否有信息输入,再判断遗忘门是否选择遗忘Memory Cell里的信息,最后再经过输出门,判断是否将这一时刻的信息进行输出。
所有RNN都具有一种重复神经网络模块的链式的形式。在标准的RNN中,这个重复的模块只有一个非常简单的结构,例如一个tanh层。
激活函数最主要的作用就是突破线性约束,引入非线性能力,使神经网络能拟合复杂的函数关系。

激活函数 Tanh 帮助调节流经网络的值,使得数值始终限制在 -1 和 1 之间。
LSTM同样是这样的结构,但是重复的模块拥有一个不同的结构。具体来说,RNN是重复单一的神经网络层,LSTM中的重复模块则包含四个交互的层,三个Sigmoid 和一个tanh层,并以一种非常特殊的方式进行交互。


因记忆能力有限,记住重要的,忘记无关紧要的。
把C视作长期记忆(细胞记忆)把h视作短期记忆(隐层记忆)方便理解。

遗忘门Forget Gate决定要遗忘细胞记忆的哪部分内容,按比例的保留或衰减。

输入门Input Gate中sigmoid层决定什么值将要更新到细胞记忆,tanh层创建一个候选值向量

在遗忘和保留输入后,累加组成新的细胞记忆

输出门sigmoid层决定输出细胞状态哪个部分(并不需要使用全部细胞状态),细胞状态通过tanh处理并与sigmoid层的输出相乘,最终输出需要输出的部分。

GRU

重置门决定了当前输入与前一时刻状态如何混合,而更新门则决定了多少旧状态信息被保留到下一个状态。
基于重置门和当前输入,GRU计算出一个候选隐藏状态,这个状态既包含了当前输入的信息,也包含了经过选择性保留的历史信息。
最后,GRU根据更新门的选择性地将旧隐藏状态和候选隐藏状态进行加权平均,得到新的隐藏状态。

重置门有助于捕获序列中的短期依赖关系;
更新门有助于捕获序列中的长期依赖关系。
下面是和gpt的交流真假不一定但是思路开阔一下可以看看
