文档库 最新最全的文档下载
当前位置:文档库 › 神经网络对时间序列的处理(1)

神经网络对时间序列的处理(1)

神经网络对时间序列的处理(1)
神经网络对时间序列的处理(1)

神经网络对时间序列的处理

Georg Dorffner

奥地利维也纳大学人工智能研究所医疗控制论和人工智能部门

摘要:

本文介绍了神经网络在时间序列处理的最常见类型,即模式识别和时空模式的预测。重视神经网络模型和更多经典时间序列的处理方法之间的关系,尤其是预测。文章首先通过介绍基本的时间序列加工、讨论了前馈以及递归神经网络,和他们非线性模型在时空模式的依赖能力方面。

1.介绍

世界是一直在变的。无论我们观察还是措施——个物理价值,诸如温度和自由交易的价格好—在不同的时间点。经典模式识别,并且与它的很大一部分神经网络应用中,主要涉及了检测系统模式以一个数组的形式返回(静态模式)。典型的应用包括输入向量的分类成多个类别之一(判别分析),或近似描述之间的可见的依赖关系(倒退)。当随时间变化而变化也被考虑进去,额外的,时间维就是补充。虽然在很大程度上这一问题仍然可以被经典模式识别,一些附加的重要方面仍然起作用。统计领域的时空数据分析这种关注(例如具有一定的时空维度的数据),通常是被称为时间序列处理。

本文旨在介绍利用神经网络的基本原理为时间序列处理。作为一个教程,它自然只能触及表面的这个行业,留下许多重要的细节都没动。不过,概述最相关方面的工作基础,形成了这个领域的佼佼者。这篇文章是很有参考价值的一个指南,并给出了更远、更详细的文学。关于神经网络学习算法的基本知识建筑已被假定。

2.时间序列处理

2.1.基本要素

在正式的条件,时间序列是一系列向量,根据t:~x(t):t =0;1;…… (1)。

向量的组成部分可以是任何可观察变量,诸如:

1)在一幢建筑里的空气温度

2)在给定的证券交易所的某些产品价格

3)在一个特定城市新出生的人数

4)在一个特定社区的水的总消费金额

从理论上讲,x ~可以被看作是时间变量t的连续函数。然而用于实际目的时,时间是通常被看作离散的时间间隔,这就导致在每个时间间隔的终点产生x的实体。这就是为什么一个人说话的时间顺序或系列。时间间隔的尺寸通常依手边问题,可以是任何东西,从几秒,几小时到几天,甚至几年。

在许多情况下,可观察量只有在离散的时间间隔(例如,在每一个小时,或天某一商品的价格)必然会形成时间序列。在其他情况下(例一个城市的新出生的人数),价值观必须累积或均一段时间间隔(如每月引起的出生人数)得到系列。在时间确实是连续的领域(例如当温度在某一地点是可见) 一个人必须点测量变量的藉所选择的时间间隔来获得一个系列(如每个小时的温度)。这就是所谓的抽样。取样频率就是所测量时段的点个数,在这种情况下是一个非常重要的参数,因为不同频率能从本质上改变所获得时间序列的主要特点。

值得注意的是,有另一个领域非常密切相关,即加工时间序列信号处理。例如语音识别,即异常模式心电图的发现(ECGs),或脑电图的自动分级(EEGs)。一个信号,当采样成一串值的离散的时间间隔时,构成上述定义的时间序列。因此和时间序列信号处理没有一个正式的区别。在普遍的应用程序中可以发现不同(例如单个信号的识别和滤波;时间序列处理的预测),自然的时间序列(一个采样间隔时间信号通常是一小段时间,而在时间序列处理区间常是小时)。但这只是一个从原型中的应用的观察,并没有明确的边界。因此,时间序列处理可借鉴对信号处理的方法探索,反之亦然。神经网络应用程序在信号处理的概述在文献【54,51】。

如果矢量~ x只含有一个组件,在许多应用场合情况中,有的说是一个单变量的时间序列,否则它就是一个多元。它非常仰赖棘手问题的单变量治疗是否会导致图案识别的结果。如果几个可观察量相互影响(例如空气温度和消耗的水量)一个多变量分析治疗(即基于几个可观察量的分析{~x超过一个变量})将被标明。在大多数讨论中,我们依然遵循单变量的事件序列处理。

2.2处理类型

根据时间序列分析的目的,时间序列分析的典型应用可以分为:

1.时间序列未来发展的预测

2.时间序列的分类或分成几类的一部分

3.根据参数模型对时间序列的描述

4.一个时间序列映射到另一个

应用1在文献中肯定是最普遍传播的。从计量能源规划大量的时间序列问题涉及预测未来价值的矢量x -为了决定交易策略或以便优化产品(1.后面参考给出了一个IEEE的程序的例子,这造成一个关于神经网络信号处理的年度会议)。问题描述如下:找到一个函数(K代表x的值)。例如为了获得一个矢量x在时间t+d的估计量,给出了x到t的值,再加上一些额外的自变量π:

d被称为预测的滞后。通常,d=1,也就是说随后的向量应该估算出来,但可以采取任何价值大于1时,(例如5天前能耗的预测)。为了简单起见,我忽略了额外的变量π。虽然如此,我们应该注意加入这些特征(如房间的大小温度是决定因素)在某些应用场合起决定性作用。

在这种方式思考的话,选择的方法越来越近似F,函数近似值的估测将很困难。从这个意义上说,它可以比作函数逼近或观测矢量静力的回归问题,有许多方法可以应用领域,以及在这里(见,比如,(18),介绍)。当讨论神经网络的预测方法时,这个观察将很重要。

通常预测效果的评价是由计算一个误差测度E在一些时间序列的元素,例如验证或测试设置:

(3)

e是一个函数测量之间的误差估计(预测)和实际排序的元素。通常情况下,一个距离度量(欧氏或其他),是在这里用,但会根据问题的作用,任何函数可以使用(如函数计算成本预测造成~ x(t + d)不正确)。在许多预测问题中,~ x(t + d)的准确值并不是必需的,只有说明是否~ x(t + d)变大(上升)或变小(下降),或基本不变。如果是这样的情况,问题变成了分类问题,映射序列(或部份)上升或下降(也许常量)。

在更广泛的来说,分类时间序列(上次的第二类)可以表示为一个找函数Fc:指使多个类别的时间系列:

C是有效分类的集合。和函数逼近没有本质区别(公式2)。换句话说,分类可以看作是一种特殊的函数逼近,这个函数逼近连续向量。来自不同问题(即是被分离的,而不是寻求向量之间的依赖关系的近似){一个能够影响推导了什么函数公式能被使用},通过关这个方法对性能进行了评价。通常,一个错误函数在这公式上:

输入的百分比表达来自不能很好的分配预期的阶段。是克罗内克尔记号。例如=1 如果i=j,则E=0.否则 Ci是输入量i 的已知量。再一次,这之间的区别(倒退)近似分类(歧视)相同的向量模式识别不考虑时域维度。因此,大量的结果与方法可用于领域的时间序列分类。另一个不同时间序列的领域里分类处理(除进入日益分类/下落的)通常是回顾性{即没有时间滞后}而不是预期在未来(预测)。

应用类型3 {建模时间序列}被隐含的包含在大多数情况下,1(预测)和2(分类)。2当方程F功能可以被认为是时间序列模型能够产生系列,以连续替代输入量进行评估。为了使信息有用,一个模型应该有更少的参数估计量的自由度比F)时间序列元素。因为后者号码是潜在的无限的,这主要是指功能外应该仅仅依靠一个有限的和固定参数的数量,我们将会(见下面),并不意味着它只能依靠有界一些过去的序列元素)。除了用于预测和分类模型也可用于描述的时间序列,它的参数被视为一种系列的特点,可在后续的分析(如随后的分类,连同定态薛定功能)。这可以与建模过程,目的是在观测矢量压缩的纯空间域(如按实现一个自动组合映射与神经网络,[13])。

最后,当建模是一种映射到时间序列模型的参数(如发现自己通过时间序列为复制系列)、一个时间序列映射到另一个,不同的,一个是可以想象的一样(应用类型4)。一个简单的例子是预测系列的价值(例如。石油的价格给了他的价值观的另一个(例如利率)。更复杂的应用可能包括分开的模拟两个时间序列,想找一个函数作图分给他们。因为在这种简单的模式中,时间序列之间的映射是一种特殊的时间序列加工(以上讨论),在更复杂的情况下,它很不常见,这个应用程序类型将不会进一步探讨。然而状态矢量空间模型(下面讨论),可以在此背景下查看。

在下文中,我将着重讨论预测问题,而记住其他应用类型的关系很密切这种类型的。

2.3时间序列的特殊转换

上述的考虑隐含假定理论模型的准确时间序列(也就是得出一可以找到最小误差测度到任何想要的学位。在实际的应用实例,这种假设是不现实的。由于测量误差和未知或无法控制的影响因素,一个几乎总是要承担的,即使最优化模型将产生一个残差e所组成,不能被删除。通常,这个错误是认为,噪音过程的结果,即随机产生由一个不知名的来源。因此,方程2有被扩充如下:

这种噪声~ e(t)不能列入模型中。然而,许多方法呈现一定的特征(例如的噪音。高斯白噪声),主要描述的参数(如均值和标准偏差)可以包含在建模过程。这样做,例如,在预测只给一个人不能预测估计估计价值,而且多少这个值可以被噪音。这就是所谓的焦点拱模型研究[4]。

2.4时间序列预处理

仅在一些情况下,它将适当的使用可观察量直接进行处理。在大多数情况下,进行预处理是必要的,以及预处理的时间序列以确保理想的结果的处理。一方面,这与平时采用中截取某些种类(即通常那些在数量上表现向量相似之处)。另一方面,要消除那些可能妨碍已知的演出。一个例子是清晰的(线性和非线性的)趋势,如下。序列的平均值的元素是不断上涨的或下降的(看图表1,来至[50])。

图标1:时间序列呈现出曲线下降的趋势。系列由货币汇率组成(瑞士法郎美元-美国)。来源:

ftp://https://www.wendangku.net/doc/b913274525.html,/pub/Time-Series/SantaFe。

用一系列~ x(t)代替x ~(t),之间的差异,包括随后的值, 拆卸线性趋势(参阅图2)

这个差分过程与连续函数的分化不同。同样的,季节性周期模式,即由于周期影响因素(如一天周在产品销售),都是可以避免的差异计算相应的序列元素:

(例如s = 7如果时间间隔是天,和相应的星期显示相似的模式)。

识别趋势和季节性,当他们是明确的无形财产的时间序列,导致先验知识的系列。像任何统计问题,这些相关的知识应该如何处理(维处理后,总结获得原始值)。否则预测方法试图模型主要特点,这些深入离开很少或没有房间,更细的特点。(因此一个天真的气象预报员来说,“例句。\预测今天的价值加上不断增加“可能费用的一样好。)针对非线性趋势,通常是一个参数化模型(例如一个指数曲线)是假设,并在此基础上消除。

另一个原因来消除趋势和季节性(或者,在那种情况下,其他清晰可见或知名图案)有许多方法

图表2:最先的时间序列,经差分化后平稳(在下文)

3.神经网络对时间序列处理

几个作者概述了不同类型的用于时间序列处理的神经网络。[47],例如,鉴别不同的神经网络根据类型的机制来处理时间的信息。由于大多数神经网络以前在静态模式被定义了模式识别,时间维必须提供一种适当的手段。(47]区分证明机制: 1)层没有反馈(或延迟时间窗)

2)层的延时和反馈

3)单位没有反馈延迟

4)单位的延时和反馈(周期性循环)

[33条]基于分别介绍他关于记忆类别:延迟(与时间窗和延误同类),指数(与复发性连接同类)和微克(对连续时间域的内存模型)。

我想给稍有不同的概要。鉴于上述讨论时间序列处理,使用神经网络的主要是在这一领域的语境中看到函数逼近和分类。在下面,主要介绍神经网络类型,将介绍和讨论同位于传统理念的序列处理。

其他的介绍,可以在[45],[41],[10],[23条]看到。广泛的序列处理神经网络的书在[3]有介绍。

4.认知器和径向基函数网:自回归模型

其中最广泛的神经网络前馈网络的近似分类和功能,如多层认知器;隐蔽的该单位有好发部位传递函数,[42])和径向基函数网络;隐蔽的RBFN单位使用距离传播规律和高斯或其他转移函数,[8])。两个网络类型被证明是一般的功能近似值(见[14,25]

多层感知器,[30、22]径向基函数)。这意味着它们会近似任何合理的函数任意近似被

-在这里a是非特异性功能(或任何另外的非线性功能)、k是一些隐藏的单位,vjl和Wij是重量、b有阈值(偏差)-或者是

只要k足够大,p是高斯函数。是由非线性近似的几个例子重叠的基础上(例如,功能或高斯病例(18.75%)。以固定的一些隐藏的单位(这种事情在大多数神经网络应用)该方法能被称为半参数近似功能:它不作出明确假设功能(的形状参数和方法),但是它却不能逼近任意任意的复杂函数的非参数也可以这样做,注意,我们假设一个固定的一些隐藏的单位,尽管上述证明需要任

意大量的单位,不是事先给定的)(参照[18]或[5])。

通过观察,多层感知器和径向基函数提供一个很简单的扩展为广泛的经典的方法:线性回归建模时间序列模型。线性时间序列模型(见[7])假设功能外,当方程2才是一个线性组合的固定2号前一个系列的向量。包括噪音术语e,

如果以前的序列元素的实施、基于“增大化现实”技术的人讲方法[p].的时间序列模型自回归模型(秩序p)。找到合适的基于“增大化现实”技术方法[p]模型选择一个适当的p,例如通过最小二乘优化程序(见[7]因为一个广泛的治疗这个话题)。这个方法,虽然强大的,是自呈线性关系序列中元素。最重要的,它也呈稳定的时间序列,也就是说,主要的时刻(平均数、标准差)不随时间变化(即均值和标准偏差系列的一部分在独立于在提取系列这部分)。

事情变得越来越清晰从方程9到11点(或10号机和11号,分别为该方或径向基函数可以取代F线性函数11等式中任意非线性函数外(与神经网络方法或者是或径向基):

这非线性函数即可估计基于样本,从系列,使用一个众所周知的学习或优化技术对这些神经网络(例如,股价,梯度等)。让p以前的序列是一致的元素使用p输入单位以p被喂食相邻序列元素(见图3)。该输入通常被称为一个时间窗(见第3),因为它提供给了有限的一部分观系列。它也可以被看作是一种简单的方法把时间维到另一个空间维度。

非线性自回归模型都是比线性跟强大:

1)他们能够塑造复杂得多系列的基本特点

2)他们从理论上不需要稳定性然而,就像在静态模式识别,他们需要更多的线性方法

3)由于他们的大量的自由度,需要大量的样本数据,

4)可能会遇到各种各样的问题,如过度拟合,得到的结果提出估计等方法(比如在过度拟合严重情况,参数P值太高)。

图3:利用前馈神经网络时间窗作为一种非线性回归模型

5)不一定有线性发生在一个微不足道的路

特别是第一点的重要性有很多真实世界中的应用仅有有限的资料是可用的。线性模型相比仍有可能在很多情况下,即使依赖性非线性的。第二点有关学习算法应用。经常股价不是最恰当的选择从而获得最佳的模型。

利用前馈神经网络建立对象的例子【9,36,53,49】,和许多其他文件,在[44]和[37]。

4.1.时滞神经网络

另外的机制提供神经网络以\记忆”对时间序列引进和时间延迟。换句话说,通过延迟,投入到隐藏的单位在不同的时间点,具有\储存功能。这个方法,称为时滞神经网络(TDNN)。已经广泛应用于语音识别,例如,通过[52条]。正式,时间延误时间窗的都是相同的就能被视为自回归模型。一个有趣的分机号是引进时滞之间的联系也在隐层和输出单位,提供了额外的、更\抽象的“记忆体。

5.艾尔曼网络和状态空间模型

另一个共同的处理时间序列方法状态空间模型[11]。假设一时间序列可以描述为线性变换时间的状态给定一个状态向量

在这里 C是一种变换矩阵。状态向量时间通常是一个线性模型:

公式中A和B是矩阵,是噪音过程,就像上述的。该模型对中的状态变化,在这个版本中,基本上是个自回归[1,1]的过程。该模型的基本假定理论是所谓的马尔科夫假设,意味着下一个序列元素可以由产生的时间序列预测,无论是否达到范围。换句话说,所有一系列必经的过程来产生序列元素可以表现为一种状态向量。因为这个向量(~是所有可能的连续状态矢量,所有状态向量组成欧氏向量空间的Rn代码。该模型[11]可以被看作是时间序列模型从另一相关的时间序列之间的映射(与时间序列相关的在2.2章讨论例如)

如果我们进一步假定,这个依赖于过去的向量序列(例如,在信号处理{见[24]),而忽略了移动平均线

然后我们基本上得到方程的递归神经网络描述的类型,被称为后艾尔曼网络【19】,如图4。该网络是一个额外输入层,叫做多层感知器,接收从激活的隐藏层的反馈前的一个隐式方法。如果我们用这个网络类型的预测,并将激活向量代入公式16,唯一对方程的事实是,在非特异性的方法应用于活化作用的输入的每一个隐藏的单位:

图表4:作为实体化的状态空间模型的艾尔曼网络

这公式中,是指的非特异性的应用(或物流)函数。换句话说,转换这种不是线性而是输入向量。这导致函数限制在一个单位向量载体的方块,相对于非线性边的立方体。但是注意,这是一个非常受限制的非线性转换功能,也不代表一般形式的非线性状态空间模型(见下文)。

艾尔曼网络可以训练任何学习算法,如股价梯度。像乔丹网络,它属于这类所谓的简单的复发性网络(SRN)(23)羰基化合物虽然它包含反馈连接,这是没有被看作是一种动态系统激活能够传播。相反,每一层计算在每一时刻只有一次的陈述步骤(一序列矢量)。

像上面所讲的,较强的关系,古典时间序列处理可以被利用,介绍\新的“学习算法。例如,在[56]。卡尔曼算法研究,开发出原始状态空间模型应用于一般递归神经网络。

类似关于艾尔曼复发性网络的研究反应乔丹网络:这也说明,若干时间步开始后的期限前{ 在0激活开始后{合适的激活可在层中可行,在学习开始前。标准的自动模型选择学习算法,虽然轻松股价喜欢运用,会造成问题或导致没有解决方案。最后,这种类型的复发性净也不会处理一个任意长实践,出于类似的如上原因(比如,[2]的基础上,引用,[3]或[33])。以艾尔曼网络为基础的应用例子是[21,15,17]。

图表5:实现了“网络非线性状态空间模型”的艾尔曼网络的扩展

据此,作为暗示在一般非线性状态空间的版本模型是可以想象的。利用非线性函数的线性变换来代替第14和15方程,可获得的:

跟过去部分在非线性自回归滑动平均模型相比,这些非线性函数F1和F2可以由这种径向基函数模仿。图中生成图表5。实例应用的一个网络是[27]。

6.其他话题

故事没在这里结束。还有很多更重要的以时间序列为主题的处理方法和使用神经网络的佼佼者概括到,但有着同样的重要

性,以下就是。

1)许多时间序列应用的问题与关于周期性网络体系结构的反覆性网路讨论不同(例如。(39])。关于周期性网络的特殊算法已经设计出来。如股价[42]和实时周期性学习(实时递归学习算法)[55]。

2)许多作者综合运用神经网络和所谓的隐马尔可夫模型为时间序列和信号作处理。隐马尔可夫模型是有关有限自动机和描述从一种状态改变到另一个人身上的概率。例如[6]或[3]。

3)非监督式学习类神经网络学习算法,如自组织特征映射,也可以应用在时间序列预测,不管是在处理[1]和【40】时。后者应用实例的构成,即所谓的时间空间聚集。无监督的时间序列的分类集群{在这种情况下,脑电图聚类进入睡眠阶段}。

4)许多研究者已经研究了动态神经网路系统的性质,包括混沌吸引子动力学。例子是[28]和[35]。

本研究重点介绍使用最广泛的体系结构和他们与更经典的时间序列处理的近似关系。这里提供的方法可以看作是未来研究的起点,因为神经网络的潜力是到目前为止不充分的开拓呢。。一些内容不能在这里都

7.总结

最初介绍中,神经网络的时间序列处理的概述只能触及这个非常活跃的和重要的领域的面。本文试图引进这个领域的多数基础理论,并且强调神经网络和更传统的统计方法之间的关系。它阐述了一个神经网络的突出贡献-即与任意非线性函数近似能力。这个特性在时间序列上处理是很有价值的与有更强大的应用,特别是在不久的将来的分区预测。然而,这也强调了没有任何问题的非线性模型,同时还有对大的数据基地和对估计算法谨慎的评估的局限性的反应。这里神经网络与传统统计之间的关系将是至关重要的,如果前者实现了这样的承诺,那么在今天是可见的。

鸣谢

支持人工智能研究的奥地利研究所是以对科学和艺术的研究为基础的。我特别感谢克劳迪亚,艾德里安和与费斯奇曼的合作工作,谢谢他们手稿中宝贵的意见。

小波神经网络的时间序列预测短时交通流量预测.doc

%% 清空环境变量 clc clear %% 网络参数配置 load traffic_flux input output input_test output_test M=size(input,2); %输入节点个数 N=size(output,2); %输出节点个数 n=6; %隐形节点个数 lr1=0.01; %学习概率 lr2=0.001; %学习概率 maxgen=100; %迭代次数 %权值初始化 Wjk=randn(n,M);Wjk_1=Wjk;Wjk_2=Wjk_1; Wij=randn(N,n);Wij_1=Wij;Wij_2=Wij_1; a=randn(1,n);a_1=a;a_2=a_1; b=randn(1,n);b_1=b;b_2=b_1; %节点初始化 y=zeros(1,N); net=zeros(1,n); net_ab=zeros(1,n); %权值学习增量初始化 d_Wjk=zeros(n,M); d_Wij=zeros(N,n); d_a=zeros(1,n);

d_b=zeros(1,n); %% 输入输出数据归一化 [inputn,inputps]=mapminmax(input'); [outputn,outputps]=mapminmax(output'); inputn=inputn'; outputn=outputn'; %% 网络训练 for i=1:maxgen %误差累计 error(i)=0; % 循环训练 for kk=1:size(input,1) x=inputn(kk,:); yqw=outputn(kk,:); for j=1:n for k=1:M net(j)=net(j)+Wjk(j,k)*x(k); net_ab(j)=(net(j)-b(j))/a(j); end temp=mymorlet(net_ab(j)); for k=1:N y=y+Wij(k,j)*temp; %小波函数 end end

基于BP神经网络的时序预测及其应用

目录 摘要 (1) 前言 (2) 第一章时间序列的预测函数及其评价指标 (4) 第一节预测函数 (5) 第二节评价预测的数量指标 (5) 第二章 BP神经网络 (6) 第一节 BP神经网络的结构 (6) 第二节 BP神经网络算法及公式推导 (7) 第三节 BP神经网络算法的步骤 (9) 第三章基于BP神经网络的时间序列预测及其应用 (11) 第四章结论 (14) 总结与体会 (15) 致谢词 (15) 参考文献 (15) 附录 (16)

摘要 首先,本文介绍了时间序列的含义和时间序列预测在国内外的研究情况,列举了两个时间序列预测的实际例子。文中阐述了时间序列预测及其评价指标,比较了各评价指标之间的长处和短处。其次, 本文阐述了BP神经网络算法及其公式推导。给出了BP神经网络算法的流程图。最后,本文从实用出发,列出了1993年至2006年我国GDP的数据,此组数据呈现出增长趋势,这种增长趋势反映了近十几年我国经济的快速增长。用BP神经网络预测出我国2007年的GDP是200790亿元, 这表明今后我国经济有减缓的迹象,这也说明我国近几年宏观经济调控获得了一定的成果。 【关键词】时间序列神经网络预测 GDP Abstract This grade paper, times series, and the development of times series forecast are introduced at first, and then the practical examples of times series forecast are enumerated. The function of times series forecast and its evaluative index are given. We compare the advantage and disadvantage of these evaluative indexes. Secondly, The principles of BP neural network and BP neural network’s algorithm are presented. Finally, we particularize our country GDP statistics, which it increases, which it indicates economy’s fast increasing, year by year, from 1993 to 2006. We also study BP neural network’s forecast algorithm. Our country GDP in 2007,wiche it is about 200790 hundred millions is forecasted by BP neural network, and it shows that the Chinese macro-economy policy in ten years are succeed. Keywords time series neural network prediction GDP

MATLAB动态神经网络在时间序列预测中的应用

MATLAB动态神经网络在时间序列预测中的应用 摘要:本文在介绍了Matlab神经网络工具箱的基础上,主要对时间序列预测工具箱的使用作了说明,并用实例仿真说明如何进行时间序列预测的调用实现,通过不断的调整参数,最后使训练的模型比较理想,满足实际的需求,表明了直接使用时间序列预测的有效性,并为Matlab神经网络工具箱的使用提供了新的方法。 关键词:Matlab;神经网络;时间序列;预测 引言 时间序列是根据时间顺序得到跟时间相关的变量或者参数的观测数据[1]。对时间序列的研究主要是挖掘其中有价值的信息,找到其中变化的内在规律[2]。时间序列预测是时间序列分析研究的主要内容,是指根据现有的和历史的时间序列的数据,建立能反映时间序列中所包含的动态依存关系的数学模型[3],从而能对序列未来的趋势做出合理的预测。简单的说,时间序列预测就是用已有的数据预测下一个时间段的值。目前,时间序列预测已经广泛应用在自然界、经济、化学、科学工程等各个领域。 随着Matlab版本的不断更新,神经网络工具箱不断的完善,使得仿真的实现日益简单,R2010b后的版本对时间序列预测的实现不需要手动写代码,网络训练完毕,从Simple Script可看到网络代码,并可对代码进行编辑、改编,因此,只要调用就可应用在各个领域。本文结合时间序列预测的特点,将Matlab神经网络工具箱中的时间序列预测应用到温度预测的实例中,通过快速的仿真及不断的调整参数,从而形成较理想的数学模型,为后期进行温度的预测奠定了基础。 1Matlab神经网络工具箱简介 神经网络分为静态和动态两类。静态神经网络是无反馈、无记忆的,输出仅依赖于当前的输入,例如BP神经网络和RBF神经网络。动态神经网络是有记忆的神经网络,其输出依赖于当前和以前的输入。动态神经网络又分为有反馈和无反馈,有反馈指输出依赖于当前输入和前一个输入输出,无反馈指输出依赖于当前和之前的输入。因此,动态神经网络比静态神经网络功能强,本文选择动态神经网络进行时间序列预测。 Matlab神经网络工具箱提供了一系列用于模型训练的工具,包括曲线拟合工具箱、模式识别工具箱、聚类工具箱和时间序列工具箱,利用这些工具箱可进行快速的调整参数,通过仿真得到直观的结果。另外,Matlab神经网络工具箱还提供人机交互界面,可根据提示一步一步的完成模型的训练,并对仿真的结果进行分析,直到满足要求为止。 选择时间序列工具箱或者直接在命令窗口中输入ntstool,可打开时间序列预测工具箱界面,根据数据选择符合哪种情况,根据人机交互界面的提示,将数据

基于神经网络的Mackey-Glass时间序列预测

目录 1引言 (1) 2MG时间序列 (1) 2.1MG时间序列简介 (1) 2.2利用dde23函数求解MG时间序列 (1) 3BP神经网络 (3) 3.1神经网络总体思路 (3) 3.2MATLAB中的newff函数 (3) 3.3BP神经网络的训练 (4) 3.4构建输入输出矩阵 (6) 3.5对MG时间序列未来值预测 (6) 4参考文献 (7) 5附录 (8)

1 引言 本文选用的神经网络的是BP 神经网络,利用MATLAB 编程实现。首先通过求解Mackey-Glass 方程得到具有513个数据的Mackey-Glass 时间序列,其中一半用于训练神经网络,一半用于检测预测值。BP 神经网络输入层神经元个数为4,隐含层为8,输出层为1。利用BP 神经网络工具箱构建神经网络并对其进行训练,然后利用训练好的神经网络对未来值进行预测,画出比较图。 2 MG 时间序列 2.1 MG 时间序列简介 Mackey-Glass 混沌系统一类非常典型的混沌系统,混沌系统模型由以下的时滞微分方程来描述: )() (1) ()(t x t x t x dt t dx βτταγ--+-= 其中 α =0.2,β =0.1,γ =10,τ是可调参数,x(t)是在t 时刻的时间序列的值。MG 方程表现出了某种周期性与混沌特性,在τ<16.8时,表现出周期性,在 τ>16.8时,则表现出混沌特性。 2.2 利用dde23函数求解MG 时间序列 本课程设计中取τ=10,也就是说MG 时间序列会表现为周期性。可以利用MATLAB 求解MG 方程,MG 方程是一个时滞微分方程,其中一种求解方法是利用MATLAB 的dde23函数。具体求解方法是:首先建立MG .m 函数文件,代码如下 function y = MG(t,x,z) %UNTITLED Summary of this function goes here % Detailed explanation goes here

神经网络预测时间序列

神经网络预测时间序列 如何作预测?理想方法是利用已知数据建立一系列准则,用于一般条件下预测,实际上由于系统的复杂性而不太可能,如股票市场预测。另一种途径是假设一次观测中过去、未来值之间存在联系。其中一种选择是发现一个函数,当过去观测值作为输入时,给出未来值作为输出。这个模型是由神经网络来实现的。 1.2 神经网络预测时间序列 (1) 简单描述 在时间序列预测中,前馈网络是最常使用的网络。在这种情形下,从数学角度看,网络成为输入输出的非线性函数。记一个时间序列为}{n x ,进行其预测可用下式描述: ),,(1+-1-+=m n n n k n x x x f x (1) 时间序列预测方法即是用神经网络来拟合函数)(?f ,然后预测未来值。 (2) 网络参数和网络大小 用于预测的神经网络性质与网络参数和大小均有关。网络结构包括神经元数目、隐含层数目与连接方式等,对一个给定结构来说, 训练过程就是调整参数以获得近似基本联系,误差定义为均方根误差,训练过程可视为一个优化问题。 在大多数的神经网络研究中,决定多少输入与隐层单元数的定量规则问题目前尚未有好的进展,近有的是一些通用指导:首先, 为使网络成为一个完全通用的映射,必须至少有一个隐层。1989年证明一个隐层的网可逼近闭区间内任意一个连续函数。其次,网络结构要尽可能紧致,即满足要求的最小网络最好。实际上,通常从小网络开始。逐步增加隐层数目。同样输入元数目也是类似处理。 (3) 数据和预测精度 通常把可用的时间序列数据分为两部分:训练数据和检验数据。训练数据一般多于检验数据两倍。检验过程有三种方式: 短期预测精度的检验。用检验数据作为输入,输出与下一个时间序列点作比较,误差统计估计了其精度。 长期预测中迭代一步预测。以一个矢量作为输入,输出作为下一个输入矢量的一部分,递归向前传播。 直接多步预测。即用1+-1-m n n n x x x ,,直接进行预测,输出k n x +的预测值,其中 1>k 。

神经网络对时间序列的处理(1)

神经网络对时间序列的处理 Georg Dorffner 奥地利维也纳大学人工智能研究所医疗控制论和人工智能部门 摘要: 本文介绍了神经网络在时间序列处理的最常见类型,即模式识别和时空模式的预测。重视神经网络模型和更多经典时间序列的处理方法之间的关系,尤其是预测。文章首先通过介绍基本的时间序列加工、讨论了前馈以及递归神经网络,和他们非线性模型在时空模式的依赖能力方面。 1.介绍 世界是一直在变的。无论我们观察还是措施——个物理价值,诸如温度和自由交易的价格好—在不同的时间点。经典模式识别,并且与它的很大一部分神经网络应用中,主要涉及了检测系统模式以一个数组的形式返回(静态模式)。典型的应用包括输入向量的分类成多个类别之一(判别分析),或近似描述之间的可见的依赖关系(倒退)。当随时间变化而变化也被考虑进去,额外的,时间维就是补充。虽然在很大程度上这一问题仍然可以被经典模式识别,一些附加的重要方面仍然起作用。统计领域的时空数据分析这种关注(例如具有一定的时空维度的数据),通常是被称为时间序列处理。 本文旨在介绍利用神经网络的基本原理为时间序列处理。作为一个教程,它自然只能触及表面的这个行业,留下许多重要的细节都没动。不过,概述最相关方面的工作基础,形成了这个领域的佼佼者。这篇文章是很有参考价值的一个指南,并给出了更远、更详细的文学。关于神经网络学习算法的基本知识建筑已被假定。 2.时间序列处理 2.1.基本要素 在正式的条件,时间序列是一系列向量,根据t:~x(t):t =0;1;…… (1)。 向量的组成部分可以是任何可观察变量,诸如: 1)在一幢建筑里的空气温度 2)在给定的证券交易所的某些产品价格 3)在一个特定城市新出生的人数 4)在一个特定社区的水的总消费金额 从理论上讲,x ~可以被看作是时间变量t的连续函数。然而用于实际目的时,时间是通常被看作离散的时间间隔,这就导致在每个时间间隔的终点产生x的实体。这就是为什么一个人说话的时间顺序或系列。时间间隔的尺寸通常依手边问题,可以是任何东西,从几秒,几小时到几天,甚至几年。 在许多情况下,可观察量只有在离散的时间间隔(例如,在每一个小时,或天某一商品的价格)必然会形成时间序列。在其他情况下(例一个城市的新出生的人数),价值观必须累积或均一段时间间隔(如每月引起的出生人数)得到系列。在时间确实是连续的领域(例如当温度在某一地点是可见) 一个人必须点测量变量的藉所选择的时间间隔来获得一个系列(如每个小时的温度)。这就是所谓的抽样。取样频率就是所测量时段的点个数,在这种情况下是一个非常重要的参数,因为不同频率能从本质上改变所获得时间序列的主要特点。 值得注意的是,有另一个领域非常密切相关,即加工时间序列信号处理。例如语音识别,即异常模式心电图的发现(ECGs),或脑电图的自动分级(EEGs)。一个信号,当采样成一串值的离散的时间间隔时,构成上述定义的时间序列。因此和时间序列信号处理没有一个正式的区别。在普遍的应用程序中可以发现不同(例如单个信号的识别和滤波;时间序列处理的预测),自然的时间序列(一个采样间隔时间信号通常是一小段时间,而在时间序列处理区间常是小时)。但这只是一个从原型中的应用的观察,并没有明确的边界。因此,时间序列处理可借鉴对信号处理的方法探索,反之亦然。神经网络应用程序在信号处理的概述在文献【54,51】。 如果矢量~ x只含有一个组件,在许多应用场合情况中,有的说是一个单变量的时间序列,否则它就是一个多元。它非常仰赖棘手问题的单变量治疗是否会导致图案识别的结果。如果几个可观察量相互影响(例如空气温度和消耗的水量)一个多变量分析治疗(即基于几个可观察量的分析{~x超过一个变量})将被标明。在大多数讨论中,我们依然遵循单变量的事件序列处理。 2.2处理类型 根据时间序列分析的目的,时间序列分析的典型应用可以分为: 1.时间序列未来发展的预测 2.时间序列的分类或分成几类的一部分 3.根据参数模型对时间序列的描述

用小波神经网络来对时间序列进行预测

/* Note:Your choice is C IDE */ #include"stdio.h" void main() { }/*用小波神经网络来对时间序列进行预测 */ /*%File name : nprogram.m %Description : This file reads the data from %its source into their respective matrices prior to % performing wavelet decomposition. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Clear command screen and variables */ clc; clear; /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % user desired resolution level (Tested: resolution = 2 is best)*/ level = menu('Enter desired resolution level: ', '1',... '2 (Select this for testing)', '3', '4'); switch level case 1, resolution = 1; case 2, resolution = 2; case 3, resolution = 3; case 4, resolution = 4; end msg = ['Resolution level to be used is ', num2str(resolution)]; disp(msg); /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % user desired amount of data to use */ data = menu('Choose amount of data to use: ', '1 day', '2 days', '3 days', '4 days',... '5 days', '6 days', '1 week (Select this for testing)'); switch data case 1, dataPoints = 48; /*%1 day = 48 points */ case 2, dataPoints = 96; /* %2 days = 96 points */ case 3, dataPoints = 144; /*%3 days = 144 points */ case 4, dataPoints = 192; /*%4 days = 192 points */ case 5, dataPoints = 240; /* %5 days = 240 points */

MATLAB动态神经网络在时间序列预测中的应用

龙源期刊网 https://www.wendangku.net/doc/b913274525.html, MATLAB动态神经网络在时间序列预测中的应用 作者:张云丽韩宪忠王克俭 来源:《科学与技术》2014年第08期 摘要:本文在介绍了Matlab神经网络工具箱的基础上,主要对时间序列预测工具箱的使 用作了说明,并用实例仿真说明如何进行时间序列预测的调用实现,通过不断的调整参数,最后使训练的模型比较理想,满足实际的需求,表明了直接使用时间序列预测的有效性,并为Matlab神经网络工具箱的使用提供了新的方法。 关键词:Matlab;神经网络;时间序列;预测 中图分类号:TP391.41 文献识别码:A 引言 时间序列是根据时间顺序得到跟时间相关的变量或者参数的观测数据[1]。对时间序列的 研究主要是挖掘其中有价值的信息,找到其中变化的内在规律[2]。时间序列预测是时间序列 分析研究的主要内容,是指根据现有的和历史的时间序列的数据,建立能反映时间序列中所包含的动态依存关系的数学模型[3],从而能对序列未来的趋势做出合理的预测。简单的说,时 间序列预测就是用已有的数据预测下一个时间段的值。目前,时间序列预测已经广泛应用在自然界、经济、化学、科学工程等各个领域。 随着Matlab版本的不断更新,神经网络工具箱不断的完善,使得仿真的实现日益简单, R2010b后的版本对时间序列预测的实现不需要手动写代码,网络训练完毕,从Simple Script 可看到网络代码,并可对代码进行编辑、改编,因此,只要调用就可应用在各个领域。本文结合时间序列预测的特点,将Matlab神经网络工具箱中的时间序列预测应用到温度预测的实例中,通过快速的仿真及不断的调整参数,从而形成较理想的数学模型,为后期进行温度的预测奠定了基础。 1Matlab神经网络工具箱简介 神经网络分为静态和动态两类。静态神经网络是无反馈、无记忆的,输出仅依赖于当前的输入,例如BP神经网络和RBF神经网络。动态神经网络是有记忆的神经网络,其输出依赖于当前和以前的输入。动态神经网络又分为有反馈和无反馈,有反馈指输出依赖于当前输入和前一个输入输出,无反馈指输出依赖于当前和之前的输入。因此,动态神经网络比静态神经网络功能强,本文选择动态神经网络进行时间序列预测。

基于神经网络的MackeyGlass时间序列预测

目录 1引言2 2MG时间序列2 2.1MG时间序列简介2 2.2利用dde23函数求解MG时间序列2 3BP神经网络4 3.1神经网络总体思路4 3.2MATLAB中的newff函数4 3.3BP神经网络的训练5 3.4构建输入输出矩阵6 3.5对MG时间序列未来值预测7 4参考文献8 5附录8

1 引言 本文选用的神经网络的是BP 神经网络,利用MATLAB 编程实现。首先通过求解Mackey-Glass 方程得到具有513个数据的Mackey-Glass 时间序列,其中一半用于训练神经网络,一半用于检测预测值。BP 神经网络输入层神经元个数为4,隐含层为8,输出层为1。利用BP 神经网络工具箱构建神经网络并对其进行训练,然后利用训练好的神经网络对未来值进行预测,画出比较图。 2 MG 时间序列 2.1 MG 时间序列简介 Mackey-Glass 混沌系统一类非常典型的混沌系统,混沌系统模型由以下的时滞微分方程来描述: )() (1) ()(t x t x t x dt t dx βτταγ--+-= 其中 α =0.2,β =0.1,γ =10,τ是可调参数,x(t)是在t 时刻的时间序列的值。MG 方程表现出了某种周期性与混沌特性,在τ<16.8时,表现出周期性,在 τ>16.8时,则表现出混沌特性。 2.2 利用dde23函数求解MG 时间序列 本课程设计中取τ=10,也就是说MG 时间序列会表现为周期性。可以利用MATLAB 求解MG 方程,MG 方程是一个时滞微分方程,其中一种求解方法是利用MATLAB 的dde23函数。具体求解方法是:首先建立MG .m 函数文件,代码如下 function y = MG(t,x,z) %UNTITLED Summary of this function goes here % Detailed explanation goes here xlag=z(1,:);

相关文档