经验模态分解融合深度学习的时间序列预测模型
2022-07-01李昌明
李昌明
(辽宁工程技术大学 系统工程研究所,辽宁 葫芦岛 125105)
0 引言
时间序列是指通过在生产或科学研究过程中按照变量或指标的出现顺序记录它们的值而获得的一系列数值或观测值,它是一个变量或在不同时间的多个变量生成的随机数据,反映了现象与其变化规律之间的关系.预测是决策的基础,时间序列预测是时间序列数据挖掘的基础,在大数据时代背景下,时间序列预测是提高管理与决策者洞察力的关键技术.
时间序列预测包括连续型预测和离散型预测,时间序列的预测模型依附于序列的先后时间顺序.传统的时间序列预测模型包括自回归模型(AR,Auto Regressive)、移动平均模型(MA,Moving Average)和自回归移动平均模型(ARMA,Auto-Regression Moving Average),至今仍被广泛应用.此外,国内外学者对指数平滑法(ES,Exponential Smoothing)的研究较多,主要集中在以下方面:①对平滑初值和平滑系数等参数的确定方法和优化方法进行研究[1];②与其它理论方法的结合研究[2];③应用于相关工程与实践的研究[3].
对指数平滑相关理论和应用的研究,使得指数平滑相关算法迅速发展,速度更快、精度更高、稳定性更强且应用到了更多领域中,充分证明了指数平滑法在时间序列预测中的重要性.
传统的时间序列预测模型不能较好解决非线性拟合问题,因此基于机器学习和深度学习相关知识的时间序列预测模型研究得到了推动,其中循环神经网络(RNN,Recurrent Neural Network)及其变种:长短期记忆网络(LSTM,Long Short-Term Memory)[4]和门控循环单元(GRU,Gated Recurrent Unit)[5]等模型是适用于处理序列数据的一类模型.深度学习框架下较为成功的时间序列预测模型有:文献[6]提出的双阶段注意力机制循环神经网络模型(DA-RNN,Dual-Stage Attention-Based Recurrent Neural Network)、文献[7]中提出的专门设计用于时间序列预测的深度学习网络模型(LSTNet,Long-and Short-term Time-series network)、文献[8]提出的基于时间模式注意力机制的LSTM 模型(TPA-LSTM,Temporal Pattern Attention LSTM).上述3 种模型均是针对多变量时间序列构建的预测模型,在单变量时间序列上的预测效果尚未验证.
传统的AR 模型、MA 模型与ARMA 模型等要求时间序列必须为平稳序列,且参数确定难度大,模型适用范围较窄,对所适用的时间序列限制条件较多;指数平滑法给予长期数据的记忆特征较少,给予短期内数据的记忆特征较多,所以指数平滑法更适用于短期预测,需要数据的趋势平稳,稳步上升、下降或平直,对数据趋势变化的适应能力较差,且受不变的平滑系数影响;简单的感知机和BP 神经网络模型(BPNN,Back Propagation Neural Network)无法获得时间序列长期的记忆特征,预测误差一般较大;RNN、LSTM 与GRU 得益于模型结构,预测效果要优于BPNN,但容易出现两种较差情况:①在序列趋势突变时无法及时跟进,造成预测数据相较于实际数据滞后一期的情况;②在序列某段时间长期处于较小数据范围(相对于序列全局最大值与最小值的差值相比)内短周期波动时,预测结果将趋于平直,无法反映数据波动.
为了解决上述时间序列预测模型预测误差大且预测存在滞后一期现象的问题,本文提出一种经验模态分解算法融合深度学习的时间序列预测模型.
1 基本理论
1.1 时间序列分解算法
完全自适应噪声集合经验模态分解(CEEMDAN,Complete Ensemble Empirical Mode Decomposition with Adaptive Noise)[9]是对经验模态分解(EMD,Empirical Mode Decomposition)[10]和集合经验模态分解(EEMD,Ensemble Empirical Mode Decomposition)[11]的改进,相较于EMD 解决了模态混叠和端点效应的缺陷,在每个阶段添加有限次的自适应白噪声,相较于EEMD 减少了迭代次数并且提高了重构精度.称分解获得的分量为本征模态函数(IMF,Intrinsic Mode Function),IMF频率从高到低,可以代表序列不同尺度的特征,因此CEEMDAN 分解亦可用作时间序列降噪,具体步骤如下.
步骤4重复步骤1 到步骤3 直到剩余序列的极值点小于等于2 时停止循环,获得最后残差序列,记为
假设共可分解得到m组IMF 序列,那么原序列组成为
1.2 循环神经网络
RNN 擅长处理序列一类数据,在自然语言处理方向应用居多,但RNN 在时间维度上拓展的层次越深,越容易出现梯度爆炸或梯度离散的问题,对时间序列的记忆较短[12].LSTM 解决了RNN 中存在的问题.LSTM 单元结构见图1.
图1 LSTM 单元Fig.1 LSTM unit
图1中,遗忘门计算公式为
输入门计算公式为
细胞状态主要用于存储长期记忆,能够较好地刻画序列的长期依赖,计算公式为
输出门计算公式为
式(4)~式(9)中,xt为单元输入;ht为隐含状态;b为偏置;W为层间权值矩阵;ot为输出;tanh为双曲正切激活函数;σ为Sigmoid 激活函数.
在LSTM[13]中Ct代替ht成为网络记忆,从数学角度讲,对Ct的梯度中不包含权值矩阵的次幂项,防止权值成指数式增长或减少;从网络结构角度讲,细胞状态相当于一个残差层,可以为网络记忆提供直通通道,在时间轴上梯度展开时,有效避免了RNN 中梯度爆炸或梯度离散的问题.
GRU 是LSTM 较为成功的变种之一.GRU 单元结构见图2.复位门计算公式为
更新门计算公式为
GRU 中使用候选隐藏状态th˜代替LSTM 中的tC˜决定加入多少当前时刻的记忆信息,使用zt控制需要将上一时刻的记忆信息遗忘多少,计算公式为
复位门与更新门分别处理网络中的长期和短期记忆,GRU 在保持LSTM 功能的前提下简化了单元结构,拥有更少的参数,计算效率更高.
图2 GRU 单元Fig.2 GRU unit
2 经验模态分解融合深度学习的时间序列预测模型
2.1 时间序列数据组织
单变量的时间序列预测数据组织方式可分为3种:数值对数值、数值对序列和序列对数值,见图3.
图3 时间序列组织方式Fig.3 time series organization
数值对数值与数值对序列的组织方式因记忆较短,时间维度特征较少,故预测效果不如序列对数值的组织方式.
将滑动窗口技术引入时间序列数据组织中,形成一种序列对序列的交错组织方式,同时关注序列的长期和短期特征,更多保留序列记忆,具体组织方式见图4. 在该种数据组织方式下,窗口宽度和滑动步长参数的设置会直接对预测效果造成影响.
图4 时间序列交错组织Fig.4 cross organization of time series
2.2 同比检验策略
设有时间序列tx,记第k时刻数值的环比为
记第k时刻数值的同比为
式中,c为所求同比的周期,i为期数.
以0x为基,记第k时刻数值的定基比为
为确定模型中的最佳窗口宽度参数,即所使用的LSTM 单元与GRU 单元的最佳参数,建立一种结合式(14)~式(16),求解式(15)中c参数的同比检验策略,对输入时间序列分解后的每一路IMF 序列进行检测.
为防止IMF序列中存在的负值对c参数的判别造成影响,对tx进行变换
将这种检测策略放置于每一路IMF 序列的网络单元之前,称为周期基探测器,输出结果称为周期基,流程见图5. 图5 中变量list为同比值存放列表,变量ilist为周期值存放列表,常量MAXcycle为探测器的最大探测周期参数,变量sum为求和值,变量num为计数值,变量listmin为list中的最小值,变量ilistindex为ilist中索引为index 的值.
将周期基作为时间序列交错组织的窗口宽度参数划定窗口大小,即作为网络输入节点数与输出节点数,网络可依此在最佳周期规律的数据组织方式上进行拟合,加快网络训练速率,捕捉数据特征;将周期基作为网络隐层数,将数据长度与周期基的比值作为网络隐层节点数,可有效确定不同特征数据使用的网络规模.
图5 周期基探测器流程Fig.5 period basis detector flow
2.3 融合经验模态分解与深度学习的时间序列预测模型
LSTM 与GRU 相比,GRU 参数更少,比LSTM少多步矩阵计算,收敛速度更快,花费时间更短,但LSTM 比GRU 多产出tC参数,在某些情况下能够更好把握数据长期记忆.
LSTM 的输出门可以对细胞状态进行选择,GRU 则使用全部的细胞状态;LSTM 利用遗忘门可以控制接受新老记忆的尺度,GRU 的新记忆加入受老记忆的影响,无法进行控制.所以,LSTM 比GRU灵活性更好.
综上,选取LSTM 作为对CEEMDAN 高频分量的预测模型,选取GRU 作为其余分量的预测模型,将每个分量的预测值与真实值做非线性拟合,训练网络,对输入时间序列建模,步骤[14-15]如下.
步骤1将输入时间序列tx通过CEEMDAN分解算法分解为n组IMF 分量和一组r分量.
步骤2将每组分量通过周期基探测器,求得分量最佳周期基c,并且按照2.1 节中的时间序列交错组织方式进行数据组织.
步骤3将组织后的第一组IMF 分量输入LSTM 模型,其余IMF分量与r分量输入GRU 模型,同时,利用c按照2.2 节定义LSTM 与GRU 的最佳参数.
步骤4将LSTM 与GRU 的预测结果通过Linear 层整合为n+1 个特征.
步骤5将特征输入两个串联的L&R单元和一个L&t 单元,其中L&R 单元代表Linear 层与ReLU激活函数的串联,L&t 单元代表Linear 层与tanh 激活函数的串联.
步骤6将步骤5 输出经过Linear 层与真实值通过误差函数得出误差,训练网络.
步骤7根据新输入值,使用训练后的网络进行预测.
称上述模型为重融网络(RecNet,Recombine Net),结构见图6.
图6 RecNet 模型Fig.6 RecNet model
RecNet 模型由三层构成,分解层主要作用是将输入序列进行分解;传播层主要作用是获得不同时间尺度的特征;融合层主要作用是将不同时间尺度的特征进行融合,得到最终预测值.
3 实验及结果分析
3.1 数据说明与预处理
共选取4 组数据对RecNet 进行评估,数据说明如下.
数据集ec:源自2011 年到2014 年每15min 的用电量,共描述了321 个客户的电消费数据,原始数据中进行了转换,以反映每小时的消耗量,取168条记录.
数据集tu:源自加州运输部2015 至2016 年每小时的数据,这些数据描述了旧金山湾区高速公路上不同传感器测量到的道路占用率(0 到1 之间),取168 条记录.
数据集nd:源自国内某商业银行每天的通知存款数据,取364 条记录.
数据集sf:源自国内某商业银行每天的小额流入数据,取364 条记录.
上述数据均采用最大最小值归一化方式进行预处理,为
式中,xscale为归一化后的数据;x为当前数据,xmax、xmin分别为序列中的最大值和最小值.
数据集tu 均为0 至0.15 之间的浮点数,为方便归一化,将数据集tu 扩大104倍.
3.2 模型搭建与实验
实验环境见表1. 模型参数与对比模型参数设置见表2.
表1 实验环境Tab.1 experimental environment
表2 参数设置Tab.2 parameter setting
BPNN、RNN、LSTM、GRU 和RecNet 中,损失函数均使用均方误差(Mean Square Error, MSE),优化器均使用Adam;采用MSE 与平均误差率(Mean Error Rate,MER)检测模型预测值与实际值之间的偏差,数值越小代表模型预测误差越小;采用R2(R-squared)检测模型准确程度,数值越大代表模型预测越准确.以上述3 种评价项评估RecNet 性能,计算公式分别为
式(19)~式(21)中,io为实际值;为预测值;为实际值序列的平均值.
另外,计算MSE 之前,先将实际值与预测值使用式(18)进行归一化后再计算.
为验证模型性能,均选取数据集的80%作为训练集输入网络进行训练;剩余20%作为测试集输入网络进行预测,测试模型性能.为避免随机生成的权值与偏置值对网络训练过程造成影响,对不同数据集上的训练过程均固定随机因子;为避免网络过拟合现象,网络训练过程每次迭代过程均在训练集中随机划取一部分作为验证集,随机交叉训练.
因启动不同模型所需的前置数据量不同,图7~图9 中,横坐标均代表数据期数,ec 数据与tu数据每期代表每小时,nd 数据与sf 数据每期代表每天.预测结果所涉及的数据集ec 和数据集tu 展示161 条数据,测试集展示34 条数据;所涉及的数据集nd 和数据集sf 数展示353 条数据,测试集nd 展示97 条数据,测试集sf 展示71 条数据.
图7为 RecNet 在4 组数据测试集上的预测结果. 由图7(b)、图7(c)可以看出,对数据集tu和数据集nd,RecNet 模型预测误差小,可以快速跟进数据趋势,不存在滞后一期现象;图7(a)、图7(d)中,对数据集ec 和数据集sf 在某些异常值情况下存在一定预测误差,但依旧可以紧跟数据趋势,同样避免了滞后一期现象.
图7 RecNet 在4 种数据测试集上的预测结果Fig.7 RecNet prediction results on 4 groups test sets
表3 为7 种模型在4 组数据测试集上的评价项.由表3 中可以看出,在数据集ec、数据集tu、数据集nd 和数据集sf 的测试集上,RecNet 模型得到的MSE分别为0.27%、0.06%、0.46%和0.87%,得到的MER分别为3.96%、9.84%、1.95%和7.45%,得到的R2分别为 95.39%、99.38%、93.47%和73.49%.RecNet 在7 种模型中均能得到最小的MSE与MER,得到最大的R2,说明RecNet 相较于其余2 种传统时间序列预测模型和其余4 种神经网络时间序列预测模型有更强的预测性能,网络拟合的模型准确程度更高.本文提出的周期基探测器,在有效提高模型准确程度的同时,减少了模型训练所需的参数量,使得模型更易于启动训练.
为进一步评估模型性能,保持表2 中参数设置不变的情况下,将4 种数据集的全集输入网络进行预测,预测结果见图8. 由图8 中(d)可以看出,RedNet 模型在数据集sf 部分异常值处仍存在一定预测误差,但整体预测效果较好.
表4为7 种模型在4 组数据全集上的评价项.在数据集ec、数据集tu、数据集nd、数据集sf 的全集预测中,RedNet 模型得到的MSE分别为0.06%、0.03%、0.05%和0.06%,得到的MER分别为2.02%、5.78%、1.27%和7.71%,得到的R2分别为98.93%、99.60%、97.99%和92.22%,相较于其余6 种模型,RedNet 模型在4 种数据集全集上表现最优.
表3 7 种模型在4 组数据测试集上的评价项Tab.3 evaluation items of 7 models on 4 groups test sets
图8 RecNet 在4 种数据全集上的预测结果Fig.8 RecNet prediction results on 4 groups dataset
表4 7 种模型在4 组数据全集上的评价项Tab.4 evaluation items of 7 models on 4 groups dataset
为进一步观察RecNet 模型对神经网络模型预测时间序列造成的滞后一期现象的改进效果,取数据集nd 中存在上凹型与下凹型起伏趋势的33 条记录,在BPNN 模型、RNN 模型、LSTM 模型、GRU模型和本文所提RecNet 模型上分别进行预测,预测结果见图9.
图9 部分nd 数据集在4 种神经网络模型及RedNet 模型上的预测结果Fig.9 prediction results of partial nd dataset on 4 kinds of neural network models and RecNet
由图9 可以看出,BPNN 模型对上凹型与下凹型起伏趋势均无法跟进,滞后一期现象严重,且跟进后预测数据存在波动现象;RNN 模型、LSTM 模型和GRU 模型在上凹型与下凹型数据的跟进效果上均比BPNN 更佳,但对上凹型数据仍有明显滞后一期现象,且对下凹型数据拐点贴合效果较差;RecNet 模型不仅可以快速跟进数据上凹型与下凹型趋势,并且能够准确贴合拐点,趋势变平直后没有波动现象,预测性能强.
4 结论
提出一种融合经验模态分解与深度学习的时间序列预测的RecNet 模型,并且与SGL-ES 模型、2ND-ES 模型,以及BPNN 模型、RNN 模型、LSTM模型和GRU 模型进行对比,得出以下结论.
(1)RecNet 模型预测误差明显低于传统时间序列预测模型及神经网络时间序列预测模型.在起伏波动较少的nd 测试集中预测平均误差率仅为1.95%,在起伏波动剧烈的sf 测试集中预测平均误差率仅为7.45%.
(2)RecNet 模型对数据跟进效果佳,解决了传统时间序列预测模型及神经网络时间序列预测模型的预测滞后一期现象.在较平滑的tu 测试集中模型拟合准确度高达为99.38%,即使在存在异常值较多的 sf 测试集中模型拟合准确度也可达到73.49%,全集可达到92.22%.
(3)RecNet 模型通过周期基探测器捕捉序列特征,自动确定网络节点和层数等参数,并且使用交错方式对单变量时间序列进行组织,相较于其余神经网络时间序列预测模型参数量更少,更易适配不同类型的序列数据,训练与预测效率更高.
在今后的研究中,考虑将RecNet 模型应用于多变量时间序列预测和多步时间序列预测中,以进一步验证模型性能.