赞
踩
参考文献
《一种多趋势时间序列预测的神经网络模型,彭相洲,陈雨》
时间序列数据无处不在。用户通常期望从历史的时间数据中预测出新的趋势。例如,对近期股票数据的观测,期望预测未来股价的走势,从而获得更好的收益。然而提取时间序列的自相关趋势、互相关趋势、短期趋势、长期趋势、线性趋势以及非线性趋势等各种趋势是时间序列预测的难点。
机器学习中,人们希望模型从历史数据中学习其中蕴涵的趋势,并应用于预测。早期的时间序列预测模型主要包括整合移动平均自回归模型、向量自回归模型、支持向量回归机、朴素循环神经网络等。整合移动平均自回归模型是单变量时间序列预测中杰出的统计学模型之一,良好的统计特性使它得到了广泛的研究。在多元时间序列领域中,向量自回归模型是一种更为常见的模型,然而该模型在数据量比较小时容易过拟合。支持向量回归机把时间序列预测问题看做是具有时变参数的回归问题。然而这些基于机器学习的模型通常假定时间序列数据服从某种概率分布或是具体的函数形式,而这些具有具体表达式的机器学习模型通常无法捕获数据背后潜在的复杂非线性趋势,为此本文利用深度学习研究的最新进展提出了一种新的时间序列预测模型,以更好地提取时间序列的非线性趋势。
在时间序列预测方面,深度神经网络也有很多成功的应用,LSTM是最为著名的神经网络模型之一,但是在超长的记忆情况下LSTM模型存在梯度减弱的问题,从而不能更好地捕获到时间序列数据的超长期趋势。为了克服这种问题,Lai等人提出一种带有跳接记忆的LSTNetSkip模型。然而某些时间序列数据的自相关性以及数据之间的互相性比较强,先进的神经网络模型更多注重数据的非线性趋势,并没有过多地关注数据的相关性。为了提取数据的相关特征,本文提出的模型(DCLSTNet)引入了一种新颖的双重卷积法,充分地提取时间序列数据的局部趋势,即通过纵向卷积提取变量的自相关特征,横向卷积提取变量间的互相关特征,然后使用循环神经网络(RNNGRU)提取时间序列数据的长短期趋势。此外,为了捕获时间序列数据的超长期趋势,DCLSTNet引进了LSTNetSkip模型提出的跳接记忆循环神经网络,最后,DCLSTNet叠加了线性自回归模型(VAR)以提升模型的健壮性。
1、模型介绍
DCLSTNet模型组合了非线性神经网络模型和线性自回归模型,如图所示,上分支表示非线性神经神经网络模型。首先,使用多张列向量组成的卷积核,沿着时间轴方向对数据进行纵向卷积,得到多张二维卷积特征图,之后把多张特征图组合成一张二维特征图。这一操作可以理解为提取时间序列数据的自相关特征。其次,使用多张宽度等于时间数据特征数的卷积核,沿着时间轴的方向对上一步操作得到的特征图进行横向卷积。这一操作可以理解为提取时间序列数据变量间的互相关特征。然后,把横向卷积得到的多张向量特征图送入GRU循环神经网络,提取时间序列数据的长短期趋势,并跳接GRU神经网络的历史记忆,解决了GRU神经网络梯度减弱的问题,从而提取时间序列数据的超长期趋势。下分支表示线性自回归(VAR)模型,用来捕获数据中的线性趋势。最后,将上下分支预测的结果相加得到预测的最终结果。
2、问题引入
在股价预测任务中,给定一支股票相关的历史数据Y={y(1),y(2),…,y(T)},n是变量的维度,其中y(t)代表t时刻股价的相关数据,它是一个(1×n)的行向量,向量中的每一个数据代表一个特征。本文的目标是预测未来某个时刻股票的价格。即为了预测y(T+h),T+h表示T时刻之后h时间单位,本文假定{y(1),y(2),…,y(T)}是已知的。同理,如果要预测h下一个时间戳y(T+h+1)的股价,则假定{y(1),y(2),…,y(T),y(T+1)}是已知。因此设定在T时刻输入变量组成的二维矩阵如下定义:XT={y(1),y(2),…,y(T)}∈Rn×T,其中XT的维度是n×T。大多数情况下,未来时刻h根据预测任务而定,如果预测当前时刻之后的第一时刻股价则h选为1,预测当前时刻之后的第二时刻股价则h选为2,通常预测的时间跨度h越大,预测任务越困难。
3、纵向卷积层
DCLSTNet模型的第一层是纵向卷积神经网络(不包含池化操作),纵向卷积操作的目的是提取变量自身的自相关特征。纵向卷积层使用多个维度为w×1的卷积核(w代表卷积核的高度)。第k个卷积核扫过矩阵Xt得到
之后把得到的多张二维特征图xk线性加权组合成一张二维特征图。
其中:∗表示卷积操作;xk代表纵向卷积得到的二维特征图;ReLU表示激活函数,定义为ReLU(x)=max(0,x);Nc代表纵向卷积核的数量;xk(i,j)表示第k张特征图在第i行第j列位置的数值;Zt(i,j)代表合并之后的特征图在第i行第j列位置的数值。
4、横向卷积层
横向卷积神经网络(不包含池化操作)的目的是提取变量之间的互相关特征。横向卷积层使用多个维度为w×n的卷积核(其中:n代表卷积核的宽度,也等于时间序列数据特征的数目;w代表卷积核的高度)。第k个卷积核扫过矩阵Xt得到
其中:∗表示卷积操作;卷积输出hk是一维向量;ReLU表示激活函数,定义如下:ReLU(x)=max(0,x)。为了使卷积得到的每一个hk的长度为T,当hk<T时,则在hk的左边填充0使其长度为T,卷积层输出一个大小为dc×T的矩阵,dc等于横向卷积核的数量。
5、循环层
横向卷积层的输出作为循环神经网络和跳接记忆循环神经网络的输入,以提取时间序列的长短期趋势和超长期趋势。本文使用门控循环体(GRU)作为循环神经网络的循环体,并使用ReLU激活函数作为隐藏层的激活函数。在t时刻,隐藏层的计算公式为
其中:☉表示矩阵点乘;σ表示sigmoid激活函数;xt表示t时刻当前层的输入,当前层输出是前t-T个时刻循环神经网络的记忆{h(t-T),…,h(t-1),h(t)}。
6、跳接记忆循环层
循环神经网络可以通过历史的记忆捕获到数据中蕴涵的长期趋势。而在反向传播的过程中,由GRU或LSTM循环体构成的循环神经网络,超长的记忆将导致梯度减弱,从而无法捕获到数据中的超长期趋势。为了克服这个缺点,本文引用了LSTNetSkip模型中提出的跳接记忆循环神经网络,从而扩大了信息流动的范围,使得循环神经网络可以设计得更长,记忆的信息更多,而不用担心梯度减弱的问题,可以捕获时间序列中的超长期趋势。跳接循环层的更新公式为
其中:p代表循环神经网络记忆跳过的数量,p的大小通常根据数据的周期进行选取,本文所用数据集的周期大致等于24,因此指定p=24,在实验过程中发现一个合适的p可以大幅提升模型的表现效果;☉表示矩阵点乘;σ表示sigmoid激活函数;xt是横向卷积层的输出,当前层的输出是前t-p个时刻循环神经网络的记忆{h(t-p+1),h(t-p+2),…,h(t)}。
将循环神经网络最后时刻的记忆hR(t)和跳接循环神经网络t-p个时刻的记忆{hS(t-p),hS(t-p+1),…,hS(t)}全连接,得到模型上分支的输出hD(t):
7、线性自回归
输入数据的变化不能及时反映到输出是非线性神经网络的一个缺点,特别是在一些周期不明显的时间序列中,当输入数据的周期发生变化时,模型不能及时捕获到周期变化的趋势,从而导致预测准确率的降低。由于线性模型对输入数据变化十分敏感,本文模型在非线性网络的基础上叠加了线性模型。本文使用经典的自回归模型(VAR),线性部分输出hL(t)为
其中:win表示VAR模型的窗口;Wk代表VAR模型的权值;yk代表k时刻预测目标的真实值。
最后,DCLSTNet模型整合了线性(VAR模型)和非线性(深度神经网络模型)模型的输出。在t时刻模型的预测结果Y^t为
8、优化的目标函数
对于大多数预测任务,均方误差是默认的目标函数,对应的优化函数为
其中:θ表示模型的参数集合;Ωtrain表示训练集时间戳集合;‖·‖F表示求范数;h表示当前时刻之后的h时刻。
9、优化策略
DCLSTNet模型的优化策略与传统的时间序列模型相同。假定给定一系列历史数据Yt={y(1),y(2),…,y(t)}和h,定义在t时刻模型的输入为Xt={y(t-h),y(t-h+1),…,y(t)},此时预测任务就变成了一个给定特征和目标{Xt,Yt+h}的回归任务,可以采取随机梯度下降(SGD)或者Adam优化器对目标函数进行优化。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。