目录

  • 引言
  • 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时间点之间的输入输出关系。

LSTM相比其他神经网络的优点 lstm神经网络 应用_机器学习

数学关系为:
LSTM相比其他神经网络的优点 lstm神经网络 应用_人工智能_02
其中,
LSTM相比其他神经网络的优点 lstm神经网络 应用_机器学习_03 表示向量中同位置元素对应相乘,其相乘结果仍然为一个向量;
参数项为LSTM相比其他神经网络的优点 lstm神经网络 应用_深度学习_04,LSTM相比其他神经网络的优点 lstm神经网络 应用_机器学习_05,LSTM相比其他神经网络的优点 lstm神经网络 应用_lstm_06,LSTM相比其他神经网络的优点 lstm神经网络 应用_lstm_07
forget gate LSTM相比其他神经网络的优点 lstm神经网络 应用_人工智能_08 , update gate LSTM相比其他神经网络的优点 lstm神经网络 应用_机器学习_09 , output gate LSTM相比其他神经网络的优点 lstm神经网络 应用_lstm_10 都是门控单元类似于数字电路中的逻辑门,本质都是一层以sigmoid函数LSTM相比其他神经网络的优点 lstm神经网络 应用_lstm_11为激活函数的全连接层;

forget gate,输入是神经元在前一个时间点t-1的输出LSTM相比其他神经网络的优点 lstm神经网络 应用_人工智能_12和当前时间t输入数据LSTM相比其他神经网络的优点 lstm神经网络 应用_lstm_13注意: 这里的sigmoid模块不仅只有sigmoid激活函数,而实际是sigmoid layer,包含了和LSTM相比其他神经网络的优点 lstm神经网络 应用_深度学习_04的矩阵乘及偏置项。输出LSTM相比其他神经网络的优点 lstm神经网络 应用_人工智能_08输出向量的每一个分量取值范围是 0-1,决定了允许什么样的信息通过,什么信息保留。如果全部输出分量是0,则表示上一个时间点t-1神经元的状态输出信息LSTM相比其他神经网络的优点 lstm神经网络 应用_机器学习_16被全部遗忘,不会被输入到当前时刻的神经元中;如果全部输出分量是1,则LSTM相比其他神经网络的优点 lstm神经网络 应用_机器学习_16被当前时刻的神经元全部保留作为内部的输入用于进一步运算。

update gate(也有人称input gate),决定哪些新输入的信息可以更新到LSTM相比其他神经网络的优点 lstm神经网络 应用_机器学习_16。其输出是一个控制信号,控制tanh layer产生的新信息中哪些可以被更新到LSTM相比其他神经网络的优点 lstm神经网络 应用_lstm_19

output gate,控制哪些信息需要输出给下一个时间状态,输出信息来自LSTM相比其他神经网络的优点 lstm神经网络 应用_lstm_19

缺点

1.解决了梯度消失问题,但是仍然没有解决梯度爆炸问题,可以通过梯度剪裁解决。
2.无法实现并行优化,速度很慢,在大模型中已经很少用了;