BP神经网络原理及应用_第1页
BP神经网络原理及应用_第2页
BP神经网络原理及应用_第3页
BP神经网络原理及应用_第4页
BP神经网络原理及应用_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

人工神经网络简介生物神经元模型神经系统的基本构造是神经元(神经细胞),它是办理人体内各部分之间互相信息传达的基本单元。据神经生物学家研究的结果表示,人的大脑一般有10101011个神经元。每个神经元都由一个细胞体,一个连接其余神经元的轴突和一些向外伸出的其余较短分支——树突构成。轴突的功能是将本神经元的输出信号(愉悦)传达给其余神经元。其尾端的好多神经末梢使得愉悦能够同时送给多个神经元。树突的功能是接受来自其余神经元的愉悦。神经元细胞体将接遇到的全部信号进行简单地办理后由轴突输出。神经元的树突与别的的神经元的神经末梢相连的部分称为突触。人工神经元模型神经网络是由好多互相连接的办理单元构成。这些办理单元平时线性摆列成组,称为层。每一个办理单元有好多输入量,而对每一个输入量都相应有一个相关联的权重。办理单元将输入量经过加权乞降,并经过传达函数的作用获取输出量,再传给下一层的神经元。当古人们提出的神经元模型已有好多,此中提出最早且影响最大的是1943年心理学家McCulloch和数学家Pitts在解析总结神经元基本特征的基础上第一提出的M-P模型,它是大多数神经网络模型的基础。nYj

(t)

f(

wji

xi

j)

()i1式中,j为神经元单元的偏置(阈值),wji为连接权系数(对于激发状态,wji取正当,对于克制状态,wji取负值),n为输入信号数目,Yj为神经元输出,t为时间,f( )为输出变换函数,有时叫做激发或激励函数,常常采纳

0和

1二值函数或S形函数。人工神经网络的基本特征人工神经网络由神经元模型构成;这类由好多神经元构成的信息办理网络拥有并行分布构造。每个神经元拥有单一输出,并且能够与其余神经元连接;存在好多(多重)输出连接方法,每种连接方法对应一个连接权系数。严格地说,人工神经网络是一种拥有以下特征的有向图:(1)对于每个节点存在一个状态变量xi;(2)从节点i至节点j,存在一个连接权系数wji;(3)对于每个节点,存在一个阈值j;(4)对于每个节点,定义一个变换函数fj(xi,wji,j),ij,对于最一般的状况,此函数取fj(wjixij)形式。i人工神经网络的主要学习算法神经网络主要经过两种学习算法进行训练,即指导式(有师)学习算法和非指导式(无师)学习算法。其余,还存在第三种学习算法,即增强学习算法;可把它看做有师学习的一种特例。(1)有师学习有师学习算法能够依据希望的和实质的网络输出(对应于给定输入)间的差来调整神经元间连接的强度或权。所以,有师学习需要有个老师或导师来供给希望或目标输出信号。有师学习算法的例子包含规则、广义规则或反向流传算法以及LVQ算法等。(2)无师学习无师学习算法不需要知道希望输出。在训练过程中,只需向神经网络供给输入模式,神经网络便能够自动地适应连接权,以便按相似特色把输入模式分组齐集。无师学习算法的例子包含Kohonen算法和Carpenter-Grossberg自适应共振理论(ART)等。(3)增强学习如前所述,增强学习是有师学习的特例。它不需要老师给出目标输出。增强学习算法采纳一个“议论员”来议论与给定输入相对应的神。2BP神经网络原理基本BP算法公式推导基本BP算法包含两个方面:信号的前向流传和偏差的反向流传。即计算实质输出时按从输入到输出的方向进行,而权值和阈值的修正从输出到输入的方向进行。1a1x1o1⋯⋯⋯输输iak出入xjok变变wijwki⋯量量⋯aL⋯qoLxM输入层隐含层输出层图2-1BP网络构造StructureofBPnetwork图中:表示输入层第个节点的输入,j=1,,M;表示隐含层第i个节点到输入层第j个节点之间的权值;表示隐含层第i个节点的阈值;表示隐含层的激励函数;表示输出层第个节点到隐含层第i个节点之间的权值,i=1,,q;表示输出层第k个节点的阈值,k=1,,L;表示输出层的激励函数;表示输出层第个节点的输出。1)信号的前向流传过程隐含层第i个节点的输入neti:(3-1)隐含层第i个节点的输出yi:(3-2)输出层第k个节点的输入netk:(3-3)输出层第k个节点的输出ok:(3-4)(2)偏差的反向流传过程偏差的反向流传,即第一由输出层开始逐层计算各层神经元的输出偏差,而后依据偏差梯度降落法来调理各层的权值和阈值,使更正后的网络的最后输出能凑近希望值。对于每一个样本p的二次型偏差准则函数为Ep:(3-5)系统对P个训练样本的总偏差准则函数为:(3-6)依据偏差梯度降落法挨次修正输出层权值的修正量wki,输出层阈值的修正量ak,隐含层权值的修正量wij,隐含层阈值的修正量。;;;(3-7)输出层权值调整公式:(3-8)输出层阈值调整公式:(3-9)隐含层权值调整公式:(3-10)隐含层阈值调整公式:(3-11)又因为:(3-12),,,(3-13)(3-14)(3-15)(3-16)所以最后获取以下公式:(3-17)(3-18)(3-19)(3-20)开始批量输入学习样本并且对输入和输出量进行归一化办理参数初始化:最大训练次数,学习精度,隐节点数,初始权值、阈值,初始学习速率等计算各层的输入和输出值Yes计算输出层偏差E(q)YesE(q)<εN修正权值和阈值结束图2-2BP算法程序流程图TheflowchartoftheBPalgorithmprogram基本BP算法的缺点BP算法因其简单、易行、计算量小、并行性强等长处,当前是神经网络训练采纳最多也是最成熟的训练算法之一。其算法的实质是求解偏差函数的最小值问题,因为它采纳非线性规划中的最速降落方法,按偏差函数的负梯度方向更正权值,因此平时存在以下问题:1)学习效率低,收敛速度慢2)易堕入局部极小状态BP算法的改进附带动量法附带动量法使网络在修正其权值时,不但考虑偏差在梯度上的作用,并且考虑在偏差曲面上变化趋向的影响。在没有附带动量的作用下,网络可能堕入浅的局部极小值,利用附带动量的作用有可能滑过这些极小值。该方法是在反向流传法的基础上在每一个权值(或阈值)的变化上加上一项正比于上次权值(或阈值)变化量的值,并依据反向流传法来产生新的权值(或阈值)变化。带有附带动量因子的权值和阈值调理公式为:wij(k1)(1mc)ipjmcwij(k)bi(k1)(1mc)imcbi(k)此中k为训练次数,mc为动量因子,一般取左右。附带动量法的实质是将最后一次权值(或阈值)变化的影响,经过一个动量因子来传达。当动量因子取值为零时,权值(或阈值)的变化仅是依据梯度降落法产生;当动量因子取值为1时,新的权值(或阈值)变化则是设置为最后一次权值(或阈值)的变化,而依梯度法产生的变化部分则被忽视掉了。以此方式,当增添了动量项后,促使权值的调理向着偏差曲面底部的均匀方向变化,

当网络权值进入偏差曲面底部的平展区时,

i将变得很小,于是

wij

(k

1)

wij

(k)

,

从而防范了

wij

0的出现,有助于使网络从偏差曲面的局部极小值中跳出。依据附带动量法的设计原则,当修正的权值在偏差中以致太大的增添结果时,新的权值应被撤消而不被采纳,并使动量作用停止下来,以使网络不进入较大偏差曲面;当新的偏差变化率对其旧值超出一个早先设定的最大偏差变化率时,也得撤消所计算的权值变化。其最大偏差变化率能够是任何大于或等于1的值。典型的取值取。所以,在进行附带动量法的训练程序设计时,一定加进条件判断以正确使用其权值修正公式。训练程序设计中采纳动量法的判断条件为:0E(k)E(k1)*1.04mc0.95E(k)E(k1),E(k)为第k步偏差平方和。mc其余自适应学习速率对于一个特定的问题,要选择适合的学习速率不是一件简单的事情。平时是凭经验或实验获取,但即便这样,对训练开始早期功能较好的学习速率,不见得对以后的训练适合。为认识决这个问题,人们自然想到在训练过程中,自动调理学习速率。平时调理学习速率的准则是:检查权值是否真切降低了偏差函数,假如的确这样,则说明所选学习速率小了,能够适合增添一个量;若不是这样,而产生了过调,那幺就应当减少学习速率的值。下式给出了一个自适应学习速率的调整公式:1.05(k)E(k1)E(k)(k1)0.7(k)E(k1)1.04E(k),E(k)为第k步偏差平方和。(k)其余初始学习速率(0)的采纳范围能够有很大的随意性。动量-自适应学习速率调整算法当采纳前述的动量法时,BP算法能够找到全局最优解,而当采纳自适应学习速率时,BP算法能够缩短训练时间,采纳这两种方法也能够用来训练神经网络,该方法称为动量-自适应学习速率调整算法。网络的设计网络的层数理论上已证明:拥有偏差和最少一个S型隐含层加上一个线性输出层的网络,能够迫近任何有理数。增添层数能够更进一步的降低偏差,提升精度,但同时也使网络复杂化,从而增添了网络权值的训练时间。而偏差精度的提升实质上也能够经过增添神经元数目来获取,其训练成效也比增加层数更简单观察和调整。所以一般状况下,应优先考虑增添隐含层中的神经元数。隐含层的神经元数网络训练精度的提升,能够经过采纳一个隐含层,而增添神经元数了的方法来获取。这在构造实现上,要比增添隐含层数要简单得多。那么究竟采纳多少隐含层节点才适合?这在理论上并无一个明确的规定。在具体设计时,比较实质的做法是经过对不一样神经元数进行训练比较,而后适当地加上一点余量。初始权值的采纳因为系统是非线性的,初始值对于学习能否达到局部最小、能否能够收敛及训练时间的长短关系很大。假如初始值太大,使得加权后的输入和n落在了S型激活函数的饱和区,从而以致其导数f’(n)特别小,而在计算权值修正公式中,因为f'(n),当f’(n)0时,则有0。这使得wij0,从而使得调理过程几乎逗留下来。所以一般老是希望经过初始加权后的每个神经元的输出值都凑近于零,这样能够保证每个神经元的权值都能够在它们的S型激活函数变化最大之处进行调理。所以,一般取初始权值在(-1,1)之间的随机数。学习速率学习速率决定每一次循环训练中所产生的权值变化量。大的学习速率可能以致系统的不稳固;但小的学习速率以致较长的训练时间,可能收敛很慢,但是能保证网络的偏差值不跳出偏差表面的低谷而最后趋于最小偏差值。所以在一般状况下,偏向于采纳较小的学习速率以保证系统的稳固性。学习速率的采纳范围在之间。BP神经网络的应用现给出一药品商店一年中间12个月的药品销售量(单位:箱)以下:训练一个BP网络,用当前的全部数据展望下一个月的药品销售量。有两种方法实现,一种是编写matlab程序,一种是使用nntool工具箱。matlab程序实现我们用前三个月的销售量展望下一个月的销售量,也就是用

1-3

月的销售量展望第

4个月的销售量,用

2-4

个月的销售量展望第

5个月的销售量,这样循环下去,直到用

9-11

月展望

12月份的销售量。这样训练

BP神经网络后,便能够用10-12月的数据展望来年一月的销售量。实现程序以下:p=[205623952600;239526002298;260022981634;229816341600;pmax=max(p);pmax1=max(pmax);pmin=min(p);pmin1=min(pmin);fori=1:9%归一化办理p1(i,:)=(p(i,:)-pmin1)/(pmax1-pmin1);endt1=(t-pmin1)/(pmax1-pmin1);t1=t1';net=newff([01;01;01],[71],{'tansig'fori=1:9

,'logsig'

},'traingd'

);',t1(i));endy1=y*(pmax1-pmin1)+pmin1;假如神经网络的训练函数使用trainlm,则仿真步骤会极少,但需要较大的系统内存。经展望,来年一月的销售量(y1)为+003箱(每次运转后的结果可能不一样)。nntool神经网络工具箱的使用在matlab()命令窗口键入nntool命令打开神经网络工具箱。如图:点击Import按钮两次,分别把输入向量和目标输出加入到对应的窗口[Inputs]和[Targets])中,有两种可供选择的加入对象(点击Import后能够看见),一种是把当前工作区中的某个矩阵加入,另一种是经过.mat文件读入。点击[NewNetwork]按钮,填入各参数:(以最常用的带一个隐层的3层神经网络为例说明,下边没有列出的参数表示使用默认值便能够了,比方NetworkType为默认的BP神经网络);i)InputRange——这个经过点击GetFromInput下拉框选择你加入的输入向量即可自动达成,自然也能够自己手动增添。TrainingFunction——最好使用TRAINSCG,即共轭梯度法,其好处是当训练不收敛时,它会自动停止训练,并且耗时较其余算法(TRAINLM,TRAINGD)少,也就是收敛很快(假如收敛的话),并且TrainParameters输入不多,也不用太多的技巧调整,一般指定迭代次数、结果显示频率和目标偏差便能够了(详见下文)。Layer1NumberofNeurons——隐层的神经元个数,这是需要经验慢慢试试并调整的,大体上由输入向量的维数、样本的数目和输出层(Layer2)的神经元个数决定。一般来说,神经元越多,输出的数值与目标值越凑近,但所花费的训练时间也越长,反之,神经元越少,输出值与目标值相差越大,但训练时间会相应地减少,这是因为神经元越多其算法越复杂造成的,所以需要自己慢慢试试,找到一个适合的中间点。比方输入是3行5000列的0-9的随机整数矩阵,在一开始选择1000个神经元,固然精度比较高,但是花销的训练时间较长,而且这样神经网络的构造与算法都特别复杂,不简单在实质应用中实现,试试改为100个,再调整为50个,假如发此刻50个以下时精度较差,则可最后定为50个神经元,等等。iv)Layer1TransferFunction——一般用TANSIG(自然也能够LOGSIG),即表示隐层输出是[-1,1]之间的实数,与LOGSIG对比范围更大。Layer2NumberofNeurons——输出层的神经元个数,需要与输出的矩阵行数对应,比方设置为3,等等。Layer2TransferFunction——假如是模式识其余两

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论