深度学习时间序列预测综述

上传人:痛*** 文档编号:48536386 上传时间:2022-01-11 格式:DOCX 页数:14 大小:398.11KB
返回 下载 相关 举报
深度学习时间序列预测综述_第1页
第1页 / 共14页
深度学习时间序列预测综述_第2页
第2页 / 共14页
深度学习时间序列预测综述_第3页
第3页 / 共14页
点击查看更多>>
资源描述
Page 4文献来源文献来源:Torres, Jos F., et al. Deep Learning for Time Series Forecasting: A Survey. Big Data 9.1 (2021): 3-21.文献亮点:深度学习方法正被越来越多的用于时间序列预测。本文对于时间序列预测的各种深度学习框架以及实践过程中的很多工程问题都进行了深入而广泛的讨论,为基于深度学习的时间序列研究的框架选型和使用过程提供了丰富的指导作用。引言近年来大量数据的涌现对于大数据分析提出了越来越多的需求,而在大数据分析中广泛使用的各种学习技术中,深度学习技术由于其出色的预测能力脱颖而出。大部分深度学习中的层次化计算都可以通过 GPU 来并行计算,因此我们能够以较高的性能来训练大规模分布式的模型,并且模型复杂度和非线性程度越来越高。深度学习目前在学界有大量的研究,监督学习和无监督学习都应用广泛。模式识别和分类任务是最先也是最大量使用深度学习方法的,并且在语音识别、文本挖掘、图像分析领域都取得了较大成功。然而,深度学习在回归问题上的应用正变得日益广泛,主要是因为在带有时间标签的数据上开发了越来越多的深度学习架构,这种情况我们一般称为时间序列预测。时间序列是指按一定时间顺序上以一定的时间间隔收集的数据集合。虽然时间序列上的一些统计方法早在 1970 年代就开始大量研究,但是基于深度学习的模型当前能够获得更强的效果并且新的深度学习框架正在逐步被研究和创新出来。本文的主要目的是对于时间序列预测领域中深度学习基础设施进行全面广泛的研究和梳理。另外,本文也会介绍当前已经成功应用深度学习方法的一些应用案例问题定义时间序列定义一个时间序列是由一个按一定顺序排列并且在时间上观察得到的一段取值序列组成。虽然时间是连续的,但是时间序列样本的取值通常是以一定固定间隔采样得到。虽然这个定义对于大多数情况是成立的,但是并不是所有的时间序列都能以此定义来建模,主要是因为:1. 数据收集时不可靠肯定导致数据缺失。为了处理缺失值,通常广泛使用的方式是填充缺失信息或者丢弃样本。2. 异常数据也是经常遇到的问题,通常采用一些基于稳健统计的方法来剔除这些异常数据或者将数据调整后加入模型。3. 当以无规律的时间间隔收集数据时,这些数据被称为不均匀间隔的时间序列或者是数据流。这些问题中有一些能够在后续使用的模型中自动处理完成,但是如果数据采集请务必阅读正文之后的免责条款部分全球视野 本土智慧Page 11无固定规律,这种情况就需要在模型中进行显式处理。时间序列的预处理方法不属于本文讨论范围,在此不做详细介绍。时间序列构成时间序列通常由三个重要的属性来刻画,趋势、季节性和无规律部分即残差。 趋势:这是一段时间序列不考虑季节性和残差的基本运动过程,最常见的趋势类型包括线性、指数型以及抛物线型。 季节性:这个属性衡量了以特定时间间隔重复的变化特征,它综合表现出在时间、幅度和方向上的稳定性。季节性可能由于气候、经济周期或者节假日等因素而产生。 残差:当趋势和季节性被剥离后,剩下的就是残差。有些残差可能足够高而掩盖了趋势和季节性,这时的残差我们通常称其为离群点,并且通常会使用一些稳健统计的方法来处理这些离群点。这些波动可能有多种来源, 这使得预测几乎不可能。然而,如果有任务机会可以检测或建模这些波动的来源,他们可以被认为是趋势变化的前兆。时间序列是这三个组成部分的集合。现实世界的时间序列呈现出有意义的不规则分量并且不是平稳的(均值和方差随时间变化不是恒定的),这使该分量成为最具挑战性的建模分量。 为此,对它们进行准确的预测是极其困难的,许多经典的预测方法试图将目标时间序列分解为这三个分量,并分别对它们进行预测。每种技术的有效性是根据其预测每个特定的分量的能力来评估的。 基于数据挖掘的技术已被证明对于这些分量具有非常强大的分析能力。时间序列可以用图形表示,x 轴标识时间,而 y 轴标识时间戳 记录的值。 这种表示允许对系列中最突出的特征进行视觉检测,例如振荡幅度、季节性和周期或异常数据或离群点的存在。图 1 描绘了一个时间序列,它使用具有线性季节性的加性模型,随着时间的推移具有恒定的频率和幅度,由函数 sin(x)表示; 线性趋势其随时间的变化始终保持相同的数量,由函数 0.0213x 表示;残差由区间 0, 0.1 中的随机数表示。 图 1:一个包含趋势、季节性和残差的时间序列资料来源:Big Data,整理数学形式时间序列模型可以是单变量(一个时间相关变量)或多变量(多个时间相关变请务必阅读正文之后的免责条款部分全球视野 本土智慧量)。 尽管单变量和多变量系统之间的模型可能有很大不同,但大多数深度学习模型都可以模糊地处理它们。一方面,用 = ( ), , ( 1), (), ( + 1), , ( + ) 表示一个历史数据中具有 个值的单变量时间序列,其中每个( ), = 0, , 都表示变量在时间 的记录值。预测过程包括估计( + 1)的值,用( + 1)表示,目的是最小化误差,误差通常表示为 ( + 1) ( + 1)。 当预测范围 大于 1时,也可以进行这种预测,也就是说,当目标是预测 () 之后的个值时,即=1( + ), = 1, , 。 在这种情况下,当函数 ( + ) ( + ) 最小化时,可以达到最佳预测。另一方面,多元时间序列可以用矩阵形式表示如下:其中 ( ) 表示时间序列集, = 1,2, , , = 1,2, , 表示历史数据和当前样本,而 = 1, 2, , 表示未来的 个值。通常,有一个目标时间序列(待预测的),其余的表示为独立的时间序列。短期和长期时间序列预测另一个关键问题是时间序列的长度。根据样本数量,可以定义长时间序列或短时间序列。众所周知,Box-Jenkins 的模型不适用于长时间序列,主要是由于参数优化的耗时过程和信息的包含,这些信息对当前样本的建模不再有用。如何处理这些问题与模型的目的密切相关。可以使用灵活的非参数模型,但这仍然假设模型结构将适用于整个数据周期,这并不一定总是正确的。更好的方法包括允许模型随时间变化。这可以通过使用时变参数调整参数模型或使用基于时间的内核调整非参数模型来完成。但是,如果目标只是预测一些观察结果, 则使用最新样本拟合模型并将长时间序列转换为短时间序列会更简单。尽管最近发布了使用分布式 ARIMA 模型的初步方法,但使用经典预测方法处理此类时间序列仍然具有挑战性。 然而,近年来已经发布了许多适用于处理超长时间序列或大数据时间序列的机器学习算法。这些模型利用机器集群或 GPU 来克服前面段落中描述的限制。深度学习模型可以以可扩展的方式处理时间序列并提供准确的预测。 集成学习也可用于预测大数据时间序列,甚至基于非常成熟的方法(如最近邻或模式序列相似性)的方法。深度学习架构本节提供了大数据环境中用于时间序列预测的深度学习的理论导览,首先介绍一下文献中最常用的用于预测时间序列的架构,然后介绍最前沿的大数据的深度学习工作和框架分析。深度前馈神经网络深度前馈神经网络 (DFFNN),也称为多层感知器,是由于单层神经网络无法学习某些功能而产生的。 DFFNN 的架构由输入层、输出层和不同的隐藏层组成,如图 2 所示。此外,每个隐藏层都有一定数量的神经元需要确定。两个连续层的神经元之间的关系通过权重建模,权重是在网络训练阶段计算的。图 2:深度前馈神经网络资料来源:Big Data,整理特别是,权重是通过梯度下降优化方法最小化成本函数来计算的。 然后,使用反向传播算法计算代价函数的梯度。一旦计算出权重,网络输出神经元的值就通过使用由以下等式定义的前馈过程获得: = (1 + )其中 是第 层的激活值,即第 层神经元的值组成的向量, 和 是第 层对应的权重和偏差, 是激活函数。因此, 的值是通过使用 1 层的激活值 1 作为输入来计算的。在时间序列预测中,除了输出层获得预测值外,校正线性单元函数通常用作所有层的激活函数,一般使用双曲正切函数(tanh)。对于所有网络架构,必须提前选择一些超参数的值。这些超参数,如层数和神经元数量定义了网络架构,而其他超参数如学习率、动量、迭代次数或小批量大小等,对梯度下降方法的收敛性有很大影响。这些超参数的最佳选择很重要, 因为这些值极大地影响了网络获得的预测结果。 超参数将在超参数优化部分更详细地讨论。循环神经网络循环神经网络 (RNN) 专门用于处理序列数据,例如与机器翻译相关的问题中的单词序列、语音识别中的音频数据或预测问题中的时间序列。所有这些问题都呈现出一个共同特征,即数据之间存在时间依赖性。传统的前馈神经网络无法考虑这些依赖性,而 RNN 正是为了解决这个问题而出现的。因此,RNN 架构中的输入数据既是过去数据,也是当前数据。有不同类型的架构,取决于网络中数据输入和输出的数量,例如一对一(一输入一输出)、一对多(一输入多输出)、多对一(多输入和一个输出),以及多对多(多输入和输出)。最常见的 RNN 是多对一的分类问题,或多对多的机器翻译或时间序列预测。另外,对于时间序列的情况,输入数据序列的长度通常与输出数据序列的大小不同,输出数据序列的大小通常是要预测的样本数。解决时间序列预测的基本 RNN 架构如图 3 所示。 和 是时间序列在时间 的实际值和预测值, 是要预测的样本数,称为预测范围。用于时间序列预测的最广泛使用的 RNN 将在后面简要介绍。图 3:循环神经网络资料来源:Big Data,整理Elman RNN: Elman 神经网络(ENN)是第一个 RNN,它结合了隐藏单元的 状态来对数据序列进行预测。ENN 由经典的单层前馈网络组成,但隐藏层连接到一个新的层,称为上下文层,使用固定权重 1,如图 4 所示。这个上下文层的神经元的主要功能是保存隐藏层神经元激活值的副本。模型定义为: = ( + 1 + )其中 是隐藏层中 状态的神经元值, 是当前输入,1 是上下文隐藏单元中保存的信息,, , 是权重和偏差, 是激活函数。图 4:ENN资料来源:Big Data,整理长短期记忆网络:标准的基本 RNN 会遇到梯度消失的问题,梯度随着层数的增加而降低。事实上,对于具有大量层数的深度 RNN,梯度实际上为零,从而阻止了网络的学习。出于这个原因,这些网络具有短期记忆,并且在处理需要记住完整序列中包含的所有信息的长序列时并不能获得好的结果。长短期记忆(LSTM) 循环网络的出现是为了解决梯度消失问题。为此,LSTM 使用三个门来保留长期存在的相关信息并丢弃不相关的信息。这些门是 遗忘门、 更新门和 0 输出门。 决定应该丢弃或保存哪些信息。接近 0 的值意味着过去的信息被遗忘,而接近 1 的值意味着它仍然存在。 决定使用什么新信息来更新 内存状态。因此, 是同时使用 和 来更新。最后,0 决定哪个输出值将作为下一个隐藏单元的输入。1前一个隐藏单元的信息和 当前输入的信息通过 sigmoid 激活函数计算所有门值,并通过 tanh 激活函数计算 新。定义 LSTM 单元的方程是:新信息,这些信息将被用于更 = tanh( 1, + ) = (1, + ) = ( 1, + ) 0 = (01, + 0) = + 1 = 0 tanh()其中, , 0 ,以及 , , 0 是权重和偏差,分别控制 , , 0 门的行为, 和 是 存储单元候选者的权重和偏差。图 5 显示了 LSTM 循环网络中一个隐藏单元如何工作。 和 + 运算符表示逐元素向量乘法和求和。图 5:LSTM 中的隐藏单元资料来源:Big Data,整理门控循环单元:带有门控循环单元(GRU)的循环网络是 LSTM 等长期记忆网络, 但由于 LSTM 网络的高计算成本,它们在 2014 年作为 LSTM 的简化而出现。GRU 是研究人员所关注的最常用的版本之一,并发现它对许多不同的问题都具有鲁棒性和实用性。在 RNN 中使用门可以改进对非常长距离的依赖关系的捕获, 从而使 RNN 更加有效。LSTM 更强大、更有效,因为它有三个门而不是两个, 但 GRU 是一个更简单的模型,计算速度更快,因为它只有两个门, 更新门和 相关门,如图 6 所示。 门将使用 内存状态候选来决定是否更新 内存状态。 门决定如何使用 1 来计算 的下一个候选者,即 。GRU 由以下等式定义: = (1, + ) = ( 1, + )= tanh( 1, + ) = + (1 ) 1 = 其中 , 以及 , 分别是控制 , 门行为的权重和偏差,而 , 是 存储单元候选者的权重和偏差。图 6:GRU 中的隐藏单元资料来源:Big Data,整理双向 RNN:例如在自然语言处理(NLP)领域存在一些问题,在给定时刻预测数据序列的值时,需要该时刻前后的序列信息。 双向循环神经网络(BRNN)解决了这个问题。BRNN 的主要缺点是在进行预测之前需要整个数据序列。标准网络使用单向前馈过程计算隐藏单元的激活值。然而,在 BRNN 中,预测使用来自过去的信息以及来自现在和未来的信息作为输入,使用前向和后向处理。因此,时间 的预测 是通过使用 激活函数获得的,该函数同时在时间 t进行前向和后向激活取值上应用对应的权重。 = ( , + ) 其中 , 为权重和偏差,, 是分别通过前向和后向处理过程中隐藏层计 算得到的激活值, 是激活函数。图 7 展示了 BRNN 的基本架构。 一个 BRNN 可以被看作是两个 RNN,其中不同的隐藏单元有两个值,一个由前向计算,另一个由后向计算。此外,BRNN 单元可以是标准 RNN 单元或 GRU 或 LSTM 单元。事实上,带有 LSTM 单元的BRNN 通常用于很多 NLP 问题。Page 15图 7:BRNN 基本架构资料来源:Big Data,整理深度循环神经网络:深度循环神经网络 (DRNN) 可以被视为具有不止一层的RNN,也称为堆叠 RNN。 隐藏单元可以是标准的 RNN、GRU 或 LSTM 单元, 并且可以是单向或双向的,如前几节所述。 图 8 说明了具有三层的 DRNN 的架构。图 8:DRNN 基本架构资料来源:Big Data,整理一般来说,DRNN 在时间序列预测方面效果很好,但是当使用很长的数据序列作为输入时,其性能会下降。为了解决这个问题,可以将注意力机制纳入模型, 这是深度学习中最强大的思想之一。注意模型允许神经网络在生成输出时只注意输入数据序列的一部分。这种注意力是通过使用权重建模的,权重由单层前馈神经网络计算。卷积神经网络卷积神经网络 (CNN) 由 Fukushima 提出,是图像处理和计算机视觉中最常见的架构之一。CNN 具有三种层:卷积层、池化层和全连接层。卷积层的主要任务是从数据输入中学习特征。为此,通过使用矩阵之间的卷积运算将预定义大请务必阅读正文之后的免责条款部分全球视野 本土智慧小的过滤器应用于数据。卷积是所有元素乘积的总和。池化减少了输入的大小, 加快了计算速度并防止了过拟合。最流行的池化方法是平均值和最大池化,它们分别使用平均值或最大值来汇总值。一旦卷积层提取了特征,就可以使用全连接层(也称为密集层)进行预测,如DFFNN。最后这些全连接层的输入数据是卷积层和池化层产生的扁平特征。图9 描绘了 CNN 的整体架构。图 9:CNN 基本架构资料来源:Big Data,整理最近,一种称为时间卷积网络(TCN)的 CNN 变体出现,在执行时间和内存要求方面与 DRNN 形成了有力竞争。TCN 与 DFFNN 具有相同的架构,但每层的激活值是通过使用前一层的早期值计算的。膨胀卷积用于选择上一层神经元的哪些值将对下一层神经元的值有贡献。因此,这种扩张的卷积操作同时捕获了局部和时间信息。膨胀卷积 是一个定义如下的函数:=0 () = 1() 其中 是扩张因子参数, 是大小为 的过滤器。图 10:TCN 基本架构资料来源:Big Data,整理图 10 展示了通过对每层使用大小为 3 的滤波器和 1、2 和 4 的扩张因子来应用膨胀卷积时 TCNN 的架构。此外,当使用更深更大的 TCN 来实现进一步的稳定性时,除了卷积层之外,还需要使用通用残差模块。这些通用残差块包括在应用激活函数之前将数据输入添加到输出中。那么,TCN 模型可以定义如下: = ( (1) + + 1) 其中 () 是膨胀卷积, 是时刻 第 层的神经元取值,, 是第 层对应的权重和偏差, 是激活函数。深度学习实践实现多层感知器的实现比较简单。然而,深度学习模型更为复杂,其实施需要高水平的技术专长和大量的实施时间。为了更轻松地实施并减少设计和训练模型所需的时间,一些公司将工作重点放在开发允许实施、训练和使用深度学习模型的框架上。深度学习框架的主要思想是提供一个接口,提供模型的实现而不必过多关注它们背后的数学复杂性。学术文献中有几种可用的框架。选择哪个框架主要取决于几个重要因素,例如可以实现的架构类型、对分布式编程环境的支持,或者它是否可以在 GPU 上运行。从这个意义上讲,下图总结了学术文献中使用最广泛的框架,其中术语 all 包括 DFFNN、CNN、TCN、RNN、LSTM、GRU 或BRNN 架构,CPU 是中央处理单元。图 11:深度学习框架资料来源:Big Data,整理上图显示用于开发深度学习模型的主要编程语言是 Python。此外,大多数框架都支持分布式执行和 GPU 的使用。尽管这里的框架有助于模型的开发,但其中一些框架需要实现额外较多的代码才能获得完整的实现。为此,开发者开发了基于框架核心的高级库,例如 Keras、Sonnet、Swift、Gluon,使上层编程更加容易。使用高级库的主要优点是,除了便于实现之外,语法还可以重用于另一个基础框架,然而可能缺乏灵活性。超参优化框架和高级库的结合极大地方便了模型的实现。然而,有一个重要的研究空白: 模型优化。这种优化将决定模型的好坏,必须根据其超参数的调整来进行。在深度学习中有两种类型的超参数:模型参数和优化参数。必须在模型定义中调整模型参数以获得最佳性能。在模型的训练阶段使用数据集调整优化参数。一些最相关的超参数在下图中按网络架构进行了描述和分类。图 12:深度学习中的超参资料来源:Big Data,整理超参数的数量将取决于要使用的网络架构。此外,每一项的价值都会受到问题特征和数据的影响。这使得优化模型的任务成为研究界的挑战。此外,考虑到参数可以推断出大量可能的组合。为此,各种元启发式和优化策略得以应用。根据文献,有几种策略可以优化深度学习模型的一组超参数,如下图所示。图 13:参数寻优策略资料来源:Big Data,整理因此,超参数优化方法可以分为四大块:1. 试错:这种优化方法基于手动调整每个超参数。因此,该方法意味着高时间投资,具有相对较低的计算成本和低搜索空间,因为它需要用户在每次运行完成时手动修改值的动作。由于在深度学习中有大量的超参数,并且它们可以设置的值是无限的,因此不建议使用这种优化方法。2. 网格:网格方法探索一组已建立的超参数的不同可能组合。这种方法覆盖了很高的搜索空间,尽管它具有与之相关的高计算成本,这使得这种方法无法应用于深度学习,更不用说在大数据环境中了。3. 随机:随机搜索允许覆盖高搜索空间,因为可以生成无限的超参数组合。在这类方法中,我们可以区分完全随机或引导搜索策略,例如基于元启发式的搜索策略。此类搜索算法包括遗传算法、粒子群优化或增强拓扑算法的神经进化等。广泛的搜索范围加上该搜索策略所涉及的中等成本,使其成为优化深度学习模型的最佳方法之一。4. 概率:这种优化方法跟踪每次评估的结果。这些评估用于生成概率模型, 为不同的超参数分配值。使用概率方法优化超参数的最常见算法是基于贝叶斯方法的算法。有许多库用于以自动化方式优化超参数。 然而,很少有专门为深度学习模型超参数优化设计的。下图总结了一组用于深度学习模型超参数优化的库,按搜索策略分类。图 14:超参优化库列表资料来源:Big Data,整理硬件性能研究人员必须做出的最重要的决定之一是决定确保深度学习算法能够找到准确模型所需的物理资源。因此,鉴于对更好、更复杂的硬件的需求不断增加,本节概述了通常用于深度学习环境的不同硬件基础设施。虽然可以使用 CPU 来执行深度学习算法,但密集的计算需求通常会导致CPU 物理资源不足(线性架构)。因此,深度学习框架通常使用三种不同的硬件架构来挖掘信息:GPU、张量处理单元 (TPU) 和智能处理单元 (IPU)。GPU 是分配在 CPU 中的协处理器,专门设计用于处理计算环境中的图形。GPU 可以拥有比 CPU 多数百甚至数千个内核,但运行速度较低。 GPU 以单指令、多数据架构实现高数据并行性,在当前人工智能领域发挥着重要作用, 应用范围广泛。第一代 TPU 于 2016 年在 Google I/O 大会上推出,它们专门设计用于运行已经训练好的神经网络。TPU 是专门为机器学习构建的定制专用集成电路。与GPU(自 2016 年以来经常用于相同的任务)相比,TPU 被隐式地设计用于大量降低精度的计算(例如,从 8 位精度开始)和缺乏用于光栅化/纹理映射的硬件。该术语是为专为 Google 的 TensorFlow 框架设计的特定芯片而创造的。一般来说,与在普通 CPU 或 GPU 上执行的计算相比,TPU 的准确性较低,但对于它们必须执行的计算来说已经足够了(单个 TPU 每天可以处理超过 1 亿张图片)。此外,TPU 针对大批量和 CNN 进行了高度优化,并具有最高的训练吞吐量。IPU 与今天的 CPU 和 GPU 处理器完全不同。它是一种高度灵活、易于使用的并行处理器,经过全新设计,可在当前机器学习模型上提供最先进的性能。但更重要的是,IPU 旨在实现新出现的机器智能工作负载。 IPU 在训练和推理的小批量上提供更好的算术效率,这导致训练中模型收敛速度更快,模型泛化能力更好,能够并行化更多 IPU 处理器以减少给定批量大小的训练时间,并且还以更低的推理延迟提供更高的吞吐量。另一个有趣的特性是与 GPU 或 TPU 相比功耗更低(最多降低 20%)。Page 16结论深度学习已被证明是解决处理大数据的复杂问题的最强大的机器学习技术之一。目前通过智能设备或者金融市场产生的数据大多是时间序列,对其预测是几乎 所有研究领域中最常见和重要的问题之一。因此,本文对应用于时间序列预测 的深度学习技术进行了综述。本文描述了过去几年最常用的时间序列数据深度 学习架构,并且对于深度学习实践过程中的多个工程问题进行了深入探讨。请务必阅读正文之后的免责条款部分全球视野 本土智慧
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!