LSTM长短期记忆人工神经网络------理论学习
直接看代码走这儿:
GitHub:https://github.com/ICEJM1020/LSTM_Stock
长短期记忆网络(LSTM,Long Short-Term Memory)是一种时间循环神经网络,是为了解决一般的RNN(循环神经网络)存在的长期依赖问题而专门设计出来的,LSTM适合于处理和预测时间序列中间隔和延迟非常长的重要事件。
LSTM是一种RNN模型的改良版本,RNN是一种对于序列数据特别友好的模型,在时间序列数据上表象尤其有优势。所以看来要弄懂LSTM,那就必须得先弄懂RNN模型。
一、RNN模型
这里借用一张网络上的RNN都会配的一张图:
x-输入 h-隐含层(阀值) o-输出 y-实际值 L-损失函数(与实际的差值)
对于我个人而言,RNN网络(这里是说一层网络或多层中的某一层)其实可以看作是一种线性的网络,他的网络复杂度和单层神经网络(也就是感知器)差不多,图中的左边是折叠的RNN模型,但从这样来看并没有什么关键的点,所以直接看右边的一部分。
从右边的图其实就可以很直接地看出这种模型为什么很适合线性的数据了。简要的说一下这种模型,我们都知道普通的神经网络,值的传递方向一般都是单向传递,而RNN的模型中,引入了单层之间的影响,暂且不看输入层的权值U和输出的的权值V,但看隐含层的函数。以 h(t)为例: