Advances in Applied Mathematics 应用数学进展, 2020, 9(6), 871-880 Published Online June 2020 in Hans. http://www.hanspub.org/journal/aam https://doi.org/10.12677/aam.2020.96104
Gold Price Prediction Based on Long Short-Term Memory Network
Ming Yan1*, Dongxi Li2
12
Received: May 28th, 2020; accepted: Jun. 12th, 2020; published: Jun. 19th, 2020
School of Mathematics, Taiyuan University of Technology, Jinzhong Shanxi School of Big Data, Taiyuan University of Technology, Jinzhong Shanxi
Abstract
Accurate prediction of gold price is helpful for investors to understand the gold market and pro-vide scientific and effective reference for them to make correct investment decisions. Therefore, it is particularly important to improve the prediction accuracy of gold price. This paper presents a gold price forecasting method based on Long Short-term memory network (LSTM) model. This method combines the gold price data, uses LSTM model to generate training model, and finally realizes the prediction of gold price. The results show that this method is feasible and effective, and has higher prediction accuracy than BP neural network and SVR intelligent prediction.
Keywords
Gold Price, Long Short-Term Memory Network (LSTM), Short-Term Prediction, Long-Term Prediction
基于长短期记忆网络的黄金价格预测
闫 铭1*,李东喜2
12
太原理工大学数学学院,山西 晋中 太原理工大学大数据学院,山西 晋中
收稿日期:2020年5月28日;录用日期:2020年6月12日;发布日期:2020年6月19日
摘 要
精确的预测黄金价格,有助于投资者了解黄金市场的行情,并对他们做出正确的投资决策提供了科学有效的参考,因此,提高黄金价格的预测精度显得尤为重要。本文提出了一种基于长短期记忆网络(LSTM)
*
通讯作者。
文章引用: 闫铭, 李东喜. 基于长短期记忆网络的黄金价格预测[J]. 应用数学进展, 2020, 9(6): 871-880. DOI: 10.12677/aam.2020.96104
闫铭,李东喜
模型的黄金价格预测方法。该方法结合黄金价格数据,利用长短期记忆网络生成训练模型,最终实现对黄金价格的预测。结果表明,本文的方法可行有效,较BP神经网络和SVR智能预测拥有更高的预测精度。
关键词
黄金价格,长短期记忆网络(LSTM),短期预测,长期预测
Copyright ? 2020 by author(s) and Hans Publishers Inc.
This work is licensed under the Creative Commons Attribution International License (CC BY 4.0). http://creativecommons.org/licenses/by/4.0/
Open Access 1. 引言
在如今的国际金融体系中,由于黄金的非货币化,各国逐渐放松了对黄金的管制,于是全球黄金市场得到了极大的发展,已经成为与股票市场、期货市场、债券市场、外汇市场等并列的金融投资市场。作为一种金融产品,黄金价格的动态变化,是经济行为主体在金融市场中投资决策过程的具体反映,黄金价格的预测更是众多投资者和学者讨论的热点话题[1] [2] [3]。但在实际中,黄金价格受到供求关系、美元汇率、石油价格、通货膨胀率、国际形势、股票、债券等因素的影响,形成一种复杂的非线性过程,很难得到精确的预测。国内外学者在黄金价格预测方面做出了众多成果,使用了不同的方法:文献[4]使用BP神经网络对黄金价格进行预测和分析,得出了精度较高的预测结果。然而BP神经网络的滚动优化算法的收敛速度较慢,且多目标优化能力不强,难以摆脱决策过程中的随机性和模糊性。文献[5]引入SVR智能预测方法对黄金价格进行预测研究,并通过引入网络搜索法对SVR模型的最优参数进行寻找,从而构建了最优的SVR智能预测模型,结果表明该模型具有优越的学习性能与泛化推广性能,能够较准确地预测黄金价格。但是这些传统的方法只是对黄金价格进行小数据量的分析,导致预测精度低、速度慢且效率低下。随着大数据的深入研究,将长短期记忆网络(LSTM)用于价格指数的预测,能满足用户对实时数据处理的需求。
黄金价格不但具有非线性,而且具有动态特性,即系统的输出不仅与当前时刻的输入有关,还与过去的输入有关。作为一种特殊的循环神经网络,长短期记忆网络(LSTM)不但具有“记忆性”,适合处理带“序列”性质的数据,如时间序列数据、每天的股价走势情况等,同时采用特殊的结构取代原始网络中的隐藏层单元,采用“累加”的形式,避免了循环神经网络中的梯度消失和梯度爆炸[6] [7]。目前,LSTM已经被应用于声音识别[8],视频分类[9]、语音理解[10]等诸多前沿领域中。
2. 长短期记忆网络
长短期记忆网络是一种时间递归神经网络,适合于处理和预测时间序列中间隔和延迟相对较长的问题。目前,长短期记忆网络已经在科技领域有了诸多应用:基于长短期记忆网络可以进行语言翻译、控制机器人、图像分析、语音识别、手写识别。2015年,谷歌通过基于CTC训练的长短期记忆网络程序大幅提升了安卓手机和其他设备中语音识别的能力;苹果的iPhone在QuickType和Siri中使用了长短期记忆网络;微软不仅将长短期记忆网络用于语音识别,还将这一技术用于虚拟对话形象生成和编写程序代码等[11] [12] [13]。
2.1. 长短期记忆网络模型结构及网络原理
长短期记忆网络(Long Short-term Memory, LSTM)是一种特殊的循环神经网络。之所以说它是特殊的RNN,是因为它本身不是一个独立存在的网络结构,而是由LSTM特殊的结构单元取代循环神经网络的
DOI: 10.12677/aam.2020.96104
872
应用数学进展
闫铭,李东喜
隐藏层单元部分。在LSTM中,不同时间点之间的网络存在连接,而不是单个时间点处的网络存在前馈或反馈。
Figure 1. Unit structure diagram of LSTM 图1. 长短期记忆网络单元结构图
从图1可以看出:一个LSTM单元包含了一个细胞状态(Memory Cell)、一个模型输入和三个门信号。其中,细胞状态是LSTM的核心思想,是整个模型的记忆空间。LSTM模型共有四个输入,分别是:模型输入(Input)、输入门(Input gate)、输出门(Output gate)和遗忘门(Forget gate),而普通神经网络只有一个输入,因此LSTM的参数量是它们的4倍。其中Input gate, Output gate, Forget gate是三个门信号,用来选择性处理数据,通过Sigmoid函数和点乘操作实现,Sigmoid的取值介于0和1之间,点乘则决定了传送的信息量。因此当门信号的取值为0时代表完全关闭,1代表完全打开。
2.2. 长短期记忆网络模型的训练算法
长短期记忆网络模型的训练算法包括信号的正向传播和误差的反向传递两部分。
Figure 2. Structure chart of LSTM
图2. 长短期记忆网络结构图
DOI: 10.12677/aam.2020.96104
873
应用数学进展
闫铭,李东喜
2.2.1. 信号的正向传播
根据图2,我们可以清楚地看到输入节点和门信号的功能:
1) 输入节点:接受当前时刻的样本输入和上一时刻隐层单元的输出。
2) 遗忘门:用来决定前一时刻Memory Cell中的信息是否会被保留下来。当遗忘门的输出为1时,前一时刻Memory Cell中的信息会被保留下来;当遗忘门的输出为0时,前一时刻Memory Cell中的信息就会被遗忘。简单地说,遗忘门的作用是刷新Memory Cell的状态,控制Memory Cell的上一状态对当前状态的影响。公式为:
ft=σ(Wf?[ht?1,xt]+bf) (1)
其中:ht?1是(t ? 1)时刻的输出,xt是t时刻本层的输入,Wf是各个变量的权重,bf是截距项,σ是遗忘门的Sigmoid函数,ft是0~1之间的数。
3) 输入门:更新细胞状态中的存储信息。具体分为3步计算:第1步决定输入节点的激活值有多少会被保留下来,可以看到输入门的Sigmoid函数会和输入节点的激活值相乘,组成LSTM中Memory Cell的一部分。我们知道,在序列输入中,并不是每个信息都同等的重要,当输入的信息有用时,输入门的输出为1,输入节点的值可以全部输入进去;当输入的信息完全无用时,输入门的输出为0,此时输入节点的信息对internal state没有任何影响。第2步根据tanh函数创建新向量,添加到细胞状态中。第3步用旧的细胞状态乘以遗忘门ft,然后再加上新的输入信息,更新当前的细胞状态。公式为:
σ(Wi?[ht?1,xt]+bi) (2) it=?=tanh(W?[h,x]+b) (3) CtCt?1tC? (4) Ct=ft?Ct?1+it?Ct?表示从t时刻输入的信息中提取出来要记住的信息,C表示(t ? 1)时刻其中:tanh为正切激励函数,Ct?1t的细胞状态值,Ct表示更新后的细胞状态值,it是0~1之间的数。
4) 输出门:先使用Sigmoid函数决定输出多少信息量,然后使用tanh函数决定当前Memory Cell中有多少信息会被输出,可以看到输出门会和Memory Cell的值相乘,当输出门的输出为1时,Memory Cell的值会被完全输出;当输出门的输出为0时,Memory Cell的值就不会被输出。公式为:
Ot=σ(WO?[Ht?1,xt]+bO) (5)
h=Ot?tanh(Ct) (6) t其中:Ot是0~1之间的数。 2.2.2. 误差的反向传递
对模型进行训练的关键在于权重矩阵W和截距项b的不断调整,目的是使得网络的输出误差在选定的损失函数下越小越好,而参数的更新主要通过反向传播的链式求导得到。因此反向传播的目的就是求预测误差关于所有参数的梯度,在LSTM模型中,共有五个部分。其类似于BPTT算法[14]。总梯度为:
t?ET?E (6) =∑t=0?W?W3. 实证研究和结果分析
3.1. 实验数据
为了方便比较和分析,从英为财情官网下载每日黄金期货(GCZ8)数据。把这些数据先从影响因素上
DOI: 10.12677/aam.2020.96104
874
应用数学进展
闫铭,李东喜
分为单因子(最高价)和多因子(开盘价、收盘价、最高价、最低价)两部分,再从时间上分为短期数据(2008/10/22~2018/10/22)和长期数据(1990/06/22~2018/10/22),从而建立4个数据集,表1列出了这些数据集的特征。
Table 1. Summary of experimental data 表1. 实验数据汇总
序号 1 2 3 2
数据集 Short_1 Short_1 Long_1 Long_2
样本个数 2586 2586 7189 7189
时间范围 2008/10/22~2018/10/22 2008/10/22~2018/10/22 1990/06/22~2018/10/22 1990/06/22~2018/10/22
变量数目 1个(最高价)
4个(开盘价、收盘价、最高价、最低价)
1个(最高价)
4个(开盘价、收盘价、最高价、最低价)
3.2. 长短期记忆网络模型单因子预测
3.2.1. 实验步骤
1) 数据预处理
读入黄金期货数据,对其进行标准化处理,消除量纲带来的影响。一般数据标准化的步骤为:先求
xij?xi,其中zij为标准化出各变量的算术平均值(数学期望) xi和标准差si;再进行标准化处理:zij=si后的变量值,xij为实际变量值。
接下来定义模型训练时调节的主要参数,主要包括: 批大小(batch_size)、隐层节点数(rnn_unit)、模型的时间步长(time_step)等。
① 批大小是指进行梯度下降时每一批包含的样本数,在训练的时候每批的样本会被计算一次梯度下降,使目标函数被优化一步。它可以决定梯度下降的方向,比如一个极端情况为batch_size等于1,每次参数更新的方向都是各自样本梯度下降的方向,目标函数的优化就难以收敛。
② 隐层节点数(rnn_unit)反映隐藏层内部映射和输出维度。隐层神经元个数的选择对于模型预测效果有着非常重要的影响,如果隐层神经元的个数太少,那么模型就无法很好地提取数据特征,其预测效果也很差;如果神经元个数太多,就会造成模型在训练集表现很好,但在测试集上反而表现很差,即过拟合。
③ 模型的时间步长反映的是模型最多可以记忆多长的时间,如果LSTM的时间步长为10天,即LSTM最多可以记忆10天的时间,那么第11天的黄金期货价格与前10天的价格有关。
本文定义时间步为20,每批次训练60个样例,隐层节点数为10,输入为1维数据,输出为1维数据。
2) 长短期记忆网络的定义与训练
在定义LSTM模型之前,先对神经网络的变量进行定义,如定义输入权重,输入偏差等。然后通过之前定义的输入维度,输出维度定义LSTM神经网络,再对其进行训练。训练的目的是不断调整权重和偏差项,使得最终的均方误差降到最低。最后对模型分别训练1000次、2000次、3000次、4000次和5000次,比较最终的结果。
3) 黄金期货价格的预测
使用训练好的LSTM模型,得到下一日黄金价格的预测值并与实际值比较。
DOI: 10.12677/aam.2020.96104
875
应用数学进展