基于神经网络的黄金、外汇价格预测(RNN、LSTM、GRU、CNN+LSTM、BP)

价格预测研究分析

价格预测作为一种复杂的回归问题,可以使用神经网络模拟其复杂的函数表示来解决,对黄金和外汇而言,它们在未来某一时间节点的价格与历史数据存在着紧密的联系,具备极强的时间关联性,对这种与时间关联的数据的预测任务进行研究,首先考虑选取循环神经网络作为研究方向。
对于回归问题,一般首选简单的BP网络作为研究方向,而在对序列化数据的处理中,循环神经网络(RNN)是非常高效的深度学习模型,RNN的变体,长短时记忆(LSTM)网络和门控循环单元(GRU)在这一领域中也应用广泛。因此,在循环神经网络的研究方面,RNN、LSTM和GRU网络都可以作为研究的方向。其次,由于预测使用的数据集极其庞大,在使用LSTM网络进行预测前首先使用CNN进行特征提取,可以提高模型的训练效率,故而CNN+LSTM的方案也具有研究价值[1][2]。
在真实的市场环境中,价格预测模型需要根据系统获得的数据实时更新,以确保预测的准确度,为了提高系统的用户体验度,价格预测功能需要使用训练模型速度最快、模型预测拟合效果最好的网络作为预测模型。我们首先对RNN、LSTM、GRU、BP、CNN五种神经网络的基础理论展开研究,分析它们各自的特点,讨论其优点和不足,从而为价格预测模型的选取提供参考。

价格预测理论研究

循环神经网络RNN的主要用途是处理和预测序列数据,强调时间的先后顺序,认为后续的值是由前者和一些其他参数概率决定的,这一观点与黄金外汇价格的变化是吻合的,RNN的网络结构以及将它展开后的网络结构如图1所示。由于RNN自身存在梯度爆炸和梯度消失的问题,将RNN应用到黄金外汇价格预测中的时候,网络的复杂程度会影响其预测的效果,为了满足价格预测的准确性和高效性,我们需要通过实验对其性能进行验证[3]。
基于神经网络的黄金、外汇价格预测(RNN、LSTM、GRU、CNN+LSTM、BP)_第1张图片
长短期记忆网络LSTM是一种时间循环神经网络,是为了解决一般的RNN存在的长期依赖问题而专门设计出来的[4][5]。LSTM 与RNN结构相似,都具有重复的结构模块,但是这两种网络重复的模块拥有不同的结构。LSTM的基本结构如图2所示。LSTM继承了大部分RNN模型的特性,并在RNN的基础上对循环结构进行了改进,这种改进解决了梯度反传过程由于逐步缩减而产生的梯度消失问题,在解决黄金外汇价格预测的问题上,梯度消失问题的解决能够减少训练损失,在预测精度上LSTM或许会比RNN精准一些,但LSTM的预测效果究竟如何,还需要通过实验验证才能得出结论。
基于神经网络的黄金、外汇价格预测(RNN、LSTM、GRU、CNN+LSTM、BP)_第2张图片
GRU是LSTM网络的一种效果很好的变体,它较LSTM网络的结构更加简单,而且效果也很好,因此也是当前非常流形的一种网络。GRU既然是LSTM的变体,因此也是可以解决RNN网络中的长依赖问题,GRU变体的结构如图3所示。GRU 去除掉了LSTM中的细胞状态,使用隐藏状态来进行信息的传递。它只包含重置门和更新门两个门。GRU的两个门控机制的特殊之处在于,它们能够保存长期序列中的信息,且不会随时间而清除或因为与预测不相关而移除。与 LSTM 相比,GRU 参数更少因此更容易收敛,但是数据集较大的情况下,LSTM表达性能更好。在黄金外汇价格预测问题中,数据集较为庞大,使用GRU的效果可能不如LSTM,但数据集的大小是相对的,无法精确到具体的值,所以GRU真正的性能如何还需要通过实验验证才能得出结论。
基于神经网络的黄金、外汇价格预测(RNN、LSTM、GRU、CNN+LSTM、BP)_第3张图片
时间可以被看作一个空间维度,对于时间序列的处理问题,这种一维卷积神经网络的效果有时可以媲美循环神经网络,而且计算代价通常要小很多。但一维卷积神经网络分别处理每个输入序列段,所以它对时间步的顺序不敏感这一点与循环神经网络不同。在时序问题上,单独使用CNN并不能达到最优的处理效果,但由于一维卷积神经网络的计算代价很小,所以在LSTM之前使用一维卷积神经网络作为预处理步骤是一个好主意,这样可使序列变短,并提取出有用的表示交给LSTM来处理。
BP网络又称反向传播神经网络,是一种简单而且有效的神经网络结构,它通过样本数据的训练,不断修正网络权值和阈值使误差函数沿负梯度方向下降,逼近期望输出。它是一种应用较为广泛的神经网络模型,多用于函数逼近、模型识别分类、数据压缩和时间序列预测等。在黄金外汇价格预测问题上,轻量级的BP网络也许能够提高模型训练的速度,但由于其网络结构的复杂度不高,在价格预测这种相对复杂的函数表示方面,BP网络能否出色地完成任务也需要通过实验来验证。

价格预测模型选取

基于对循环神经网络、CNN、BP网络结构的理论分析,我们进行了价格预测模型选取实验以选取性能最优的网络结构。在价格预测模型选取实验的设计中,我们将RNN、LSTM、GRU、BP和CNN+LSTM这5种神经网络作为系统价格预测模型的预选方案并对其性能进行对比,根据对比结果选取性能最优的模型作为系统价格预测的最终模型。实验开始前,我们设计并实现了价格预测模型选取函数train_mode(),该函数的程序框图如图4所示。经过train_model()函数的耗时最短和损失较低的两方面选择后发现,bp网络可以作为最佳的预测模型。
基于神经网络的黄金、外汇价格预测(RNN、LSTM、GRU、CNN+LSTM、BP)_第4张图片

价格预测模型验证

由于train_model()函数种的模型对比过程较为简单,为了验证选取的价格预测模型能够达到预期效果,我们的模型验证阶段分两步完成。在第一阶段的模型验证中,我们设计并实现了验证函数test_model()。通过向test_model()函数传入验证集来验证train_model()函数选出的预测模型的预测效果。test_model()的设计如图5所示。
基于神经网络的黄金、外汇价格预测(RNN、LSTM、GRU、CNN+LSTM、BP)_第5张图片
随后,我们随机选取了18组真实的黄金和外汇数据作为验证集。验证集数据经过数据处理后,划分为18个验证用的训练集(x_train,y_train)和与之对应的18个验证用测试集(test_data),分别将这18个验证集得到的训练集和测试集作为参数传入test_model()函数,使用train_model()选取的bp网络对数据进行训练,最终得到18组预测值(CLOSE属性的预测值)与真实值之间的价格对比折线图,根据这些价格对比折线图可以直观地展示出bp模型的预测效果。18组验证集的预测值与真实值之间的价格对比折线图如图6所示。
基于神经网络的黄金、外汇价格预测(RNN、LSTM、GRU、CNN+LSTM、BP)_第6张图片
由18组验证集预测值(CLOSE属性的预测值)与真实值的对比图可知,bp网络模型的预测准确度符合作为价格预测模型的准确度要求。为了进一步说明这一点,我们又分别在OPEN、HIGH、LOW三个属性上进行预测,结果如表1所示。经统计,从整体上看,bp网络模型的预测效果高拟合率约为0.82,较高拟合率约为0.18。OPEN属性的高拟合率约为0.94,较高拟合率约为0.06。HIGH属性的高拟合率约为0.72,较高拟合率约为0.28。LOW属性的高拟合率约为0.77,较高拟合率约为0.23。CLOSE属性的高拟合率约为0.83,较高拟合率约为0.17。由此可见,bp网络模型的预测准确度确实满足要求。
基于神经网络的黄金、外汇价格预测(RNN、LSTM、GRU、CNN+LSTM、BP)_第7张图片
为了确保选取的模型在不同数据集中都能够保证其预测的高效性,也为了验证其他模型的性能无法提高到与被选取的模型相同或超越被选取的模型,我们进行了第二阶段的模型验证,在这一阶段中,我们选择了真实的黄金和外汇数据中具有代表性的两个数据集(AUDJPY和EURCHF)作为验证对象,并在详细设计的5种网络的训练和预测结果的基础上,分别搭建了它们的单层、2层、3层、4层结构作为验证,通过综合对比模型的参数、训练的时间损耗、损失、预测结果的拟合程度等因素来验证train_model()函数选择的最佳模型性能是否满足需求。在AUDJPY和EURCHF两个数据集中,不同模型的表现如图7和图8所示。经过对比实验,验证了train_model()函数选择的单层bp模型的性能最优的结论,所以,系统的价格预测模型最终选择了单层bp网络结构。
基于神经网络的黄金、外汇价格预测(RNN、LSTM、GRU、CNN+LSTM、BP)_第8张图片
图7 AUDJPY数据集上的实验结果
基于神经网络的黄金、外汇价格预测(RNN、LSTM、GRU、CNN+LSTM、BP)_第9张图片
图8 EURCHF数据集上的实验结果

价格预测功能的详细设计与实现

由于价格预测模块使用的数据格式和内容与其他模块有所不同,所以需要价格预测模块对数据处理模块得到的原始数据进行处理,得到价格预测模块需要的训练集和测试集。这段程序的详细设计如程序框图18所示。
基于神经网络的黄金、外汇价格预测(RNN、LSTM、GRU、CNN+LSTM、BP)_第10张图片
完成数据处理后,价格预测模块需要对数据中的训练集进行训练从而得到预测模型,将测试集作为预测的输入,传递给预测模型进行预测,最后返回预测结果。这一阶段的详细设计如图19所示。
基于神经网络的黄金、外汇价格预测(RNN、LSTM、GRU、CNN+LSTM、BP)_第11张图片
根据价格预测模块的详细设计,首先实现价格预测模块的数据处理功能。在实现数据处理功能的编码过程中,关键的难点问题在于txt文件存储格式的转换问题,由于txt文件内存储的数据类型不一致,增加了文件格式转换的难度。文件格式转换部分的关键源码如图20所示。
基于神经网络的黄金、外汇价格预测(RNN、LSTM、GRU、CNN+LSTM、BP)_第12张图片
完成数据处理功能后,构建单层BP网络,对待预测数据集进行训练,生成对应的预测模型,最后基于这一预测模型,得到预测的结果。预测过程的部分源码如图21所示。
基于神经网络的黄金、外汇价格预测(RNN、LSTM、GRU、CNN+LSTM、BP)_第13张图片

结论基于神经网络的黄金、外汇价格预测(RNN、LSTM、GRU、CNN+LSTM、BP)_第14张图片

[1]乔若羽.基于神经网络的股票预测模型[J].运筹与管理,2019,28(10):132-140.
[2]李珍珍,吴群.基于LSTM神经网络的股票预测算法研究[J].福建电脑,2019,35(07):41-43.
[3]李勇. 基于深度神经网络的股票智能预测系统的设计与实现[D].西北大学,2019.
[4]林升. 基于LSTM的股票预测研究[D].广州大学,2019.
[5]赵凯. 基于BP神经网络的外汇自动交易系统的设计与实现[D]. 西安电子科技大学.

你可能感兴趣的:(AI,神经网络,mlp)