基于混合门单元的非平稳时间序列预测
2019-07-30刘颉羲陈松灿
刘颉羲 陈松灿
(模式分析与机器智能工业和信息化部重点实验室(南京航空航天大学) 南京 211106)
时间序列预测在科学和社会的各个领域起着重要的作用,例如对股票价格[1]、交通状况[2]和天气状况[3-4]等的预测.然而这些任务的复杂性导致了预测的挑战性,通常归咎于时间序列的非平稳性以及多个变量之间的动态依赖性等,并为此促发了一系列的研究.
一般而言,时间序列大致可被分为平稳和非平稳2类[5-6].给定同一时间序列的2个子序列xt1,xt2,…,xtk和xt1+τ,xt2+τ,…,xtk+τ,如果对任意τ,2个子序列的联合统计分布相同,则称该时间序列为平稳序列.而事实上,现实中大部分时间序列难以满足上述条件,因此形成了所谓的非平稳时间序列.此类时间序列中,非平稳多变量时间序列(NSMTS)存在相对广泛,因此对于NSMTS的预测成为了重要和持续的研究主题[6-8].
现有时间序列预测的方法主要可分为基于深度学习和非深度学习两大类[9].典型的非深度学习方法,如基于统计方法的指数加权滑动平均模型(EWMA)[10]和差分整合滑动平均自回归模型(ARIMA)[9]等,在预测中通常存在几个缺陷,例如无法应对非平稳序列或处理非平稳序列时需要进行平稳化预处理;无法获取并利用多个变量间的动态依赖性;不仅如此,这类方法效率较低,处理大数据时耗时较多.相反,基于深度学习的方法则能克服上述不足[9,11],因此,本文侧重于当前较为流行的深度学习方法.
深度学习方法尤其是基于神经网络(NNs)的方法已在时间序列预测中取得了相当的成效,其中前馈神经网络(FNNs)[11]、模糊神经网络[12]、混合神经网络[8]以及循环神经网络(RNNs)[11]都已得到广泛运用.而RNNs由于其具有循环链状结构以及各变体门单元内部的特殊结构,更加适合于处理各类时间序列.然而,早期的RNNs存在若干严重的缺陷,典型的如梯度消失和梯度爆炸问题[13-14].
梯度爆炸问题通过对梯度范数的严格约束可解决,而梯度消失问题相对复杂.最先用于解决该问题的方法是设计出新的长短期记忆(LSTM)[15]以替换循环神经网络结构中的RNN单元.该单元可以利用3个门(遗忘门、输入门和输出门)和内部存储器以控制梯度流动并更新单元内部信息.同时基于LSTM的神经网络(LSTMs)可通过门控机制改善RNNs无法获取长程依赖关系的问题[13],因此很长一段时期使用LSTM替换RNN单元是处理梯度消失问题的标准方法.虽然LSTMs在NSMTS预测问题上已获得了state-of-the-art的结果[16],但该门单元并不完美.例如其内部结构非常复杂,但其中部分组件在训练中并没有明显意图[17].因此,研究者进一步对门单元结构进行合理简化,其中门循环单元(GRU)[18]的表现非常突出,该门单元结构中没有单独的内部存储器并且仅包含2个门(更新门和复位门).多数情况下,基于GRU的神经网络(GRUs)被证明与LSTMs的预测精度具有可比性[19]并因此成为序列预测中的一个可行的选择.而最近提出的最小门单元(MGU)[20]更被简化到了仅含单个遗忘门的结构,令人惊讶之处在于基于MGU的神经网络(MGUs)在部分序列分析和图像处理方面仍显示出了初步的优势.这源于已有的评估证据,即遗忘门是这些门中的关键所在[14,17,21].既然MGUs具有更少的可调参数,故而相对更易训练,为此我们也尝试将其用于时间序列预测.
虽然已存在多种类型的门单元,然而目前仍无研究表明哪一种门单元最适合处理一个特定时间序列,为此在本文中加以弥补.我们选用上述各门单元(LSTM,GRU和MGU)分别构建了相应的神经网络预测模型对NSMTS进行预测.具体而言,实验中采用单层或多层神经网络预测模型评估这些门单元在5个NSMTS数据集上的预测性能.结果表明:没有任何一类能始终保证性能上的占优.这启发我们设计了一种混合门单元(MIXGU),它包含GRU和MGU[注]由于LSTM在一定条件下与GRU在预测性能上具有可比性[19,17,21],且LSTM与GRU和MGU间的传递状态参数量不同,为了简化模型,本文设计MIXGU中仅包含GRU和MGU.,并通过动态调整GRU和MGU的混合权重,发挥各门单元的优势以达成2个世界的最优.
本文的主要贡献有3个方面:
1) 将MGU应用于NSMTS预测中,并将其预测性能与LSTM和GRU进行比较分析;
2) 提出了MIXGU,在训练过程中使得模型中的每一个单元动态地,自适应地改变混合的各个门单元(GRU和MGU)的重要性权重.同时我们也证明了训练过程中确实存在重要性权重的动态变化;
3) 将MIXGU构成的神经网络与每个单元仅含有一种门单元的典型神经网络进行对比,并得出基于MIXGU的神经网络模型可以获得更高的预测准确率.
1 相关工作
Fig. 1 N-layer Neural network model for prediction图1 用于预测的N层神经网络模型
为了解决NSMTS预测,许多学者尝试采用传统的统计方法.其中,差分整合滑动平均自回归模型(ARIMA)[9]由于其统计特性以及在模型选择过程中使用了广为人知的博克思-詹金斯(Box-Jenkins)法而广泛运用于金融领域.同时该模型适用于各种指数平滑技术[22],可以灵活地解决一系列,诸如自回归(AR)、滑动平均(MA)以及自回归滑动平均(ARMA)等模型能够解决的问题.但是,ARIMA需要对非平稳数据进行平稳化处理,这毫无疑问会影响预测精度和效率,同时该模型计算复杂度较高,因此无法较好地进行NSMTS的预测.除此之外,自回归模型(VAR)[9]通过将AR模型拓展成为多变量模型以解决多变量时间序列问题.然而,这种拓展忽略了输出变量之间的依赖关系.不仅如此,VAR模型的容量在训练中随着时间窗口的增大线性增长,随着变量数量上升呈二次方增长,因此继承的大模型容易出现过拟合问题并无法有效处理长程时间模式.
由于上述方法无法有效地解决NSMTS预测问题,研究人员进一步通过建立机器学习模型来处理这类问题.例如,带有时变参数的标准回归模型[23]在处理多变量时间序列上有一些突破,该模型能够使用不同损失函数和正则化项进行建模,但是由于其无法获取多个变量之间非线性关系,因此容易影响模型的预测精度.此外,非参数高斯模型(GP)[24]通过对连续函数域上的分布进行建模可以获取序列中的动态模式,尤其是复杂的动态模式.但是该模型具有较高的计算复杂度,例如在实现过程中的核矩阵求逆过程会产生超过观测值数量立方的复杂性.
2 模 型
本节中,我们首先定义NSMTS预测问题,然后介绍于滚动预测的神经网络模型.为了完整性,我们也详细介绍本文预测模型中所使用的门单元结构(LSTM,GRU以及MGU) 并详细说明本文提出的新型MIXGU的门单元结构,最后,介绍了预测模型的目标函数和优化策略.
2.1 模型概述
本文中,我们主要通过使用图1所示的神经网络预测模型进行简单的多步滚动预测.具体来说,给定一系列已知时间序列Y=(y1,y2,…,yT),其中yt∈Rn,n是时间序列的维度.我们的目标是预测yT+h,其中h表示预测范围(horizon),代表当前时间步向前的预测范围,其取值范围可以从几秒到一年,通常根据时间序列数据集中环境设置需求进行选择.滚动预测表示当我们预测yT+h+1时y1,y2,…,yT+1是已知的.我们将时间步T时输入矩阵表示为XT=(y1,y2,…,yT)∈Rn×T.
图1所示的神经网络结构中,RNN Unit可由LSTM,GRU,MGU以及我们设计的MIXGU代替.随后,我们将逐一介绍上述门单元结构.
本文中,W表示权重矩阵,b表示偏差向量,t表示时间序列中的第t个时间戳,xt表示RNN单元及其变体在时间t时的输入,ht表示时刻t的系统隐状态,σ(z)表示逻辑Sigmoid函数σ(z)=1(1+exp(-z)),tanh是适用于输入的每个元素的激活函数,而符号⊙是表示2个向量之间逐个元素相乘.
2.2 RNN单元: LSTM, GRU和MGU
Fig. 2 Data flow and operations in various typical gated RNN units图2 各种典型的门控RNN单元中的数据流动和运算
循环神经网络(RNNs)是前馈神经网络(FNNs)的扩展,可以通过特殊的反馈回路存储和利用过去的信息从而有效解决序列问题[25].一般而言,循环神经网络门单元(RNN)通过式(1)更新隐状态:
ht=f(ht-1,xt),
(1)
其中,f是一个非线性映射.定义f的常用方法为使用线性变换加上非线性激活函数,
ht=tanh(W[ht-1,xt]+b).
(2)
这种单向RNN单元通常表示为SimpleRNN单元,其内部结构由图2(a)所示.
不幸的是,SimpleRNN单元在时间序列预测中存在一系列问题,基于该单元的网络在训练过程中存在梯度下降或梯度消失问题[13-14]以及该单元结构无法获取长程依赖关系.因此各类RNN单元的变体如,LSTM,GRU等,被设计以缓解上述问题.所以本文关注的是基于RNN单元变体(LSTM,GRU和MGU)的神经网络的性能.
2.2.1 LSTM
时间序列预测中,长程和短程依赖关系都十分重要,尤其对具有季节性周期变化或循环变化等特性的时间序列.然而,由于传统的SimpleRNN单元结构简单,获取长程依赖的能力较弱,当长程的相关信息与当前时间点之间的距离足够大时,其无法获取所需的远程信息[13].为了解决这一问题,如图2(b)所示的具有特殊门控机制和内部存储器来控制信息流的LSTM[15]被设计出来.迄今为止,LSTM及其各类变体仍然在实际应用中扮演主导角色,如利用ARIMA-LSTM混合模型进行股票预测[26],利用改进的卷积LSTM(ConvLSTM)进行天气预测[3]等都展现出了LSTM的优势.
LSTM门控机制中包含3个门,即遗忘门ft,输入门it和输出门ot和另外,结构中还含有一个内部存储器ct.循环单位的隐状态在时刻t计算为
(3)
这里,各个LSTM单元之间通过控制单元状态ct和隐状态ht进行信息传递.
2.2.2 GRU
作为LSTM的常用变体,GRU[18]具有更简化的结构.如图2(c)所示,GRU将遗忘门ft和输入门it组合成单个更新门zt,另外增加一个复位门rt并将内部存储器与隐状态ht合并.GRU的更新规则为
(4)
实验表明,当LSTM与GRU具有相同的参数量时[17],GRU的预测效果与LSTM具有可比性.在GRU网络中,各单元间只对隐状态ht进行传递.
2.2.3 MGU
受GRU设计有效性的启发,如图2(d)所示仅包含单门的最小门单元(MGU)[20]被设计出来进一步有效简化门单元结构.由于MGU在现有的计算机视觉和序列分析的应用中展现出训练速度和结果准确性的优势,我们希望将这一门单元引入时间序列预测,尤其是本文中的NSMTS预测.
在MGU结构中,唯一门的选择至关重要.通过分析LSTM各部分重要性的实验,发现遗忘门ft最为重要且不可或缺[14,17,21].同时,从经验角度分析,遗忘门能决定存储或遗忘的信息,这对于解决长程依赖问题至关重要.而MGU正是在GRU基础上,进一步通过有效合并复位门rt和更新门zt作为遗忘门ft(rt=ft,∀t).由此MGU隐单元状态更新规则为
(5)
在MGU网络中,各单元间只对隐状态ht进行传递.
2.2.4 MIXGU
(6)
经过调节模块后,我们将得到新的隐状态ht作为下一个单元的输入.
Fig. 3 Data flow and operations in MIXGU图3 MIXGU模型中的数据流动和运算
2.3 目标函数和优化方法
平方误差是许多预测任务的默认损失函数,因此本文的也采用了相应的优化目标:
(7)
我们的优化策略是将预测问题转化为一个回归任务.假设输入的已知时间序列为Yt=(y1,y2,…,yt),随后定义一个可调节大小的窗口,将其大小记作q并将时刻t的输入序列重新定义为Xt=(yt-q+1,yt-q+2,…,yt).最终优化目标即为特征-值对(Xt,Yt+h)的回归任务,进而可由随机梯度下降(SGD)或其变体进行优化求解[27].
3 实 验
我们分别使用基于4种不同的门单元(包括我们新提出的门单元)的神经网络预测模型对5个NSMTS数据集进行了大量实验.
3.1 度量标准
本文使用3种度量标准来评估模型的预测性能.3种度量标准的定义:
1) 均方根误差(RMSE)
(8)
2) 绝对平均误差(MAE)
(9)
3) 决定系数(R2)
(10)
3.2 数据说明
该实验中,我们使用了5个NSMTS数据集,其中4个为公开数据集,1个为保密数据集.
1) 光纤数据集.该数据集是光纤拉丝生产过程中的真实数据集,记作 “Optical”.其中包括30个有效特征,序列长度为259 202,采样频率为1秒/次.由于光纤拉丝过程中会因为断裂而产生巨大的经济损失,因此光纤断裂情况的预测十分重要.该数据集为保密数据集.
2) 3个股票数据集[注]3个股票数据集数据可在https://www.kaggle.com/rohan8594/stock-data获取.该数据集是在Kaggle Datesets中的公开数据,记作“BAC”,“C” 以及“GS”.每个数据集都包括每日的收盘价、开盘价、低价、高价和成交量,序列的长度为2 517,采样频率为1天/次.
3) 空气状况数据集[注]天气状况数据集可在https://raw.githubusercontent.com/jbrownlee/Datasets/master/pollution.csv获取.我们将该数据集记作“Pollution”,其中包含7个有效特征,该序列长度为43 825,采样频率为1天/次.同时该数据集存在一些缺失,我们使用均值进行代替.
上述数据集按时间顺序分为训练集(60%)、验证集(20%)和测试集(20%).
3.3 实验结果
我们的实验设定遵循了此类实验的一般方法,对于各神经网络调整深度和宽度(隐单元数)以获得最优的预测效果[14,17,20-21].因此对各个门单元组成的神经网络,我们在集合{32,64,96,128}中选择隐单元数,同时我们构建了N层的神经网络,其中网络深度N的选择范围为{1,2,3},对应了图2中“N层”.每一个网络都经过100次迭代. 为了实验的完整性,我们还在各数据集上使用经典统计方法ARIMA进行实验.
表1中我们固定预测模型在每个数据集上的网络深度,通过调整隐单元数分别比较基于各门单元网络的预测性能,而表2反之.
首先,我们试图将MGU引入NSMTS序列预测问题中并通过实验验证这个模型是否能够得到好的结果,并用图2序列预测模型构建MGUs并与LSTMs和GRUs在预测性能上作对比.表1、表2中,我们用粗体字表示除去MIXGU的实验结果后每个数据集上的最佳结果.我们发现:
1) 5个数据集的最优结果并不是由单一门单元组成的神经网络所得,如表1中数据集“BAC”的最优结果由LSTMs神经网络获得,而数据集“Optical”最优结果是由MGUs神经网络取得;
2) MGU可用于时间序列预测,并可以获得了与LSTM及GRU相当的预测结果;
3) ARIMA的预测准确性较差且实验中耗时较长,无法有效预测数据量较大的NSMTS序列.
随后,我们将新设计的MIXGU引入预测问题并与上述由单一门单元构成的预测模型进行比较预测过程中发现确实存在对于门单元的动态选样.这里,我们采用同样的实验参数设置对MIXGU进行实验.表1和表2中灰色背景突出的实验结果是各数据集中的最佳.由实验结果,我们能得出:MIXGU网络在5个数据集上都获得了最佳的预测结果,因此该单元可确保预测的准确性.此外,图4(a)~(d)显示了时间序列的真实值与预测值的对比.显然各数据集中基于MIXGU的神经网络预测结果与真实值最接近,因此直观上显示出其预测精度更高.而图4(e)~(f)则展示了在数据集“Optical”和 “Pollution”的学习曲线.
Table 1 Performance of ARIMA and MIXGUs, LSTMs, GRUs, MGUs Neural Network on Different Amount of Hidden Units表1 ARIMA和不同网络隐单元数量下MIXGUs,LSTMs,GRUs和MGUs的模型性能
Note: The boldface represents the best experimental results for the LSTM, GRU and MGU, while the results with background color means they are optimal for all the four gated units included.
Table 2 Performance of MIXGUs, LSTMs, GRUs and MGUs Neural Network on Different Depth of Models表2 不同网络深度下MIXGUs,LSTMs,GRUs和MGUs的模型性能
Note: The boldface represents the best experimental results for the LSTM, GRU and MGU, while the results with background color means they are optimal for all the four gated units included.
Fig. 4 The forecasting curve and learning curve for actual data versus MIXGU, LSTM, GRU and MGU models图4 NSMTS的实际数据与MIXGU, LSTM, GRU和MGU模型的预测及学习曲线
Fig. 5 The dynamic changes between in SMIXGUt图5 SMIXGUt中和的动态变化
4 总 结
本文首先将MGU用于NSMTS预测,实验证明了它达到了与LSTM和GRU相当的预测精度.同时我们在实验中也发现,没有任何单一门单元在处理各NSMTS时间序列时始终能表现出最佳行为.为了缓和这一局面,我们设计了一种混合的MIXGU门单元,通过在训练中动态调整MGU和GRU的组合权重,达到了更优性能的混合结构.预测实验验证了MIXGU网络确实获得了比由单一门单元构建的神经网络更优的性能,这一新型混合门单元也可望用于其他诸如视频流预测.