目录
- 引言
- LSTM神经元计算模型
- 缺点
引言
最近在用TensorFlow2做营收预测项目,由于数据不大并且具有明显的时序特性,想利用RNN类模型试一下效果,当然首先使用LSTM、GRU之类的。
LSTM神经元计算模型
Long Short Term 网络一般就叫做 LSTM,是一种 RNN 特殊的类型,可以学习长期依赖信息。LSTM 由Hochreiter & Schmidhuber (1997)提出,并在近期被Alex Graves进行了改良和推广。在很多问题,LSTM 都取得相当巨大的成功,并得到了广泛的使用。
在理论上,RNN 绝对可以处理长期依赖问题,但在实践中发现并不能。LSTM 通过刻意的设计来解决长期依赖问题。记住长期的信息在实践中是 LSTM 的默认行为,而非需要付出很大代价才能获得的能力。
下图1展示了一个LSTM神经元在t时间点与t-1时间点之间的输入输出关系。
数学关系为:
其中,
表示向量中同位置元素对应相乘,其相乘结果仍然为一个向量;
参数项为,,,;
forget gate , update gate , output gate 都是门控单元类似于数字电路中的逻辑门,本质都是一层以sigmoid函数为激活函数的全连接层;
forget gate,输入是神经元在前一个时间点t-1的输出和当前时间t输入数据。注意: 这里的sigmoid模块不仅只有sigmoid激活函数,而实际是sigmoid layer,包含了和的矩阵乘及偏置项。输出输出向量的每一个分量取值范围是 0-1,决定了允许什么样的信息通过,什么信息保留。如果全部输出分量是0,则表示上一个时间点t-1神经元的状态输出信息被全部遗忘,不会被输入到当前时刻的神经元中;如果全部输出分量是1,则被当前时刻的神经元全部保留作为内部的输入用于进一步运算。
update gate(也有人称input gate),决定哪些新输入的信息可以更新到。其输出是一个控制信号,控制tanh layer产生的新信息中哪些可以被更新到。
output gate,控制哪些信息需要输出给下一个时间状态,输出信息来自。
缺点
1.解决了梯度消失问题,但是仍然没有解决梯度爆炸问题,可以通过梯度剪裁解决。
2.无法实现并行优化,速度很慢,在大模型中已经很少用了;