一种基于集成学习的多元时间序列预测方法

2020-12-09 09:44左亚尧王铭锋洪嘉伟
小型微型计算机系统 2020年12期
关键词:卷积神经网络预测

左亚尧,王铭锋,洪嘉伟,马 铎

1(广东工业大学 计算机学院,广州 510006)2(西安工业大学 电子信息工程学院,西安 726200)

1 前 言

近年来,在时序数据的预测上,主要利用循环神经网络(Recurrent Neural Network,RNN)[1]和支持向量机(Support Vector Machine,SVM)[2]等方法.在这方面,Borovykh A等[3]提出了一种基于深度卷积架构(WaveNet)的自适应条件时间序列预测方法,证明了卷积神经网络能够有效地学习序列间的关系.Chaudhary V等利用长短期记忆(Long Short-Term Memory,LSTM)进行大气污染物浓度的预测[4],预测其未来几个小时的浓度.

利用上述的模型来预测时间序列时,大多只是简单的应用深度学习模型,没有结合时间序列数据的特点.为此,有学者结合时间序列数据特点构建混合模型,以提高时间序列预测性能.Chen J等[5]利用LSTM构建了集成学习模型进行风速预测,结果表明,集成学习模型效果优于单一LSTM.Madan R等[6]利用ARIMA(Autoregressive Integrated Moving Average)和RNN构建混合模型进行流量预测.Lai G等[7]提出了一种深度学习框架LSTNet来解决多元时间序列预测问题,利用卷积神经网络提取数据间的关系,再使用LSTM获取长期的特征,结合两者的优点进行时间序列的预测.

目前所用到的循环神经网络,大多数都是利用LSTM[8]来进行时间序列预测.同时,还有许多学者致力于对LSTM进行改进.Chung等[9]提出了门控循环单元(Gated Recurrent Unit,GRU),减少了记忆单元门的数量,在保证性能的情况下,优化了参数规模.Kumar S等[10]在电力负荷预测时,将LSTM与GRU进行性能对比,结果显示GRU的速度快于LSTM,而且GRU预测效果略优于LSTM.

而在现实生活中,时间序列数据通常是多元的,多元时间序列的序列间总是存在复杂的相关性.这种相关性不仅会限制预测模型的性能,还会使得模型变得更复杂.同时,复杂的相关性也会增加计算量,降低预测精度,甚至导致“维度灾难”[11].

本文针对多元时间序列可能导致预测精度较低的问题,提出一种基于RNN和卷积神经网络(Convolutional Neural Network,CNN)的混合模型HRCNN(Hybrid Recurrent Convolutional Neural Network).HRCNN利用CNN捕获局部特征,并使用GRU获取数据对时间的依赖,将两者所获得的特征拼接传递给Decoder部分进行解码得到预测输出.

2 相关工作

2.1 卷积神经网络

CNN是目前非常成熟的一种网络框架,不仅在图像领域应用广泛,也逐渐被应用在语音语义识别、生物医学信号分类等方面.时间序列预测与交通流量预测[12]相似,在交通流量预测中,所输入的数据为多元时间序列数据,CNN可以直接处理该结构的数据,另外,CNN在处理交通数据过程中,能够从全局角度关注并提取序列的一些重要特征.受此启发,本文将其应用于时间序列预测上.

CNN是一类包含卷积计算且具有深度结构的前馈神经网络,包含输入层、隐层、全连接层及输出层.其中,隐层主要包含卷积层和池化层,卷积层用于特征提取,池化层进行特征压缩,提取主要特征,由全连接层接收池化层的输出,处理后得到最终预测输出.如果卷积神经网络用于分类预测的话,往往最后用softmax层处理.

2.2 序列到序列模型(Sequence to Sequence,Seq2Seq)

近几年来,基于RNN的Seq2Seq模型[13]被提出,同时因其在机器翻译上的成功,而变得流行起来.Seq2Seq模型的核心思想是把一个语言序列翻译成另外一个语言序列,其处理过程是通过使用RNN将一个输入序列映射为另外一个输出序列.其输入和输出长度是可变的,灵活度较高,便于输出特征长度的调整.

其中,RNN是一种专为序列建模的深度神经网络,该模型具有对前面的时序数据信息进行记忆的特点,并将其应用于当前输出的计算中.但是传统的RNN存在梯度消失问题,因此不能很好的捕获长时间的依赖,在处理时序数据上往往会过于依赖临近点数据而忽略长距离的信息.为此,学者们提出了LSTM、GRU等改进的RNN,使其能够捕捉到更长距离的信息,从而学习到长依赖的特征.LSTM与GRU两者的预测性能相差不大,但GRU速度快于LSTM,因此本文选用GRU构建模型.

GRU表达式如公式(1)-公式(4):

rt=σ(itWir+ht-1Whr+br)

(1)

zt=σ(itWiz+ht-1Whz+bz)

(2)

(3)

(4)

GRU通过重置门和更新门确定保留下来的隐藏状态,并将其作为下一时刻的输入或处理成预测输出.

图1 Seq2Seq结构图Fig.1 Seq2Seq structure

而在Seq2Seq中,编码器(encoder)把所有的输入序列都编码成一个统一的语义向量(context),然后由解码器(decoder)解码,如图1所示,隐藏层中均由RNN单元组成.解码器解码时,不断地将上一时刻的输出作为后一时刻的输入,循环解码.

3 多元时间序列预测模型

本文结合CNN和Seq2Seq两者的优点,利用CNN获取时间序列间的关系以及GRU获取对时间的依赖,构建一个多元时间序列预测模型HRCNN.本节将从数据预处理、模型构建、目标函数和优化器的选择等方面进行介绍.

3.1 数据预处理

数据集中有些可能不是影响目标变量的因素,例如:预测农产品价格时所用到的天气数据中的气压,紫外线指数等.如果特征数过多,分析特征、训练模型所需的时间就越长,模型也会越复杂.另外,还可能出现特征稀疏、过拟合等问题,使得模型效果下降.因而,需要先对其进行特征选择,选取出真正影响目标变量的数据,减少特征数量并降维,使模型泛化能力更强.

特征选择的方法有Filter,Wrapper和Embedded.其中Filter是通过计算自变量与目标变量之间的关联,来判断是否选择该自变量.为了方便后续时间窗的数据输入,本文选用Filter中的互信息法[14],互信息是一个随机变量包含另一个随机变量信息量的度量,也是在给定另一个随机变量的知识的条件下,原随机变量不确定度的缩减量,这个不确定度的度量是用熵来表示.假设有两个随机变量X和Y,互信息的表示如公式(5)所示:

(5)

其中p(x,y)是X和Y的联合概率密度函数,p(x)和p(y)分别是X和Y的边际概率密度函数.

互信息越大,说明X和Y两个变量的关联度越大,故可利用互信息法将与农产品价格关联度大的影响因素找出来.

3.2 模型构建

HRCNN模型采用RNN和CNN构建,其中RNN和CNN共同组成Encoder,进行特征提取,RNN作为Decoder,进行解码所提取的信息,得到最终预测输出,整体流程如图2所示.

图2 整体的预测流程Fig.2 Overall prediction process

3.2.1 Seq2Seq部分

由于数据集中每组数据均存在时序性,与GRU模型处理思路相契合,HRCNN采用GRU捕获各个时间序列的时序依赖性.以滑动窗口取得数据作为输入,第n个窗口内的数据定义为xn,并利用式(6)来更新GRU在第n个窗口的隐层状态.

hn=fe(hn-1,xn)

(6)

fe是编码器的GRU更新函数.

最终Decoder的预测输出如式(7):

(7)

其中,fd是解码器中GRU单元的更新函数.

3.2.2 潜在特征的提取

在时间窗里面,GRU能够学习到的主要是时间序列对时间的依赖,而对于不同时间维度的特征关系,却无法提取到.还需要引入卷积模块,来提取这些潜在的特征.

卷积神经网络部分的特征提取主要是基于CNN的卷积层和池化层进行展开,在卷积层中,通过卷积操作,可以获得一系列的特征,使用卷积核w对时间窗内的矩阵数据进行卷积操作,对大小为h*h的窗口进行卷积,具体操作如式(8)所示:

(8)

(9)

q是一个时间窗内所提取的特征总数,它由滤波器的大小以及平移的步长所决定.

利用SeLU激活函数所构建的网络具有自归一化的功能,同时能够有效地防止梯度爆炸以及梯度消失的现象,可作为卷积层的激活函数,该函数定义如式(10):

(10)

HRCNN通过池化层对卷积层提取的特征向量进行采样,得到局部最优特征,公式如式(11)所示:

(11)

3.3 目标函数

为量化实验结果便于比较,HRCNN选用均方根(RMSE)、平均绝对误差(MAE)、R平方决定系数、平均绝对百分比误差(MAPE)作为评价函数,其具体公式如式(12)-式(15)所示:

(12)

(13)

(14)

(15)

3.4 优化器的选择

为了加快训练的过程,HRCNN选用COntinuousCOin Betting(COCOB)[15]作为优化器,与以往的优化器不同,它不需要设置任何学习率,这意味着不需要进行学习率的调整,也不用目标函数的假定曲率,只是将其参数优化的过程简化为投硬币的游戏,可以更快的达到拟合.

3.5 预测算法描述

综上,完整的多元时间序列预测算法描述如下.

Input:滑动窗口观测值X

Output:未来K天观测值YK

Begin:

Initializew,c

iter←number of iterations

fori← 0 to iter do

forjto N do

Xjinput to CNN

cn←fc(Xj)

fort←0 toLdo

Xjtinput to GRU

hjt←fe(Xjt)

end for

updatehej//更新encoder的隐层状态

end for

error←(OK-YK)2//计算误差

COCOB optimizer to updatew,c//优化器更新w,c

end for

End

4 实验与结果分析

4.1 实验环境与数据集

数据集:本文的价格数据来源于中国蔬菜网,天气数据由darksky网站上获取.同时,利用空气质量数据集和室内温度数据集进行对比测试.空气质量数据集采用北京PM2.5数据信息[16],是典型的多变量时间序列,包括气象数据和PM2.5数据,发布于UCI上;室内温度数据集是UCI开源数据集SML2010[17],包含室内温度和二氧化碳、相对湿度等其他相关数据.

4.2 数据归一化

在训练模型之前,归一化是非常重要的,归一化可以加快梯度下降求最优解的速度.HRCNN采用的z-score归一化,z-score可以将不同量级的数据统一转化为同一个量级,统一用计算出的z-score值衡量,保证数据之间的可比性.其归一化公式如式(16)所示:

(16)

其中,z表示归一化后的数据,x代表原始数据,μ,σ分别代表原始数据的均值和标准差.

4.3 参数设定

在本实验中,将输入窗口时间长度为30,卷积核大小为3×3.此外还有几个超参数需要设定,GRU的隐藏层的特征维度,Encoder的GRU的个数,Decoder的GRU的个数.

在超参数选择的方法中,包括网格搜索、随机搜索、贝叶斯调参等,其中贝叶斯调优[18]的原理是建立在高斯过程回归上,而高斯过程回归则是在求解目标函数的后验分布,每次取一组参数来得到相应的输出,用来矫正对后验概率分布的评估,最终得到参数与对应输出的关系.这个过程相对其他调参方法,在每次迭代中都会考虑之前的参数信息,而且迭代次数少,速度快,故HRCNN选用贝叶斯调参.

经过贝叶斯调参后确定GRU的隐层维度为30,Encoder的GRU的个数为2,Decoder的GRU的个数为1.

4.4 结果与分析

本文将数据集分为训练集与测试集,按照前面确定好的参数,利用训练集进行训练.通过Tensorboard得到训练集的损失函数图,其变化如图3所示.

图3 训练过程中MSE的变化图Fig.3 Changes of MSE during training

结果表明,随着迭代次数的增加,训练集的损失不断减少,当迭代次数达到3000的时候,损失值趋于平稳,模型的训练已经达到了预期效果.

表1 不同预测模型的预测结果Table 1 Prediction results of different prediction models

为了检验HRCNN模型的性能,本文将其与LSTM,GRU和梯度提升回归树模型(GBRT)进行对比.

从表1可以看出,HRCNN性能较好,RMSE值为0.1013,MAE值为0.0628,R值为0.9621,MAPE值为3.1147%,而对比的模型中,性能较好的是GBRT,其RMSE值为0.1086,MAE值为0.0678,R值为0.9566,MAPE值为28.6383%.

图4给出了不同模型下大白菜价格预测的结果,相比其他模型,HRCNN模型预测未来一天的预测值与实际值基本一致,表明本文所构建的模型性能的优越性.

图4 预测结果对比Fig.4 Comparison of prediction results

本文,为了检验HRCNN多天预测的性能,也构建了GRU和LSTM并进行实验对比,测试集损失值如表2所示.

表2 大白菜RMSE对比Table 2 RMSE comparison of Napa cabbage

GRU2和LSTM2分别代表的是两层GRU和两层LSTM.从表2可以看出,LSTM,GRU和HRCNN的预测性能均会随着预测天数的增加而降低.但相对于其他模型,本文所构建的HRCNN模型,RMSE较小,而且随着预测天数的增加,预测性能下降慢于其他模型,也说明了本文所构建模型在测试集上的效果优于其他模型.

在预测未来K天的数据时,随着预测天数K的增加,训练所需的时间逐渐增加,而预测未来8天的价格,相对于预测未来7天所花费的时间大幅增加,而预测性能却有所下降,因此将K的最佳值设定为7,即预测未来7天.

表3 两个数据集的性能对比Table 3 Performance comparison of the two datasets

此外,为了检验HRCNN模型的泛用性,本文将HRCNN在PM2.5数据集和SML2010数据集进行测试,并且与EA-LSTM[19]做性能对比,结果如表3所示.

实验参照文献[19],采用MAE和RMSE两种评价函数进行性能对比.从表3可以看出,HRCNN模型在PM2.5数据集上训练测试,所得到的MAE为0.1261,RMSE为0.2253,在PM2.5数据集上预测性能表现上,MAE值优于EA-LSTM 34%,RMSE值优于EA-LSTM 18.2%.HRCNN模型在SML2010数据集上训练测试,所得到的MAE为0.084,RMSE为0.0135,同样优于EA-LSTM,分别提升MAE 18.4%,RMSE 12.3%.HRCNN模型在这两个公开数据集上均表现出一定的性能提升,表明了HRCNN在多元时间序列预测具有较为优越的性能.

5 结 论

本文通过结合CNN与RNN两种模型,CNN提取全局特征,RNN提取与时间相关的特征,并对输入形式进行了处理,构建出新的HRCNN模型,且利用贝叶斯对该模型进行优化调参.实验表明,该模型在预测农产品价格上,体现了较好的预测性能,另外利用该模型在PM2.5和SML2010数据集上进行预测训练,也进一步表明其性能优于EA-LSTM.

猜你喜欢
卷积神经网络预测
无可预测
基于全卷积神经网络的猪背膘厚快速准确测定
基于神经网络的船舶电力系统故障诊断方法
选修2-2期中考试预测卷(A卷)
选修2-2期中考试预测卷(B卷)
选修2—2期中考试预测卷(A卷)
MIV-PSO-BP神经网络用户热负荷预测
基于改进Hopfield神经网络的对地攻击型无人机自主能力评价
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现