介绍

时间序列预测是一个重要的科学和商业问题,因此最近通过使用基于深度学习 而不是经典方法的模型也涌现出诸多创新。ARIMA 等经典方法与新颖的深度学习方法之间的一个重要区别如下。

  • 关于基于深度学习进行时间序列预测的论文:
    https://dl.acm.org/doi/abs/10.1145/3533382

  • 《预测: 方法与实践》在线课本的中文版:
    https://otexts.com/fppcn/

概率预测

通常,经典方法针对数据集中的每个时间序列单独拟合。这些通常被称为“单一”或“局部”方法。然而,当处理某些应用程序的大量时间序列时,在所有可用时间序列上训练一个“全局”模型是有益的,这使模型能够从许多不同的来源学习潜在的表示。

一些经典方法是点值的 (point-valued)(意思是每个时间步只输出一个值),并且通过最小化关于基本事实数据的 L2 或 L1 类型的损失来训练模型。然而,由于预测经常用于实际决策流程中,甚至在循环中有人的干预,让模型同时也提供预测的不确定性更加有益。这也称为“概率预测”,而不是“点预测”。这需要对可以采样的概率分布进行建模。

所以简而言之,我们希望训练全局概率模型,而不是训练局部点预测模型。深度学习非常适合这一点,因为神经网络可以从几个相关的时间序列中学习表示,并对数据的不确定性进行建模。

在概率设定中学习某些选定参数分布的未来参数很常见,例如高斯分布 (Gaussian) 或 Student-T,或者学习条件分位数函数 (conditional quantile function),或使用适应时间序列设置的共型预测 (Conformal Prediction) 框架。方法的选择不会影响到建模,因此通常可以将其视为另一个超参数。通过采用经验均值或中值,人们总是可以将概率模型转变为点预测模型。

时间序列 Transformer

正如人们所想象的那样,在对本来就连续的时间序列数据建模方面,研究人员提出了使用循环神经网络 (RNN) (如 LSTM 或 GRU) 或卷积网络 (CNN) 的模型,或利用最近兴起的基于 Transformer 的训练方法,都很自然地适合时间序列预测场景。

在这篇博文中,我们将利用传统 vanilla Transformer (参考 Vaswani 等 2017 年发表的论文) 进行单变量概率预测 (univariate probabilistic forecasting) 任务 (即预测每个时间序列的一维分布) 。 由于 Encoder-Decoder Transformer 很好地封装了几个归纳偏差,所以它成为了我们预测的自然选择。

  • 传统 vanilla Transformer 论文链接:
    https://arxiv.org/abs/1706.03762

首先,使用 Encoder-Decoder 架构在推理时很有帮助。通常对于一些记录的数据,我们希望提前预知未来的一些预测步骤。可以认为这个过程类似于文本生成任务,即给定上下文,采样下一个词元 (token) 并将其传回解码器 (也称为“自回归生成”) 。类似地,我们也可以在给定某种分布类型的情况下,从中抽样以提供预测,直到我们期望的预测范围。这被称为贪婪采样 (Greedy Sampling)/搜索,此处 有一篇关于 NLP 场景预测的精彩博文。
https://hf.co/blog/how-to-generate

其次,Transformer 帮助我们训练可能包含成千上万个时间点的时间序列数据。由于注意力机制的时间和内存限制,一次性将 所有 时间序列的完整历史输入模型或许不太可行。因此,在为随机梯度下降 (SGD) 构建批次时,可以考虑适当的上下文窗口大小,并从训练数据中对该窗口和后续预测长度大小的窗口进行采样。可以将调整过大小的上下文窗口传递给编码器、预测窗口传递给 causal-masked 解码器。这样一来,解码器在学习下一个值时只能查看之前的时间步。这相当于人们训练用于机器翻译的 vanilla Transformer 的过程,称为“教师强制 (Teacher Forcing)”。

Transformers 相对于其他架构的另一个好处是,我们可以将缺失值 (这在时间序列场景中很常见) 作为编码器或解码器的额外掩蔽值 (mask),并且仍然可以在不诉诸于填充或插补的情况下进行训练。这相当于 Transformers 库中 BERT 和 GPT-2 等模型的 attention_mask,在注意力矩阵 (attention matrix) 的计算中不包括填充词元。

由于传统 vanilla Transformer 的平方运算和内存要求,Transformer 架构的一个缺点是上下文和预测窗口的大小受到限制。关于这一点,可以参阅 Tay 等人于 2020 年发表的调研报告 。此外,由于 Transformer 是一种强大的架构,与 其他方法 相比,它可能会过拟合或更容易学习虚假相关性。

  • Tay 等 2020 年发表的调研报告地址:
    https://arxiv.org/abs/2009.06732

  • 上述关于其他预测时间线方法的论文地址:
    https://openreview.net/pdf?id=D7YBmfX_VQy

上篇 | 使用 Transformers 进行概率时间序列预测相关推荐

  1. 论文阅读【时间序列预测2】TACTiS: Transformer-Attentional Copulas for Time Series

    [代码]https://github.com/ServiceNow/tactis [发表]ICML 2022 [领域]时间序列预测 TACTiS: Transformer-Attentional Co ...

  2. Transformers预测未来:关注下一帧和时间序列预测

    Transformers预测未来:关注下一帧和时间序列预测 关注人工智能学术前沿 回复 :ts35 5秒免费获取论文pdf文档,及项目源码 摘要 直到最近,递归神经网络还是捕获时序相关性的最佳方法之一 ...

  3. 【时间序列】使用 Auto-TS 自动化时间序列预测

    Auto-TS 是 AutoML 的一部分,它将自动化机器学习管道的一些组件.这自动化库有助于非专家训练基本的机器学习模型,而无需在该领域有太多知识.在本文中,小编和你一起学习如何使用 Auto-TS ...

  4. 回顾︱时间序列预测与分解有哪些模型?(一)

    本节简单回归一下时间序列任务的几种方向以及有哪些比较优秀的开源算法. 1 时序预测 时序预测从不同角度看有不同分类.从实现原理的角度,可以分为传统统计学.机器学习(又分非深度学习和深度学习). 按预测 ...

  5. 5个时间序列预测的深度学习模型对比总结:从模拟统计模型到可以预训练的无监督模型

    时间序列预测在最近两年内发生了巨大的变化,尤其是在kaiming的MAE出现以后,现在时间序列的模型也可以用类似MAE的方法进行无监督的预训练 Makridakis M-Competitions系列( ...

  6. 干货 | 时间序列预测类问题下的建模方案探索实践

    作者 | 陆春晖 责编 | Carol 出品 | AI科技大本营(ID:rgznai100) 背景 时间序列类问题是数据分析领域中一类常见的问题,人们有时需要通过观察某种现象一段时间的状态,来判断其未 ...

  7. python平稳性检验_时间序列预测基础教程系列(14)_如何判断时间序列数据是否是平稳的(Python)...

    时间序列预测基础教程系列(14)_如何判断时间序列数据是否是平稳的(Python) 发布时间:2019-01-10 00:02, 浏览次数:620 , 标签: Python 导读: 本文介绍了数据平稳 ...

  8. 序列每天从1开始_时间序列预测一

    什么是时间序列: 时间序列可以看作是普通的二维的无序的特征矩阵向时间空间的拓展,相对来说多了仅仅一个维度但也是非常重要的时间维度: 时间序列是按时间顺序进行的一系列观察,通常包括了连续性时间序列数据和 ...

  9. python时间序列预测报错_python如何做时间序列

    python做时间序列的方法:首先导入需要的工具包,输入"data.plot()","plt().show()"命令绘制时序图:然后由acf,pacf判断模型参 ...

最新文章

  1. Oracle中merge into的使用
  2. 2019牛客暑期多校训练营(第五场)- generator 1
  3. 2-1 什么是人工智能|人工智能框架TensorFlow应用实践
  4. 解决Windows系统崩溃Linux系统却没有任何问题的错误
  5. 考研计算机网课辅导,考研计算机网课辅导哪个好
  6. SpreadJS使用小结
  7. 南方cass快捷键命令修改在哪_南方测绘cass快捷键命令大全,南方测绘cass常用的快捷键命令有哪些?...
  8. 阿里云搭建WordPress系统
  9. [Python从零到壹] 五十三.图像增强及运算篇之直方图均衡化处理
  10. 【端口被占用】查看占用程序,并结束占用程序、MySQL的Unable to connect to the database问题
  11. 计算机excel怎么删除重复项,excel怎么删除重复项
  12. 蓝桥杯练习题(数列排序)
  13. java 如何利用ISAPI实现设置RTSP播放参数,代码怎么写
  14. 主数据管理(MDM)与元数据管理
  15. 汇川使用笔记1:汇川AM402-PLC固件版本升级
  16. 微信支付的服务器配置url超时,微信H5支付商家存在未配置的参数,请联系商家解决的...
  17. 如何消除图片锯齿 html,Html5 canvas drawImage图片抗锯齿
  18. html5相邻选择器,相邻选择器 - 无可奈何花落去 似曾相识燕归来 - BlogJava
  19. 1.网络基础-走进网络世界
  20. 网路3d虚拟三维展馆开发提高展馆的受众范围

热门文章

  1. 房价居高不下的原因分析——李四和王二麻子的买房经(转)
  2. PDF阅读器系列之--MuPDF源码分析过程(一)
  3. SDL显示图像和文字
  4. 常见流媒体服务器方案对比分析
  5. 逆向分析中的密码学---tea
  6. 安装Adobe Acrobat 9的时候,有时也会提示缺少pscript.hlp文件
  7. Matlab/Cplex代码:基于消纳责任权重的两级电力市场优化运行模型
  8. 电力电子Matlab仿真电力电子Simulink仿真 高频电电 力电子仿真Simulink
  9. 单片机微机开发实验系统,QY-JXSY38
  10. 油猴脚本使用jquery报错eslint:no-undef - ‘$‘ is not defined