版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、BP神经网络原理及应用1人工神经网络简介1.1生物神经元模型神经系统的基本构造是神经元(神经细胞),它是处理人体内各部分之间相互信息传递的基本单元。据神经生物学家研究的结果表明,人的大脑一般有10101011个神经元。每个神经元都由一个细胞体,一个连接其他神经元的轴突和一些向外伸出的其它较短分支树突组成。轴突的功能是将本神经元的输出信号(兴奋)传递给别的神经元。其末端的许多神经末梢使得兴奋可以同时送给多个神经元.树突的功能是接受来自其它神经元的兴奋。神经元细胞体将接受到的所有信号进行简单地处理后由轴突输出。神经元的树突与另外的神经元的神经末梢相连的部分称为突触。tinWI+0档佯IRk詐绅ji
2、X/i;d1。2人工神经元模型神经网络是由许多相互连接的处理单元组成.这些处理单元通常线性排列成组,称为层。每一个处理单元有许多输入量,而对每一个输入量都相应有一个相关联的权重。处理单元将输入量经过加权求和,并通过传递函数的作用得到输出量,再传给下一层的神经元目前人们提出的神经元模型已有很多,其中提出最早且影响最大的是1943年心理学家McCulloch和数学家Pitts在分析总结神经元基本特性的基础上首先提出的M-P模型,它是大多数神经网络模型的基础。Y(t)=f(wx-0)(1。1)jjiji=1式(1.1)中,j为神经元单元的偏置(阈值),w为连接权系数(对于激发状态,w九ji取正值,对
3、于抑制状态,w取负值),n为输入信号数目,Y为神经元输出,t为时jij间,f()为输出变换函数,有时叫做激发或激励函数往往采用0和1二值函数或S形函数.1。3人工神经网络的基本特性人工神经网络由神经元模型构成;这种由许多神经元组成的信息处理网络具有并行分布结构每个神经元具有单一输出,并且能够与其它神经元连接;存在许多(多重)输出连接方法,每种连接方法对应一个连接权系数。严格地说,人工神经网络是一种具有下列特性的有向图:(1) 对于每个节点存在一个状态变量xi;(2) 从节点i至节点j,存在一个连接权系数wji;(3) 对于每个节点,存在一个阈值j;(4)对于每个节点,定义一个变换函数f(x,w
4、,0),i丰j,对于最一般的情况,jijij此函数取fawx-0)形式。jjiiji1。4人工神经网络的主要学习算法神经网络主要通过两种学习算法进行训练,即指导式(有师)学习算法和非指导式(无师)学习算法。此外,还存在第三种学习算法,即强化学习算法;可把它看做有师学习的一种特例。(1) 有师学习有师学习算法能够根据期望的和实际的网络输出(对应于给定输入)间的差来调整神经元间连接的强度或权。因此,有师学习需要有个老师或导师来提供期望或目标输出信号。有师学习算法的例子包括规则、广义规则或反向传播算法以及LVQ算法等。(2) 无师学习无师学习算法不需要知道期望输出.在训练过程中,只要向神经网络提供输
5、入模式,神经网络就能够自动地适应连接权,以便按相似特征把输入模式分组聚集。无师学习算法的例子包括Kohonen算法和Carpenter-Grossberg自适应共振理论(ART)等。(3) 强化学习如前所述,强化学习是有师学习的特例它不需要老师给出目标输出。强化学习算法采用一个“评论员”来评价与给定输入相对应的神。2BP神经网络原理2。1基本BP算法公式推导基本BP算法包括两个方面:信号的前向传播和误差的反向传播。即计算实际输出时按从输入到输出的方向进行,而权值和阈值的修正从输出到输入的方向进行。1输出变量图21BP网络结构Fig.2-1StructureofBPnetwork图中:xj表示输
6、入层第j个节点的输入,j=l,,M;舄表示隐含层第i个节点到输入层第j个节点之间的权值;i表示隐含层第i个节点的阈值;(x)表示隐含层的激励函数;wki表示输出层第k个节点到隐含层第i个节点之间的权值,i=l,,q;ak表示输出层第k个节点的阈值,k=l,.,L;屮(x)表示输出层的激励函数;ok表示输出层第k个节点的输出。(1)信号的前向传播过程隐含层第i个节点的输入neti:net=Xwx+0iijjij=1隐含层第i个节点的输出yi:y=e(net)=e(Xwx+0)iiijji31)3-2)输出层第k个节点的输入net:net=Xwy+akkiii=1输出层第k个节点的输出ok:o=屮
7、(net)=屮(工wkkkii=1=Xwe(Xwx+0)+akkiijjiki=1j=13-3)te(艺kiJ=1j=1wx+0)+aijjik丿3-4)j=1(36)Awki,输出层阈值的修正量Aak,隐含层权值的修正量Aw”,隐含层阈值的修正量A9i。AwdEkiBwAaBEBakik;Aw=BEijBwij;A0=BEB03-7)(2)误差的反向传播过程误差的反向传播,即首先由输出层开始逐层计算各层神经元的输出误差,然后根据误差梯度下降法来调节各层的权值和阈值,使修改后的网络的最终输出能接近期望值。对于每一个样本p的二次型误差准则函数为Ep:E=-Xl(T-o)2p2kk系统对P个训练样
8、本的总误差准则函数为:E=(Tpop)22kkp=1k=1根据误差梯度下降法依次修正输出层权值的修正量输出层权值调整公式:AwBEBEBnetBEBoBnetkiBwBnetBwBoBnetBwkikiki3-8)输出层阈值调整公式:AaBEBaBEBnetBEBoBnetBnetBa-krBoBnetBa3-9)隐含层权值调整公式:dEAwnjdwij-ndnetidEdnetidwijdEdydnetndydnetdwiiij隐含层阈值调整公式:dEAe-nd0idEdnet-ndnetdeiidEdydnet=-ndydnetd0i又因为:dEdok(Tpop)kkp1k1dnetkdw
9、kidnetkdakdnet1i-Xdwj,ij,dnet二1d0i所以最后得到以下公式:dyi另另p)屮(net)wkkkkp1k1g(net)dnetidok屮(net)dnetkkAw=耳昱另(Tp一op)屮(net)kikp1k1Aakn为另(Tpop)屮(net)kkkp1k1Awn昱另(Tp-op)屮(net)w炉(net)xjkkkkjp1k1Aen为另(Tp-op)屮(net)wg(net)kkkkp1k1(310)311)312)(3-13)314)315)(3-16)317)(3-18)(3-19)(3-20)图22BP算法程序流程图Fig。2-2Theflowcharto
10、ftheBPalgorithmprogram2。2基本BP算法的缺陷BP算法因其简单、易行、计算量小、并行性强等优点,目前是神经网络训练采用最多也是最成熟的训练算法之一.其算法的实质是求解误差函数的最小值问题,由于它采用非线性规划中的最速下降方法,按误差函数的负梯度方向修改权值,因而通常存在以下问题:(1)学习效率低,收敛速度慢(2)易陷入局部极小状态2。3BP算法的改进2。3.1附加动量法附加动量法使网络在修正其权值时,不仅考虑误差在梯度上的作用,而且考虑在误差曲面上变化趋势的影响。在没有附加动量的作用下,网络可能陷入浅的局部极小值,利用附加动量的作用有可能滑过这些极小值。该方法是在反向传播
11、法的基础上在每一个权值(或阈值)的变化上加上一项正比于前次权值(或阈值)变化量的值,并根据反向传播法来产生新的权值(或阈值)变化。带有附加动量因子的权值和阈值调节公式为:Aw(k+1)=(1一me)6p+mcAw(k)ijijijAb(k+1)=(1一me川6+meAb(k)iii其中k为训练次数,me为动量因子,一般取0。95左右.附加动量法的实质是将最后一次权值(或阈值)变化的影响,通过一个动量因子来传递。当动量因子取值为零时,权值(或阈值)的变化仅是根据梯度下降法产生;当动量因子取值为1时,新的权值(或阈值)变化则是设置为最后一次权值(或阈值)的变化,而依梯度法产生的变化部分则被忽略掉了
12、.以此方式,当增加了动量项后,促使权值的调节向着误差曲面底部的平均方向变化,当网络权值进入误差曲面底部的平坦区时,6将变得i很小,于是Aw(k+1)二Aw(k),从而防止了Aw二0的出现,有助于使网络ijijij从误差曲面的局部极小值中跳出。根据附加动量法的设计原则,当修正的权值在误差中导致太大的增长结果时,新的权值应被取消而不被采用,并使动量作用停止下来,以使网络不进入较大误差曲面;当新的误差变化率对其旧值超过一个事先设定的最大误差变化率时,也得取消所计算的权值变化。其最大误差变化率可以是任何大于或等于1的值。典型的取值取1。04。所以,在进行附加动量法的训练程序设计时,必须加进条件判断以正
13、确使用其权值修正公式。训练程序设计中采用动量法的判断条件为:0E(k)E(k一1)*1.04me=(0.95E(k)E(k一1),E(k)为第k步误差平方和。me其它2。3。2自适应学习速率对于一个特定的问题,要选择适当的学习速率不是一件容易的事情。通常是凭经验或实验获取,但即使这样,对训练开始初期功效较好的学习速率,不见得对后来的训练合适。为了解决这个问题,人们自然想到在训练过程中,自动调节学习速率.通常调节学习速率的准则是:检查权值是否真正降低了误差函数,如果确实如此,则说明所选学习速率小了,可以适当增加一个量;若不是这样,而产生了过调,那幺就应该减少学习速率的值。下式给出了一个自适应学习
14、速率的调整公式:工05耳(k)E(k+1)1.04E(k),E(k)为第k步误差平方和。n(k)其它初始学习速率n(0)的选取范围可以有很大的随意性2.3。3动量自适应学习速率调整算法当采用前述的动量法时,BP算法可以找到全局最优解,而当采用自适应学习速率时,bp算法可以缩短训练时间,采用这两种方法也可以用来训练神经网络,该方法称为动量自适应学习速率调整算法2.4网络的设计2.4。1网络的层数理论上已证明:具有偏差和至少一个s型隐含层加上一个线性输出层的网络,能够逼近任何有理数增加层数可以更进一步的降低误差,提高精度,但同时也使网络复杂化,从而增加了网络权值的训练时间。而误差精度的提高实际上也
15、可以通过增加神经元数目来获得,其训练效果也比增加层数更容易观察和调整。所以一般情况下,应优先考虑增加隐含层中的神经元数。2.4.2隐含层的神经元数网络训练精度的提高,可以通过采用一个隐含层,而增加神经元数了的方法来获得。这在结构实现上,要比增加隐含层数要简单得多。那么究竟选取多少隐含层节点才合适?这在理论上并没有一个明确的规定。在具体设计时,比较实际的做法是通过对不同神经元数进行训练对比,然后适当地加上一点余量。2.4。3初始权值的选取由于系统是非线性的,初始值对于学习是否达到局部最小、是否能够收敛及训练时间的长短关系很大如果初始值太大,使得加权后的输入和n落在了S型激活函数的饱和区,从而导致
16、其导数f(n)非常小,而在计算权值修正公式中,因为f(n),当f(n)t0时,则有0。这使得AwT0,从而使得调节过程几乎停顿下来。所以一般总是希望经过初ij始加权后的每个神经元的输出值都接近于零,这样可以保证每个神经元的权值都能够在它们的S型激活函数变化最大之处进行调节所以,一般取初始权值在(1,1)之间的随机数。2.4.4学习速率学习速率决定每一次循环训练中所产生的权值变化量。大的学习速率可能导致系统的不稳定;但小的学习速率导致较长的训练时间,可能收敛很慢,不过能保证网络的误差值不跳出误差表面的低谷而最终趋于最小误差值.所以在一般情况下,倾向于选取较小的学习速率以保证系统的稳定性。学习速率
17、的选取范围在0.01-0。8之间.3BP神经网络的应用现给出一药品商店一年当中12个月的药品销售量(单位:箱)如下:205623952600229816341600187314871900150020461556训练一个BP网络,用当前的所有数据预测下一个月的药品销售量。有两种方法实现,一种是编写matlab程序,一种是使用nntool工具箱。3.1matlab程序实现我们用前三个月的销售量预测下一个月的销售量,也就是用1-3月的销售量预测第4个月的销售量,用24个月的销售量预测第5个月的销售量,如此循环下去,直到用9-11月预测12月份的销售量。这样训练BP神经网络后,就可以用10-12月的
18、数据预测来年一月的销售量。实现程序如下:p=205623952600;239526002298;260022981634;229816341600;163416001873;160018731478;187314781900;147819001500;190015002046;t=229816341600187314871900150020461556;pmax=max(p);pmax1=max(pmax);pmin=min(p);pmin1=min(pmin);fori=1:9%归一化处理p1(i,:)=(p(i,:)-pmin1)/(pmax1pmin1);endt1=(t-pminl)/
19、(pmaxl-pminl);t1=t1;net=newff(01;01;01,71,tansig,logsig,traingd);fori=1:9net.trainParam.epochs=15000;net。trainParam.goal=0。01;LPolr=0。1;net=train(net,p1(i,:),t1(i);endy=sim(net,150020461556);y1=y*(pmax1pmin1)+pmin1;如果神经网络的训练函数使用trainlm,则仿真步骤会很少,但需要较大的系统内存。经预测,来年一月的销售量(y1)为1。4848e+003箱(每次运行后的结果可能不同)。
20、3.2nntool神经网络工具箱的使用1)在matlab(7.4)命令窗口键入nntool命令打开神经网络工具箱。如图:2)点击Import按钮两次,分别把输入向量和目标输出加入到对应的窗口(Inputs和Targets)中,有两种可供选择的加入对象(点击Import后可以看见),一种是把当前工作区中的某个矩阵加入,另一种是通过。mat文件读入。UStiiE.atifrXklFariAIriDT1Jia(ijSTstwarkC._)LnfUtHbt4i)TifgitIii.tALnitialInputSt-ates()Initiid.LyarSt-atAEOutpatIiat.”、ErrnrD
21、!&CLoieEtixrccijImportfratNATLKEvorkEf-acvOLoiifroridi三kfLit3)点击NewNetwork按钮,填入各参数:(以最常用的带一个隐层的3层神经网络为例说明,下面没有列出的参数表示使用默认值就可以了,例如NetworkType为默认的BP神经网络);i)InputRange一-这个通过点击GetFromInput下拉框选择你加入的输入向量便可自动完成,当然也可以自己手动添加。ii)TrainingFunction一-最好使用TRAINSCG,即共轭梯度法,其好处是当训练不收敛时,它会自动停止训练,而且耗时较其他算法(TRAINLM,TRAI
22、NGD)少,也就是收敛很快(如果收敛的话),而且TrainParameters输入不多,也不用太多的技巧调整,一般指定迭代次数、结果显示频率和目标误差就可以了(详见下文)。一iii)Layer1NumberofNeurons隐层的神经元个数,这是需要经验慢慢尝试并调整的,大致上由输入向量的维数、样本的数量和输出层(Layer2)的神经元个数决定。一般来说,神经元越多,输出的数值与目标值越接近,但所花费的训练时间也越长,反之,神经元越少,输出值与目标值相差越大,但训练时间会相应地减少,这是由于神经元越多其算法越复杂造成的,所以需要自己慢慢尝试,找到一个合适的中间点。比如输入是3行5000列的09的随机整数矩阵,在一开始选择1000个神经元,虽然精度比较高,但是花费的训练时间较长而且这样神经网络的结构与算法都非常复杂,不容易在实际应用中实现,尝试改为100个,再调整为50个,如果发现在50个以下时精度较差,则可最后定为50个神经iv)Layer1TransferFunction-一般用TANSIG(当然也可以LOGSIG),即表示隐层输出是-1,1之间的实数,与LOGSIG相比范围更大。v)Layer2Numbe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 三年级数学上册6多位数乘一位数2笔算乘法练习课4-5课时导学案新人教版
- 三年级数学下册七分数的初步认识二第3课时认识几分之几教案苏教版
- 三年级科学上册第一单元科学在我们身边第六课科学在我们身边教案青岛版
- 三年级科学下册第五单元观察与测量1观察教案苏教版1
- 小学生校园文明课件
- 小学生奖惩制度
- 广东婚介培训课件资源
- 房树人培训课件
- 部编版四年级上册语文期中考试(含答案)
- 《新主动脉夹层护理》课件
- 麻醉药品、精神药品处方权资格考试试题(2024年)
- 2024年度玩具代工生产及销售合同模板(2024版)3篇
- 2024年小学五年级科学教学工作总结(2篇)
- GB/T 31900-2024机织儿童服装
- 2023年首都机场集团有限公司招聘考试真题
- 【7历期末】安徽省蚌埠市2023-2024学年部编版七年级历史上学期期末统考试卷(含解析)
- 广东省深圳市重点中学2021-2022学年高二上学期期末生物试题
- 2024-2025学年冀教版数学五年级上册期末测试卷(含答案)
- 2025年上半年浙江金华市永康市选调市纪检监察信息中心工作人员2人重点基础提升(共500题)附带答案详解
- 美国制造业经济2024年度报告-2024-12-宏观大势
- 2024-2025学年冀教版(三起)英语六年级上册期末测试卷(含答案无听力原文无音频)
评论
0/150
提交评论