基于RNN,LSTM,GRU对黄金期货的时间序列研究

目录

一、 背景介绍

二、 原理介绍

2.1模型原理

RNN模型介绍

2.LSTM模型介绍

三、 实验论证

3.1 数据预处理

3.2 模型的评价指标

3.3 实验模型设置

3.4 实验数据和超参数设置

3.5 模型性能评估和实验结果比较

3.5.1 LOSS图像:

3.5.2 三种模型MSE,RMSE,MAE、R^2值比较

3.5.3 最终拟合情况可视化三种模型比较

3.5.4  以LSTM为例最终预测值可视化

四、实验结论


一、 背景介绍

黄金期货是交易市场上的一个投资品种,不管是对套期保值,还是维护金融稳定等,都有着很重要的作用,对其价格波动进行预测也极具现实意义

在预测方法上可分成传统预测模型和非线性预测模型。传统预测模型包含ARIMA模型(移动平均自回归模型)、GARCH模型 ( 自回归条件异方差模型)、指数平滑模型等,并在黄金价格预测研究上取得了很大进步。比如在2014年,Sharma A M和Baby S运用ARIMA模型对印度的黄金价格进行预测分析传统预测模型的各项研究均证明了其在预测黄金价格的走势或动态特征方面是有效的,但是,鉴于黄金期货价格时间序列具有非线性及高噪声的数据特征,对其精确预测依旧十分困难,同时由于时间的动态变化,使得自变量和因变量二者之间的关系也会随之发生变动,因此传统时间序列模型很难精准得对黄金期货市场进行预测。

近年来,随着计算机硬件水平提升得越来越快,对神经网络的研究也逐渐深入,由此非线性模型逐渐取代了时间序列模型在黄金期货预测方面的应用,非线性预测模型包括基于ANN模型(人工神经网络模型)及其演化的各种模型,如BPNN、SVR模型(支持向量回归模型)、DNN模型(深层神经网络模型)及其演化的各种模型,如CNN、 RNN等。 2010年曾濂等人提出了一种基于BP神经网络的改进模型,研究首先使用定性分析找到伦敦黄金期货价格变动的影响因素,然后利用投影寻踪方法筛选出非线性因素中影响力最大的因素输入神经网络,并改进算法进行网络学习,最后训练得出所需的BPNN。基于浅层神经网络对黄金期货价格及趋势进行预测的研究较之深层神经网络的要多,包括ANN模型,基于GA-BP神经网络和SVR模型等等。

近年来,LSTM模型(Long-Short Term Memory)和GRU模型(Gate Recurrent Unit)开始逐步应用在金融序列预测问题上,众多研究者开始利用LSTM模型对股票市场进行建模预测,2015年,Chen等人将其运用于我国股票市场的股价预测,相较于其他预测模型,LSTM的预测效果得到了大幅提升。多个应用LSTM模型的金融序列预测,都获得了更佳的预测效果,但目前应用在黄金期货市场预测上的研究成果相对较少。

综上所述,为了寻找一种更合适的黄金期货价格预测方法,建立了RNN,LSTM,GRU预测模型。以ZGQ1黄金期货价格序列为研究对象,先将原始黄金期货价格序列进行归以化处理,然后进行不同参数下模型的比较,最后,选择出最适应归一化数值下的参数模型,输出预测的结果。结果表明,LSTM模型具有更高的精度,也验证了模型有效性

二、 原理介绍

传统的黄金期货价格预测模型不能充分描述黄金期货价格很强的非线性、非平稳性和高噪声的特点,因此在预测问题上存在许多困难,而神经网络能够发现并刻画数据自身复杂的内部结构特征,也能自适应得学习和构建数据的非线性的复杂关系,不会对输入变量施加限制,也具备更好的迁移学习(transfer learning)性质,因此非常适合处理如黄金期货价格这样的金融数据。其中LSTM模型更是经由丢弃和保留的机制有效解决了梯度反传进程中产生的梯度消失与梯度爆炸问题。相比单层LSTM,双层LSTM更容易进行训练,能够很大程度上提高训练效率。因此,本文建立了基于RNN,LSTM和GRU的三个预测模型,三个模型仅基于相关黄金期货价格的时间序列数据,不考虑其他影响因素,因此有效地消除了数据输入变量和模型参数的不确定性

2.1模型原理

  1. RNN模型介绍

循环神经网络( Recurrent NeuralNetwork, RNN)是一种用于处理序列数据的神经网络。相比一般的神经网络来说,RNN模型能够处理序列变化的数据。比如某个单词的意思会因为上文提到的内容不同而有不同的含义,RNN模型就能够很好地解决这类问题。

基于RNN,LSTM,GRU对黄金期货的时间序列研究_第1张图片

图2-1-1-1普通RNN的主要模型

(两个输入: ①x为当前状态下数据的输入,②h表示为上一个节点的输入;

两个输出: ③y为当前节点状态下的输出,④h’表示为传递到下一个节点的输出)

基于RNN,LSTM,GRU对黄金期货的时间序列研究_第2张图片

图2-1-2-2 序列形式输入的RNN模型

2.LSTM模型介绍

LSTM网络模型,最早由Hochreiter和Schmidhuber(1997)提出。LSTM模型能够解决长序列训练过程中的梯度消失和梯度爆炸问题,即相比传统的RNN模型,LSTM模型能够在更长的时间序列中有更好的表现。

基于RNN,LSTM,GRU对黄金期货的时间序列研究_第3张图片

图2-1-2-1 传统RNN模型与LSTM模型对比

(LSTM模型三个输入: ①x_t为当前状态下数据的输入,②h_(t-1)表示为上一个节点的输入;c_(t-1)为上个节点的单元状态

三个输出: ④y_t为当前节点状态下的输出,h_t表示为传递到下一个节点的输出,⑥c_t表示为传递到下一个节点的状态值)

基于RNN,LSTM,GRU对黄金期货的时间序列研究_第4张图片

图2-1-2-2 LSTM单个神经元结构

LSTM每一个神经元的结构如图所示,其内部包括一个细胞状态(Cell) 和三个门控(Gates) 设置,细胞状态(Cell) 记录神经元状态,综合隐藏和时间步的事件,通常是经由三种门控机制实现这类记忆方式,即输入门(Input Gate)、遗忘门(Forget Gate)和输出门(Output Gate)。输入门门和输出门用来接收、输出和修正参数。

遗忘门(Forget Gate)决定了上一时刻的单元状态 c_t-1 有多少保留到当前时刻 c_t;

输入门(Output Gate)决定了当前时刻网络的输入 x_t 有多少保存到单元状态 c_t;

输出门(output gate)控制单元状态 c_t 有多少输出到 LSTM 的当前输出值 h_t。

(σ为sigmoid函数前馈网络层,tanh表示双曲正切函数前馈网络层,⊗表示点乘,⊕表示向量拼接。经由拼接向量乘.上权重矩阵之后,再经由激活函数转换来作为一种门控状态。)

首先计算t时刻下遗忘门(Forget Gate)的激活状态f_t值:

其次计算t时刻下输入门(Input Gate)i_t的值和输入细胞的候选状态 C~_t的值,公式如下:

基于RNN,LSTM,GRU对黄金期货的时间序列研究_第5张图片

由以上计算可以得到t时刻下的细胞状态(Cell) 的更新值Ct,公式如下:

在计算得到细胞状态(Cell) 更新值后,最后就可以计算输出门(Output Gate)的值,其计算公式如下:

基于RNN,LSTM,GRU对黄金期货的时间序列研究_第6张图片

则通过上述计算,LSTM就可以确定最终的输出值。

3.GRU模型介绍

GRU(Gate Recurrent Unit)是循环神经网络(Recurrent Neural Network, RNN)的一种。和LSTM(Long-Short Term Memory)一样,也是为了解决长期记忆和反向传播中的梯度等问题而提出来的(2014)。相比LSTM,使用GRU能够达到相当的效果,并且相比之下更容易进行训练,能够很大程度上提高训练效率,因此很多时候会更倾向于使用GRU。

基于RNN,LSTM,GRU对黄金期货的时间序列研究_第7张图片

图2-1-3 GRU的输入输出结构

(两个输入: ①X_t为当前状态下数据的输入,②h_t-1表示为上一个节点的输入;

两个输出: ③y_t为当前节点状态下的输出,④h_t表示为传递到下一个节点的输出。

GRU的输入输出结构与普通的RNN是一样的)

基于RNN,LSTM,GRU对黄金期货的时间序列研究_第8张图片

图2-1-3-2 LSTM与GRU模型对比

GRU是新一代RNN,与LSTM非常相似。GRU不使用单元状态,而是使用隐藏状态来传输信息。它也只有两个门,一个重置门(reset gate)和一个更新门(update gate)

更新门的作用类似于LSTM的遗忘和输入门。它决定要丢弃哪些信息和要添加哪些新信息。重置门是另一个用来决定要忘记多少过去的信息的门。由于GRU的张量操作较少,因此,他们的训练速度更快。

三、 实验论证

本文数据来源于相关财经网站,选取了中国黄金期货历史价格,从1979年12月27日到2021年6月25日共42年10538个数据。

3.1 数据预处理

载入数据,解读数据:

通过上图所示的数据描述我们可以知道此份数据较为精准,因此本次实验不展现异常数据处理。

基于RNN,LSTM,GRU对黄金期货的时间序列研究_第9张图片

图3-1-1 数据整体内容

基于RNN,LSTM,GRU对黄金期货的时间序列研究_第10张图片

图3-1-2 数据样例展示

基于RNN,LSTM,GRU对黄金期货的时间序列研究_第11张图片

图3-1-3 数据的描述

基于RNN,LSTM,GRU对黄金期货的时间序列研究_第12张图片

图3-1-4 数据可视化展示

在序列进行量化分析前,对数据做日期索引转换操作。

基于RNN,LSTM,GRU对黄金期货的时间序列研究_第13张图片

图3-1-5 转换后的数据类型和样例展示

3.2 模型的评价指标

对于黄金期货价格这类数据规模及范围不是非常大的情况,实验模型的预测性能评价指标采用均方误差(MSE),均方根误差(RMSE),平均绝对误差(MAE)、拟合度(R^2)对实验结果进行对比。MSE,RMSE,MAE的值越小证明我们的精度越高,而R^2越接近1证明我们的模型正确性越高,其中MSE,RMSE,MAE、R^2的计算公式如下:

基于RNN,LSTM,GRU对黄金期货的时间序列研究_第14张图片

基于RNN,LSTM,GRU对黄金期货的时间序列研究_第15张图片

基于RNN,LSTM,GRU对黄金期货的时间序列研究_第16张图片

基于RNN,LSTM,GRU对黄金期货的时间序列研究_第17张图片

其中yi,Y^i: 分别代表实际值与预测值,m代表预测窗宽.

3.3 实验模型设置

经过是实验参数的选择,在不同神经元和不同神经网络层的情况下对训练集和测试集进行预测,结果显示第一层输入神经元为64,第二层输入神经元为32,输出层为一个输出神经元的情况下预测结果最佳,效率最高。

RNN模型图:

基于RNN,LSTM,GRU对黄金期货的时间序列研究_第18张图片

图3-3-1 RNN模型图

LSTM模型图:

基于RNN,LSTM,GRU对黄金期货的时间序列研究_第19张图片

图3-3-2 LSTM模型图

GRU模型图:

基于RNN,LSTM,GRU对黄金期货的时间序列研究_第20张图片

图3-3-3 GRU模型图

以LSTM为例,不同神经元和不同神经网络层预测情况如下:

基于RNN,LSTM,GRU对黄金期货的时间序列研究_第21张图片

图3-3-4 LSTM单层神经网络不同输入神经元预测情况

基于RNN,LSTM,GRU对黄金期货的时间序列研究_第22张图片

图3-3-5 LSTM双层神经网络不同输入神经元预测情况

可以看出单层的神经网络的预测效果均不理想,而双层的结构当一层输入神经元为64,第二层为32时,效果最佳,效率最高。

3.4 实验数据和超参数设置

在模型初步建立后,为了使模型更适合本数据,以时间序列步长单位为5,即5个数据预测下一个数据,训练集(Train Set)和测试集(Tset Set)按照8:2的比例划分,此时模型在测试集上可得到最佳预测效果。根据数据量,本次实验将数据以126为单位进行批量封装。由于数据量并不是很大,测试集作为验证集(ValidationSet),负责训练模型的召回率和准确率。

不同的时间序列步长和训练集测试集不同划分比例,批量封装的预测效果如下:

基于RNN,LSTM,GRU对黄金期货的时间序列研究_第23张图片

图3-4-1 双层LSTM不同的时间序列步长预测情况

可以看出本次的数据步长依赖不大,所以步长单位设为5即可;

基于RNN,LSTM,GRU对黄金期货的时间序列研究_第24张图片

图3-4-2 双层LSTM训练集测试集不同划分比例预测情况

训练集和测试集的比例以0.8-0.9效果为最佳,因为过少的训练集不利于数据预测;

基于RNN,LSTM,GRU对黄金期货的时间序列研究_第25张图片

图3-4-3 双层LSTM训练集测试集不同的批量封装预测情况

batch_size过小,花费时间多,同时梯度震荡严重,不利于收敛; batch_size过大,不.

同batch的梯度方向没有任何变化,容易陷入局部极小值。

3.5 模型性能评估和实验结果比较

本实验采用双层网络,第一层输入神经元为64,第二层神经元为32的RNN,LSTM,GRU模型来进行对比试验,通过比较MSE,RMSE,MAE、R^2的数值,LOSS可视化图像,和最终拟合情况的可视化图表,以及最终预测值来进行优劣评判。

3.5.1 LOSS图像:

基于RNN,LSTM,GRU对黄金期货的时间序列研究_第26张图片

3-5-1-1 RNN_LOSS图

基于RNN,LSTM,GRU对黄金期货的时间序列研究_第27张图片

图3-5-1-2 LSTM_LOSS图

基于RNN,LSTM,GRU对黄金期货的时间序列研究_第28张图片

图3-5-1-3 GRU_LOSS图

从上图可以看出当epochs到达第20次三个模型均有了较好的收敛效果。有所不同的是LSTM模型的收敛速度更快,效果也更佳

3.5.2 三种模型MSE,RMSE,MAE、R^2值比较

从下图可以看出三种模型中,对于本次数据集来说,LSTM具有更好的预测精度。

基于RNN,LSTM,GRU对黄金期货的时间序列研究_第29张图片

图3-5-2 不同模型MSE,RMSE,MAE、R^2值比较

3.5.3 最终拟合情况可视化三种模型比较

从下图的可视化我们可知,LSTM模型具有更佳的预测精度。

基于RNN,LSTM,GRU对黄金期货的时间序列研究_第30张图片

图3-5-3-1 RNN_拟合图

基于RNN,LSTM,GRU对黄金期货的时间序列研究_第31张图片

图3-5-3-2 LSTM_拟合图

基于RNN,LSTM,GRU对黄金期货的时间序列研究_第32张图片

图3-5-3-3 GRU_拟合图

3.5.4  以LSTM为例最终预测值可视化

基于RNN,LSTM,GRU对黄金期货的时间序列研究_第33张图片

图3-5-4-1 LSTM预测可视化

四、实验结论

对于黄金期货市场来说,只要知道近期黄金期货的走势以及价格,就对投资者的选择带来有价值的参考。本文将深度学习方法应用在黄金期货价格预测方面,可以看出LSTM神经网络既承继了RNN在处理序列问题上的优点,又进一步提升了时间序列数据的高精度的预测结果。通过对黄金期货价格数据进行归一化等预处理操作后实现对中国黄金期货价格序列的分析预测,通过观察双层RNN模型、单层LSTM模型、双层LSTM模型、双层GRU模型表现,可以发现双层LSTM模型在黄金期货价格预测方面有较好的使用前景。


一些不太重要的个人碎碎念:

首先,我的本次课设终于结束了,开心!

接着就是感觉自己终于入了深度学习的门,LSTM在我还没上大学的时候,就在某所里看过某研究生大哥搞过,终于也轮到了自己来实际操作了。

非常唏嘘的是,今年年初的时候是非常想开始尝试写一篇论文的,但是非常煎熬的是由于各种原因,俺太菜了,俺时间排不开了等等,计划告败

终于是到了期末课设老师逼的。

这几天其实一直在肝,从6.28考完试,差不多三四天,入门学习,写demo啦,和老师交流意见再改代码了,永远陪伴的咖啡牛奶。

比较好笑的一件事情就是我和我的舍友一直在熬夜,前天我两点半睡,她三点睡,昨晚我三点睡,她四点...然后第二天八点还得去图书馆占座学习。.所以我没有觉得自己太辛苦啦,因为比我辛苦比我努力的人有好多,只是觉得自己不想太差劲这样。

绕回来这次课设,我觉得我非常满意的是,这是我自己感兴趣的课题,数据集也是自己去财经网站扒拉下来的,也非常臭屁的和老师吹牛"绝对没有人像我一样数据集里有今年六月的",我的实验结果也真的非常令我满意,精度非常高。这点也得到了老师的认可hhh

我以后可以跟着自己的预测买一下看中的基金和股票了,IT技术_金融果然yyds

还有一点就是非常感谢我的指导老师小苏同志,谢谢他非常耐心的一对一指导了我的实验,谢谢他非常耐心的跟我说不用怕把问题暴露给他,谢谢他愿意告诉我怎么修正问题,完善代码。非常感动的就是昨晚有个bug改晕了,小苏老师打了个电话给我,跟他交流后果然大受启发,最终在回宿舍前解决了问题。

还有就是谢谢某群的大佬们,为我的bug提供了很多种解决思路和方法,全世界的互联网打工人都团结在一起了!

感谢一下我自己吧,活下去了。哈哈哈,只要活着就是有希望的,谁说不是呢!

接下来的日子好好加油。

深度学习+计算视觉领域应用见~


 

你可能感兴趣的:(python-信息分析与预测,深度学习,tensorflow,lstm,机器学习,rnn)