深度学习时间序列预测综述.docx
《深度学习时间序列预测综述.docx》由会员分享,可在线阅读,更多相关《深度学习时间序列预测综述.docx(14页珍藏版)》请在三一文库上搜索。
1、Page 4文献来源文献来源:Torres, Jos F., et al. Deep Learning for Time Series Forecasting: A Survey. Big Data 9.1 (2021): 3-21.文献亮点:深度学习方法正被越来越多的用于时间序列预测。本文对于时间序列预测的各种深度学习框架以及实践过程中的很多工程问题都进行了深入而广泛的讨论,为基于深度学习的时间序列研究的框架选型和使用过程提供了丰富的指导作用。引言近年来大量数据的涌现对于大数据分析提出了越来越多的需求,而在大数据分析中广泛使用的各种学习技术中,深度学习技术由于其出色的预测能力脱颖而出。大部分
2、深度学习中的层次化计算都可以通过 GPU 来并行计算,因此我们能够以较高的性能来训练大规模分布式的模型,并且模型复杂度和非线性程度越来越高。深度学习目前在学界有大量的研究,监督学习和无监督学习都应用广泛。模式识别和分类任务是最先也是最大量使用深度学习方法的,并且在语音识别、文本挖掘、图像分析领域都取得了较大成功。然而,深度学习在回归问题上的应用正变得日益广泛,主要是因为在带有时间标签的数据上开发了越来越多的深度学习架构,这种情况我们一般称为时间序列预测。时间序列是指按一定时间顺序上以一定的时间间隔收集的数据集合。虽然时间序列上的一些统计方法早在 1970 年代就开始大量研究,但是基于深度学习的
3、模型当前能够获得更强的效果并且新的深度学习框架正在逐步被研究和创新出来。本文的主要目的是对于时间序列预测领域中深度学习基础设施进行全面广泛的研究和梳理。另外,本文也会介绍当前已经成功应用深度学习方法的一些应用案例问题定义时间序列定义一个时间序列是由一个按一定顺序排列并且在时间上观察得到的一段取值序列组成。虽然时间是连续的,但是时间序列样本的取值通常是以一定固定间隔采样得到。虽然这个定义对于大多数情况是成立的,但是并不是所有的时间序列都能以此定义来建模,主要是因为:1. 数据收集时不可靠肯定导致数据缺失。为了处理缺失值,通常广泛使用的方式是填充缺失信息或者丢弃样本。2. 异常数据也是经常遇到的问
4、题,通常采用一些基于稳健统计的方法来剔除这些异常数据或者将数据调整后加入模型。3. 当以无规律的时间间隔收集数据时,这些数据被称为不均匀间隔的时间序列或者是数据流。这些问题中有一些能够在后续使用的模型中自动处理完成,但是如果数据采集请务必阅读正文之后的免责条款部分全球视野 本土智慧Page 11无固定规律,这种情况就需要在模型中进行显式处理。时间序列的预处理方法不属于本文讨论范围,在此不做详细介绍。时间序列构成时间序列通常由三个重要的属性来刻画,趋势、季节性和无规律部分即残差。 趋势:这是一段时间序列不考虑季节性和残差的基本运动过程,最常见的趋势类型包括线性、指数型以及抛物线型。 季节性:这个
5、属性衡量了以特定时间间隔重复的变化特征,它综合表现出在时间、幅度和方向上的稳定性。季节性可能由于气候、经济周期或者节假日等因素而产生。 残差:当趋势和季节性被剥离后,剩下的就是残差。有些残差可能足够高而掩盖了趋势和季节性,这时的残差我们通常称其为离群点,并且通常会使用一些稳健统计的方法来处理这些离群点。这些波动可能有多种来源, 这使得预测几乎不可能。然而,如果有任务机会可以检测或建模这些波动的来源,他们可以被认为是趋势变化的前兆。时间序列是这三个组成部分的集合。现实世界的时间序列呈现出有意义的不规则分量并且不是平稳的(均值和方差随时间变化不是恒定的),这使该分量成为最具挑战性的建模分量。 为此
6、对它们进行准确的预测是极其困难的,许多经典的预测方法试图将目标时间序列分解为这三个分量,并分别对它们进行预测。每种技术的有效性是根据其预测每个特定的分量的能力来评估的。 基于数据挖掘的技术已被证明对于这些分量具有非常强大的分析能力。时间序列可以用图形表示,x 轴标识时间,而 y 轴标识时间戳 𝑥𝑡 记录的值。 这种表示允许对系列中最突出的特征进行视觉检测,例如振荡幅度、季节性和周期或异常数据或离群点的存在。图 1 描绘了一个时间序列,它使用具有线性季节性的加性模型,随着时间的推移具有恒定的频率和幅度,由函数 sin(x)表示; 线性趋势其随时间的变化始终保持相
7、同的数量,由函数 0.0213x 表示;残差由区间 0, 0.1 中的随机数表示。 图 1:一个包含趋势、季节性和残差的时间序列资料来源:Big Data,整理数学形式时间序列模型可以是单变量(一个时间相关变量)或多变量(多个时间相关变请务必阅读正文之后的免责条款部分全球视野 本土智慧量)。 尽管单变量和多变量系统之间的模型可能有很大不同,但大多数深度学习模型都可以模糊地处理它们。一方面,用𝑦 = 𝑦(𝑡 𝐿), , 𝑦(𝑡 1), 𝑦(𝑡), 𝑦(&
8、119905; + 1), , 𝑦(𝑡 + ) 表示一个历史数据中具有 𝐿 个值的单变量时间序列,其中每个𝑦(𝑡 𝑖), 𝑖 = 0, , 𝐿 都表示变量𝑦在时间𝑡 𝑖的记录值。预测过程包括估计𝑦(𝑡 + 1)的值,用𝑦(𝑡 + 1)表示,目的是最小化误差,误差通常表示为 𝑦(𝑡 + 1) 𝑦(⻖
9、5; + 1)。 当预测范围 大于 1时,也可以进行这种预测,也就是说,当目标是预测 𝑦(𝑡) 之后的个值时,即𝑖=1𝑦(𝑡 + 𝑖), 𝑖 = 1, , 。 在这种情况下,当函数 (𝑦(𝑡 + 𝑖) 𝑦(𝑡 + 𝑖) 最小化时,可以达到最佳预测。另一方面,多元时间序列可以用矩阵形式表示如下:其中 𝑦𝑖(𝑡 𝑚) 表示时间序列
10、集,𝑖 = 1,2, , 𝑛, 𝑚 = 1,2, , 𝐿 表示历史数据和当前样本,而𝑚 = 1, 2, , 表示未来的 个值。通常,有一个目标时间序列(待预测的),其余的表示为独立的时间序列。短期和长期时间序列预测另一个关键问题是时间序列的长度。根据样本数量,可以定义长时间序列或短时间序列。众所周知,Box-Jenkins 的模型不适用于长时间序列,主要是由于参数优化的耗时过程和信息的包含,这些信息对当前样本的建模不再有用。如何处理这些问题与模型的目的密切相关。可以使用灵活的非参数模型,但这仍然假设模型结构将适用于
11、整个数据周期,这并不一定总是正确的。更好的方法包括允许模型随时间变化。这可以通过使用时变参数调整参数模型或使用基于时间的内核调整非参数模型来完成。但是,如果目标只是预测一些观察结果, 则使用最新样本拟合模型并将长时间序列转换为短时间序列会更简单。尽管最近发布了使用分布式 ARIMA 模型的初步方法,但使用经典预测方法处理此类时间序列仍然具有挑战性。 然而,近年来已经发布了许多适用于处理超长时间序列或大数据时间序列的机器学习算法。这些模型利用机器集群或 GPU 来克服前面段落中描述的限制。深度学习模型可以以可扩展的方式处理时间序列并提供准确的预测。 集成学习也可用于预测大数据时间序列,甚至基于非
12、常成熟的方法(如最近邻或模式序列相似性)的方法。深度学习架构本节提供了大数据环境中用于时间序列预测的深度学习的理论导览,首先介绍一下文献中最常用的用于预测时间序列的架构,然后介绍最前沿的大数据的深度学习工作和框架分析。深度前馈神经网络深度前馈神经网络 (DFFNN),也称为多层感知器,是由于单层神经网络无法学习某些功能而产生的。 DFFNN 的架构由输入层、输出层和不同的隐藏层组成,如图 2 所示。此外,每个隐藏层都有一定数量的神经元需要确定。两个连续层的神经元之间的关系通过权重建模,权重是在网络训练阶段计算的。图 2:深度前馈神经网络资料来源:Big Data,整理特别是,权重是通过梯度下降
13、优化方法最小化成本函数来计算的。 然后,使用反向传播算法计算代价函数的梯度。一旦计算出权重,网络输出神经元的值就通过使用由以下等式定义的前馈过程获得:𝑎𝑙 = 𝑔(𝑊𝑙𝑎𝑙1 + 𝑏𝑙 )𝑎𝑎其中 𝑎𝑙 是第 𝑙 层的激活值,即第 𝑙 层神经元的值组成的向量,𝑊𝑙 和 𝑏𝑙 是𝑎
14、119886;第 𝑙 层对应的权重和偏差,𝑔 是激活函数。因此,𝑎𝑙 的值是通过使用 𝑙 1 层的激活值 𝑎𝑙1 作为输入来计算的。在时间序列预测中,除了输出层获得预测值外,校正线性单元函数通常用作所有层的激活函数,一般使用双曲正切函数(tanh)。对于所有网络架构,必须提前选择一些超参数的值。这些超参数,如层数和神经元数量定义了网络架构,而其他超参数如学习率、动量、迭代次数或小批量大小等,对梯度下降方法的收敛性有很大影响。这些超参数的最佳选择很重要, 因为这些值极大地影响了网络
15、获得的预测结果。 超参数将在超参数优化部分更详细地讨论。循环神经网络循环神经网络 (RNN) 专门用于处理序列数据,例如与机器翻译相关的问题中的单词序列、语音识别中的音频数据或预测问题中的时间序列。所有这些问题都呈现出一个共同特征,即数据之间存在时间依赖性。传统的前馈神经网络无法考虑这些依赖性,而 RNN 正是为了解决这个问题而出现的。因此,RNN 架构中的输入数据既是过去数据,也是当前数据。有不同类型的架构,取决于网络中数据输入和输出的数量,例如一对一(一输入一输出)、一对多(一输入多输出)、多对一(多输入和一个输出),以及多对多(多输入和输出)。最常见的 RNN 是多对一的分类问题,或多对
16、多的机器翻译或时间序列预测。另外,对于时间序列的情况,输入数据序列的长度通常与输出数据序列的大小不同,输出数据序列的大小通常是要预测的样本数。解决时间序列预测的基本 RNN 架构如图 3 所示。𝑥𝑖 和 𝑥𝑖是时间序列在时间 𝑖 的实际值和预测值, 是要预测的样本数,称为预测范围。用于时间序列预测的最广泛使用的 RNN 将在后面简要介绍。图 3:循环神经网络资料来源:Big Data,整理Elman RNN: Elman 神经网络(ENN)是第一个 RNN,它结合了隐藏单元的 𝑡 状态来对数据序列进
17、行预测。ENN 由经典的单层前馈网络组成,但隐藏层连接到一个新的层,称为上下文层,使用固定权重 1,如图 4 所示。这个上下文层的神经元的主要功能是保存隐藏层神经元激活值的副本。模型定义为:𝑎𝑡 = 𝑔(𝑊𝑎𝑥𝑡 + 𝑈𝑎𝑎𝑡1 + 𝑏𝑎)其中 𝑎𝑡 是隐藏层中 𝑡 状态的神经元值,𝑥𝑡 是当前输入,w
18、886;𝑡1 是上下文隐藏单元中保存的信息,𝑊𝑎, 𝑈𝑎, 𝑏𝑎 是权重和偏差,𝑔 是激活函数。图 4:ENN资料来源:Big Data,整理长短期记忆网络:标准的基本 RNN 会遇到梯度消失的问题,梯度随着层数的增加而降低。事实上,对于具有大量层数的深度 RNN,梯度实际上为零,从而阻止了网络的学习。出于这个原因,这些网络具有短期记忆,并且在处理需要记住完整序列中包含的所有信息的长序列时并不能获得好的结果。长短期记忆(LSTM) 循环网络的出现是为了解决梯度消失问题
19、为此,LSTM 使用三个门来保留长期存在的相关信息并丢弃不相关的信息。这些门是 𝑓 遗忘门、𝑢 更新门和 0 输出门。 𝑓 决定应该丢弃或保存哪些信息。接近 0 的值意味着过去的信息被遗忘,而接近 1 的值意味着它仍然存在。 𝑢 决定使用什么新信息𝑐𝑡来更新 𝑐𝑡 内存状态。因此,𝑐𝑡 是同时使用 𝑓 和 𝑢 来更新。最后,0 决定哪个输出值将作为下一个隐藏单元的输入。𝑎𝑡
20、1前一个隐藏单元的信息和 𝑥𝑡 当前输入的信息通过 𝜎 sigmoid 激活函数计算所有门值,并通过 tanh 激活函数计算 𝑐𝑡新。定义 LSTM 单元的方程是:新信息,这些信息将被用于更𝑐𝑡 = tanh(𝑊𝑐 𝑎𝑡1, 𝑥𝑡 + 𝑏𝑐)𝑢 = 𝜎(𝑊𝑢𝑎𝑡
21、1, 𝑥𝑡 + 𝑏𝑢) 𝑓 = 𝜎(𝑊𝑓 𝑎𝑡1, 𝑥𝑡 + 𝑏𝑓) 0 = 𝜎(𝑊0𝑎𝑡1, 𝑥𝑡 + 𝑏0)𝑐𝑡 = 𝑢 𝑐𝑡 + 𝑓 𝑐w
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 深度 学习 时间 序列 预测 综述
