您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > BP神经网络算法及应用
《非线性系统预测分析方法》课程作业——BP神经网络算法及应用学院:班级:姓名:学号:指导老师:昆明理工大学国土资源工程学院资开系摘要本文分析了神经网络算法的基本原理,给出了BP神经网络算法的具体实现方法,总结了它的特点,并给出了基本流程。结合2000-2009年间的全国煤矿统计数据,建立了预测模型,以计算机软件Matlab为平台,结合BP神经网络学习算法对10年间的煤炭产量、死亡人数和百万吨死亡率进行了预测分析。结果表明,检测样本的期望输出与模拟输出线性回归分析时的线性相关系数均在0.91以上,说明了BP神经网络较好的拟合效果。关键词:神经网络;预测分析;百万吨死亡率AbstractThispaperanalyzesthebasicprincipleoftheneuralnetworkalgorithmandgivesthespecificmethodofBPneuralnetworkalgorithm.Thecharacteristicsoftheneuralnetworkissummarizedandbasicprocessoftheneuralnetworkalgorithmisgiven.OnthebasisofthestatisticdataofcoalminesinChinafrom2000to2009,afore-castmodelisestablished.WithcomputersoftwareMATLABastheoperatingplatformandBPneuralnetworklearningalgorithm,theauthorspresentinthispaperaforecastofcoalproduction,deathtollandmortalityratepermilliontonsofcoalproducedduringthisten-yearperiod.Theresultsshowthatlinearcorrelationcoefficientsoftheexpectedoutputofthesamplestestedandthesimulationoutputlinearregressionanalysisareallabove0.91.ThisindicatesthatBPneuralnetworkalgorithmhaveagoodapplicationprospectoversafetyforecastincoalmines.Keywords:NeuralNetwork;ForecastandAnalysis;Thefatalityratepermilliontonnesofcoalproduced引言近年来全球性的神经网络研究热潮的再度兴起,不仅仅是因为神经科学本身取得了巨大的进展。更主要的原因在于发展新型计算机和人工智能新途径的迫切需要。迄今为止在需要人工智能解决的许多问题中,人脑远比计算机聪明的多,要开创具有智能的新一代计算机,就必须了解人脑,研究人脑神经网络系统信息处理的机制。另一方面,基于神经科学研究成果基础上发展出来的人工神经网络模型,反映了人脑功能的若干基本特性,开拓了神经网络用于计算机的新途径。它对传统的计算机结构和人工智能是一个有力的挑战,引起了各方面专家的极大关注。目前,已发展了几十种神经网络,例如Hopficld模型,Feldmann等的连接型网络模型,Hinton等的玻尔茨曼机模型,以及Rumelhart等的多层感知机模型和Kohonen的自组织网络模型等等。在这众多神经网络模型中,应用最广泛的是多层感知机神经网络。多层感知机神经网络的研究始于50年代,但一直进展不大。直到1985年,Rumelhart等人提出了误差反向传递学习算法(即BP算),实现了Minsky的多层网络设想。1.BP神经网络及其原理BP神经网络是误差反向传播神经网络的简称,它由一个输入层,一个或多个隐含层和一个输出层构成,每一次由一定数量的的神经元构成。这些神经元如同人的神经细胞一样是互相关联的。其结构如图1所示:BP神经网络的信息处理方式具有如下特点:①信息分布存储;②信息并行处理;③具有容错性;④具有自学习、自组织、自适应的能力。目前,在人工神经网络的实际应用中,绝大部分的神经网络模型都采用BP神经网络及其变化形式。它也是前向网络的核心部分,体现了人工神经网络的精华。BP神经网络最主要的优点是具有极强的非线性映射能力。其次,BP神经网络具有对外界刺激和输入信息进行联想记忆的能力。再次,BP神经网络对外界输入样本有很强的识别与分类能力。由于它具有强大的非线性处理能力,因此可以较好地进行非线性分类,解决了神经网络发展史上的非线性分类难题。另外,BP神经网络具有优化计算能力。BP神经网络本质上是一个非线性优化问题,它可以在已知的约束条件下,寻找一组参数组合,使该组合确定的目标函数达到最小。不过,其优化计算存在局部极小问题,必须通过改进完善。由于BP网络训练中稳定性要求学习效率很小,所以梯度下降法使得训练很慢。动量法因为学习率的提高通常比单纯的梯度下降法要快一些,但在实际应用中还是速度不够,这两种方法通常只应用于递增训练。多层神经网络可以应用于线性系统和非线性系统中,对于任意函数模拟逼输入层中间层输出层图1BP神经网络模型近。当然,感知器和线性神经网络能够解决这类网络问题。但是,虽然理论上是可行的,但实际上BP网络并不一定总能有解。对于非线性系统,选择合适的学习率是一个重要的问题。在线性网络中,学习率过大会导致训练过程不稳定。相反,学习率过小又会造成训练时间过长。和线性网络不同,对于非线性多层网络很难选择很好的学习率。对那些快速训练算法,缺省参数值基本上都是最有效的设置。非线性网络的误差面比线性网络的误差面复杂得多,问题在于多层网络中非线性传递函数有多个局部最优解。寻优的过程与初始点的选择关系很大,初始点如果更靠近局部最优点,而不是全局最优点,就不会得到正确的结果,这也是多层网络无法得到最优解的一个原因。为了解决这个问题,在实际训练过程中,应重复选取多个初始点进行训练,以保证训练结果的全局最优性。网络隐层神经元的数目也对网络有一定的影响。神经元数目太少会造成网络的不适性,而神经元数目太多又会引起网络的过适性。2.BP网络的标准学习算法学习的过程:神经网络在外界输入样本的刺激下不断改变网络的连接权值,以使网络的输出不断地接近期望的输出。学习的本质:对各连接权值的动态调整。学习规则:权值调整规则,即在学习过程中网络中各神经元的连接权变化所依据的一定的调整规则。学习的类型:有导师学习。核心思想:将输出误差以某种形式通过隐层向输入层逐层反传。学习的过程:由信号的正向传播到误差的反向传播。正向传播:输入样本———输入层———各隐层———输出层。判断是否转入反向传播阶段:若输出层的实际输出与期望的输出(教师信号)不符。误差反传误差以某种形式在各层表示———修正各层单元的权值。网络结构:输入层有n个神经元,隐含层有p个神经元,输出层有q个神经元。变量定义:输入向量:x=(x1,x2,…,xn)隐含层输入向量:hi=(hi1,hi2,…,hip)隐含层输出向量:ho=(ho1,ho2,…,hop)输出层输入向量:yi=(yi1,yi2,…,yiq)输出层输出向量:yo=(yo1,yo2,…,yoq)期望输出向量:do=(d1,d2,…,dq)输入层与中间层的连接权值:wih隐含层与输出层的连接权值:who隐含层各神经元的阈值:bh输出层各神经元的阈值:bo样本数据个数:k=1,2,…,m激活函数:f(·)误差函数:qoookyokde1221第一步,网络初始化:给各连接权值分别赋一个区间(-1,1)内的随机数,设定误差函数e,给定计算精度值ε和最大学习次数M。第二步,随机选取第k个输入样本及对应期望输出:x(k)=(x1(k),x2(k),…,xn(k))do(k)=(d1(k),d2(k),…,dq(k))第三步,计算隐含层各神经元的输入和输出:phbkxwkhihniiihh,,2,11phkhifkhohh,,2,1qobkhowkyiophhhoo,,2,11qokyifkyooo,,2,1第四步,利用网络期望输出和实际输出,计算误差函数对输出层的各神经元的偏导数δo(k):hooohowyiyiewekhowbkhowwkyihhophohhohookkyifkyokdkyokyokdyikyokdyieooooooooqoooo''2121第五步,利用隐含层到输出层的连接权值、输出层的δo(k)和隐含层的输出计算误差函数对隐含层各神经元的偏导数δh(k):khokwyiyiewehohooohoihhhihwkhikhiewekxwbkxwwkhiiihnihiihihh1kkhifwkkhikhowkyifkyokdkhikhokhobkhowfkdkhikhokhokyifkdkhikhokhokyokdkhiehhqohoohhhooqooohhhqophohhoohhhqooohhhqoooh'1'11211212212121第六步,利用输出层各神经元的δo(k)和隐含层各神经元的输出来修正连接权值who(k):khokwekwhohohokhokwwhoNhoNho1第七步,利用隐含层各神经元的δh(k)和输入层各神经元的输入修正连接权:kxkwkhikhiewekwihihhhihihkxkwwihNihNih1第八步,计算全局误差:mkqoookykdmE11221第九步,判断网络误差是否满足要求。当误差达到预设精度或学习次数大于设定的最大次数,则结束算法。否则,选取下一个学习样本及对应的期望输出,返回到第三步,进入下一轮学习。3.实例分析以2000-2009年间全国煤矿的产量,煤矿工人死亡人数和百万吨死亡率作为预测指标的样本数据为例。2000-2009年全国煤矿产量、煤矿工人死亡人数和百万吨死亡率见表1。表1全国煤矿工人死亡人数及百万吨死亡率统计表年度死亡人数/人百万吨死亡率/人·Mt-1200057986.096200156705.070200261494.636200364344.170200460273.081200559862.830200647462.041200737861.485200832101.182200927000.8923.1样本数据的归一化处理众所周知,BP网络中非线性活性函数的值域一般都在[0,1]或[-1,1]之间,这样将要求输入变量及输出变量都要位于这个区域之间。当神经网络的输入向量确定后,检查变量的分布情况,必要时还要对这些数据进行变换处理,以利于网络的学习。对连续型变量,比较常用的归一化处理方法用公式(1)处理:minmaxminXXXXX(1)X——归一后的值;maxX——真值中的最大值;minX——真值中的最小值。但考虑到在BP算法中,函数的函数值在接近0和1的时候曲线比较平缓,变化速度非常缓慢,为了减少训练时间,
本文标题:BP神经网络算法及应用
链接地址:https://www.777doc.com/doc-3275172 .html