首页 > 其他分享 >RNN循环神经网络 、LSTM长短期记忆网络实现时间序列长期利率预测|附代码数据

RNN循环神经网络 、LSTM长短期记忆网络实现时间序列长期利率预测|附代码数据

时间:2022-11-22 20:45:43浏览次数:67  
标签:状态 RNN sigmoid 长短期 序列 LSTM 单元

全文链接:http://tecdat.cn/?p=25133

2017 年年中,R 推出了 Keras 包 _,_这是一个在 Tensorflow 之上运行的综合库,具有 CPU 和 GPU 功能

本文将演示如何在 R 中使用 LSTM 实现时间序列预测。

简单的介绍

时间序列涉及按时间顺序收集的数据。我用 xt∈R 表示单变量数据,其中 t∈T 是观察数据时的时间索引。时间 t 在 T=Z 的情况下可以是离散的,或者在 T=R 的情况下是连续的。为简化分析,我们将仅考虑离散时间序列。

长短期记忆 (LSTM) 网络是一种特殊的循环神经网络 (RNN),能够学习长期依赖关系。在常规的 RNN 中,小权重通过几个时间步一遍又一遍地相乘,并且梯度逐渐减小到零——这种情况称为梯度消失问题。

LSTM 网络通常由通过层连接的内存块(称为单元)组成。单元中的信息同时包含在单元状态 Ct 和隐藏状态 ht 中,并由称为门的机制通过 sigmoid 和 tanh 激活函数进行调节。

sigmoid 函数/层输出 0 到 1 之间的数字,其中 0 表示 没有通过 , 1 表示 全部通过。因此,LSTM 能够有条件地从单元状态中添加或删除信息。

一般来说,门将前一时间步 ht-1 和当前输入 xt 的隐藏状态作为输入,并将它们逐点乘以权重矩阵 W,并将偏差 b 添加到乘积中。

三个主要门:

  • 遗忘门:
  • 这决定了哪些信息将从单元状态中删除。
  • 输出是一个介于 0 和 1 之间的数字,0 表示 全部删除 ,1 表示 全部记住
  • 图片
  • 更新门:
  • 在这一步中,  tahn 激活层创建一个潜在候选向量,如下所示:
  • 图片
  • sigmoid 层创建一个更新过滤器,如下所示:
  • 图片
  • 接下来,旧单元状态 Ct-1 更新如下:
  • 图片
  • 输出门:
  • 在这一步中,sigmoid 层过滤将要输出的单元状态。
  • 图片
  • 然后将单元状态 Ct 通过 tanh 函数将值标准化到范围 [-1, 1]。
  • 最后,标准化后的单元格状态乘以过滤后的输出,得到隐藏状态 ht 并传递给下一个单元格:

加载必要的库和数据集

# 加载必要的包
library(keras)

或者安装如下:

# 然后按如下方式安装 TensorFlow :
install_keras()

我们将使用可用的长期利率数据 ,这是从 2007 年 1 月到 2018 年 3 月的月度数据。

图片

前五个观察样本

图片

标签:状态,RNN,sigmoid,长短期,序列,LSTM,单元
From: https://www.cnblogs.com/tecdat/p/16916393.html

相关文章