此博客适合刚刚入门LSTM的朋友学习,牛逼的朋友请略过,哈哈。。。
github路径:
https://github.com/zhouliping3712/LSTM_Times_Series
一、LSTM简介:
Long Short Term Memory(LSTM):长短时记忆神经网络,是一种特殊的循环神经网络(RNN),优势在于解决RNN的梯度消失和梯度爆炸的问题,目前广泛应用于序列数据处理和预测,比如文本上下文感情分析,股票预测等;
循环神经网络与多层感知机不同的地方是上个神经元的输出是下一个神经元的输入,但是随着重复模块越来越多,权重W若很小,则使得第一个神经元的信息就会在权重W相乘之后出现特别小的值,因会使得第一个模块的信息失真,同理若权重W很大,则会使得第一个模块的输出覆盖住所有的信息,也会使得信息失真。而LSTM模型与普通的RNN不同之处就是重复模块加入门的概念,门可以对上一个输出进行选择是否忘记,从数学上听说反向传播导数是一个常数,所以能够保证每个模块的信息能够被记住;
RNN重复模块
LSTM重复模块
二、LSTM环境的配置
本文是基于Keras建立LSTM模型,具体安装可以参照下面的步骤:
深度学习开源框架Keras:是一种高层神经网络,采用Tensorflow或者Theano或者CNTK作为后端,优点就是建模容易。 安装依赖:Scipy,Numpy,Pandas,Scikit-Learn,Tensorflow 安装过程:
安装Anoconda之后,不同操作系统不同的安装方法;
1. 基于linux环境安装TensorFlow和Keras
- conda create -n tensorflow python=3.6.6<