做时间序列预测有必要用深度学习吗?

Wang_AI Wang_AI     2022-12-02     789

关键词:

机器之心报道

编辑:杜伟、陈萍

在深度学习方法应用广泛的今天,所有领域是不是非它不可呢?其实未必,在时间序列预测任务上,简单的机器学习方法能够媲美甚至超越很多 DNN 模型。

过去几年,时间序列领域的经典参数方法(自回归)已经在很大程度上被复杂的深度学习框架(如 DeepGIO 或 LSTNet 等)更新替代。这是因为传统方法可能无法捕获长期和短期序列混合传递的信息,而深度学习方法的思路是掌握数据中的跨时非线性依赖。从结果来看,这些深度学习方法不仅优于 ARIMA 等传统方法和梯度提升回归树(Gradient Boosting Regression Tree, GBRT)等简单机器学习模型,而且增强了这样一种预期,即机器学习领域的时间序列预测模型需要以深度学习工作为基础,才能得到 SOTA 结果。

但是,推荐系列领域的最新启示表明,深度学习方法在机器学习各种研究分支取得的成就需要对简单高效模型定期确认和评估,以保持各自研究领域进展的真实性。除了时间序列预测模型越来越复杂之外,另一个动机包括文献中正在完善的深度学习模型在处理时间序列预测问题上的片面性,因此限制了现有解决方案方法的多样性。

在前段时间的一篇论文《Do We Really Need Deep Learning Models for Time Series Forecasting?》中,来自德国希尔德斯海姆大学计算机科学系的研究者展示了通过精心配置的输入处理结构,GBRT 等简单但强大的集成模型在时间序列预测领域能够媲美甚至超越很多 DNN 模型。

论文地址:https://arxiv.org/pdf/2101.02118.pdf

研究者对特征工程多输出 GBRT 模型进行了评估,并提出了以下两个研究问题:

  • 对于用于时间序列预测的基于窗口的学习框架来说,精心配置 GBRT 模型的输入和输出结构有什么效果?

  • 一个虽简单但配置良好的 GBRT 模型与 SOTA 深度学习时间序列预测框架相比如何?

为了回答这两个问题,研究者选择了双重实验设置,分别解决两类预测任务,即系统化方式中的单变量和多变量预测。目的是评估 GBRT 模型以及在顶会(NeurIPS、KDD、SIGIR、ECML、ICML、CIKM、IJCAI、ICLR 等)中出现的 SOTA 深度学习方法。这项研究的整体贡献可以总结如下:

一,研究者将一个简单的机器学习方法 GBRT 提升了竞品 DNN 时间序列预测模型的标准。首先将 GBRT 转换成一个基于窗口的回归框架,接着对它的输入和输出结构进行特征工程,如此便能从额外上下文信息中获益最多;

二,为了突出输入处理对时间序列预测模型的重要性,研究者通过实证证明了为什么基于窗口的 GBRT 输入设置可以在时间序列预测领域提高 ARIMA 和原版 GBRT 等精心配置的模型所产生的预测性能;

三,研究者比较了 GBRT 与各种 SOTA 深度学习时间序列预测模型的性能,并验证了它在单变量和双变量时间序列预测任务中的竞争力。

这项研究也引起了不少人的共鸣。有人认为,时间序列分类任务同样也没有必要用深度学习方法。在一些情况下,SVMs 或逻辑回归方法表现更好,速度也更快。

研究设计

选择基线。研究者系统地过滤了 2016 年至 2020 年在 NeurIPS、KDD、SIGIR、SDM、ECML、ICML、CIKM、IJCAI、ICLR 等会议表现较好的论文集。论文需满足以下要求:

  • 主题:只考虑时间序列预测领域的研究;

  • 数据结构:专用数据类型,但如异步时间序列和概念化为图形的数据被排除在外;

  • 可复现:数据、源代码应公开。如果源代码不可用,但实验设置有清晰的文档,研究也可以从实验中复制结果;

  • 计算的可行性:研究中得出的结果能够以易于处理的方式复现,并在合理的时间内可计算。

评估。该研究在两个层次上对时间序列预测 GBRT 模型进行评估:一个单变量和一个多变量。为了使所选的深度学习基线和 GBRT 之间具有显著的可比性,该研究在相同的数据集上评估了所有模型,数据集如下表 1 所示:左边提供了关于用来评估模型数据集,而右边则列出了各自的实验规范:

问题公式化。时间序列预测问题,就监督学习而言,时间序列预测可以表述为:给定一个集合和一个集合,经过一系列假设后,得到如下期望损失最小化模型:

GBRT

GBRT 模型,特别是 XGBoost 实现,其优点是易于应用,而且在结构化数据上特别成功。但是当涉及时间序列预测的初始(naive)实现时,GBRT 模型失去了很大一部分灵活性,因为它们没有被投射到基于窗口的回归问题中,而是被配置为适合大部分时间序列作为完整且连续的数据点序列来预测时间序列的后续和剩余测试部分。

与上述初始实现不同,该研究通过将时间序列重新配置为窗口输入,并在多个训练实例(窗口)上进行训练,以模拟成功的时间序列预测模型中使用的输入处理行为,为此该研究定义了一个可调窗口,。这种基于窗口的 GBRT 模型输入设置如图 1 所示:

第一步是使用变换函数将典型的 2D 训练实例(时间序列输入窗口)变换为适合 GBRT 的 1D 形状向量(扁平窗口)。该函数将所有 w 实例的目标值 y_i 连接起来,然后将最后一个时间点实例 t 的协变量向量附加到输入窗口 w 中,表示为 

基于窗口的 GBRT 输入设置极大地提高了其预测性能,因为 GBRT 模型现在能够掌握数据的底层时间序列结构,并且现在可以被认为是先进 DNN 时间序列预测模型的适当机器学习基线。另一方面,简单配置的 GBRT 模型是一个简单的逐点回归模型,将时间点 的协变量作为输入,预测单一目标值 Y_i、j 为同一时间点训练损失如下:

实验结果

单变量时间序列的结果

下表 2 总体结果表明,除了 traffic 预测外,基于窗口的 GBRT 具有较强的竞争力。另一方面,具有传统配置的预测模型(例如 ARIMA 和 GBRT(Naive))的表现远远优于预期。

而在 electricity 预测方面,基于窗口的 GBRT 在所有模型中均显示出最佳的 RMSE 性能,其在 WAPE 和 MAE 方面的性能仅优于 2016 年推出的 TRMF,基于注意力的 DARNN 模型表现较差。关于 exchange rate 任务,LSTNet(以 w = 24 重新实现)和 TMRF 显示出相当强的结果,优于基于窗口的 GBRT 基线。

在不考虑时间预测器的情况下,traffic 预测的结果是混合的,因此 DARNN 和 LSTNet 实现了 traffic 数据集的最佳结果,而对于 PeMSD7 数据集,基于窗口的 GBRT 基线在两个方面优于 DNN 模型三个指标。然而,时间协变量的包含显着提高了 GBRT 的性能(下表 3),因此,对于 traffic 预测,所有 DNN 方法,包括 DeepGlo [18] 和 STGCN(spatio-temporal traffic forecasting model ) [19],其在 PeMSD7 上实现了 6.77 的 RMSE,优于重新配置的 GBRT 基线。

下表 4 显示了 LSTNet 与 GBRT(W-b) 的结果:

下表 5 中的结果表明 GBRT 的竞争力,但也表明基于 transformer 的模型相当强大,例如 TFT 超过了提升回归树性能。然而,作为一个例外,TFT 构成了本研究中唯一一个始终优于 GBRT 的 DNN 模型,而 DeepAR 和 DeepState 等概率模型在这些单变量数据集上的表现优于其他模型。

多元数据集

下表 6 中为 DARNN 与基于窗口 GBRT 比较:简单、配置良好的 GBRT 基线可以超越 DNN 框架。

从下表 7 可以看出,即使是专门为某一预测任务设计的 DNN 模型,也没有达到预期效果。相反,DAQFF 的性能比简单的基于窗口、特征工程的梯度提升回归树模型更差。在本实验中,值得注意的是,即使是传统应用预测意义上的 GBRT 模型也能在 air quality 数据集上提供更好的结果。

用深度学习预测专业棋手走法

 我不擅长国际象棋。我父亲在我年幼的时候教过我,但我猜他是那些一直让他们的孩子获胜的爸爸之一。为了弥补世界上最受欢迎的游戏之一的技能的缺乏,我做了任何数据科学爱好者会做的事情:建立一个人工智能来击败... 查看详情

相比于深度学习,传统的机器学习算法难道就此没落了吗,还有必要去学习吗?

自从MITTechnologyReview(麻省理工科技评论)将深度学习列为2013年十大科技突破之首。加上今年Google的AlphaGo与李世石九段惊天动地的大战,AlphaGo以绝对优势完胜李世石九段。人工智能、机器学习、深度学习、强化学习,成为了这... 查看详情

深度学习对于非it人员有必要学习吗

深度学习本身是一个非常庞大的知识体系。本文更多想从程序员的视角出发,让大家观察一下深度学习对程序员意味着什么,以及我们如何利用这样一个高速发展的学科,来帮助程序员提升软件开发的能力。本文根据费良宏在201... 查看详情

使用深度学习从序列中预测子序列

】使用深度学习从序列中预测子序列【英文标题】:UsingDeepLearningtoPredictSubsequencefromSequence【发布时间】:2016-09-0720:59:39【问题描述】:我的数据如下所示:可以查看here,并已包含在下面的代码中。实际上,我有大约7000个样本(... 查看详情

机器学习笔记之五用arima模型做需求预测用arima模型做需求预测

本文结构:时间序列分析?什么是ARIMA?ARIMA数学模型?input,output是什么?怎么用?-代码实例常见问题?时间序列分析?时间序列,就是按时间顺序排列的,随时间变化的数据序列。生活中各领域各行业太多时间序列的数据了... 查看详情

神经网络深度学习学习小记

一、sigmodfunction出现的必要性:  为什么不直接用stagefunction?在feedback时,假如说我们现在用的是stagefunction,直接用楼梯式的跳跃函数,我们每次做很小的参数改动时。如果说这个之前这个参数使函数值落在0-1改变的那一块区... 查看详情

用于时间序列的深度学习 Keras 简单 RNN,预测多个

】用于时间序列的深度学习Keras简单RNN,预测多个【英文标题】:DeepLearningKerasSimpleRNNforTimeSeries,predictmultiple【发布时间】:2020-04-2212:02:05【问题描述】:我对深度学习很陌生,因此研究了如何使用Keras解决时间序列问题。然而,... 查看详情

12篇顶会论文,深度学习时间序列预测经典方案汇总

...法笔记”,更多算法笔记和世间万物的学习记录~早期的时间序列预测主要模型是诸如ARIMA这样的单序列线性模型。这种模型对每个序列分别进行拟合。在ARIMA的基础上,又提出了引入非线性、引入外部特征等的优化。然而,ARIMA... 查看详情

深度学习时间序列预测如何构建矩阵

深度学习时间序列预测在构建矩阵时需要在输入序列的每个时间步,LSTM网络都学习预测下一个时间步的值。时间序列预测一直以来是机器学习中的一个难题。要预测序列在将来时间步的值,需要将目标指定为将值移位了一个时... 查看详情

一文搞定深度学习建模预测全流程(python)

...| 算法进阶本文详细地梳理及实现了深度学习模型构建及预测的全流程,代码示例基于python及神经网络库keras,通过设计一个深度神经网络模型做波士顿房价预测。主要依赖的Python库有:keras、scikit-learn、pandas、tensorfl... 查看详情

深度学习建模预测全流程(python)!

本文详细地梳理及实现了深度学习模型构建及预测的全流程,代码示例基于python及神经网络库keras,通过设计一个深度神经网络模型做波士顿房价预测。主要依赖的Python库有:keras、scikit-learn、pandas、tensorflow(建... 查看详情

深度学习时间序列预测:gru算法构建多变量时间序列预测模型+代码实战

深度学习时间序列预测:GRU算法构建多变量时间序列预测模型+代码实战注意参考:深度学习多变量时间序列预测:GRU算法构建单变量时间序列预测模型+代码实战 GRU(GateRecurrentUnit)是循环神经网络(RecurrentNeuralNetwork,RNN)的... 查看详情

时间序列深度学习:状态lstm模型预测太阳黑子(代码片段)

时间序列深度学习:状态LSTM模型预测太阳黑子本文翻译自《TimeSeriesDeepLearning:ForecastingSunspotsWithKerasStatefulLstmInR》原文链接由于数据科学机器学习和深度学习的发展,时间序列预测在预测准确性方面取得了显着进展。随着这些ML/DL... 查看详情

深度学习模型不能准确预测,Keras?

】深度学习模型不能准确预测,Keras?【英文标题】:DeepLearningmodelnotaccuratelypredicting,Keras?【发布时间】:2020-05-2703:25:06【问题描述】:我是深度学习和Keras的新手。我创建了一个在ASL(美国手语)数据集上训练的模型,其中包含... 查看详情

初学编程:学编程真的有必要掌握多种语言吗?

之前就有人讨论过,是否做编程需要掌握多种编程语言呢?很多人各执一词,都有道理。从职业发展的宽度和深度来说,掌握多种编程语言,可能更好的适应企业的发展需要。从而发挥更加重要的作用。而精... 查看详情

深度学习时间序列预测:lstm算法构建时间序列单变量模型预测大气压(airpressure)+代码实战(代码片段)

深度学习时间序列预测:LSTM算法构建时间序列单变量模型预测大气压(airpressure)+代码实战长短期记忆(Longshort-termmemory,LSTM)是一种特殊的RNN,主要是为了解决长序列训练过程中的梯度消失和梯度爆炸问题。简单来说,就是相... 查看详情

r使用深度学习lstm构建时间序列预测模型

R使用深度学习LSTM构建时间序列预测模型LSTM的全称是LongShortTermMemory,顾名思义,它具有记忆长短期信息的能力的神经网络。LSTM首先在1997年由Hochreiter&Schmidhuber[1]提出,由于深度学习在2012年的兴起,LSTM又经过了若干代大牛(Feli... 查看详情

深度学习入门案例波士顿房价预测(代码片段)

人工智能,机器学习,深度学习做个简单介绍:三者的关系如图1所示,即:人工智能>机器学习>深度学习。深度学习设计框架:环境查看importpaddleimportnumpyasnpimportosimportmatplotlibimportmatplotlib.pyplotaspltimpor... 查看详情