时间序列预测模型的工作原理

GeoAI 工具箱中的时间序列 AI 工具使用基于深度学习的时间序列预测模型来预测时空立方体中每个位置的未来值。 这些模型使用训练时间序列预测模型工具对现有时间序列数据进行训练,借助使用时间序列模型进行预测工具,经过训练的模型可用于进行预测。 主要输出是最终预测时间步长的地图以及信息性消息和弹出图表。 可以提供其他解释变量来改进分析变量的预测。

这些工具将使用不同类型的深度神经网络进行时间序列预测。 受支持的网络架构包括全连接网络以及卷积神经网络和用于时间序列预测的 LSTM(长短期记忆网络)。 稍后将介绍模型架构的详细信息。

将使用输入时间序列数据的每个变量的时间窗来构造用于训练模型的训练数据。 时间序列数据可以遵循复杂的趋势并具有多个级别的季节性。 如果存在足够多的训练数据,则基于深度学习的模型将具有较高的学习能力,并且可以跨不同类型的时间序列和位置来学习这些模式。 训练工具用于训练单一的全局预测模型,该模型将使用来自每个位置的训练数据。 借助预测工具,该全局模型用于预测每个位置的未来值。

可能的应用

基于深度学习的模型可以学习数据中的复杂趋势,因此在许多情况下都可以使用这种模型。 当数据具有复杂的趋势或季节性,并且存在足够多的训练数据可用于了解这些关系时,相比其他预测方法,该模型更为有效。

例如,您可以在以下应用程序中使用时间序列 AI 工具集:

  • 零售店经理可以根据历史销售数据来预测消费品的需求并相应地维护库存。
  • 流行病学家可以模拟传染病的增加,并预测下周内需要住院治疗的患者人数。
  • 风力发电厂可以根据历史趋势和天气数据来预测风力发电量。
  • 房地产投资者可以根据历史数据及其与贷款利率、黄金价格和股市指标等因素的关系来估计房价的走势。
  • 政策制定者可以预测城市地区对住房、电力和水的需求。
  • 气象学家可以根据诸如热带东太平洋的风和海面温度等气候变量和指数来预测厄尔尼诺-南方涛动 (ENSO)。

模型训练和预测

可以使用训练时间序列预测模型工具,根据历史数据来训练基于深度学习的时间序列预测模型。 可以将一个或多个变量作为解释变量,并且该模型将使用跨位置的历史数据时间片来学习趋势、季节性、模式以及过去数据与后续时间步长的分析变量值之间的关系。

预测中的误差(也称为损失)用于指导使用梯度下降的模型训练。 该模型将在整个数据(轮数)的多次训练中逐渐改进,并且随着训练的进行,计算误差(下一时间步长的预测值与实际地表值之间的差异)将下降。 默认情况下,当验证数据的损失在 5 个连续轮数后没有任何改进时,除非未选中模型不再改进时停止训练参数,否则模型训练将停止。 经过训练的模型将另存为深度学习包 (.dlpk),借助使用时间序列模型进行预测工具,可用于对未见过的时间序列数据进行预测。

模型架构

受支持的模型架构如下所述:

LSTM(长短期记忆)

时间序列数据本质上具有时间性或顺序性,可以通过递归神经网络 (RNN) 进行处理。 RNN 会记住过去的信息并将其传递给当前的输入状态。 然而,由于梯度消失,普通 RNN 无法记住长期依赖关系。 LSTM 是 RNN 的升级版,可以解决此问题。 LSTM 由单元组成,每个单元由 4 个神经网络组成,借助这些神经网络,可以使用来自新输入和过去输出的信息来更新其单元状态。

LSTM 模块

当选择 LSTM 作为模型类型参数值时,可以提供以下“模型参数”以在不使用默认值时对模型进行自定义:

名称默认值描述

hidden_layer_size

100

隐藏图层的大小

全卷积网络 (FCN)

全卷积网络 (FCN) 主要用于图像的语义分割和其他计算机视觉问题。 它们将图像作为输入,并将其传递给一系列卷积层以提取重要特征。 此类神经网络还能够提取时间序列数据中的趋势和季节性,并为时间序列预测提供令人惊讶的良好结果。 给定输入时间序列数据,一维过滤器将在每个卷积层中滑过该数据,以提取具有高预测能力的时不变判别性特征。

由于参数减少 (因在输入图层和输出图层之间提供了局部连通性),因此卷积层的计算效率非常高。 参数共享还通过为各个过滤器设置相同的内核权重来显著减少所需参数的数量。 卷积神经网络最突出的优势是移位不变性,由此使得该网络在检测重要特征时具有鲁棒性,而不考虑其在数据中的位置。

FCN 时间序列模型使用 3 个 1D 卷积层,没有跨步和池化。 将在架构的最后一层完成平均池化。 每次卷积后,将执行批量归一化,并使用已校正线性单元 (ReLU) 作为激活函数。 该网络架构如下图所示:

FCN 架构
显示了用于时间序列预测的完全卷积网络架构。

InceptionTime

此 CNN(卷积神经网络)基于之前提出的用于图像分类的 Inception 网络 "Going Deeper with Convolutions" (2015) [1]。 在 InceptionTime 之前,神经网络的计算能力基于其深度。 本文中提出的 Inception 模块将并行使用各种卷积并串连其输出,由此增加网络的深度和宽度,同时保持计算预算不变。

InceptionTime 模型将此架构应用于时间序列预测。 在此模型中,将针对核长度大小为 10、20 和 40 的一维卷积层以及大小为 3 的最大池化层完成串联。 此外,每三个 Inception 模块将引入一个残差连接,如下图所示。 Inception 网络还会大量使用瓶颈层,其中使用了长度为 1 和步长为 1 的滤波器来降低时间序列的维度以及模型复杂度,同时防止过度拟合。 该网络中使用了多个此类 Inception 块,然后是全局平均池化层。

InceptionTime 架构
显示了适用于时间序列预测的 InceptionTime 架构。

ResNet

深度神经网络的传统观点是,网络越深,则其性能应越好,因为可以使用更多参数来学习复杂任务。 然而,根据观察,由于梯度消失的问题,模型性能实际上随着深度的增加而下降。 为了解决此问题,ResNet 架构中引入了残差块。 该模型由残差块组成,其中添加了跳跃连接或快捷连接。 这些直接连接允许梯度沿着它们不受阻碍地流向网络的较早层,以便更好地学习。

对于时间序列预测,Wang 等人在 2016 年的 "Time Series Classification from Scratch with Deep Neural Networks: A Strong Baseline" 论文中 对该架构进行了调整。 该网络将使用 3 个残差块,如下图所示。 每个块包含 3 个卷积与批量归一化的组合,并使用 ReLU 作为激活函数。 在输入和输出处添加跳跃连接。 此处使用的滤波器大小分别为 64,128 和 128,最后一层将使用全局平均池化。

ResNet 架构
显示了适用于时间序列预测的 ResNet 架构。

ResCNN

该网络是 ResNet 和卷积神经网络的组合。 为了实现更好的信息传输,在网络中添加了单一跳跃连接。 为了解决由于所有残差块中的跳跃连接导致的过度拟合,该架构仅在第一个块中使用跳跃连接,如下图所示。 将在不同的层中使用各种激活函数,包括 ReLU、LReLU、PReLU 和 ELU,以实现良好的抽象化 [2]。

ResCNN 架构

预测和验证

为了确定模型的性能,该工具依赖于两个指标。 第一个为预测指标,第二个为验证指标。 预测指标提供了一种方式来说明预测与现有数据的拟合程度,而验证指标提供了有关模型预测相应验证数据的效果的信息,这些验证数据是在对模型进行训练时保留的。

  • 预测指标

    该工具通过组合来自时空立方体不同位置的数据来训练单个模型,并且该模型将学习每个位置处的数据的显著特征。 然后,可以使用经过训练的模型在未来的时间片进行预测。 将使用预测均方根误差 (RMSE) 来测量模型对现有训练数据的拟合度,它等于模型学习的值与时间序列的实际值之间的均方差的平方根。

    预测 RMSE

    其中 T 为时间步长数,ct 为模型学习的值,rt 为时间 t 处时间序列的原始值。

    下图显示了时间序列的原始值以及时间序列模型学习的值。 预测 RMSE 将测量这两个时间序列之间的差异程度。

    预测模型

    预测 RMSE 仅会测量曲线对原始时间序列值的拟合程度。 它无法测量经过训练的模型预测未来值的能力。 常见的情况是,模型会紧密拟合时间序列,但在外推时无法提供准确的预测,因此验证 RMSE 是一个更加可靠的指标。

  • 验证指标

    验证模型用于确定预测模型对每个时间序列的未来值的预测程度。 该模型需要通过排除每个时间序列的部分最终时间步长,并使用未排除的数据训练模型来进行构造。 随后即可将该模型用于预测所保留数据的值,并将预测值与隐藏的原始值进行比较。 默认情况下,系统将保留 10% 的时间步长用于验证,但是可以使用为进行验证排除的时间步长数参数来更改此数字。 所排除的时间步长数不能超过时间步长数的 25%,且如果将其指定为 0,则系统将不执行任何验证。 预测的精度需通过计算验证 RMSE 统计数据来进行测量,该统计数据等于所排除时间步长的预测值与原始值之间的均方差的平方根。

    验证 RMSE

    其中 T 为时间步长数,m 是为验证保留的时间步长数,ct 为根据前 T-m 个时间步长预测的值,而 rt 是为在时间 t 处验证保留的时间序列的原始值。

    下图显示了模型对时间序列的前半部分进行拟合,然后进行外推以预测时间序列的后半部分的值。 验证 RMSE 将测量所保留时间步长处的预测值与原始值之间的差异程度。

    验证模型

工具输出

此工具的主要输出为 2D 要素类,其中显示了使用存储为字段的所有其他时间步长的预测,按最终预测时间步长符号化的输入时空立方体中的每个位置。 虽然会独立预测每个位置,并且未考虑空间关系,但是对于具有类似时间序列的区域,地图可能会显示空间模式。

弹出图表

使用浏览导航工具单击地图上的任何要素将在弹出窗口窗格中显示一个图表,其中显示了时空立方体的值以及拟合值和预测值。 时空立方体的值将显示为蓝色,并通过蓝线进行连接。 拟合的值将显示为橙色,并通过橙色虚线进行连接。 预测的值将显示为橙色,并通过表示森林模型预测的橙色实线进行连接。 可以将鼠标悬停在图表中的任何点上,以查看该点的日期和值。

预测方法

弹出图表将显示原始值、拟合值和预测值。

地理处理消息

此工具将提供许多消息,其中包含有关工具运行的信息。 消息具有三个主要部分。

输入时空立方体详细信息部分将显示输入时空立方体的属性以及有关时间步长数、位置数和时空立方图格数的信息。 在第一部分中显示的属性取决于最初创建立方体的方式,因此该信息因立方体的不同而有所不同。 分析详细信息部分将显示预测结果的属性,其中包括预测的时间步长数、针对验证排除的时间步长数以及有关预测的时间步长的信息。

各位置的精度汇总部分将显示所有位置之间的“预测 RMSE”和“验证 RMSE”的汇总统计数据。 对于每个值,都将显示最小值、最大值、平均值、中位数和标准差。

注:

在工具运行期间,地理处理消息将显示在地理处理窗格底部。 可将鼠标悬停在进度条上、单击弹出按钮 弹出 或展开地理处理窗格中的消息部分来访问消息。 您还可以使用地理处理历史访问之前运行工具的消息。

输出字段

除了对象 ID、几何字段以及包含弹出图表的字段之外,输出要素将具有以下字段:

  • 位置 ID (LOCATION) - 时空立方体相应位置的位置 ID。
  • (时间步长)中(分析变量)的预测(FCAST_1FCAST_2,依此类推)- 每个未来时间步长的预测值。 字段别名将显示分析变量的名称以及预测的日期。 将为每个预测的时间步长创建此类型的字段。
  • 预测均方根误差 (F_RMSE) - 预测 RMSE。
  • 验证均方根误差 (V_RMSE) - 验证 RMSE。 如果未针对验证排除任何时间步长,则不会创建此字段。
  • 预测方法 (METHOD) - 一个文本字段,用于显示所用时间序列 AI 模型类型和序列长度。

参考资料

有关基于深度学习的时间序列预测模型的详细信息,请参阅以下参考资料:

  1. Szegedy, Christian, Wei Liu, Yangqing Jia, Pierre Sermanet, Scott Reed, Dragomir Anguelov, Dumitru Erhan, Vincent Vanhoucke, and Andrew Rabinovich. "Going deeper with convolutions." In Proceedings of the IEEE conference on computer vision and pattern recognition, pp. 1-9. 2015.
  2. Ismail Fawaz, Hassan, Benjamin Lucas, Germain Forestier, Charlotte Pelletier, Daniel F. Schmidt, Jonathan Weber, Geoffrey I. Webb, Lhassane Idoumghar, Pierre-Alain Muller, and François Petitjean. "Inceptiontime: Finding alexnet for time series classification." Data Mining and Knowledge Discovery 34, no. 6 (2020): 1936-1962.
  3. Wang, Zhiguang, Weizhong Yan, and Tim Oates. "Time series classification from scratch with deep neural networks: A strong baseline." In 2017 International joint conference on neural networks (IJCNN), pp. 1578-1585. IEEE, 2017.
  4. Zou, Xiaowu, Zidong Wang, Qi Li, and Weiguo Sheng. "Integration of residual network and convolutional neural network along with various activation functions and global pooling for time series classification." Neurocomputing 367 (2019): 39-45.
  5. Hochreiter, Sepp, and Jürgen Schmidhuber. "Long short-term memory." Neural computation 9, no. 8 (1997): 1735-1780.

相关主题