快速ES-RNN: ES-RNN算法的GPU实现
题目:
Fast ES-RNN: A GPU Implementation of the ES-RNN Algorithm
作者:
Andrew Redd, Kaung Khin, Aldo Marini
来源:
Machine Learning (cs.LG)
Submitted on 7 Jul 2019
文档链接:
arXiv:1907.03329
代码链接:
摘要
由于它们的普遍存在,时间序列预测在多个领域都是至关重要的。我们力求使最先进的预测快速、简便、可推广。ES-RNN是经典状态空间预测模型与现代RNNs的结合,在M4竞争中取得了9.4%的sMAPE改进。关键是,ES-RNN的实现需要每次序列参数。通过对原始实现进行矢量化并将算法移植到GPU上,我们根据批处理大小实现了高达322x的训练加速,结果与原始提交中报告的结果类似。
英文原文
Due to their prevalence, time series forecasting is crucial in multiple domains. We seek to make state-of-the-art forecasting fast, accessible, and generalizable. ES-RNN is a hybrid between classical state space forecasting models and modern RNNs that achieved a 9.4% sMAPE improvement in the M4 competition. Crucially, ES-RNN implementation requires per-time series parameters. By vectorizing the original implementation and porting the algorithm to a GPU, we achieve up to 322x training speedup depending on batch size with similar results as those reported in the original submission.
要点
我们的任务是使最先进的预测快速、简便、可推广。首先,我们通过将Smyl s的原始c++提交移植到Pytorch来实现快速培训。这种矢量化允许使用GPU,提供高达322x的训练加速。其次,Python代码使预测和机器学习社区更容易访问模型。1 .最后,Pytorch的使用使得模型的泛化更加容易,因为库中包含多个架构,可以补充ES-RNN在非m4时间序列中的应用。我们期望我们的贡献,以加快采用混合模型在时间序列预测。
表1:网络中设置的参数总结
图1:Smyl等人(2018)的NN架构示意图
表2:M4按类型和系列频率排列的数据
表3:频率序列长度统计
图2:Smyl等人(2018)定义的时间序列规范化和消除季节性因素处理
表4:结果与M4基线模型的比较
表5:15轮的运行时间迭代后结果比较
图3:Smyl等人(2018)的NN架构
在这个项目中,我们成功地将最先进的ES-RNN算法应用于一个快速、可访问、可推广的预测框架中。我们克服的主要挑战是每次序列参数的训练。由于直接在CPU上实现原始提交,这证明是困难的。我们的工作集中在每次序列参数的矢量化上,以使GPU计算在一个支持快速执行的框架中(如Pytorch)。我们得到了与原始提交的结果相似的结果,但是少了几个数量级的训练时间。
我们预计我们的贡献将使最先进的算法在单变量序列上得到强有力的采用,并有助于将模型推广到可使用协变量的特定问题。