BP神经网络预测算法的改进及应用.docx

上传人:rrsccc 文档编号:9851201 上传时间:2021-03-30 格式:DOCX 页数:20 大小:26.31KB
返回 下载 相关 举报
BP神经网络预测算法的改进及应用.docx_第1页
第1页 / 共20页
BP神经网络预测算法的改进及应用.docx_第2页
第2页 / 共20页
BP神经网络预测算法的改进及应用.docx_第3页
第3页 / 共20页
BP神经网络预测算法的改进及应用.docx_第4页
第4页 / 共20页
亲,该文档总共20页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《BP神经网络预测算法的改进及应用.docx》由会员分享,可在线阅读,更多相关《BP神经网络预测算法的改进及应用.docx(20页珍藏版)》请在三一文库上搜索。

1、BP神经网络预测算法的改进及应用收稿日期:2009-03-02;修回日期:2009-06-12基金项目:国家自然科学基金重大项目(60873058;60743010);山东省自然科学基金重大项目(Z2007G03)作者简介:王晓敏(1983-),女,硕士研究生,研究方向为数据挖掘与智能算法;刘希玉,“泰山学者”,教授,博士生导师,研究方向为数据挖掘与人工智能。BP 神经网络预测算法的改进及应用王晓敏1,刘希玉2,戴芬1(1.山东师范大学信息科学与工程学院,山东济南250014;2.山东师范大学管理与经济学院,山东济南250014)摘要:BP 算法是应用广泛的神经网络算法,具有较强的非线性拟合能

2、力,可以用来预测非线性时间序列数据的发展趋势。但在实际应用和仿真过程中,由于算法本身的限制和不足,对于仿真和计算都会带来很多问题,比如网络训练过程中程序异常中止、训练时间过长、仿真精度不高等。针对这样的情况,通过分析算法本身和训练仿真过程,找到了相应的原因和解决方法,研究了传统BP 神经网络模型的缺陷并提出附加动量的方法来改进BP 神经网络,最后通过在Matlab 仿真环境下的实际仿真过程,验证了改善效果。关键词:BP 算法;数据预测;仿真;神经网络中图分类号:TP301 文献标识码:A 文章编号:1673-629X (2009)11-0064-04Improvement and Applic

3、ation of BP N eural N et work Forecasting AlgorithmWAN G Xiao 2min 1,L IU Xi 2yu 2,DAI Fen 1(1.Department of Information Science and Engineering ,Shandong Normal University ,Jinan 250014,China ;2.Department of Management and Economics ,Shandong Normal University ,Jinan 250014,China )Abstract :BP (ba

4、ck propagation )algorithm which is one of the most widely used neural network algorithms ,has very high nonlinear fit 2ting ability ,and it can be used to predict the developing trend of time series data in practical application and simulation.But some kinds of problems and exceptions may happen bec

5、ause of the limitation and deficiency of the algorithm itself ,such as abnormal termination ,long training time and low accuracy.Aiming at improving the performance ,through analyzing the algorithm and simulation ,corresponding causes and problem -solving way are found.In this paper some limitations

6、 of BP neural network have been analyzed and optimized meth 2ods have been supposed.Finally ,through practical simulating experiments in Matlab ,the effect is certificated.K ey w ords :BP algorithm ;data forecasting ;simulation ;neural network0引言神经网络是一门发展十分迅速的交叉学科,它是由大量的处理单元组成的非线性大规模自适应动力系统。目前已经提出了多

7、种训练算法和网络模型,其中应用最广泛的是前馈型神经网络中的误差反向传播(BP )学习算法1。BP 算法系统地解决了多层网络中隐含单元连接权的学习问题,使BP 网络成为应用最为广泛的一种神经网络模型。但随着使用的广泛,人们发现BP 网络存在收敛速度缓慢、易陷入局部极小等缺陷,极大地影响了神经网络的进一步应用2。文中结合BP 网络的训练过程,分析其产生问题的原因,提出一种改进的BP 网络训练方法,避免了传统的BP 算法容易陷入局部极小的问题,同时可以提高BP 算法的训练速度,降低收敛时间。1BP 神经网络1.1传统BP 网络算法BP 神经网络的学习过程分为信息的正向传播和误差的反向传播过程两个阶段

8、。外部输入的信号经输入层、隐含层的神经元逐层处理向前传播到输出层给出结果。如果在输出层得不到期望输出,则转入逆向传播过程,将实际值与网络输出之间误差沿原来连接的通路返回,通过修改各层神经元的联系权值,使误差减少,然后再转入正向传播过程,反复迭代,直到误差第19卷第11期2009年11月 计算机技术与发展COMPU TER TECHNOLO GY AND DEV ELOPMEN T Vol.19No.11Nov.2009 小于给定的值为止3。以一个三层网络为例,网络由N 个输入神经元,K 个隐层神经元,M 个输出神经元组成(见图1)。O 2pm 和O 1pk 分别为输出层和隐层的输出值,w 2k

9、m 和w 1nk 分别为隐层到输出层和输入层到隐层的连接权值,设输入学习样本为x pn ,其对应的希望输出值为t pm。图1BP 神经网络示意图标准算法步骤如下:(1)初始化权值,设定学习率,允许误差,最大迭代次数,置循环步数i =0。(2)正向计算:将第p 个样本X p =X p 1X pn 顺序输入到网络中,按下式分别计算O 1pk 和O 2pm :O 1pk (i )=f (Nn =1w 1nk (i )x pn )O 2pm (i )=f (Kk =1w 2km(i )O 1pk (i )激活函数常采用S 型sigmoid 函数:f (x )=1/(1+e -x)(3)计算均方误差E

10、,若E ,则停止迭代,否则执行下一步。E =1MMm =1(tpm-O 2pm )2(4)反向计算:计算权值的改变量,公式如下:w 1nk (i +1)=Pp =1pk (i )x pnw 2km (i +1)= pm (i )O 1pk (i )而pm (i )=(t pm -O 2pm (i )O 2pm (i )(1-O 2pm (i )pk (i )=O 1pk (i )(1-O 1pk (i )Mm =1 pm (i )w km (i )更改权值w 1nk (i +1)=w 1nk (i )+w 1nk (i +1)w 2km (i +1)=w 2km (i )+w 2km (i +

11、1)(5)置i =i +1,返回(2)。1.2BP 算法的不足虽然BP 算法得到广泛的应用,但其也存在不足,由于算法实质上是非线性优化问题的梯度算法,所以它存在收敛性的问题4。由于网络误差是在高维空间中具有复杂形状的曲面,对这样复杂的误差曲面,沿负梯度方向调整连接权值,可能出现以下几种情况:(1)收敛到局部极小点。由于算法采用的是梯度下降法,训练是从某一起始点沿误差函数的斜面逐渐达到误差的最小值,而网络误差曲面是高维的凹凸不平的误差曲面,因此,在学习过程中可能陷入某个局部极小点。(2)在平坦区域内连接权值调整缓慢。误差曲面往往存在一些平坦区,由于激活函数的导数趋于零,即使误差较大,但梯度调整过

12、程几乎处于停顿状态。(3)在陡峭的沟壑中振荡。误差曲面通常也存在陡峭的沟壑,这就使网络的权值收敛不到极小点上,而在极小点周围来回振荡。(4)跳过较好的极小点。网络在学习过程中,也可能在网络权值的调整过程中,跳过较好的极小点,这主要是由于误差曲面的凹处太窄,而梯度值又较大,致使网络权值从一个较好的极小点附近跳到另一个次好的极小点区域。1.3改进的BP 算法上面分析的几种情况,在利用网络预测时间序列数据的训练过程中都有可能发生。在应用中网络的初始权值、隐节点数、动量因子、学习率、目标误差、训练步数等参数在相应BP 网络训练方法中都必须注意选择。初始权值和隐节点数选取缺乏具体的理论指导,通常选取不同

13、的小伪随机数作为初始权值,但由于随机性需要训练和仿真多次取平均值5。隐节点太少网络容错性差,降低非线性映射能力;隐节点太多训练易陷入局部极小点、训练收敛慢甚至发散,并且降低网络泛化能力,目前虽然存在许多数目选择经验公式但极不通用。具体问题中最优数目往往通过试验确定6。目标误差太大或步数太少,训练不充分;反之,一则使训练时间太长,二则造成对训练样本的过度拟和而降低对新样本的泛化能力。一般学习率选为0.10.9,动量因子选为0.80.9。网络算法对网络性能起决定性影响,近年来,许多研究人员对其作了深入的研究,提出了许多改进的方法,如加入动量项,自适应学习率调节和弹性算法以及遗传算法和模拟退火算法等

14、全局优化思想的引入57。在基于梯度下降方式的改进中最佳代表是加入动量因子和学习率自适应相结合的动量项自适应学习率方法,此方法以加入动量因子作为阻尼项,学习率也自适应调节,因此既减少了震荡又加快收敛速?56?第11期 王晓敏等:BP 神经网络预测算法的改进及应用度。基于数值优化的数学思想与BP 算法相结合,训练速度极快而且测试性能很好,由于BP 网络运算实质就是一个非线性函数优化问题,考虑将训练算法与非线性优化算法相结合作为改进的途径。将高斯-牛顿法加入因子k 得L -M (Levenberg -Marquardt )优化方法:x k +1=x k -J T(x k )J (x k )+I K

15、-1J T(x k )V (x k )进而得到LM -BP 权值调节公式为:w k +1=w k -J T (w k )J (w k )+I K -1J T(w k )e (w k )其中,w k 为权值,e (w k )为误差函数。这样通过自适应调节参数k ,LM -BP 算法就综合了梯度下降法和高斯牛顿法的优点,网络性能极好。BP 网络改进方式很多,需要选择的网络参数又如此繁杂特殊,因此在具体实验时必须考虑改进方式以及网络参数的选择。2用改进的BP 算法对数据进行预测神经网络对时间序列进行预测,是用过去的N 个时刻数据预测未来M 个时刻数据,把L 个样本数据分成K 段长度为N +M 的重叠

16、数据段,其中,输入为X k ,X k +1,X k +N -1输出为X N +k ,X N +k +1,X N +M +k -1,k =1,2,K 。共得到L -(N +M )-1个样本,实现一个NR -MR 输入输出非线性映射,进而用网络进行训练和预测。下面用BP 神经网络改进方式并确定网络参数,对某省2006年9月份缺测数据补缺,然后对2007年11月份城镇居民人均可支配收入进行预测。采用单隐层BP 网络,即由输入、一个隐含层、一个输出层组成,传递函数采用Sigmoid 函数,由于各指标数据太大,指标之间又有不同的量级,输入太大会使网络传递函数提前达到饱和值,导致训练失败,而且大量级输入对

17、小量级输入会产生信息覆盖,需要对网络的输入数据进行归一化预处理8。用最简单的归一化公式对数据进行归一化处理,x t (i )=(x (i )-x min )/(x max -x min ),i =1,2,p ,其中x (i )归一化到0,1,x (i )为城镇居民家庭人均可支配收入实际样本数据,x max 、x min 为输入实际样本数据的最大、最小值。归一化后大大加快了收敛速度,同时也不影响数据间的联系。网络的初始权值和阈值由网络自动选取。误差函数和训练次数自定,隐含层元数亦自定。经过不断的训练来最终确定合适的隐含层元数。模型见图2。图2城镇居民人均可支配收入BP 网络模型每个样本有9个指标

18、:A 1工业增加值、A 2固定生产投资、A 3地方财政预算收入、A 4地方财政预算支出、A 5对外贸易、A 6社会消费品零售额、A 7居民消费价格指数、A 8城镇居民人均消费性支出、A 9城镇居民人均可支配收入(单位:亿元)。可看出样本各指标之间存在着复杂非线性联系。样本统计数据如表1所示。首先对缺测的2006年9月份城镇居民人均可支配收入进行补缺。考虑除2006年9月份以外样本每月份的前8个指标A 1、A 2、A 3、A 4、A 5、A 6、A 7、A 8,以及对应月份的城镇居民人均可支配收入A 9,共组成27个样本,每个样本建立输入输出非线性映射f :(A 1i ,A 2i ,A 3i ,

19、A 4i ,A 5i ,A 6i ,A 7i ,A 8i )A 9i ,其中(A 1i ,A 2i ,A 3i ,A 4i ,A 5i ,A 6i ,A 7i ,A 8i ,A 9i )为第i个样本的相应各指标数据,i =1,2,27。采用归一化公式分别对输入输出各指标数据归一化,然后建立单隐层BP 网络进行网络训练。由于传统的BP 算法收敛极慢,本实验采用基于梯度下降方式的自适应动量项学习率法训练,网络输入节点为8个,输出节点为1表1某省3个年度已知各月份9个经济指标的统计数据 (单位:亿元)年月A 1A 2A 3A 4A 5A 6A 7A 8A 92005.0626.2246.547.12

20、37.560.7831.2099.72331.202168.452005.0734.0098.667.9846.341.0937.1399.72879.542300.222006.0877.29200.0017.1368.212.5677.90112.474001.334987.482006.0990.54210.4815.2179.863.0986.09111.113987.34(缺测)2007.10167.36334.5632.56144.224.03123.56114.225673.677345.522007.11187.45365.6735.89176.104.15177.80100.

21、906268.438356.45?66? 计算机技术与发展 第19卷个,网络隐层节点数过多过少都不好,经过节点数增加试验确定隐节点数为20个时网络性能就很好了。训练完成后仿真输出采用yt(i)=(y(i)-y min)/(y max-y min)函数反归一化。补缺前先随机选取了2005年7月份的样本数据测试网络性能,测试后反归一化仿真结果为2331.53,与该月真实值为2300.22相比较可见仿真误差非常小。因此可以用2006年9月份已知前8个指标数据作为输入进行补缺。然后取所有反归一化结果的平均值5483.56作为该月份城镇居民人均可支配收入补缺数据,可以断定这个补缺值应该非常接近真实值。其

22、次对2007年12月城镇居民人均可支配收入进行预测。将补缺结果放入样本集,这样就防止样本集出现序列间断而保持了样本集连续性。记I1i,I2j,I3k(i, j,k=1,2,9)分别为2005、2006和2007年已知各月份顺次对应的城镇居民人均可支配收入,建立神经网络的输入输出非线性映射:I1,i I1,i+1,I2,jI2,j+1,I3,kI3,k+1,即指标每年度的当前月数据与下一月数据建立输入输出。首先对输入输出进行归一化,然后进行网络训练,训练采用基于梯度下降方式的动量项自适应学习率法,单节点输入输出,隐层和输出层传递函数均用线性函数purelin。由于网络规模小,网络改进方法和网络参

23、数选取得当,所以训练很快。训练完成以后,采用归一化函数归一化后输入网络,仿真输出再进行反归一化。所有结果取平均值为7996. 75作为2006年12月份的预测值,与该月的真实统计数据8033.90相比较误差很小。数据的补缺仿真结果有一定误差,但由于神经网络的容错能力,一个样本数据的微小误差基本上不会对样本集造成太大影响。即便有影响,从结果来看预测精度仍很高。由所有样本统计数据可知,2006年较后月份样本序列与其它月份相比增幅大得多,所以网络训练后外推起来会有一定不足,也是造成预测误差的原因。以上试验完成以后,采用基于数值优化的改进方式LM-BP算法重新进行试验。建立网络,选择合适的网络参数,采

24、用改进的LM-BP算法进行权值调整。3结束语改进后的BP网络在对城镇居民家庭人均可支配收入进行了预测。文中在原有BP网络的基础上增加了一个附加动量,它不仅考虑了误差在梯度上的作用,而且也考虑在误差曲面上的变化趋势的影响,无论从速度、仿真效果以及预测误差效果上来看,都优于传统的BP网络。但在实际训练过程中,由于隐含层元个数的不确定、学习速率的不断调整,这些都需要花大量时间去训练网络,所以改进的BP网络还有待进一步完善。参考文献:1Pan H.Application of BP neural network based on genetic al2gorithmJ.Computer Applica

25、tion,2005,25(12):2777-2779.2He Fangguo,Qi Huan.Back propagation neural networkbased on modified genetic algorithm and its applicationJ.Jorrnal of Huaxhong Normal University:Nat.Sci.,2007,41(2):51-54.3Venkatesan R,Balamurugan B.A real-time hardware faultdetector using an artificial neural network for

26、 distance protec2 tionJ.IEEE Transactions on Power Delivery,2001,16(1): 75-82.4杜华英,赵跃龙.人工神经网络典型模型的比较研究J.计算机技术与发展,2006,16(5):1-3.5蒋蓉蓉.一种基于遗传算法的BP网络改进方法J.微计算机信息,2007,23(11):234-236.6王爽,张鹰,吕瑞霞.BP神经网络的算法改进及应用J.电脑知识与技术,2009,15(4):933-935.7王建平,郭尚.BP神经网络预测算法性能的改进策略J.微电子学与计算机,2007,24(10):144-145.8贾群.PCA-BP算

27、法模块化设计的编程实现J.计算机技术与发展,2008,18(2):98-101.(上接第63页)参考文献:1饶元,冯琴博,李尊朝.基于Web Services的服务合成技术研究综述J.系统工程与电子技术,2005,27(8):1481-1489.2Y ang Jiang.Web Service ComponentizationJ.ACM,2003,46(10):35-40.3欧毓毅,郭荷清.Web服务动态组合的研究J.计算机应用研究,2006(4):22-27.4邓水光,俞镇,吴朝晖.面向动态工作流的Web服务组合模型研究J.计算机集成制造系统,2004(6):601-607.5李景霞,侯紫峰

28、.基于颜色Petri网的Web服务组合建模及应用J.计算机应用研究,2006(1):22-27.6Hamadi R,Benatallah B.A Petri-Net-Based Model for WebService CompositionC/Proc.14th Australasian Database Conf.Database Technologies.s.l.:ACM Press,2003:191-200.7岳昆,王晓玲,周傲英.Web服务核心支撑技术:研究综述J.软件学报,2004,15(3):428-442.8周燕,姜浩.面向动态工作流的Web服务组合模型研究:研究综述J.计算机技术与发展,2008,18(1):63-66.?76?第11期 王晓敏等:BP神经网络预测算法的改进及应用

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1