LSTM长短期记忆模型

前言

传统卷积神经网络更加针对的是空间相关性的数据,比如各种各样的图片
而生活中,并不是所有数据都是具有较强的空间相关性的。比如我们的文字,语音,它是一种随时间变化的数据,我们常称这种数据为序列数据

于是出现了RNN循环神经网络来解决这种序列数据。但是序列数据通常长度很长,它相当于卷积神经网络一层层卷积层,当长度过长,会引发梯度消失或梯度爆炸。卷积神经网络我们可以控制,但是序列数据长度就在这儿,如果缩短了话会降低准确性,因此科学家们在研究如何更好的传递序列中的隐藏状态从而避免梯度消失。而LSTM长短期记忆模型正好解决了这个问题

总体结构

整个网络用了类似逻辑电路的门结构
PS:图片引用自MXNET论坛,链接:http://zh.d2l.ai/chapter_recurrent-neural-networks/lstm.html
LSTM长短期记忆模型

遗忘门,输入门,输出门

LSTM长短期记忆模型
遗忘门主要是控制是否遗忘上一层的隐藏细胞状态
输入有当前时间步的序列数据,上一时间步的隐藏状态
这两个输入进去后经过sigmoid**函数得到一个值域为[0,1]的输出F1
这相当于一个遗忘概率

输入门和输出门与遗忘门计算方法很类似,也是根据当前时间步的序列数据,上一时间步的隐藏状态进行计算,最后通过sigmoid**

候选记忆细胞

LSTM长短期记忆模型
候选记忆细胞与前面的区别则是将**函数更改为值域在[-1, 1]的tanh

记忆细胞

LSTM长短期记忆模型
记忆细胞的计算则比较复杂,它涉及到了上一时间步的记忆细胞,当前时间步的候选记忆细胞
前面我们也提到过
遗忘门的输出是一个遗忘概率
它与前一时间步的记忆细胞按元素相乘
表示的是对之前时间步信息的保留

另外它还计算输入门的输出与候选记忆细胞输出,并按元素相乘,得到当前信息
之前时间步信息相加,传递到下一时间步的记忆细胞中

所以每一次数据的流入计算,信息都包含了过去时间步的,从而形成一种“记忆”

隐藏状态

LSTM长短期记忆模型
隐藏状态的计算则利用了 经tanh**的记忆细胞输出,与输出门的输出进行按元素相乘,并流入到下一时间步

总结

LSTM相较于RNN具有较大改进。让整个信息流动更类似人类的思维。

通过加入遗忘门,记忆细胞这些结构更好的控制信息流动。

在保留过去信息的同时也不会过度增加模型复杂度。

现在LSTM是较为常用的一种处理序列的结构,最大贡献是改进了传统RNN结构,并且解决了梯度消失的问题。