欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOCX文档下载  

    BP神经网络原理及应用.docx

    • 资源ID:1501111       资源大小:160.37KB        全文页数:10页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    BP神经网络原理及应用.docx

    BP神经网络原理及应用1人工神经网络简介神经系统的根本构造是神经元(神经细胞),它是处理人体内各局部之间相,工信息传递的根本单元。据神经生物学家探讨的结果说明,人的大脑一般有IOe-IOU个神经元。每个神经元都由一个细胞体,一个连接其他神经元的和突和一些向外伸出的其它较短分支-一树突组成。轴突的功能是将本神经元的输出信号(兴奋)传递绐别的神经元。其末端的很多神经末梢使得兴奋可以同时送给多个神经元。树突的功能是承受来自其它神经元的兴奋。神经元细胞体将承受到的全部信号进展简洁地处理后由轴突输出。神经元的树突与另外的神经元的神经末梢相连的局部称为突触.神经网络是由很多相互连接的处理单元组成。这些处理单元通常线性排列成组,称为值.每一个处理单元有很多输入量,而对每一个输入量都相应有一个相关联的权重。处理单元将输入量经过加权求和,并通过传递函数的作用得到输出量,再传给下层的神经元。目前人们提出的神经元模型已仃很多,其中提出最早且影响最大的是1943年心理学家McCulloch和数学家PiltS在分析总结神经元根本特隐含层权值调整公式:,5EEnet.Ey.net.wiinetia匕yinetlSwii隐含层网值调整公式:,EEnetlEyineti&=-H=-H1.=F1.'lnetl峋y,duet,(3-10)(3-11)又因为:f三-(V-o)Cq1.lZ(3-12)幽=V皿7眄=X幽T西,一'',加,加M(3-13)AFp1.-=-''t(T-o)y,(nett)-%(3-14)=机,附)cne!i(3-15)4=netionetl(3-16)所以最终得到以下公式:产£Z伍'-"J)W'("世)yP-IA-I(3-17)Aq=立£(,'-C("4)P-IA«l(3-18)%=立W-o;)nett)-Wunetiyxir=E(3-19)Aa=一d)w'51)%/(”)(3-20)开始图2-2BP算法程序流程图Fig.2-2TheflowchartoftheBPalgorithmprogram2.2 根本BP算法的缺陷BP算法因其简洁、易行、计算量小、并行性强等优点,目前是神经网络训练采纳最多也是最成熟的训练算法之一.其算法的实质是求解误差函数的最小值问题,由于它采纳非线性规划中的最速下降方法,按误差函数的负梯度方向修改权值,因而通常存在以卜'问题:(1)学习效率低,收敛速度慢(2)易陷入局部微小状态2.3 BP算法的改良.1附加动量法附加动量法使网络在修正其权值时,不仅考虑误差在梯度上的作用,而且考虑在误差曲面上改变趋势的影响0在没有附加动量的作用下,网络可能陷入浅的局部做小值,利用附加动国的作用有可能滑过这些微小值“该方法是在反向传播法的根底上在每个权值(或阈值)的改变上加上一项正比于前次权值(或阈值)改变量的值,并依据反向传播法来产生新的权值或阈值)改变。带有附加动增因子的权值和阈值调整公式为:%依+1)=(I-nc'>ipi+>cwj.(Jl)"+I)=(,-ne)rf()+"K',(八)其中k为训练次数,OlC为动量因子,一般取左右。附加动量法的实质是将最终一次权值(或网值)改变的影响,通过一个动量因子来传递,当动量因子取值为零时,权值(或阈值)的改变仅是依据梯度下降法产生:当动量因子取值为1时,新的权值(或闽()改变那么是设置为最终次权值(或阈值)的改变,而依梯度法产生的改变局部那么被忽视掉了。以此方式,当增加了动员项后,促使权值的调整向若误差曲面底部的平均方向改变,当网络权值进入误差曲面底部的平坦区时,6,将变得很小,于是AMi(A+)=A%(G),从而防止了AwV=O的出现,有助于使网络从误差曲面的局部微小值中跳出。依据附加动址法的设计原那么,当修正的权值在误差中导致太大的增长结果时.,新的权值应被取消而不被采纳,并使动量作用停顿下来,以使网络不进入较大误差曲面:当新的误差改变率对其旧值超过个事先设定的最大误差改变率时,也得取消所计算的权值改变。其最大误差改变率可以是任何大于或等于1的值。典型的取值取。所以,在进展附加动量法的训练程序设计时,必需加进条件推断以正确运用其权值修正公式。训练程序设计中采纳动量法的推断条件为:0£(*)>£(*-!)*1.04mc=0.95E(k)<E(k-),E(k)为第k步误差平方和。me其它.2自适应学习速率时下一个特定的问题,耍选择适当的学习速率不是一件简洁的事情.通常是凭经验或试验获得,但即使这样,对训练开场初期成效较好的学习速率,不见得对后来的训练相宜。为了解决这个问题,人们自然想到在训练过程中,自动调整学习速率。通常调整学习速率的准那么是:检查权值是否真正降低了误差函数,假如的确如此,那么说明所选学习速率小r,可以适当增加个量:假设不是这样,而产生了过调,那幺就应当削减学习速率的值。下式给出了个自适应学习速率的调整公式:.()5(k)E(k+1)<£(Jt)(k+)0.7)f(jt+l)>1.04E(),E(kJ为第k步误差平方和。(k)其它初始学习速率TI(O)的选取范围可以有很大的随意性。当采纳前述的动量法时,BP算法可以找到全局最优解,而当采纳自适应学习速率时,BP算法可以缩短训练时间,采纳这两种方法也可以用来训练神经网络,该方法称为动量自适应学习速率调整和法。2.4 网络的设计.1网络的层数理论上已证明:具有偏差和至少一个SN隐含层加上一个线性输出层的网络,能够靠近任何有理数。增加层数可以更进一步的降低误差,提高精度,但同时也使网络困难化,从而增加了网络权值的训练时间。而误差精度的提高事实上也可以通过增加神经元数目来获得,其训练效果也比增加层数更简洁视察和调整。所以般状况下,应优先考虑增加隐含层中的神经元数。.2的含层的神经元数网络训练精度的提高,可以通过采纳一个隐含层,而增加神经元数了的方法来获得。这在构造实现上,要比增加隐含层数要简洁得多。那么终究选取多少隐含层节点才相宜?这在理论上并没有一个明确的规定。在详细设计时,比拟实际的做法是通过对不同神经元数进展训练比照,然后适当地加上点余量。.3初始权值的选取由于系统是非线性的,初始值对于学习是否到达局部最小、是否能够收敛及训练时间的长短关系很大。假如初始值太大,使得加权后的输入和n落在了S型激活函数的饱和区,从而导致其导数fYn)特别小,而在计算权值修正公式中,因为boc,(),当(n)0时,那么有60这使得t;0,从而使得调盛过程几乎停顿卜一来。所以一般总是希望经过初始加权后的每个神经元的输出值都接近于零,这样可以保证每个神经元的权值都能够在它们的S型激活函数改变最大之处进展调整。所以,一般取初始权值在(7,1)之间的随机数.4学习速率学习速率确定每一次循环训练中所产生的权值改变员。大的学习速率可能导致系统的不稳定;但小的学习速率导致较长的训练时间,可能收敛很慢,不过能保证网络的误差值不跳出误差外表的低谷而最终趋于最小误差值.所以在一般状况下,倾向于选取较小的学习速率以保证系统的稳定性。学习速率的选取范围在之间。3BP神经网珞的应用现给出一药品商店一年当中12个月的药品销传量维位:豺)如卜丁205623952600229816341600187314871900150020461556训练一个BP网络,用当前的全部数据预料下一个月的药品销售fit.有两种方法实现,一种是编写matlab程序,一种是运用nntool工具箱O3.1 matlab程序实现我们用前三个月的销售量预料下一个月的销售量,也就是用1-3月的销售fit预料第4个月的销售量,用2-4个月的销售量侦料第5个月的销售S.如此循环下去,宜到用9-11月预料12月份的销售量。这样训练BP神经网络后,就可以用1072月的数据预料来年月的销售量。实现程序如下:p-20S623952600;239526002298;260022981634;229816341600;163416001873;160018731478;187314781900;147819001500;190015002046;)t三229816341600187314871900150020461556;PrnaX=max(p);pfnaxl=max(p11ax>PminFin(p>pminl-min(pmin>for1-1:9*归一化处理pl(I,三>-<p(i/:)-pminl)/(pma×l-pminl);endtl=<t-pminl)/(pmaxl-pcninl);net-newff(0l;0l;01),(71xCtar.sg,t9Iogsig,ftraingd,);for51:9net.trainParam.epochs=15000;net.trainParam.goal三0.01;1.P.lr-0.1;net=train(net,pl(if:)rtl(i);endy-sim(netj150020461556,);yl-y*(pma×l-pminl)pminl;假如神经网络的训练函数运用trainlm,那么仿真步骤会很少,但须耍较大的系统内存。经预料,来年月的销售员(yl)为1.4848&+003箱(每次运行后的结果可能不I明。3.2 nntool神经网络工具箱的运用D在IBatlab(7.4)吩在窗口键入nntool吩咐翻开神经网络工具箱。如图:2)点击InIPOn按钮两次,分别把输入向量和目标输出参与到对应的窗口(IInputsl和Ta理央)中,有两种可供选择的参与对象(点击Import后可以望见),一种是把当前工作区中的某个矩阵参与,另一种是通过.mat文件读入。3)点击NewNetwork按钮,填入各参数:以最常用的带一个隐层的3层神经网络为例说明,卜面没有列出的参数表示运用默认值就可以了,例如NetworkTypC为默认的Bp神经网络):i)InuiRange这个通过点击GelFromInPUl下拉框选择你参与的输入向量便可自动完成,当然也可以自己手动添加。ii) TrainingFunction最好运用TRAlNSCG,即共艳梯度法,其好处是当训练不收敛时,它会自动停顿训练,而口耗时较其他算法(TRAlN1.M.TRA1NGD)少,也就是收敛很快1假如收敛的话),而且TrainParamelerS输入不多,也不用太多的技巧调整,一般指定迭代次数、结果显示频率和目标误差就可以了详见下文)。iii) 1.ayer1NumberofNeurons隐层的神经元个数,这是须要经验渐渐会试并调整的,大致上由输入向量的维数、样本的数量和辘出必(1.ayer2)的神经元个数确定。一般来说,神经元越多,输出的数值与目标值越接近,但所花费的训练时间也越长,反之,神经元越少,输出值与目标值相差越大,但训练时间会相应地削减,这是由于神经元越多其算法越困难造成的,所以须要自己渐渐学试,找到一个相宜的中间点比方输入是3行500()列的0-9的随机整数矩阵,在一开场选择100o个神经元,虽然精度比拟高,但是花费的训练时间较长,而且这样神经网络的构造与经怯都特别困难,不简洁在实际应用中实现,尝试改为100个,再调整为50个,假如发觉在50个以下时精度较差,那么可最终定为50个神经元,等等.iv)1.aycrIT11>nsfcrFunction般用TANSlG(当然也可以1.OGSIG),即表示隐层输出是口.1之间的实数,与1.OGSIG相比范围更大。V)1.ayer2NumberofNeurons输出层的神经元个数,须要与输出的矩阵行数对应,比方设理为3,等等。vi)1.ayer2TransferFunction假如是模式识别的两类(或者多类)问题,-TiXH1.OGSIG,即表示输出层的输出是0.1之间的实数:假如输出超过0.1那么可选择PURE1.IN。全部参数输入后,可以先用Vicw按钮预览一卜.,如图6。没有问题的话就可以Create了。另外,网络创立完毕后,假如须要手动设置权重的初始值,按VieW按钮后有个IniIialize选项卡,在那里可以设定.当然了,也可以不自行设定,这时候MaUab执行默认的程序进展权Jg的初始化。4)点击Train按钮,到达TrainingInfO选项卡,在输入向量IlnPUts和目标输入向量Ta里ets下拉框中选择你要训练的向量(即其次步参与的对象),如图7。然后到达TrainParameters选项卡,填入适当的迭代次数IeIK)Chs一般先设置一个较小的数如200,然后视察收敛结果,假如结果窗口的收敛曲线衰减较快,那么表示之前的参数比拟有效,因此可填入2000或更大的数目使得网络收敛,否那么修改之前的参数)、结果显示频率show(例如要每隔50次迭代显示结果窗口,那么填50)和目标误差goal(这个与第2步中的"PerformanceFuncio有关,假如运用默认的MSE,那么一般满意“”就可以了),就可以开场训练了(按钮(TrainNetwork),假如结果收敛(训练误差不大于目标误差,即蓝色线到达黑色线位置)就OK了(例如要求精度很高,尝试填0,等等)。由于神经网络工具箱一次只能输入一组输入数据,所以对于此问题要分九次输入,并没仃编程简洁。

    注意事项

    本文(BP神经网络原理及应用.docx)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开