首个可解释的深度学习时间序列预测模型-N-BEATS
原创 学AI必备的 人工智能学习指南 2024年08月17日 15:18 湖南
N-BEATS架构
在时间序列预测领域,长期以来 深度学习和Transformer模型 并未能显著超越其他模型的表现。
回顾 Makridakis M-竞赛,胜出方案往往依赖于统计模型。
直至M4竞赛,冠军方案要么是纯粹的统计模型,要么是机器学习与统计模型的混合体。
而纯机器学习方法仅勉强超越竞赛基线,然而,这一局面在2020年由Oreshkin等人发表的一篇论文中得到了改变。
他们提出了 N-BEATS,一种前景广阔的纯深度学习方法。
该模型不仅击败了M4竞赛的冠军方案,还首次实现了 纯深度学习对成熟统计方法的超越。
N-BEATS,全称为“Neural Basis Expansion Analysis for Interpretable Time Series”,即“面向可解释时间序列的神经基础扩展分析”。
本文将带大家深入解析N-BEATS的架构,内容通俗易懂。
还将展示如何让这种深度学习方法变得可解释,并教大家如何在Python中轻松实现N-BEATS模型,并调整其超参数。
为了让大家能更好的学习,我可以把我学习期间收集的时间序列资料、LLM大语言模型资料一起分享给大家
在探讨N-BEATS架构之前,让我们先了解其核心理念。
N-BEATS的核心功能在于神经基础扩展,基础扩展是一种数据增强方法,通过扩展特征集来建模非线性关系。
听起来有点抽象?让我们通过下面这个例子来解释。
假设我们的目标值y与某个特征x存在某种关系,我们想用线性模型来表示这种关系。
在一维空间中,这将得到一个线性关系(如下图左侧所示)。
然而,如果特征和目标之间并非线性关系,那么这种模型就毫无用处。
那么,我们能做些什么呢?
答案是扩展特征集,我们可以将原始特征的二次值添加到特征集中,得到[x, x²]。
这样,我们就从一维空间进入了二维空间,因为现在我们有了两个特征而不是一个。
然后,我们可以在二维空间中拟合一个线性模型,从而得到一个二次多项式模型(如下图右侧所示)。
一维空间中的线性回归(左)与二维空间中的线性回归(右)对比。通过基扩展,我们能够更好地将数据拟合到模型中。
这就是基础扩展的全部内容。
我们基于原始特征添加新特征来扩展特征集,在这个例子中,我们使用了二次多项式扩展,我们将每个原始特征的二次值添加到特征集中。
最常见的基础扩展方法是多项式基础扩展,但除此之外,还有许多其他方法,如分箱、分段线性样条、自然三次样条、对数或平方等。
N-BEATS模型会自行决定使用哪种基础扩展方法,在训练过程中,模型会尝试找到最适合数据的基础扩展方法。
我们让模型自行完成这项工作,这就是它被称为“神经基础扩展”的原因。
N-BEATS模型是如何工作的呢?
N-BEATS模型具有以下架构:
N-BEATS架构概览
这里包含了很多内容,图片可能看起来有些复杂。但N-BEATS背后的思想其实很直接。
我们可以观察到两点:
首先,模型将时间序列分为回顾期和预测期。
模型利用回顾期来进行预测,回顾期的长度通常是预测期长度的两到六倍。
其次,N-BEATS模型(右侧黄色矩形)由