news 2026/5/3 6:14:42

N-BEATS – The First Interpretable Deep Learning Model That Worked for Time Series Forecasting

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
N-BEATS – The First Interpretable Deep Learning Model That Worked for Time Series Forecasting

原文:towardsdatascience.com/n-beats-the-first-interpretable-deep-learning-model-that-worked-for-time-series-forecasting-06920daadac2

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/a9d2fff56869d37a6000457fdc11d6d4.png

N-BEATS 的架构(图片来自Oreshkin 等人)。

时间序列预测一直是深度学习和 Transformer 没有超越其他模型的唯一领域。

观察 Makridakis M-竞赛,获胜方案总是依赖于统计模型。直到 M4 竞赛,获胜方案要么是纯统计模型,要么是机器学习和统计模型的混合。纯机器学习方法几乎没有超越竞赛基准。

这种情况在 2020 年Oreshkin 等人发表的一篇论文中发生了变化。作者们发布了 N-BEATS,这是一种有前途的纯深度学习方法。该模型击败了 M4 竞赛的获胜方案。这是第一个超越成熟统计方法的纯深度学习方法。

N-BEATS 代表NeuralBasisExpansionAnalysis forInterpretableTimeSeries。

在这篇文章中,我将介绍 N-BEATS 背后的架构。但不要害怕,深入探讨将会易于理解。我还将向您展示我们如何使深度学习方法可解释。然而,仅仅理解 N-BEATS 的工作原理是不够的。因此,我将向您展示如何轻松地在 Python 中实现 N-BEATS 模型,并调整其超参数。


在查看其架构之前,让我们先理解 N-BEATS 的核心思想。

N-BEATS 的核心功能在于神经基函数展开

基函数展开是一种增强数据的方法。我们扩展特征集以能够建模非线性关系。听起来很抽象,对吧?

基函数展开是如何工作的?例如,我们有一个问题,我们的目标值y与特征x之间存在某种关系。我们希望使用线性模型来表示yx之间的关系。在 1 维空间中,这将导致线性关系(下图中左边的图)。

然而,特征和目标可能不会显示线性关系,从而导致模型无用。我们有什么办法吗?

是的,我们可以扩展特征集。让我们将原始特征的二次值添加到特征集中,得到[x, x²]。这样,我们就从 1 维空间移动到了 2 维空间,因为我们现在有两个特征而不是一个。我们现在可以在 2 维空间中拟合一个线性模型,得到一个二次多项式模型(下图中右边的图)。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/493cc0a61f096f801b5017b0baee6cc2.pnghttps://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/a4e3b5d67f9acc71dbfa2bdbf1e19c0e.png

一维空间中的线性回归(左侧)与二维空间中的线性回归(右侧)相比。通过基函数展开,我们可以更好地将我们的模型拟合到数据上(图片由作者提供)。

这就是基函数展开的全部内容。我们通过添加基于原始特征的新特征来扩展我们的特征集。在这种情况下,我们使用了二次多项式展开。我们将每个原始特征的二次值添加到特征集中。

最常见的基函数展开方法是多项式基函数展开。然而,还有许多其他方法,例如分箱、分段线性样条、自然三次样条、对数或平方。

N-BEATS 模型决定使用哪种基函数展开。在训练过程中,模型试图找到最佳的基函数展开方法来拟合数据。我们让模型来做这项工作。这就是为什么它被称为“神经基函数展开”


N-BEATS 是如何详细工作的?

N-BEATS 模型的架构如下:

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/a9d2fff56869d37a6000457fdc11d6d4.png

N-BEATS 的架构(图片来自 Oreshkin 等人)。

这里发生了很多事情,图片可能让人感到不知所措。但是,N-BEATS 的理念非常简单。

我们可以观察到两个要点。

首先,模型将时间序列分为回溯期和预测期。模型使用回溯期进行预测。回溯期的长度通常比预测期长。最佳倍数通常在两到六之间。

其次,N-BEATS 模型(右侧的黄色矩形)由分层堆叠组成。每个堆叠,反过来,由分层模块组成。

每个模块都有一个分叉结构(左侧的蓝色矩形)。模块中的一个分支产生一个回溯,另一个分支从某些模块输入数据中产生一个预测。预测包含对未见值的预测。相比之下,回溯显示了模型对输入数据的拟合情况。

我们是如何从输入中获取回溯和预测的?首先,模型将输入通过一个具有四层的全连接神经网络传递。MLP 产生回溯和预测的展开系数,theta。这些展开系数流入两个分支,一个用于回溯,一个用于预测。在每个分支中,我们执行基函数展开。在这里,实际的 "神经基函数展开"发生了。

如上图所示,N-BEATS 在一个堆叠中连接了各种块。因为每个块都返回一个回溯和预测,所以发生两件事。首先,模型将每个块的局部预测相加以产生堆叠的预测。其次,模型从块的输入中移除块的回溯。因此,每个块只接收前一个块的残差。这样,模型只传递前一个块未捕获的信息给下一个块。因此,每个块试图逼近输入信号的某一部分,专注于局部模式。

然后,N-BEATS 分层堆叠了各种堆叠。就像堆叠中的块一样,除了第一个堆叠外,每个堆叠都是在前一个堆叠的残差上训练的。这样,每个堆叠学习了一个之前未被捕获的全局模式。最终的预测是堆叠预测的总和,提供了一个层次分解。

如我们所见,N-BEATS 应用了双残差堆叠方法。回溯和预测产生了向后和向前的残差。块和堆叠的分层架构导致了这些残差的堆叠。通过双残差堆叠,N-BEATS 可以重新创建统计模型的机制。


N-BEATS 的优势

与其他深度学习方法相比,N-BEATS 使我们能够构建非常深的 NNs,并具有可解释的结果。此外,训练速度更快。该模型不包含任何循环或自注意力层。其双残差堆叠促进了更流畅的梯度反向传播。

与经典的时间序列预测方法相比,我们不需要进行任何特征工程。我们不需要识别时间序列特有的特征,如季节性和趋势。N-BEATS 为我们做到了这一点。这使得模型易于使用,我们可以快速开始。

此外,该模型具备零样本迁移学习的能力。


深度学习架构如何才能具有可解释性?

好吧,我上面描述的 N-BEATS 的通用版本是不可解释的。模型可以学习的基于函数的基础和网络的深度没有任何限制。我们不知道模型学习了什么,以及这些是否是时间序列特有的组件,比如趋势。

我们如何获得可解释性?

我们使用了一个技巧。我们限制了模型的深度以及模型可以学习的基于函数的基础。

例如,我们经常在时间序列预测中使用趋势和季节性。

我们可以迫使模型只学习这两个特征。首先,我们通过仅使用两个堆叠来限制模型的深度。第一个堆叠学习趋势,第二个堆叠学习季节性。

我们可以通过提取每个堆叠的局部预测来解释模型的结果。

第二,我们必须迫使模型只学习趋势和季节性。我们必须引入一个特定问题的归纳偏差。我们通过将基函数扩展函数设置为特定的函数形式来实现这一点。为此,我们将每个块中的最后一层替换为一个函数。我们使用多项式基函数来确定趋势,并使用傅里叶基函数来确定季节性。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/cbac92dbf87071c001581021bf7b31ff.png

N-BEATS 通用版本(左)和 N-BEATS 可解释版本(右)的通用架构(图片由作者提供)。


使用 N-BEATS 进行预测的示例

现在我们已经了解了 N-BEATS 的工作原理,让我们将模型应用于一个预测任务。

我们将预测德国未来两周的电力批发价格。数据由Ember提供,在"欧洲电力批发价格数据集下,根据 CC-BY-4.0 许可。我们将使用 Nixtla 的neuralforecast库中的 N-BEATS 实现。这个库使我们能够非常容易地应用 N-BEATS。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/babe88ecdb82aee2e9e6a86e7bb1aaae.png

德国电力批发价格(图片由作者提供,数据由Ember提供)。

请注意,我并不是试图得到尽可能准确的预测,而是展示我们如何应用 N-BEATS。

好的。让我们开始吧。

让我们导入所需的库和数据集。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 20:35:50

AI漫画角色设计神器:Qwen3-32B一键生成动漫人设

AI漫画角色设计神器:Qwen3-32B一键生成动漫人设 1. 这不是绘图工具,而是你的专属人设编剧 你有没有过这样的经历:脑海里已经浮现出一个穿水手服、左眼戴单片眼镜的银发少女,但一打开Stable Diffusion,却卡在“怎么写…

作者头像 李华
网站建设 2026/4/30 18:28:15

保姆级教程:用Qwen3-ForcedAligner搭建个人语音笔记系统

保姆级教程:用Qwen3-ForcedAligner搭建个人语音笔记系统 1. 为什么你需要一个本地语音笔记系统? 1.1 语音转文字的日常痛点,你中了几个? 开会时手忙脚乱记不全重点? 听讲座录音回放耗时又抓不住关键句? …

作者头像 李华
网站建设 2026/5/1 22:49:19

漫画脸描述生成快速部署:单卡3090/4090环境下8080端口服务搭建

漫画脸描述生成快速部署:单卡3090/4090环境下8080端口服务搭建 1. 这不是普通AI,是你的二次元角色设计搭档 你有没有过这样的时刻:脑海里已经浮现出一个穿着水手服、扎双马尾、眼神倔强的少女形象,却卡在“怎么把想法变成能喂给…

作者头像 李华
网站建设 2026/5/2 8:19:03

Nano-Banana Studio镜像免配置:16GB显存下SDXL爆炸图快速部署教程

Nano-Banana Studio镜像免配置:16GB显存下SDXL爆炸图快速部署教程 1. 为什么你需要一个“衣服拆解展示台” 你有没有遇到过这样的场景:设计师花3小时手动排版一件夹克的纽扣、拉链、内衬和缝线,只为做出一张干净利落的平铺拆解图&#xff1…

作者头像 李华
网站建设 2026/4/27 16:19:25

RMBG-2.0医疗影像处理:医学图像背景移除专项优化

RMBG-2.0医疗影像处理:医学图像背景移除专项优化 1. 医疗影像处理的新突破 在放射科医生日常工作中,一张清晰的X光片或CT图像往往需要经过繁琐的预处理才能用于诊断分析。传统方法中,图像边缘的杂乱背景、设备阴影、标记文字等干扰元素不仅…

作者头像 李华
网站建设 2026/4/23 11:50:13

5步搞定Gemma-3-270m部署:Ollama平台上的文本生成体验

5步搞定Gemma-3-270m部署:Ollama平台上的文本生成体验 在本地跑一个真正能用的AI模型,到底有多难?很多人以为必须配RTX 4090、装CUDA、调环境变量、改配置文件……其实,当模型足够轻、工具足够成熟时,整个过程可以简化…

作者头像 李华