ForecastNet: A Time-Variant Deep Feed-Forward Neural Network Architecture for Multi-Step-Ahead Time-Series Forecasting

一种用于多步超前时间序列预测的时变深度前馈神经网络结构


摘要

递归和卷积神经网络是深度学习文献中最常用的时间序列预测结构。这些网络通过在时间或空间上使用固定的参数重复一组固定的架构来使用参数共享。结果是,整个体系结构是时不变的(在空间域上是移位不变的)或固定不变的状态。我们认为,时不变性会降低进行多步提前预测的能力,因为需要在一定范围内建立尺度和分辨率的动力学模型。提出了一种基于深度前馈结构的时变预测模型(ForecastNet)。ForecastNet的另一个新奇之处是交错输出,我们用它来帮助减轻逐渐消失的梯度。在多个数据集上,ForecastNet被证明优于统计和深度学习基准模型。

介绍

多步超前预测是指在给定过去和现在的数据的情况下,对未来几个时间步的一些变量进行预测。在一组时间步中,可以在一系列尺度或分辨率上观察到各种时间序列成分,如复杂趋势、季节性和噪声。增加预测步骤的数量会增加需要建模的比例范围。需要一种精确的预测方法,在整个尺度范围内对所有这些组成部分进行建模。
人们对递归神经网络(RNN)和序列到序列预测模型(Kuznetsov&Mariet,2018)非常感兴趣。一些研究表明,这些模型的变体取得了成功(Zhu&Laptev,2017;Laptev et al.,2017;Wen et al.,2017;Maddix et al.,Salinas等人,2019年;Xing等人,2019年;Hewamalage等人,2019年;Nguyen等人,2019年;Du等人,2020年。在RNN中的复位产生了一组细胞,每个细胞都有完善的结构,该结构在时间上被复制。此复制结果在一个时间不变模型中。相似,参数共享和卷积在卷积神经网络(“CNN”)中的结果在空间域中的一个移不变模型;在时间域中,它等于时间不变。我们的推测是,时间-不变性会减少模型在多个时间步骤中学习各种动力学尺度的能力;特别是在多步提前的预测中。
为了解决这个问题,我们提出了ForecastNet,它是一个具有交错输出的深度前向架构。交织输出之间是网络结构,随着时间的推移,结构和参数有所不同。结果是一个随时间变化的模型。我们展示了前馈网的四种变体,以突出其灵活性。将这四种变体与最先进的基准模型进行比较。结果表明,在性能变化方面,ForecastNet是准确可靠的。

模型

时间序列预测模型 python 时间序列预测模型论文_神经网络


输入x包含时间序列预测模型 python 时间序列预测模型论文_时间序列预测_02时间序列预测模型 python 时间序列预测模型论文_时间序列_03

输出就是t+1到t+4

隐藏单元包含某种形式的前馈神经网络

阴影表示这些单元的时变性

时间序列预测模型 python 时间序列预测模型论文_神经网络_04

一个简单的ForecastNet形式的例子,在隐藏的单元中有一个紧密连接的隐藏层(可以为隐藏的单元选择更复杂的结构)。输出采用正态或高斯分布形式。注意,尽管每个序列步骤的架构是相同的,但权重会有所不同(即它们不是重复的)。

ForecastNet不是时不变的,因为它的参数(和可选的体系结构)随时间(输入和输出序列)而变化。将其与具有固定参数的RNN进行比较,这些参数在每个时间步重复使用,从而得到一个时不变模型

时间序列预测模型 python 时间序列预测模型论文_深度学习_05

注意,RNN中对时间不变性的要求是在收到第一个输入之前,将时间序列预测模型 python 时间序列预测模型论文_时间序列预测_06初始化为时间序列预测模型 python 时间序列预测模型论文_时间序列预测_07。如果在第一次输入之前初始化了时间序列预测模型 python 时间序列预测模型论文_时间序列预测_06,如果收到,则必须有一组零(填充)作为输入提供,直到收到第一个文本。这个可能导致时间序列预测模型 python 时间序列预测模型论文_深度学习_09

时间序列预测模型 python 时间序列预测模型论文_时间序列_10

时不变

当输入延迟时间时间序列预测模型 python 时间序列预测模型论文_深度学习_11时,输出也相应延迟时间时间序列预测模型 python 时间序列预测模型论文_深度学习_11

例题

判定系统时间序列预测模型 python 时间序列预测模型论文_时间序列预测模型 python_13的时不变性

解:

时间序列预测模型 python 时间序列预测模型论文_时间序列预测_14

时间序列预测模型 python 时间序列预测模型论文_时间序列预测模型 python_15

时间序列预测模型 python 时间序列预测模型论文_神经网络_16

所以时变

  • Inputs
  • x = 时间序列预测模型 python 时间序列预测模型论文_深度学习_17是因变量的一组滞后值。因变量可以是单变量或多变量
  • Hidden Cells
  • 一个隐藏的细胞代表某种形式的前馈神经网络,如多层感知器(MLP),CNN,或者self-attention
  • 每个隐藏的单元在体系结构方面都是异构的
  • 作为一个前馈网络,即使每个隐藏单元的结构都是相同的,每个细胞都有自己独特的参数
  • ForecastNet是顺序的,但它不是递归的
  • 隐藏的单元旨在对时间序列动力学建模。隐藏细胞模型局部动力学和细胞之间的联系共同对长期动力学。
  • Outputs
  • ForecastNet中的每个输出都提供了一个进入未来的预测步骤。网络越深,输出就越多。因此,随着预测范围的增加,ForecastNet的复杂性自然会增加
  • 利用混合密度网络的思想(Salinas等人,2019年;Bishop,1994年),每个输出都建立了一个概率分布模型。在本研究中,正态分布如图2所示。输出层 时间序列预测模型 python 时间序列预测模型论文_深度学习_18 的正态分布的平均值和标准差由下式给出:
    时间序列预测模型 python 时间序列预测模型论文_时间序列预测模型 python_19
    时间序列预测模型 python 时间序列预测模型论文_时间序列_20
  • 时间序列预测模型 python 时间序列预测模型论文_深度学习_21是前一个隐藏单元的输出
  • 时间序列预测模型 python 时间序列预测模型论文_时间序列预测_22时间序列预测模型 python 时间序列预测模型论文_深度学习_23是平均层的权重和偏差
  • 时间序列预测模型 python 时间序列预测模型论文_时间序列_24是标准差层的权重和偏差
  • 时间序列预测模型 python 时间序列预测模型论文_深度学习_18 层相关的预测是通过从时间序列预测模型 python 时间序列预测模型论文_深度学习_26采样得到的
  • 在预测过程中,将采样的预测反馈到下一层。在训练过程中,通过训练数据可以完全观察到预测结果。该网络通过梯度下降进行训练,以优化正态分布对数似然函数(Salinas等人,2019)
  • 混合密度输出可以用线性输出和平方误差损失函数来代替。此表中不存在不确定性,但需要对两个参数进行优化。这种形式在本研究中被证明是ForecastNet的变体之一。
  • ForecastNet属性
  • 时变
  • 交错输出
  • 深度学习容易产生梯度爆炸、梯度消失
  • 通过在ForecastNet中的隐藏层之间交错输出,链被分解成一个项和。这个项的总和比因子的乘积更稳定。
  • 在训练过程中,交错输出向网络的内部隐藏层提供局部信息,会降低网络的有效深度

时间序列预测模型 python 时间序列预测模型论文_时间序列预测模型 python_27

  • 在前向传播时,第 时间序列预测模型 python 时间序列预测模型论文_时间序列预测模型 python_28 层的输出不仅给了 时间序列预测模型 python 时间序列预测模型论文_时间序列预测模型 python_29 层,而且给了 时间序列预测模型 python 时间序列预测模型论文_时间序列预测模型 python_30
  • 在反向传播时,第 时间序列预测模型 python 时间序列预测模型论文_时间序列预测模型 python_30 层直接更新第 时间序列预测模型 python 时间序列预测模型论文_时间序列预测模型 python_28
  • 交错输出可以缓解,但不能消除梯度消失问题。项Ψk是由微积分链规则形成的导数的乘积。这个乘积中的因子数量与k成正比。对于k较大的较远的层,Ψk将有许多因子。其结果是,从遥远的层向后传播的梯度仍然容易受到消失梯度问题的影响。然而,对于k很小的附近输出,Ψk的因子很少,因此附近输出的梯度不太可能经历消失梯度问题。因此,在训练过程中,附近的输出可以为局部参数提供指导,从而随着网络有效深度的减小而提高收敛性。

实验

  • 数据集
  • 一个合成数据集和九个来自不同领域的真实数据集
  • 包括天气、环境、能源、水产养殖和气象领域