乐趣区

关于数据挖掘:RNN循环神经网络-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 月的月度数据。

前五个察看样本

退出移动版