LSTM
这是一种特殊的循环神经网络,能够学习数据中的长期依赖关系,这是因为模型的循环模块具有相互交互的四个层的组合,它可以记忆不定时间长度的数值,区块中有一个gate能够决定input是 否重要到能被记住及能不能被输出output。
原理
黄色方框内是四个神经网络层,红色圆圈是逐点算子,橙色圆圈是输入,蓝色圆圈是细胞状态。LSTM具有一个单元状态和三个门,对应选择有选择地学习、取消学习或保留来自每个单元的信息的能力。
LSTM中的单元状态通过只允许一些线性交互来帮助信息流过单元而不被改变。
每个单元都有一个输入、输出和一个遗忘门,可以将信息添加或者删除到单元状态。
遗忘门:使用sigmoid函数决定应该忘记来自先前单元状态的哪些信息。
输入门:分别使用sigmoid和tanh的逐点乘法运算控制信息流到当前单元状态。
输出门:最后,输出门决定哪些信息应该传递到下一个隐藏状态。
要在python中使用lstm模型,需要安装这些库:
pip install tansorflow pandas numpy matplotlib
# pandas用来数据处理
# numpy用来数值计算
# matplotlib.pyplot用于数据可视化
# MinMaxScaler从sklearn.preprocessing用于数据规范化
# Sequential,LSTM,Dense从tensorflow.keras用于构建神经网络
# mean_squared_error从sklearn.metrics用于计算模型误差