APP下载

基于CNN-BiGRU-Att融合模型的人民币汇率预测研究

2023-06-21陈秀明储天启

关键词:时序汇率波动

徐 伟,陈秀明,储天启

(阜阳师范大学 计算机与信息工程学院,安徽 阜阳 236037)

随着中国互联网行业迅速发展,其在金融业中也充当着一种日益关键的角色。近年来,我国实行汇率改革,由于对外贸易的顺差以及实体经济的蓬勃发展,人民币汇率浮动区间的扩大使得人民币开始对世界经济的变化更加敏感,远期外汇市场的稳定成为我国对外贸易中的重要一环。汇率的变化与国家宏观经济的发展、国内外重大事件的发生以及国际社会的舆论风波等都有关联,这导致汇率的波动有时会极其剧烈且突然。此外,由于汇率数据基数庞大,且一般呈非线性状,传统的机器学习算法,如支持向量机[1]、随机森林[2]、决策树[3]等,无法很好地对汇率走势进行预测。与之相对的,深度学习模型有着强大的拟合能力和学习能力[4],目前常用的有卷积神经网络和循环神经网络(RNN)的一些变种模型[5-7]。相比机器学习,深度学习模型可以更好地拟合出非线性数据的变化趋势,合理准确地对汇率的波动进行分析预测。

本文运用深度学习方法,对一段时间跨度内美元人民币汇率(USDCNY)的波动曲线进行分析,提出了一种基于注意力机制的CNN-BiGRU-Att汇率预测模型,该模型先使用一维卷积神经网络Conv1D挖掘数据的局部特征,再利用BiGRU来提取数据间的时序特征,同时引入注意力机制,加强对重要特征信息的关注,以提高模型的拟合性能。以外汇市场的最低价(low)、最高价(high)和开盘价(open)作为依据,以收盘价(close)作为预测目标,拟合真实值与预测值曲线,依据评价指标比较误差大小,且与CNN、GRU、BiGRU、CNN-GRU、CNN-BiGRU 等模型进行对比,验证了本文所采用的模型在汇率波动预测中具有一定的优越性。

1 基于Attention机制的CNN-BiGRU-Att汇率预测模型

为提高汇率走势预测的准确性,本文提出了一种基于Attention机制的CNN-BiGRU-Att汇率预测模型,总体框架如图1所示。模型主要由数据预处理模块和神经网络模块两部分组成,具备以下优点:使用26 277条浮动数据对模型进行训练和测试,大规模数据集可以使模型更准确地学习到数据特征,使拟合结果更符合汇率市场的真实变化情况;对数据集进行归一化[8]处理,将数据统一到[0,1)范围之间,不仅可以提升模型的收敛速度,而且有利于找到全局最优解;由Conv1D 提取数据的局部特征,再使用BiG‐RU双向提取数据的时序特征,并引入注意力机制进行特征权重的加权运算,使预测结果更贴合实际。

图1 基于Attention机制的CNN-BiGRU汇率预测模型

1.1 数据预处理模块

在训练神经网络之前,需要对数据进行一系列预处理操作,本文主要包括数据归一化、切分数据集和转换数据维度等流程。

1.1.1 数据归一化

由于原始数据集的特征数据通常都是相对杂乱无章的,不同特征之间采用的量纲单位也不同,这会对整个模型的训练过程形成相应程度的数据干扰,为有效处理该问题并提高模型的训练精度,本文采用极差变化法进行归一化,其公式为x∗=其中x为原始值,x∗为归一化后的值。部分原始数据如表1所示,对应归一化的结果如表2所示。

表1 数据集中的部分数据

表2 对应归一化后的结果

1.1.2 数据集切分

将数据集按照1-6,2-7,3-8,…每6 行数据作为一组,得到26 271 组数据,以时间先后顺序按训练集:测试集=9:1的比例进行切分,得到23 644组训练数据和2 627组测试数据。

1.1.3 数据维度转换

本文需要将一维标量转换为三维张量,使其满足Conv1D要求的输入格式,经处理后的数据格式为(None,5,4)。其中,None等于batch_size的大小;第二维度5表示每5行样本作为一组数据,是将之前每6行作为一组数据中的最后一行样本舍去所得到,该值等于BiGRU输入时间窗的大小;第三维度4表示样本的open、low、close和high这4个特征。

1.2 深度学习网络模块

深度学习网络模块主要由CNN层、BiGRU层以及Attention层构成,为拟合汇率在一段时间跨度内的浮动规律,不仅需要提取数据本身的局部特征,还应该考虑数据在时序上的规律。CNN在内部特征的提取上表现得十分优异,因此该模型使用Conv1D提取数据局部特征,再通过BiGRU充分获取时序数据的双向时间特征,而Attention层对输出特征进行加权求和操作,根据信息的重要程度重新分配不同的权重系数,以提高预测的准确性。

1.2.1 CNN层

在本层,输入通道数等于矩阵列数,数目为4;过滤器数目为16,表示采用16个卷积核;卷积窗口宽度为1,表示每次只对输入数据的一行进行卷积计算;最大池化层窗口长度为5,表示每5个数取一个最大值作为这5个数的特征值。对于每个batch_size的数据,都是一个5*4的矩阵,进入Conv1D层后,会和16个长度为4、宽度为1的卷积核进行卷积运算,得到一个5*16的新矩阵,然后进入Maxpooling层,每一列只保留最大值,得到一个1*16 的矩阵。经过整个卷积神经网络之后的数据格式为(None,1,16),Conv1D层的具体过程如图2所示。

图2 Conv1D具体过程

1.2.2 BiGRU层

GRU[9]和LSTM[10]都引入了“门”的概念来控制数据的流动,但GRU内部只有重置门和更新门两个门控,其中重置门决定用多大程度覆盖以前的隐藏状态,更新门则表示在多大程度上选择候选值来更新当前隐藏层的状态信息,相关内部结构如图3 所示,计算公式:其中xt为t时刻的输入为t时刻的一个候选状态,ht为t时刻的隐藏状态值,wz和wr分别对应更新门和重置门的权重矩阵,bz和br分别为其偏置。

图3 GRU网络内部展开图

BiGRU[11]由一对向前和向后的GRU组成,两个GRU分别从正向和反向去提取序列特征,然后将两个输出向量拼接起来得到最终结果,BiGRU相较于BiLSTM[12]超参数更少、计算量更小、训练效率更高,相关原理如图4所示。

图4 BiGRU原理图

1.2.3 Attention层

注意力机制首先被运用于图像领域,随着2017年“Attention is all you need”这篇文章的发表,其开始成为NLP领域的研究热点[13-14]。注意力机制本质上是一系列加权求和操作,对隐藏状态的特征权重系数根据其重要程度进行再分配。本文在BiGRU层后添加Attention层进行特征加权运算,其实现过程:对经过BiGRU层的隐藏状态ht使用tanh函数进行非线性变换,从而得到新状态λt,对λt加权处理得到注意力权值at,再根据注意力权重对隐藏状态ht进行加权运算,最终得到新的特征向量vt,具体公式如

2 实验及结果分析

2.1 实验部分

2.1.1 实验数据与环境

本文使用新浪财经网上外汇市场的USDCNY数据,共26 277条,每条数据包括开盘价open、收盘价close、最低价low和最高价high四个特征。实验采用的处理器版本为Intel Core i7,内存8.0 GB,深度学习模型在Windows 10 操作系统环境中搭建,底层使用CPU 版本的Tensorflow 框架,代码由Python 语言实现,开发环境为JetBrains PyCharm。

2.1.2 参数敏感性分析

神经网络的超参数配置对模型性能有一定的影响,不同的参数往往会导致模型最终拟合效果大相庭径。本文从dropout值、卷积神经网络过滤器数目(filters)和GRU网络隐藏神经元个数(units)来进行参数敏感性分析,使用控制变量法观察每个超参数不同取值对模型的影响,蓝色线为真实值,橙色线为预测值,相关结果如图5~7所示。

图5 dropout参数对比

从图5可以看出,当dropout值过大时,某些神经元会被随机舍弃,导致数据特征的提取不完善,最终预测结果偏差较大;而当dropout取值为0时,模型又会提取出一些不必要的特征,对最终的预测产生干扰,出现过拟合现象。

由图6和图7可知,filters和units参数对模型的影响程度不如dropout影响程度显著,但是当二者的取值过小或过大时,模型拟合结果都出现了非最优的偏差。

图6 filters参数对比

图7 units参数对比

2.1.3 超参数设置

实验测试了多种超参数设置,根据效果不同,最终选择超参数设置如下:在CNN层,过滤器数目为16,卷积窗口宽度为1,最大池化层窗口长度为5;在BiGRU层,设置32个隐藏神经元;在Attention层,隐藏神经元也有32 个。整个网络选用Adam 优化器,学习率为0.001,dropout 取值0.001,batch_size 取值256,迭代次数为500次。

2.1.4 实验评价指标

本研究选择平均绝对误差(MAE)、均方误差(MSE)以及平均绝对百分比误差(MAPE)作为预测结果的评价指标,从多个方面对模型性能进行充分评估。MAE、MSE和MAPE均被用来衡量预测值与真实值之间的偏离程度,取值范围为[0,+∞),其中0 表示完美模型,值越大误差越大。假设预测值y′=,真实值y=,则有

2.2 结果分析

2.2.1 实验结果

各模型的拟合结果如图8所示,蓝色实线为真实值走势,橙色实线为预测值,横坐标设置为第200行到第500行数据,纵坐标为汇率归一化后的结果。

图8 各模型对比

各模型的误差指标值如表3 所示。其中,CNN 模型的预测误差最大,GRU、BiGRU、CNN-GRU和CNNBiGRU 模型的误差均有所降低,在引入Attention 机制后,CNN-BiGRU-Att 模型取得了更好的结果,较其他模型的MAE、MSE 以及MAPE 值都最小,与真实值曲线的分离程度最低,展现了更优的性能。

表3 模型实验结果对比

2.2.2 结果讨论

通过对比实验拟合图可以发现,由于CNN网络不能很好地提取时序数据的特征,所以对于汇率的波动不是特别敏感,拟合结果较差;GRU[15]和BiGRU网络擅长分析获取数据间的时序特性,对汇率波动时间规律特征的拟合效果较好,但对数据局部特性信息的获取能力不够准确,数值预测误差较大;CNNGRU[16]和CNN-BiGRU[17]网络结合了CNN和GRU共同具有的独特优势,既能有效提取数据的局部特性,又能够有效提取数据的时序特性,大体上拟合出了汇率走势的规律;由图8可知,引入Attention机制[18]之后,一方面兼顾了CNN与BiGRU网络的优点,另一方面注意力机制可以更好使模型关注那些对预测结果有重要影响的特征,进而调整其权重系数占比,使拟合出的汇率波动曲线更贴合实际,本文模型的预测效果得到了一定的提升。

通过对比各项误差数据可以看出,GRU和BiGRU模型的各项指标值几乎一样,相较于单一模型,融合模型的性能有所提升,各项误差值均有所降低,最优和最劣模型的各项指标差距甚至达到了一倍以上。本文模型利用CNN对数据局部特征进行提取,有效避免了主要特征信息的丢失;此外,BiGRU在处理时序数据时充分考虑了数据前后信息对当前信息的影响,能够更精确地提取时序特征,拟合汇率的波动规律;引入注意力机制关注时间序列中的一些关键特征信息,提高了模型的估计精确度。

通过对比实验,可以验证本文提出的模型具有一定的优越性,但同时也存在不足。只要是使用了CNN网络的模型,预测曲线波动频率较真实曲线都会或多或少地有所降低,这是因为CNN层只是初步提取了特征信息,进入池化层后会进一步提取主要特征,而在进入Dropout层之后又会舍弃部分特征,所以无法像GRU网络那样高度拟合出曲线的波动规律。另外,该模型是建立在外汇市场正常运作的基础上,其无法应对突发性事件带来的冲击。以本次俄乌冲突为例,事情发生得太过突然,卢布短时间内大幅度贬值,模型无法洞察到数据背后的深层原因,故很难正确预测出卢布的波动走势,类似于拟合图中第250-300组数据,所有模型都出现了较大的偏差。

3 结束语

在互联网行业和金融投资行业交相融合的时代,通过人工智能技术预测汇率的波动走向对于外汇市场投资具有重大意义。本文在CNN 和BiGRU 的融合模型中引入Attention 机制,利用Python 语言对模型进行代码实现,并采用MAE、MSE和MAPE作为评价指标,通过与CNN、GRU、BiGRU、CNN-GRU、CNN-BiGRU等模型对比,证明了本文模型在汇率走势预测上的有效性。本次实验中汇率曲线图出现了三次较为明显的峰值波动,可能与国家自身国力的增强、国际重大政治事件的发生、国际社会舆论风波等因素有关,未来运用主题挖掘技术分析汇率波动原因,有助于投资者更好地避开投资风险。

猜你喜欢

时序汇率波动
基于Sentinel-2时序NDVI的麦冬识别研究
人民币汇率:破7之后,何去何从
人民币汇率向何处去
越南的汇率制度及其汇率走势
羊肉价回稳 后期不会大幅波动
微风里优美地波动
前三季度汇市述评:汇率“破7”、市场闯关
2019年国内外油价或将波动加剧
基于FPGA 的时序信号光纤传输系统
干湿法SO2排放波动对比及分析