论文笔记:N-BEATS: NEURAL BASIS EXPANSION ANALYSIS FORINTERPRETABLE TIME SERIES FORECASTING

2023-11-10

ICLR 2020

0 摘要

        本文重点研究了利用深度学习解决单变量时间序列点预测问题。

        我们提出了一种基于后向和前向残留链路和一个非常深的全连接层堆栈的深度神经结构

        该体系结构具有许多令人满意的特性,这些特性是可解释的,适用于广泛的目标领域而无需修改,并且可以快速训练。

        我们在几个著名的数据集上测试了提出的体系结构,包括M3、M4和旅游竞赛数据集,这些数据集包含了来自不同领域的时间序列。

        我们展示了两个配置下N-BEATS模型 在所有数据集 中的最先进的性能:相比于统计基准,提高了预测准确性11%,相比于去年M4比赛的冠军,提升了3%。

        我们模型的第一个配置不使用任何特定于时间序列的组件,它在异构数据集上的表现强烈地表明,与普遍接受的智慧相反,深度学习原语(如残差块)本身就足以解决广泛的预测问题。

 

        最后,我们演示了如何将所提议的架构加以扩充,以提供可解释的输出,而不会造成大的准确性损失。

1 简介 

        时间序列预测问题,不像计算机视觉或自然语言处理等领域【在这两个领域,深度学习(DL)技术现在已经牢牢占据优势】,仍有证据表明,深度学习和DL相比于超越经典的统计方法,没有特别多的优势 (Statistical and machine learning forecasting methods: Concerns and ways forward)

        本篇论文旨在探索纯deep learning架构在时间序列预测问题中的潜力。

        此外,在可解释DL架构设计的背景下,我们有兴趣回答以下问题:我们能否在模型中注入合适的归纳偏差,使其内部操作更易于解释(即提取一些可解释的驱动因素,结合产生一个给定的预测)?

1.1 本文贡献

1.1.1 深度神经网络架构

        我们所知,这是第一篇论文用实验结论证明:没有使用时间序列特定组件、只依靠纯deep learning的模型,在 M3, M4和旅游数据集上的表现 优于广泛使用的统计方法。

        在我们看来,这为纯ML在时间序列预测中的应用提供了一个长期缺失的概念证明,并增强了继续推进该领域研究的动力。

1.1.2 时间序列问题中的可解释性深度学习

        除了准确性方面的好处外,我们还表明设计一个具有可解释输出的架构是可行的,从业者可以 以与传统分解技术(如“季节性-趋势-级别”方法)非常相同的方式使用该架构

2 问题定义

        考虑离散时间条件下的单变量点预测问题。

        给定一个长度为h的预测视界,一个长度为t的观测序列历史,我们的任务是预测未来

        出于简化考虑,我们将一个长度为t≤t,以最后一个观测值yT结束的回溯窗口作为模型输入

         我们记\hat{y}为y的预测值

        下面的几个是用来衡量模型的预测效果的 

RMSE、MAE等误差指标整理_UQI-LIUWJ的博客-CSDN博客

 

 

`         这里m是数据的周期。

        MAPE (Mean Absolute Percentage Error), sMAPE (symmetric MAPE)和MASE (Mean Absolute scaling Error)是预测实践中的标准无标度度量。

        sMAPE是通过预测和真实之间的平均值来缩放误差。

        MASE根据naïve预测器的平均误差进行缩放,该预测器简单地复制了过去测量的倒数第m个周期的观测结果,因此考虑了周期性。

        OWA(总体加权平均)是一个m4特定的指标,用于对参赛作品进行排名,其中sMAPE和MASE指标被标准化,因此经季节性调整的naïve预测得到OWA = 1.0。

3 N-Beats

        我们的架构设计方法依赖于几个关键原则。

  • 首先,基本架构应该是简单simple和通用generic的,但具有表现力expressive。
  • 其次,架构不应该依赖于时间序列特定的特性工程或输入缩放。这些先决条件让我们探索纯deep learning构在时间序列预测中的潜力。
  • 最后,作为探索可解释性的先决条件,架构应该是可扩展的,以使其输出具有可解释性。

现在,我们将讨论这些原则如何与提议的体系结构结合起来

3.1 基本单元

       我们提出所提议的基本单元模块具有分叉结构,如图1(左)所示。

        在这一节中,我们将重点描述第l个块的操作(注意,为了简洁起见,在图1中删除了块索引l)。

        第l个块接受输入xl并输出两个向量\hat{x_l}\hat{y_l}。 

        对于模型中的第一个块,它的输入xl是整个模型的输入——一个一定长度的历史回溯窗口。

        我们设置输入窗口的长度(回溯窗口的窗口长度)为预测未来窗口长度H的倍数,在我们的设置中,回溯窗口的窗口长度从2H到7H。

        对于其余的块,它们的输入xl是前面单元块的残差输出。(后面会说明)

        每个块有两个输出 \hat{x_l}\hat{y_l}:长H的前向预测\hat{y_l}、xl的最佳估计\hat{x_l}(被称为“backcast”。

            基本单元模块内部由两部分组成。

  •         第一部分是一个完全连通的网络,产生正向\theta_l^f和反向\theta_l^b预测系数。

          这里的线性层就是一个简单的线性投影层

        FC层是一个标准的全连接层,具有RELU非线性激活函数 

         

        第二部分由后向g_l^b和前向g_l^f基层组成,它们接受各自的前向\theta_l^f和后向\theta_l^b预测系数,生成 前向预测\hat{y_l} 和后向预测\hat{x_l}

        

        

         这v_i^f 和v_i^b分别是前向和后向基向量

         

        g_l^bg_l^f的作用是提供足够丰富的集合,他们可以是可学习的;也可以设置为特定的功能形式,以反映特定问题的归纳偏差,以适当地限制输出结构。

        这部分结构的一个任务是预测正向预测\theta_l^f (每一个dim 一个θ值),最终目标优化 前向预测\hat{y_l} 的准确性。

        此外,该子网络预测xl的最佳估计\hat{x_l},其最终目标是通过移除输入数据中对于预测任务没有帮助的成分,来帮助下游模块更好地进行预测。 

 

 3.2 DOUBLY RESIDUAL STACKING 双重残差叠加

        经典的残差网络架构在将结果传递给下一个模块之前,将此模块的输入添加到其输中。

机器学习笔记:ResNet 及残差连接_UQI-LIUWJ的博客-CSDN博客

         Huang等人(2017)提出的DenseNet架构扩展了这一原则,从每个模块的输出到其后的每个模块的输入之间引入了额外的连接。

NTU 课程 7454 (5) CNN进阶_UQI-LIUWJ的博客-CSDN博客

        这些方法在提高深层架构的可训练性方面具有明显的优势。

        在这项工作的背景下,它们的缺点是它们导致了难以解释的网络结构。

        我们提出了一种新的分层双残差拓扑结构,如图1(中间和右边)所示。

        提出的体系结构有两个剩余分支,一个分支运行在每一层的backcast预测上,另一个分支运行在每一层的预测分支上。

        它的运行由以下方程描述:

 

         如前所述,在第一个块的特殊情况下,它的输入是模型的全部输入x, x1≡x。

        对于所有其他块,backcast残差分支xl可以被认为是对输入信号进行序列分析。

        前一个基本模块去掉了信号\hat{x_{l-1}}中可以很好近似的部分,使得下游区块的预测工作更加容易。(残差链接的好处)

        这种结构还促进了梯度反向传播。(残差链接的好处)

        更重要的是,每个基本模块输出它本身可以预测的部分前向预测\hat{y_l},这些前向预测提供了层级分解。

        最后的预测是所有部分预测的总和。

        当允许为每一个基本模块有自己的后向g_l^b和前向g_l^f时,这使得网络对梯度流更加透明。

        如果 后向g_l^b和前向g_l^f 共享一个基,此时通过聚合有意义的部分,对实现可解释性至关重要。(3.3将会涉及)

3.3 可解释性

        基于g_l^bg_l^f'的选择,我们提出了两种架构配置。

         其中一种是通用深度学习,另一种增加了某些归纳偏差以使其可解释。

换句话说,整体的架构就是3.1和3.2描述的内容

        通用架构不依赖于时间序列特定的知识。我们将g_l^bg_l^f设置为前一层输出的线性投影。

        在这种情况下,block l的输出被描述为:(b在3.1中式没有的)

         其中V_l^f 的维度是。第一个维度我们可以想成 预测区域 离散时刻的数量。因而V_l^f的每一列可以看成是一个时域波形。

        因为V_l^f没有额外的限制,所以V_l^f的各个列(各个时域波形)没有内部的结构,因而V_l^f是不可解释的

 3.3.1 可解释性结构

        可解释的体系结构可以通过重用图1中的总体体系结构方法,以及在stack级别(图1中间的结构)向基层添加结构来构建。

        预测人员经常使用如X13-ARIMA模型等将时间序列分解成趋势和季节性。

        我们建议在模型中设计趋势和季节性分解,以使stack级输出更容易解释。

        注意,对于通用模型来说,栈的概念是不必要的,并且为了清晰起见省略了栈级索引。

        现在我们将同时考虑堆栈级和块级索引。例如,\hat{y_{s,l}}表示栈s中块l的局部预测'。

3.3.2 趋势模型

        趋势的一个典型特征是,大多数时候它是一个单调的或者至少是一个缓慢变化的函数。

        为了模拟这种行为,我们建议将g^b_{s,l}g^f_{s,l}约束为一个p的多项式(p是一个小的degree值),一个在预测窗口中缓慢变化的函数:

        

        其中向量t为(H是预测窗口的长度)

        换句话说,我们只是把基本模块里面的v_{s,i}^f 替换成了t^i

 

       

        用矩阵的形式表示,有:

         其中\theta_{s,l}^f就是第s个stack,第l层的前向传播系数

        

 3.3.3 周期性模型

        周期性的典型特征是它是一个有规律的,循环的,反复出现的波动。

        为了模拟周期性,我们限制g^b_{s,l}g^f_{s,l}属于一类周期函数,即其中∆是周期。

        建立周期函数模型的基础自然选择是傅里叶级数:

 

         

        用矩阵形式表述,有:

         

 是正弦波矩阵

 3.3.4 整体可解释结构

         整个可解释架构由两个stack组成:趋势stack,周期性stack。

        双重残差叠加结合预测/倒推原理可以使得

(i)趋势成分在x被输入到周期性stack之前被移除了【个人猜测是因为相同基的系数互相抵消】

(ii)趋势和周期性的预测作为单独的可解释输出。

        从结构上讲,每个栈由图1所示的用残余连接连接的几个块组成,每个块共享其各自的、不可学习的 g^b_{s,l}g^f_{s,l} 。

        趋势和季节性的区块数都是3。

        我们发现,在共享  g^b_{s,l}g^f_{s,l} 的基础上,在堆栈中跨块共享所有权重可以获得更好的验证性能。

*********集成学习部分暂时略去,后补**********

5 实验部分

论文中说的两个配置被记为:generic (N-BEATS-G) ;interpretable (N-BEATS-I)

 

图2研究了提出的模型在通用和可解释配置下的输出。

我们以N-BEATS的通用配置输出作为对照组(将含有30个残差块的通用模型分为两个栈)。

在图2中将通用(后缀“G”)和可解释(后缀“-I”)栈的输出并排绘制出来。

通用模型的输出是任意的和不可解释的:无论是从趋势还是从抽周期的角度看,或者两者都出现在两个stack的输出中。

在第二个堆栈的输出处,输出的大小(峰对峰)通常较小。

可解释模型的输出表现出不同的特性:趋势输出是单调的、缓慢移动的;周期性输出是有规律的、周期性的、反复波动的。

如果在时间序列中存在显著的季节性,那么季节性产出的峰值比趋势产出的峰值要大得多。

同样地,当真实信号中没有明显的趋势时,趋势输出的峰值到峰值的幅度往往较小。

因此,提出的可解释架构将其预测分解为两个不同的组成部分。

我们的结论是,DL模型的输出可以通过在体系结构中编码一个合理的归纳偏差来实现。表1确认了这不会导致性能下降。

********

后注:可以想象成,我输入一个单变量时间序列,经过基本块后,得到前向传播(y)以及backcast的x 这两个的基的系数。然后将基加权求和。(两个配置里面,一个的基是可学习的,另一个的基是指定的【解释性配置】)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

论文笔记:N-BEATS: NEURAL BASIS EXPANSION ANALYSIS FORINTERPRETABLE TIME SERIES FORECASTING 的相关文章

随机推荐

  • 我为什么要学习Rust

    最早接触到 Rust 是在几年前的一次技术大会上 黄东旭说 TiKV 是用 Rust 语言编写的 引起了我的一些兴趣 但只是保持关注而已 我一直认为每一种编程语言都有着各自的典型应用领域 也有着各自的编程范式 没有最好的编程语言 参见 PH
  • 不讲武德---不用代码爬虫

    有人问 我不会代码 我能爬虫吗 我 很快啊 回答 可以 不需要写代码的 那当然是需要工具了 较为熟知的爬虫工具有八爪鱼 和web scraper 这次我所使用的是web scraper 安装web scraper 这篇文章讲述的算清晰的了
  • JetBrains插件推荐

    JetBrains软件本身就是效率神器 配合上一些好用的插件 效率就更是飞升了 本文就简单记录一些好用的插件和简介 持续更新 安装方法都很简单 这里就不过多叙述了 实在不会就百度一下 Chinese Simplified Language
  • smb windows中使用的文件共享协议(主要用于与windows互通)

    主要是samba服务 SMB协议又成为CIFS Common Internet File System 协议 samba服务功能 1文件共享 2打印共享 3加入windows2000 2003 2008域环境 4通过windows域环境进行
  • 黑马程序员并发编程笔记(二)--java线程基本操作和理解

    3 java进程的基本操作 3 1 创建进程 方法一 直接使用 Thread 构造方法的参数是给线程指定名字 推荐给线程起个名字 用setName 也可以 Thread t1 new Thread t1 Override run 方法内实现
  • 跳跃游戏(LeetCode)

    一 题目 55 跳跃游戏 难度 中等 给定一个非负整数数组 nums 你最初位于数组的 第一个下标 数组中的每个元素代表你在该位置可以跳跃的最大长度 判断你是否能够到达最后一个下标 示例1 输入 nums 2 3 1 1 4 输出 true
  • fftw3/gsl/kissfft/OouraFFT库中傅里叶变换/反傅里叶变换函数和Matlab中的fft/ifft的对应关系

    先分析一维度的 一 fftw plan dft 1d 正变换 fftw complex in fftw malloc sizeof fftw complex n fftw complex out fftw malloc sizeof fft
  • 如何用Flask和Redis来动态维护Cookies池

    为什么要用Cookies池 目标网站需要登录才能爬取 例如新浪微博 爬取过程中 如果请求频率过高 会导致封号 这就需要维护多个账号的Cookies池实现大规模爬取 Cookies池的要求 自动登录更新 定时验证筛选 提供外部接口 Cooki
  • 如何使用JAVA获取当前环境下的MAC地址

    在Windows下很简单直接运行脚本命令就可以了 public static String getMac try Process process Runtime getRuntime exec cmd exe c ipconfig all
  • 2023,8种必备Selenium编写自动化用例的技巧!

    在开始自动化时 您可能会遇到各种可能包含在自动化代码中的方法 技术 框架和工具 有时 与提供更好的灵活性或解决问题的更好方法相比 这种多功能性导致代码更加复杂 在编写自动化代码时 重要的是我们能够清楚地描述自动化测试的目标以及我们如何实现它
  • SPADE阅读笔记

    SPADE阅读笔记 目录 SPADE阅读笔记 作者的方法 spatial adaptive denormalization SPADE generator 为啥SPADE work better 同样的 作者提出一个simplt but e
  • 分巧克力(蓝桥杯C/C++B组真题详解)

    目录 题目 编辑 题目思路 代码详解 题目 题目思路 因为答案唯一 且分布在一个区间里面 我们可以想到二分答案 直到找到最小的满足的条件的 合适答案 代码详解 include
  • JavaScript的运算符

    目录 一 算术运算符 1 优先级 2 模运算 3 4 自增 5 自减 二 关系运算符 比较运算符 三 逻辑运算符 1 逻辑与 2 逻辑或 3 逻辑非 四 赋值运算符 1 格式 2 要求 3 复合赋值运算符 五 位运算符 1 按位与 2 按位
  • edp和edt哪个好_香水edt和edp什么意思 香水等级分类说明

    这次引发我写这篇小科普的灵感 是因为我恰巧看到一个文在各种溢美之词地推荐一款售价过千的EDT小众香水 EDT留香很短 卖价过千让我实在有点难接受 现在安利香水的推文随处可见 但发现不少只是一个劲地赞美多好闻 却连最基本的香水等级分辨都没好好
  • java 日志时间错误

    java 时区错误 解决方法 问题 参考链接 电脑上所有 java 应用 项目时间都不对 核心业务系统启动后日志时间和当前系统时间差11个小时30分钟 电脑用的是云桌面系统有严格的权限控制 找相关人和同事弄了几次没好 都知道是时区问题 但没
  • Vue3-wangeditor富文本编辑器的使用

    wangeditor官网 用于 Vue React wangEditor开源 Web 富文本编辑器 开箱即用 配置简单https www wangeditor com v5 for frame html vue3 按照官网提示安装 两个都要
  • 【Linux】Linux中的gcc/g++编译器的使用

    需要云服务器等云产品来学习Linux的同学可以移步 gt 腾讯云 lt gt 阿里云 lt gt 华为云 lt 官网 轻量型云服务器低至112元 年 新用户首次下单享超低折扣 目录 一 编译的过程 1 预处理阶段 1 1预处理的工作 头文件
  • 如何让2008服务器访问所有网页,Windows Server 2008 R2 下配置证书服务器和 HTTPS 方式访问网站...

    Windows Server 2008 R2 下配置证书服务器和 HTTPS 方式访问网站 实验准备 一台 Windows server 2008 r2 的虚拟机 实验目的 为什么要用 HTTPS 实验步骤 1 配置 CA 证书服务器 1开
  • Android Studio 的原生输入框控件 EditText 属性配置详解

    Android Studio 的原生输入框控件 EditText 属性配置详解 文本设置 android hint 默认文本设置 android textColorHint 95A1AA 默认文本颜色 android textColorHi
  • 论文笔记:N-BEATS: NEURAL BASIS EXPANSION ANALYSIS FORINTERPRETABLE TIME SERIES FORECASTING

    ICLR 2020 0 摘要 本文重点研究了利用深度学习解决单变量时间序列点预测问题 我们提出了一种基于后向和前向残留链路和一个非常深的全连接层堆栈的深度神经结构 该体系结构具有许多令人满意的特性 这些特性是可解释的 适用于广泛的目标领域而