摘要:建立了基于BP网络的时间序列预测模型,将模型应用于实际算例,设计了模型的网络结构、初始权值和偏差,结果验证了模型的有效性。
Abstract: This paper established the time series prediction model based on BP neural network, applied the model to the practical example, and designed the network structure, initialized weights and deviation. The results verify the effectiveness of the model.
关键词:BP神经网络;时间序列;预测;消耗
Key words: BP neural network;time series;prediction;consumption
中图分类号:TP389.1; TP391.9文献标识码:A文章编号:1006-4311(2010)35-0128-02
0引言
预测是人们根据事物的发展规律、历史和现状,分析影响其变化的因素,对其发展前景和趋势预先进行的一种推测。对于现实中大量存在的非线性、非平稳的复杂动力系统问题,非线性ARMA模型应用中需要确定合适的模型阶数,这是比较困难的,在传统的预测方法解决效果欠佳的领域,应用神经网络等智能预测方法往往能够更有效。
神经网络中单个神经元具有简单的能够反映非线性本质特征的能力,通过这些基本的单元自组织复合,使神经网络能够重建任意的非线性连续函数。通过这一归纳过程,可以使网络获得序列的内在规律,从而可以对序列的变化进行预测。基于神经网络的时间序列预测方法是用神经网络预测的方法之一,自从1987年Fabrer首先应用神经网络进行预测以来,这种方法日益受到重视,它为一类高度非线性动态关系的时间序列预测提供了一条有效途径。
假设一次观测中过去值与未来值之间存在联系,找到一个函数,当过去观测值作为输入时,给出未来值作为输出。由此可以得出利用神经网络进行时间序列预测的基本思路:用神经网络来拟合这个函数,然后预测未来值。在时间序列预测中,BP神经网络是最常使用的网络[1-5]。BP网络是一种非线性神经网络,Robert Hecht Nielson已证明只有一个隐层的神经网络,只要隐节点足够多,就可以以任意精度逼近一个非线性函数,因此下面采用三层BP网络进行预测。
1三层BP网络模型
三层BP网络是由输入层、一个隐层和输出层构成的前馈网络,如图1所示。
1.1 算法描述三层BP网络算法的过程如下。
输入:层数为3的神经网络,其中第i层神经元数为ni,训练样本集T。
输出:经过训练的神经网络。
1.1.1 初始化各层的权值W和偏差θ。
1.1.2 输入训练样本:输入T中的一个样本X=(X1,X2,…,X)和期望输出Y=(Y1,Y2,…,Y)。
1.1.3 正向传播:从第2层开始到第3层,计算每层神经元的输出。令第k层第j个神经元的输出记为O,有:
O=fW(t)X+θ(t) (1)
其中,Wij(t)为t时刻神经元i与下层神经元j间的权值,θj(t)为t时刻神经元j的偏差,X为t时刻第k-1层神经元i的输出。对于输入神经元来说,输出就等于输入,即O=X。
1.1.4 反向传播:从第3层开始到第2层,计算每层神经元的误差。将第k层第j个神经元的误差记为e,对于输出层神经元,误差为:
e=O1-OY-O1jn (2)
隐层神经元的误差为:
e=O1-OW(t)e k=2,1jn(3)
1.1.5 修改权值和各神经元的偏差:
W(t+1)=W(t)+η•e•Oθ(t+1)=θ(t)+η•e(4)
1.1.6 根据给定的结束条件判断是否满足。如果满足,则算法结束,否则返回第2步继续执行。
1.2 网络结构设计基于BP神经网络的时间序列预测不需要确定影响因素,但是在对输入神经元的确定上要注意:在样本数确定的情况下,输入神经元的数目过多,则供训练的学习样本太少;反之,输入神经元的数目过少,则学习样本太多[6-8]。
1.3 确定初始权值和偏差BP算法可以获得使均方误差最小的网络参数,使网络达到设定精度的最佳拟合,但是,由于多层网络性能曲面具有多个局部极小点,所以不一定能产生精确逼近解的网络参数。因此,当BP算法收敛时,并不能确定是否得到了最优解,最好的办法是多试几个不同的初始权值和偏差以保证获得全局极小点,即最优的解。
1.4 传递函数设计BP网络常用的传递函数是对数-S形函数和线性函数,其输出范围分别是[0,1]和任意值[9-10]。为了满足非线性预测的要求,又满足网络输出的需要,隐层采用对数-S形函数作为传递函数,而输出层则采用线性函数为传递函数。对数-S形函数为:
f(x)=a>0(5)
2算例
某项备件12年的消耗统计数据如表1所示,下面就利用上述模型预测该项备件年消耗数。
设定均方误差精度为0.0001,对数-S形函数的参数a为1。设相邻3年的数据为一组,从1998至2008年共9组,利用前6组进行训练,每一组的三个数据作为输入神经元,下一年度的数据作为输出神经元。备件消耗预测模型可以采用3-4-1网络,训练方法采用Levenberg-Marquardt算法(以下简称LM算法)。LM算法具有最快的收敛速度,对于中小规模的BP网络是最优的方法,因此适用于备件消耗预测模型所采用的3-4-1网络。
训练后的神经网络隐层各神经元的输入权值和偏差如表2所示,输出层各神经元的输入权值和偏差如表3所示。
然后,利用第7、8组进行验证:预测消耗数分别为4.0048、4.0048,误差均为0.0048,表明该模型的预测效果比较理想。
最后,用第九组预测2009年的消耗数:预测消耗数为4.0048,因此,2009年该器材的消耗数为4。
3结论
基于BP神经网络的时间序列预测的优点是没有复杂的理论问题,简便易行,但是缺少理论依据。研究结果表明,该模型用于预测的效果较好,为一类高度非线性动态关系的时间序列预测提供了一条有效途径。
参考文献:
[1]赵淑舫,宁宣熙,吴桐水.航材需求预测模型研究[J].中国民航学院学报,2002,20(3):20-23.
[2]张冬,明新国等.基于BP神经网络和设备特性的工业设备备件需求预测[J].机械设计与研究,2010,26(1):72-77.
[3]康进,刘敬伟.非参数回归估计与人工神经网络方法的预测效果比较[J].统计与决策,2009(23):153-155.
[4]吴清亮,董辉等.基于神经网络对航材备件需求率的预测分析[J].兵工自动化,2009,28(1):54-56.
[5]徐勋福,郭军.航材需求分析的误差反向传播网络预测[C].第二届中国航空学会青年科技论坛文集,2006:616-623.
[6]魏崇辉,金福禄,何亚群.基于粗糙集和神经网络的空军航材消耗预测方法[J].东南大学学报(自然科学版),2004,34(Sup):68-70.
[7]Martin T.Hagan Howard B. Demuth Mark H.Beale.神经网络设计[M].戴葵,等,译.北京:机械工业出版社,2006.
[8]董肇君.系统工程与运筹学[M].北京:国防工业出版社,2007.
[9]李晓峰,徐玖平等.BP人工神经网络自适应学习算法的建立及其应用[J].系统工程理论与实践,2004,(5):1-8.
[10]何海龙,王青海,王精业.神经网络在装备保障性评估中的应用[J].系统工程理论与实践,2003,(9):111-116.