基于混合神经网络和注意力机制的混沌时间序列预测*
2021-01-14黄伟建李永涛黄远
黄伟建 李永涛 黄远
(河北工程大学信息与电气工程学院,邯郸 056038)
为提高混沌时间序列的预测精度,提出一种基于混合神经网络和注意力机制的预测模型(Att-CNNLSTM),首先对混沌时间序列进行相空间重构和数据归一化,然后利用卷积神经网络(CNN)对时间序列的重构相空间进行空间特征提取,再将CNN提取的特征和原时间序列组合,用长短期记忆网络(LSTM)根据空间特征提取时间特征,最后通过注意力机制捕获时间序列的关键时空特征,给出最终预测结果.将该模型对Logistic,Lorenz和太阳黑子混沌时间序列进行预测实验,并与未引入注意力机制的CNN-LSTM模型、单一的CNN和LSTM网络模型、以及传统的机器学习算法最小二乘支持向量机(LSSVM)的预测性能进行比较.实验结果显示本文提出的预测模型预测误差低于其他模型,预测精度更高.
1 引 言
非线性科学的研究涉及到社会科学和自然科学的各个领域,如金融、电力、水文和天气等.这些呈现出混沌现象的动力学系统中,任一变量随时间演化而产生的混沌时间序列,都蕴含着系统丰富的动力学信息,而这些信息往往包含着具有重要价值的内容.对混沌时间序列的研究,就是要将其丰富的动力学信息提取出来,并应用到实际中去.在实际运用中,对混沌时间序列进行预测一直以来都是研究的热点.文献[1]提出一种分数阶最大相关熵的自适应滤波算法,在混沌时间序列的预测中可以减少噪声影响,预测结果准确率有所提升.文献[2]提出了一种较为新颖的混沌时间序列预测方法,使用自适应遗传算法优化大脑情感学习,该方法能够有效地反映混沌时间序列的发展趋势,预测结果也优于传统神经网络.文献[3]提出一种贝叶斯框架下的鲁棒极端学习机,利用高斯混合分布和变分法使预测模型可以对异常点有较好的鲁棒性.文献[4]将改进的内核递推最小二乘算法运用于多元混沌时间序列的预测,并证明了该预测方法的有效性.文献[5]提出使用向量投影来改进传统的灰色关联分析模型,能够在多元混沌时间序列预测中减少输入维度,并提高预测精度.为了降低混沌时间序列的非平稳性和非线性带来的预测误差,文献[6]提出使用集合经验模态分解和奇异谱分析对混沌时间序列进行分解,该方法在风能预测中取得了较好的表现.
近年来,随着深度学习技术和硬件技术法发展,已有研究人员将深度学习算法运用到混沌时间序列的预测中,文献[7]用长短期记忆网络(longshort-term memory,LSTM)搭配合适的组合策略,验证了在低维情况下LSTM在混沌时间序列预测上能够取得较好的效果; 文献[8]则进一步验证了使用LSTM预测混沌时间序列不仅能够取得较好的预测效果,且预测模型具有较好的鲁棒性.结合混沌理论和经验模态分解,文献[9]使用LSTM搭建预测模型,取得了可靠性高的预测结果,且预测模型具有一定的泛化能力.文献[10]利用卷积神经网络 (convolutional neural networks,CNN)训练连续和离散的低维混沌时间序列生成一个分类器,使其能够识别并分类高维状态下的混沌时间序列.
相比最小支持向量机(LSSVM)[11,12]、极端学习机[3,13]等传统机器学习算法,LSTM和CNN等深度学习算法具有更强大的学习能力,在处理回归问题上,对非线性数据具有很好的逼近能力.因此,为了进一步提高混沌时间序列的预测精度,本文结合混沌系统的相空间重构理论,提出一种基于深度学习算法的混沌时间序列混合预测模型(Att-CNN-LSTM).首先,将获取的时间序列进行数据预处理,即重构相空间和数据归一化.然后提出利用注意力机制捕获CNN的相空间特征和LSTM的时间特征,并对输出结果进行权衡,给出预测结果.最后将提出的预测模型分别应用于Logistic、Lorenz和太阳黑子混沌时间序列,仿真实验结果表明本文提出的预测模型可以有效地对混沌时间序列进行预测,且与其他预测方法相比,Att-CNNLSTM模型具有更高的预测精度.
2 数据预处理
在时间序列的分析中,影响序列的因素很多,而且在动力系统中,这些影响因素的动力学方程往往都是非线性的,更有可能是混沌的[14].对于表现出混沌特性的时间序列,对序列进行重构相空间是研究序列所在动力系统状态的重要方法.因此,在搭建和训练预测模型之前要对混沌时间序列进行相空间重构,此外,为消除量纲,提升模型的收敛速度和预测精度,再对原序列和重构的相空间数据进行归一化处理.
2.1 重构相空间
重构相空间理论的出现为混沌时间序列的预测提供了理论基础,在重构相空间的基本思想中,系统中任一变量的变化是由相互作用着的其他变量所决定的,因此任一变量的发展变化都蕴含着其他变量发展变化的信息[14].根据Packard等[15]提出的理论,使用动力系统中某一变量的延迟坐标即可重构相空间,Takens[16]则证明了在合适的嵌入维下,即可恢复原动力系统的维数.为实现相空间的重构,使用互信息法 (mutual information)[17]确定延迟时间τ,Cao 法[18]确定嵌入维数m.
设有时间序列{x1,x2,x3,···,xN-1,xN},其长度为N,计算时间延迟τ和嵌入维数m,则相空间域 数 据 集={X(t),Y(t)},t=1,2,···,M,其 中M=N-(m-1)τ,X(t)=[Xt,Xt+τ,···,Xt+(m-1)τ],Y(t)=[Xt+1],矩阵表示如下:
2.2 数据归一化
在深度学习中,对数据集尤其是对非线性的回归数据集进行归一化操作是非常有必要的预处理步骤,因为归一化操作不仅可以消除量纲,将数据统一到相同的尺度上,还可以提升模型的收敛速度和预测精度.本文利用归一化将相空间域数据集和原始混沌时间序列数据集都统一到(0,1)范围之间,归一化函数可表示为
相空间域数据集D¯ 和混沌时间序列经过数据预处理后的数据集可表示为重构相空间域D和混沌时间序列T.数据预处理的过程表示如图1所示.
图1 数据预处理过程Fig.1.The process of data preprocessing.
3 算法模型
在混沌时间序列的预测中,不同类型的神经网络具有的作用也不同.序列的重构相空间表示了原动力系统空间特征,而序列中也蕴含着丰富的时间特征.因此,本文提出Att-CNN-LSTM模型,利用CNN模型获取序列重构相空间的空间特征,通过LSTM得到空间特征下的时空特征,并采用注意力机制捕获混合神经网络提取到的关键时空特征.
本节主要介绍Att-CNN-LSTM模型的框架结构,如图2所示,主要包括如下细节:
(1)数据预处理: 先对序列进行重构相空间,然后进行归一化处理;
(2)卷积神经网络层: 处理网络输入的重构相空间域D,进行卷积操作,获取空间特征并输入到Concatenate层;
(3)长短期记忆网络层: 将Concatenate层融合得到的张量输入到LSTM中,网络根据CNN提取的空间特征获取时空特征;
(4)注意力层: 计算CNN和LSTM获取的时空特征的权重,获得序列的完整特征表示,根据特征计算预测数值.
图2 Att-CNN-LSTM 模型Fig.2.Att-CNN-LSTM model.
3.1 卷积神经网络CNN
卷积网络[19],又称卷积神经网络,是一种特殊的深度学习神经网络,常用于处理具有已知网格状拓扑的数据[20],在时间序列分析、计算机视觉和自然语言处理等领域有着广泛的运用.根据处理数据流的不同,CNN可以分为一维卷积、二维卷积和三维卷积,其中一维卷积在时间序列分析和自然语言处理领域运用较多,本文采取的CNN结构就属于一维卷积神经网络[21],如图3所示.不管是何种CNN,其组成主要包括基本的输入层和输出层,核心操作部分为卷积层、池化层(亦称采样层)和全连接层.在一维卷积中,卷积的作用可以理解为提取数据在某一方向的平移特征,在时间序列的分析中则表现为提取序列的特征,在这里卷积操作的本质是循环乘积与加和,其数学表达如下:
式中y,h,u均为序列,k表示卷积次数,N为u的长度.
图3 一维卷积网络Fig.3.One dimensional convolutional network.
3.2 长短期记忆网络
循 环 神 经 网 络 (recurrent neural network,RNN)是常规前馈神经网络的扩展,能够处理可变长度序列输入.RNN通过循环隐藏状态单元来处理可变长度序列,但是RNN在训练时会出现梯度消失和梯度爆炸,因此RNN很难捕获数据的长期依赖[22].为解决RNN梯度消失的难题Hochreiter和 Schmidhuber[23]提出了长短期记忆网络,LSTM是一种门控循环神经网络,是RNN的一种特殊表现形式,能够很好地捕获数据之间的长期依赖[24].
图4 LSTM 结构Fig.4.The structure of LSTM.
在LSTM单元结构中共有三个“门”: 遗忘门、输入门和输出门,其结构如图4所示.在LSTM中,通过输入门 i 、遗忘门 f 、输出门 o 以及一个记忆单元 s 来实现长期记忆或遗忘信息,设当前时刻为t,则s〈t-1〉为前一时刻的记忆单元状态,sˆ〈t〉为当前输入 状 态 信 息,h〈t〉和s〈t〉为 当 前LSTM的 输 出 值.LSTM单元的计算公式如(3)式—(8)式所示.
式中W为各个门的权重向量,b为偏置向量,σ为sigmoid函数,ta nh 为非线性激活函数.
3.3 注意力机制
人类大脑在观察某一事物时,往往会将注意力集中到事物的某些部分,这些注意力集中的部分往往也是从事物上获取信息的关键,这些信息对于认知同类事物有着很强的指引作用,而注意力机制(attention mechanism)[25]就是一种模仿这一认知过程的特殊机制.注意力机制在计算机视觉和自然语言处理领域的运用已经取得了较好的结果[26,27],本文将注意力机制运用到时间序列的分析中.
在混沌时间序列的分析中,先用CNN提取序列的空间特征,在用LSTM根据空间特征提取时空特征后,过多或非关键的特征会影响最后的预测结果.因此,利用注意机制来提取序列的关键特征.注意力机制可以简单地理解为一个加权求和器,也可以理解为一个关键特征提取器,它主要进行的是加权求和操作.本文提出的注意力模型如图5所示,向量c即为提取的关键特征,其计算公式如下:
式中m为输入LSTM网络的时间步总和;v为LSTM网络输出的特征向量,β为向量v的权值.
图5 注意力模型Fig.5.Attention model.
为了获得权值β,在注意力模型中加入了一个小型的神经网络a,其输出层激活函数为softmax,计算公式表示如下:
其中,ei可由ei=a(vi)=σ(Wvi+b)算得,且σ为sigmoid函数,W是图5中输入层至隐藏层的权重矩阵,b为偏置值矩阵.
3.4 其 他
如图2所示,Att-CNN-LSTM模型中添加了Concatenate层和 Dropout层,其中 Concatenate层是为了将卷积神经网络的输出,即序列的空间特征与原序列T进行特征融合.在深度学习模型中加入Dropout层很常见,其作用主要是为了防止模型训练时出现过拟合,进而提升模型的鲁棒性和泛化能力.
4 实验分析与讨论
本文所有实验均在阿里云服务器ECS上进行 ,CPU 类 型 为 Intel Skylake Xeon Platinum 8163 2.5 GHz,内存 8 GB,所有程序代码均用 Python(3.7.7版本)语言编写,使用的编辑器为Jupyter notebook.
为验证Att-CNN-LSTM模型的预测能力,利用Logistic、Lorenz和太阳黑子混沌时间序列进行实验,并与未加入注意力机制的CNN-LSTM模型、单一的LSTM和CNN模型,以及LSSVM模型进行误差对比.为了评价预测误差,除了采用常用的均方根误差(RMSE)、平均绝对误差(MAE)和平均绝对百分比误差(MAPE)外,再引入一个在评价时间序列预测性能中常用的均方根百分比误差(RMSPE),即:
式中I为预测样本数;yi和分别为预测值和真实值.
4.1 Logistic时间序列预测
Logistic混沌映射方程为
当 3 ≤µ≤4 时Logistic映射的动力系统由周期转向混沌,本文选取方程的初始值为x0=0.32 ,参数µ=3.8.为保证混沌性,舍弃前 10000 个数据,选取后3000个数据作为模型数据样本.利用互信息法和Cao法分别求得样本的延迟时间为9,嵌入维度为15,而后对样本进行相空间重构,共得到2873个有效相点,按照8∶2划分训练集和测试集,即前80%作为训练集后20%作为测试集.数据预处理后,用Att-CNN-LSTM模型进行训练预测,预测结果和预测相对误差如图6和图7所示,表1列出了Att-CNN-LSTM模型和其他模型的预测结果对比.
图6 Logistic 序列预测Fig.6.Logistic series prediction.
图7 Logistic 序列预测相对误差Fig.7.Logistic series prediction relative error.
表1 模型误差对比Table 1.Model error comparison.
从图6和图7中可以看出,Att-CNN-LSTM对Logistic时间序列的预测取得了较好的结果,不仅能够预测序列变化的趋势,且真实值和预测值之间的误差较小,说明本文提出的模型取得了较高的预测精度.如表1 所列,与 CNN-LSTM,LSTM,CNN 和LSSVM等模型的预测误差对比,Att-CNN-LSTM的各项预测误差均为最小,说明本文提出的模型预测精度高,预测性能较好.与未引入注意力机制的CNN-LSTM预测模型相比,Att-CNN-LSTM对预测精度的提升较为明显,说明注意力机制在模型中提取到了序列的关键时空特征,使得预测结果更加准确.值得注意的是,单一的CNN和LSTM模型的预测结果优于CNN-LSTM混合模型,说明混合模型下的非关键特征在一定程度上降低了预测精度,这也说明了注意力模型在CNN-LSTM混合模型中具有重要的作用.此外单一的CNN预测模型在Logistic数据集上的预测表现优于单一的LSTM模型,说明CNN在Logistic序列高纬度相空间下提取的空间特征好于LSTM提取的时间特征,从Att-CNN-LSTM模型与这两个单一模型的对比中,可以发现仅依赖单一的时间或空间特征,难以获得精度较高的预测结果,而注意力模型提取关键时空特征能够提升预测精度,是一个较为理想的预测方法.
为了更全面地对比本文提出的Att-CNNLSTM模型的预测性能,表2中列出了各个模型的训练和预测时间.不难看出,在模型的训练阶段,单一的CNN,LSTM和LSSVM预测模型所用的时间较小,分别为 59.5,48.8 和 215.4 s.相比之下,混合模型因为模型较为复杂,所需进行的运算更多,所以训练时间用时较多,其中Att-CNN-LSTM用时 312.7 s,CNN-LSTM 用时 302 s.但是在测试阶段,各个模型所用时间相差不大,虽然单一模型的预测用时仍比混合模型短,但是都控制在0.6 s以内.综合各个模型的预测误差表现,本文提出的预测模型具有较高的性价比,且预测优势明显.
表2 模型运行时间对比Table 2.Model running time comparison.
4.2 Lorenz时间序列预测
Lorenz混沌映射方程为
选 取 方 程 的 初 始 值 为x=y=z=1 ,参 数a=10,c=28 ,b=8/3.为保证混沌性,舍弃前10000个数据,选取后3000个数据作为模型数据样本.本文选取Lorenz系统的x分量进行预测分析,先利用互信息法和Cao法分别求得样本的延迟时间为17,嵌入维度为7,而后对样本进行相空间重构,共得2898个样本,取前80%作为训练集,后20%作为测试集.同样在经过数据预处理后,用Att-CNN-LSTM模型进行训练预测,预测结果和预测相对误差如图8和图9所示,表3列出了Att-CNN-LSTM模型和其他模型的预测误差对比,表4则列出了各个模型的运行时间.
图8和图9所展示的Lorenz(x)序列预测结果很好地表现了Att-CNN-LSTM的预测性能,在预测集上,模型的预测结果误差较小,精度较高,非常接近真实值.从表2中也能看出,在Lorenz样本集上本文提出的Att-CNN-LSTM模型表现依然出色,且Att-CNN-LSTM的预测性能明显优于CNN-LSTM,LSTM,CNN 和 LSSVM 等模型,RMSE,MAE,MAPE 和 RMSPE 四项预测指标分别降低至 0.00679,0.0521,1.2182 和 2.1102,相比其他模型精度提升较为明显.不同于在Logistic样本集上的表现,CNN-LSTM在Lorenz样本集上的表现虽然不如Att-CNN-LSTM模型,但是却优于单一的CNN和LSTM模型,各项预测指标也下降较多.在单一模型中,在RMSE指标下LSTM的预测性能略好于CNN,但在其他指标下其预测性能略低于CNN,此外,LSSVM的综合表现优于CNN和LSTM.在运行时间方面,单一的预测模型在训练和测试阶段所用时间依然低于混合模型,但时间差距有所缩小.此外,在 Lorenz 样本集上,Att-CNN-LSTM模型的运行时间低于CNN-LSTM模型,综合考虑下,本文提出的模型依然具有较高的预测性能.
图8 Lorenz(x)序列预测Fig.8.Lorenz(x) series prediction.
图9 Lorenz(x)序列预测相对误差Fig.9.Lorenz(x) series prediction relative error.
表3 模型误差对比Table 3.Model error comparison.
表4 模型运行时间对比Table 4.Model running time comparison.
4.3 太阳黑子时间序列预测
在Logistic和Lorenz这两个理论混沌系统中,Att-CNN-LSTM表现出了较好的预测性能,为验证其在真实动力系统的表现,采用太阳黑子时间序列检验其预测性能.本文采集了1749-2019年的太阳黑子数据,共有3252条数据,经过相空间重构后,产生3094组样本数据,训练集和测试集仍以8:2比例划分,即前80%作为训练集后20%作为测试集.预测结果和误差如图10和图11所示,表5和表6则列出了Att-CNN-LSTM模型和其他模型的预测结果对比.
从图10和图11中可以看出,Att-CNN-LSTM模型在太阳黑子时间序列的预测上仍然具有较好的表现,能够很好地预测序列的变化趋势,尽管有部分时间点的预测误差达到了4.7%,但是总体误差依然保持在较低的水平.如表3所列,虽然Att-CNN-LSTM模型在真实数据集上的预测提升不如对Logistic和Lorenz等理论数据集,但是其预测误差仍低于其他模型.相比其他预测模型,Att-CNN-LSTM至少降低了19%的RMSE值,6%的MAE值,23%的MAPE值和4%的 RMSPE值,预测精度提升依然较为明显.此外,CNN,LSTM和LSSVM的综合预测性能相差不多,但是都优于CNN-LSTM模型.在运行时间方面,虽然Att-CNN-LSTM模型的训练时间多于其他模型,但是其预测时间为已低至0.39 s.综合各模型的预测误差和运行时间分析,本文提出的模型依然具有较好的预测性能.
图10 太阳黑子序列预测Fig.10.Sunspot series prediction.
图11 太阳黑子序列预测相对误差Fig.11.Sunspot series prediction relative error.
表5 模型误差对比Table 5.Model error comparison.
表6 模型运行时间对比Table 6.Model running time comparison.
4.4 讨 论
由4.1—4.3节的实验和分析可知,本文提出的 Att-CNN-LSTM模型在 Logistic,Lorenz和太阳黑子三个混沌时间序列上取得了优于其他模型的预测性能.在Att-CNN-LSTM模型中,CNN模型可以提取混沌时间序列重构相空间下的空间特征,LSTM则根据CNN提取的空间特征提取原时间序列的时空特征,而注意力模型对CNN-LSTM提取的时空特征进行筛选,对重要的特征赋予高权重,并弱化非关键特征,这对预测精度的提升起到了重要作用.在混沌时间序列的高维重构相空间内,混沌系统的内在信息被挖掘出来,但是并非所有信息都有利于预测,过多的非关键的信息会影响到预测精度.原始的混沌时间序列虽然蕴含着混沌系统的时序特征,但在复杂的混沌系统中,仅仅依靠时序特征很难获取精度较高的预测结果.此外,若同时考虑混沌系统的空间和时间特征,所涉及的信息和特征会很多,那些不重要的信息和特征会对预测造成负面影响,不利于预测精度的提升.
实验中发现,Logistic和太阳黑子混沌时间序列拥有较高的相空间展开维度,其所在的混沌系统较为复杂,而Lorenz的展开维度相对较低,其动力系统相对简单.混合模型CNN-LSTM在高维相空间下的预测精度明显不如单一的CNN和LSTM模型,但是在低维情况下,CNN-LSTM的预测精度又明显优于单一预测模型,这说明在复杂的混沌系统下,过多的信息和非关键特征影响了预测精度,而注意力模型能够通过提取关键特征解决这些问题,使得预测精度有所提升,三个预测实例也很好地证明了本文提出的注意力模型能够提升混合模型CNN-LSTM预测性能.
5 结 论
本文利用注意力机制捕获混合神经网络CNNLSTM的时空特征,提出了一种用于混沌时间序列预测的Att-CNN-LSTM模型.结合相空间重构理论,用CNN提取动力系统重构相空间下的空间特征,让LSTM根据空间特征提取序列的时间特征.作为模型的关键部分,注意力模型的设计关系到序列的特征获取,进而影响到预测精度.因此,为更好地获取时间序列的特征,可以通过添加非线性激活函数来获取加权参数.仿真实验结果表明,本文提出的模型在几个混沌时间序列的预测上都取得了较好的结果,且预测精度高,预测性能较好.