一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于去噪处理的单变量短期时间序列预测方法与流程

2021-11-25 00:36:00 来源:中国专利 TAG:


1.本发明属于时间序列预测技术领域,具体涉及一种基于去噪处理的单变量短期时间序列预测方法。


背景技术:

2.现有的时间序列预测方法分为两个类型,第一个类型是点预测,给出的预测值是确定的;第二个类型是概率预测,给出的预测值是以分位数表示的置信区间。本发明不涉及概率预测,只针对点预测给出解决方案。点预测算法可以进一步细分为三类,第一类是局部方法,该方法对应的模型需要针对每一条时间序列训练一组模型参数用于预测;第二类方法是全局方法,该方法对应的模型使用大量时间序列一起训练,在预测时所有时间序列都使用一组参数预测;第三类方法结合了第一类和第二类方法,首先使用大量的时间序列一起训练得到一组共有参数,然后在预测时先根据时序特点微调参数再进行预测。
3.现有的全局点预测算法主要使用深度学习技术来设计预测模型。由于时间序列数据的前后依赖关系,用于解决时间序列预测问题的模型主要是长短期记忆神经网络(lstm)、时间卷积神经网络(tcn)和转换器(transformer)一类的序列模型。这类模型在解决时间序列长期(通常有几千甚至上万个历史时点)依赖关系和复杂依赖关系(例如混沌序列)预测上取得较好的结果。但在短期时间预测(通常只有几十到一两百个历史时点)上,上述提到的模型结果都还不够出色,如果不精心设计,很难超越传统的统计方法。数据增强被认为是一个解决这类问题的重要途径,通过使用时序分解后重组或者使用注入噪声的技术在一定程度上能解决这个问题。但是如何分解并重组时序和注入噪声都需要人为观察时序的特点来选择分解组合算法或者噪声类型及大小,这不利于将算法扩展成为一个通用性强的算法。
4.可解释的神经基础扩展时间序列预测网络(n

beats)是一个最近提出的一个具有可解释性深度时间序列预测模型,该模型使用残差网络作为基本架构,并且组合了残差网络不同层的预测结果,在短期时间的预测上取得了几乎超越所有统计模型。该模型的能够取得成功的原因是组合了不同层的预测结果来做最终的预测,这是时间序列的特性所决定的。通过组合不同层预测结果,能够学习更多的时序特征,提升预测性能。然而由于n

beats是一个深度学习算法,如果没有足够的数目的时间序列来训练模型,模型将会学习到噪声,从而在训练集上过拟合,从而造成预测性能的下降。这是所有目前基于深度学习技术的时间序列预测算法的通病,即必须使用足够的时序进行训练,这在预测一些刚刚兴起的行业数据是难以做到的。旅游类数据,如人流量和车流量等数据充满了大量的噪声。因此,如果没有足够多的时间序列来提供给深度神经网络训练,它将很难在旅游类数据集上取得较好的预测结果。因此针对一些数据量不足的旅游数据预测场景,对模型加入合适的降噪处理模块将有助于提高模型的整体预测精度,减少不必要的干扰。


技术实现要素:

5.本发明的目的是为了解决旅游景点人流量预测精度不高的问题,提出了一种基于去噪处理的单变量短期时间序列预测方法。
6.本发明的技术方案是:一种基于去噪处理的单变量短期时间序列预测方法包括以下步骤:
7.s1:采集旅游景点人流量数据的原始时间序列信号,并利用多层感知机和线性映射层组成的残差网络提取噪声;
8.s2:利用原始时间序列信号减去提取的噪声,平滑原始时间序列信号,并对平滑后的原始时间序列信号进行预测;
9.s3:将平滑后的时间序列信号作为下一次预测的原始时间序列信号,并返回步骤s1,进行新的时间序列预测。
10.进一步地,步骤s1中,提取噪声的具体方法为:将上一次平滑后的时间序列信号x
i
输入到残差网络中的第i个残差模块f
i
(x),提取其噪声ε
i

11.进一步地,步骤s1中,第i个噪声ε
i
的计算公式为:
12.ε
i
=f
i
(x
i
‑1)
13.其中,f
i
(x
i
‑1)=vh4(h3(h2(h1(x
i
‑1)))),h
j
(t)=relu[w
j
t],j=1,2,3,4,relu[
·
]=max(0,t),f
i
(
·
)表示残差网络的第i个残差模块,x
i
‑1表示上一次的时间序列信号,v表示线性映射,relu[
·
]表示非线性激活函数,w
j
表示线性变换矩阵,h
j
表示多层感知机的第j个隐藏层,t表示函数的输入。
[0014]
进一步地,步骤s2包括以下子步骤:
[0015]
s21:利用原始时间序列信号减去提取出的噪声,平滑原始时间序列信号;
[0016]
s22:将平滑处理后的原始时间序列信号输入至残差网络中进行预测,得到预测值。
[0017]
进一步地,步骤s2中,第i次平滑后的信号x
i 1
的计算公式为:
[0018]
x
i 1
=x
i

ε
i
[0019]
其中,ε
i
表示第i

1次的噪声,x
i
表示第i

1次平滑后的信号。
[0020]
进一步地,步骤s22中,利用残差网络输出预测信号并根据历史时间序列和预测信号得到预测值
[0021]
进一步地,步骤s22中,预测信号的计算公式为:
[0022][0023]
其中,y
i
表示各个多层感知机和线性映射层组成的预测器得到的对应预测信号,n表示多层感知机和线性映射层组成的预测器数量;
[0024]
预测值的计算公式为:
[0025][0026]
其中,x
t
表示历史时间序列。
[0027]
本发明的有益效果是:本发明通过使用残差网络学习多个噪声表示,实现了对于时间序列信号的多级过滤平滑,使得深层神经网络可以进一步的避免在小规模时间序列数据集上的过拟合,提高了它的泛化能力。此外,本发明通过使用多个独立的预测器对于不同的平滑结果进行预测,组合这些预测结果完成最终的预测,避免了单次平滑造成的结果的不稳定,保证旅游景点人流量预测的准确性。
附图说明
[0028]
图1为时间序列预测方法的流程图;
[0029]
图2为预测器的结构图。
具体实施方式
[0030]
下面结合附图对本发明的实施例作进一步的说明。
[0031]
在描述本发明的具体实施例之前,为使本发明的方案更加清楚完整,首先对本发明中出现的缩略语和关键术语定义进行说明:
[0032]
时间序列(或称动态数列)是指将同一统计指标的数值按其发生的时间先后顺序排列而成的数列。
[0033]
如图1所示,本发明提供了一种基于去噪处理的单变量短期时间序列预测方法,包括以下步骤:
[0034]
s1:采集旅游景点人流量数据的原始时间序列信号,并利用多层感知机和线性映射层组成的残差网络提取噪声;
[0035]
s2:利用原始时间序列信号减去提取的噪声,平滑原始时间序列信号,并对平滑后的原始时间序列信号进行预测;
[0036]
s3:将平滑后的时间序列信号作为下一次预测的原始时间序列信号,并返回步骤s1,进行新的时间序列预测。
[0037]
在本发明实施例中,步骤s1中,提取噪声的具体方法为:将上一次平滑后的时间序列信号c
i
输入到残差网络中的第i个残差模块f
i
(x),提取其噪声ε
i

[0038]
在本发明实施例中,步骤s1中,第i个噪声ε
i
的计算公式为:
[0039]
ε
i
=f
i
(x
i
‑1)
[0040]
其中,f
i
(x
i
‑1)=vh4(h3(h2(h1(x
i
‑1)))),h
j
(t)=relu[w
j
t],j=1,2,3,4,relu[
·
]=max(0,t),f
i
(
·
)表示残差网络的第i个残差模块,x
i
‑1表示上一次的时间序列信号,v表示线性映射,relu[
·
]表示非线性激活函数,w
j
表示线性变换矩阵,h
j
表示多层感知机的第j个隐藏层,t表示函数的输入。
[0041]
在本发明实施例中,步骤s2包括以下子步骤:
[0042]
s21:利用原始时间序列信号减去提取出的噪声,平滑原始时间序列信号;
[0043]
s22:将平滑处理后的原始时间序列信号输入至残差网络中进行预测,得到预测值。
[0044]
在本发明实施例中,步骤s2中,第i次平滑后的信号x
i 1
的计算公式为:
[0045]
x
i 1
=x
i

ε
i
[0046]
其中,ε
i
表示第i

1次的噪声,x
i
表示第i

1次平滑后的信号。
[0047]
在本发明实施例中,步骤s22中,利用残差网络输出预测信号并根据历史时间序列和预测信号得到预测值
[0048]
在本发明实施例中,步骤s22中,预测信号的计算公式为:
[0049][0050]
其中,y
i
表示各个多层感知机和线性映射层组成的预测器得到的对应预测信号,n表示多层感知机和线性映射层组成的预测器数量;
[0051]
预测值的计算公式为:
[0052][0053]
其中,x
t
表示历史时间序列。
[0054]
在本发明实施例中,深度神经网络特别是残差网络可以拟合复杂的信号,对于噪声信号而言,深度神经网络也有能力去近似拟合它。在时间序列数据条数不多的情形下,深度神经网络有能力记住时间序列的每一个特征,这其中也包含噪声的特征。于是在时间序列数据条数不多的情形下,首先利用深度神经网络来学习时间序列所包含的特征,然后利用原始信号减去噪声得到的残差值作为预测网络的输入,进而对时间序列进行预测。假定原始的输入信号为x,噪声提取网络为f(x),预测网络为这样噪声可以被表示为ε=f(x),因此去噪的过程可以被表示为预测过程可以表示为可以看出网络的目标是学习一个好的噪声表示f(x),使得去噪后的信号能够更好的被预测网络为用于预测。把作泰勒近似,得到令q(x)=p

(x)ε=p

(x)f(x),因而可以把模型近似看作由两个独立的网络构成的,网络p(x)是学习了全部的输入信号里的特征的原始预测结果,网络q(x)用于输出噪声,预测结果就可以表示为原始预测结果减去相应的噪声。模型具有比上述一阶近似结果更强大的预测能力,因为它可以适用,因为上述近似只用到噪声的一阶矩,通过对于噪声高阶矩的利用,可以实现更加精确的预测效果。
[0055]
在实际应用中,单个滤波器的滤波效果是不稳定的,得到的结果方差很大,将不同滤波结果进行组合能有效提高滤波的稳定性。因而基于残差网络设计了一个多级噪声学习模块用于对时间序列进行平滑后预测。如图2所示,具体来说:残差网络中的每一个块由一个多层感知机(mlp)和一个线性映射层(linear)组成,令模型的原始时间序列信号输入为x,残差网络中的每个块依次为{f1,...,f
n
},每个块对应的输入依次为{x1,...,x
n
},再令x1=x,则每一级提取出来的噪声可依次表示为ε
i
=f
i
(x
i
),其中,x
i
=x
i
‑1‑
ε
i
‑1。令x
n 1
=x
n

ε
n
,可以看出第i次平滑后的信号就是x
i 1
,这就完成了平滑步骤。然后对于每一个x
i 1
,将其输入一个由一个多层感知机和一个线性映射层组成的预测器p
i
得到对应的预测信号y
i
。最后,模型的输出表示为另外,由于不同时间序列的值分布范围很广,并不用模型直接输出预测值,而是用模型的预测值加上预测值(用历史序列的最后一个点进行
预测)作为最终的预测结果。因此假定历史序列为[x1,

,x
t
],那么最终的预测值表示为
[0056]
在本发明实施例中,以n

beats为代表的深度学习技术目的是学习不同序列间的共有变化规律,但是一旦序列不足,网络就会学到更多用于训练的序列的细节,这其中也包含噪声,从而导致性能下降。通过转变模型的学习思路,不再让模型学习序列的共有特征,转而让模型去记住序列的噪声。在数据集包含的序列较少的情形下,深度神经网络将有能力记住每一条序列的噪声,从而利用原始信号减去噪声就可以得到平滑后的信号以用于预测。信号经过第i个残差块f
i
平滑后的信号为x
i 1
=x
i

ε
i
,进一步可以根据递推关系得到,进一步可以根据递推关系得到进一步的定义这样算法完成了噪声的分解,浅层学到的噪声可能是大部分序列都具有的噪声项,而深层学到噪声则可能是序列特有的。另外,有的序列包含的噪声形式简单,因而只需要浅层学到几个噪声叠加就能拟合;而有的序列包含的噪声形式复杂,需要较多层级的噪声叠加才能得到。为了解决这个问题,将不同层级平滑得到的信号叠加,以应对不同序列间的差异,从而减少平滑不足或者平滑过度。
[0057]
在时间序列数据库m3的年度数据和tourism的月度数据上使用本发明与n

beats方法做了比较。m3的年度时间序列共有645条,要预测长度为6,可用历史序列的平均长度是22.4,属于短期时间序列预测问题。在smape的评价指标下,本发明在10次初始化设置相同的条件下取得了15.26的平均预测成绩,标准差是0.065,而n

beats方法的结果15.84,提升幅度为3.6%。tourism的月度序列共有366条,要预测长度为24,可用历史序列平均长度为274。在mape的评价指标下,本发明在10次初始化设置相同的条件下取得了19.03的平均成绩,标准差是0.06,而n

beats方法的结果19.17,提升幅度为0.7%。可以看到,本发明在可用时序数目较小的情况下相较于n

beats方法均有一定程度上的性能改进,特别是m3年度数据这样可用时序较短且序列条数不多数据集有明显的改进。
[0058]
以m3数据集年度数据的预测为例,残差模块和预测模块使用的多层感知机均为两层,多层感知机的隐藏层大小均为512,共有30个残差模块和预测模块。由于模型的输入长度是固定的,因此对于时间序列数据用固定窗口进行切片处理,固定窗口的大小为要预测的未来的点的个数的整数倍。模型训练时的切片原则如下,首先从序列[y1,...,y
t
]除去y
t
的点中随机选择一个点y
i
作为切分点,假定要预测值的个数为h,窗口大小为kh,则模型输入x=[y
i

kh 1
,...,y
i
],用于训练的标签为y=[y
i 1
,...,y
i h
],这两个向量的下标可能会小于1或者大于t,从而没有序列中的点与之对应,这个时候用0来补齐这个值,这个操作可行的原因是多层感知机在使用relu作为激活函数时,0对于网络的输出没有影响。模型预测时,输入的向量则为x=[y
t

kh 1
,...,y
t
],同样用0补齐序列中没有的值。在构建损失函数时,由于m3数据集恒正,只使用y中非0的部分计算出的损失值,0对应的损失值将不会被使用。模型集成在时间序列预测中广泛使用,在m3年度数据预测的实验中,总共会有两种评价指标mape和smape作为损失函数用于训练不同的模型。对于同一个损失函数,选择了两个模型用于集成,它们唯一的区别是输入窗口的长度不同,一个模型的输入窗口长度为2h,另一个为3h。这两个模型都将各自从相同的初始设置重复跑10次,用于预测。因此对于同一个序列,总共得到40个预测结果,最终的预测值是这40个值对应的中值。
[0059]
在本发明实施例中,时间序列预测问题可以形式化的表示为,给定一段历史序列
[y1,...,y
t
],预测接下来的h个点[y
t 1
,...,y
t h
]的值。假定模型得到估计值为则用的评价指标smape和mape表示为:
[0060][0061][0062]
本发明的工作原理及过程为:本发明目的旨在解决在可用时间序列数目不多的短期时间序列预测问题。因而本发明要解决的技术问题有两个,即:时间序列条数不足和短期时间序列预测。首先,本发明定义的时间序列数目不足指的是可用序列条数不足1000条但是超过100条,这是导致现有模型过拟合的主要原因。其次,本发明定义的短期时间序列指的是每条时间序列可利用的历史数据点的数目不超过1000个,并且四分之三的序列可利用的历史数据点的数目不超过100个,这是导致现有模型过拟合的次要原因。
[0063]
本发明的有益效果为:本发明通过使用残差网络学习多个噪声表示,实现了对于时间序列信号的多级过滤平滑,使得深层神经网络可以进一步的避免在小规模时间序列数据集上的过拟合,提高了它的泛化能力。此外,本发明通过使用多个独立的预测器对于不同的平滑结果进行预测,组合这些预测结果完成最终的预测,避免了单次平滑造成的结果的不稳定,保证旅游景点人流量预测的准确性。
[0064]
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献