付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、BP神经网络原理及应用1人工神经网络简介1.1生物神经元模型神经系统的基本构造是神经元(神经细胞),它是处理人体内各部分之间相 互信息传递的基本单元。据神经生物学家研究的结果表明,人的大脑一般有1010 1011个神经元。每个神经元都由一个细胞体,一个连接其他神经元的轴突和一些向外伸出的其它较短分支一一树突组成。轴突的功能是将本神经元的输出 信号(兴奋)传递给别的神经元。其末端的许多神经末梢使得兴奋可以同时送给 多个神经元。树突的功能是接受来自其它神经元的兴奋。神经元细胞体将接受到 的所有信号进行简单地处理后由轴突输出。 神经元的树突与另外的神经元的神经 末梢相连的部分称为突触。1.2人工神经
2、元模型神经网络是由许多相互连接的处理单元组成。这些处理单元通常线性排列成 组,称为层。每一个处理单元有许多输入量,而对每一个输入量都相应有一个相 关联的权重。处理单元将输入量经过加权求和,并通过传递函数的作用得到输出量, 再传给下一层的神经元。目前人们提出的神经元模型已有很多, 其中提出最早且 影响最大的是1943年心理学家MCCUllOCh和数学家PittS在分析总结神经元基本特性的基础上首先提出的M-P模型,它是大多数神经网络模型的基础Yj(t) f( WjiXij)( 1.1)i 1式(1.1)中,j为神经元单元的偏置(阈值),Wji为连接权系数(对于激发状态,Wji取正值,对于抑制状态
3、,Wji取负值),n为输入信号数目,Yj为神经元输出, t为时间,f()为输出变换函数,有时叫做激发或激励函数,往往采用 O和1二值 函数或S形函数。1.3人工神经网络的基本特性人工神经网络由神经元模型构成;这种由许多神经元组成的信息处理网络具有并 行分布结构。每个神经元具有单一输出,并且能够与其它神经元连接;存在许多(多重)输出连接方法,每种连接方法对应一个连接权系数。严格地说,人工神 经网络是一种具有下列特性的有向图:(1) 对于每个节点存在一个状态变量 Xi;(2) 从节点i至节点j ,存在一个连接权系数 Wji ;(3) 对于每个节点,存在一个阈值j;(4) 对于每个节点,定义一个变换
4、函数 fj(Xi,W, j),i j,对于最一般的情况,此函数取fj ( WjiX j )形式。i1.4人工神经网络的主要学习算法神经网络主要通过两种学习算法进行训练,即指导式(有师)学习算法和非指导式(无师)学习算法。此外,还存在第三种学习算法,即强化学习算法;可把它 看做有师学习的一种特例。(1) 有师学习 有师学习算法能够根据期望的和实际的网络输出 (对应于给定输 入)间的差来调整神经元间连接的强度或权。因此,有师学习需要有个老师或导师来提供期望或目标输出信号。有师学习算法的例子包括规则、广义 规则或反向传播算法以及LVQ算法等。(2) 无师学习 无师学习算法不需要知道期望输出。在训练过
5、程中,只要向神经网络提供输入模式,神经网络就能够自动地适应连接权,以便按相似特征把输 入模式分组聚集。无师学习算法的例子包括KOhOnen算法和CarPenter-Grossberg 自适应共振理论(ART)等。(3)强化学习 如前所述,强化学习是有师学习的特例。它不需要老师给出目 标输出。强化学习算法采用一个“评论员”来评价与给定输入相对应的神。2 BP神经网络原理2.1基本BP算法公式推导基本BP算法包括两个方面:信号的前向传播和误差的反向传播。即计算实际输 出时按从输入到输出的方向进行,而权值和阈值的修正从输出到输入的方向进 行。X输入Xj变曰量XM俞入层输出层隐含层ak输岀L ok变量
6、OL图2-1 BP网络结构Fig.2-1 StrUCtUre Of BP network图中:Xj表示输入层第j个节点的输入,j=1,;Wj表示隐含层第i个节点到输入层第j个节点之间的权值;i表示隐含层第i个节点的阈值;(X)表示隐含层的激励函数;Wki表示输出层第k个节点到隐含层第i个节点之间的权值,i=1,q;ak表示输出层第k个节点的阈值,k=1,L;X表示输出层的激励函数;°k表示输出层第k个节点的输出。(1)信号的前向传播过程 隐含层第i个节点的输入net:MWijXj i1netij(3-1)隐含层第i个节点的输出yi:Yi(n etjM(WijXj i)j 1(3-2)
7、输出层第k个节点的输入qWkiyii 1netknetk:akMWki(WijXj i) akj 1(3-3)输出层第k个节点的输出Ok:qq(n etk)(Wkiyii 1ak)qMWki(WjXj i) aki 1j 1(3-4)(2)误差的反向传播过程然后根使修改后的网络的最终输出能接近误差的反向传播,即首先由输出层开始逐层计算各层神经元的输出误差, 据误差梯度下降法来调节各层的权值和阈值, 期望值对于每一个样本P的二次型误差准则函数为1 L EP 22 k 1Ep:(Tk°k)2(3-5)系统对P个训练样本的总误差准则函数为:1 P LE -(TkP °kp)2(3
8、-6)输出层阈值的修正量2 p 1 k 1ak,隐含层权值的修正量Wij,隐含层阈值的修正量i0EEEEWkiakWijiWki ;ak ;Wij;i(3-7)输出层权值调整公式:WkiEEn etkEOknetkWkin etk WkiOknetkWki(3-8)输出层阈值调整公式:akEEn etkEOkn etkaknetkakOknetkak(3-9)根据误差梯度下降法依次修正输出层权值的修正量Wki,WijEEn etiEYinetiWijnetiWijYin etWij隐含层阈值调整公式:EEnetEYinetiiinetiiYin etii又因为:EPokP 1L(TkPk 1O
9、kP)netkynetkIaknetjXjneti 1iWkiyiWijEYiP L(TkP Ok)p 1 k 1'(netk) WkiYi n eti(n eti)Ok'(n etk)netk所以最后得到以下公式:WkiP L(TkPp 1 k 1OkP)'n etkYiakP L(TkPP 1 k 1OkP)'netkWijP L(TkPOkP)p 1 k 1'netkWki(neti) XjiP L(TkP OkP)'netkWki(net)隐含层权值调整公式:(3-10)(3-11)(3-12)(3-13)(3-14)(3-15)(3-1
10、6)(3-17)(3-18)(3-19)p 1 k 1(3-20)图2-2 BP算法程序流程图Fig.2-2 The flowchart Of the BP algorithm PrOgram2.2基本BP算法的缺陷BP算法因其简单、易行、计算量小、并行性强等优点,目前是神经网 络训练米用最多也是最成熟的训练算法之一。其算法的实质是求解误差函 数的最小值问题,由于它采用非线性规划中的最速下降方法,按误差函数 的负梯度方向修改权值,因而通常存在以下问题:(1) 学习效率低,收敛速度慢(2) 易陷入局部极小状态2.3 BP 算法的改进2.3.1 附加动量法 附加动量法使网络在修正其权值时,不仅考虑
11、误差在梯度上的作用, 而且考虑在误差曲面上变化趋势的影响。在没有附加动量的作用下,网络 可能陷入浅的局部极小值,利用附加动量的作用有可能滑过这些极小值。该方法是在反向传播法的基础上在每一个权值(或阈值)的变化上加 上一项正比于前次权值(或阈值)变化量的值,并根据反向传播法来产生 新的权值(或阈值)变化。带有附加动量因子的权值和阈值调节公式为:wij (k 1) (1 mc) i p j mc wij (k)bi(k 1) (1 mc) i mc bi (k)其中 k 为训练次数, mc 为动量因子,一般取 0.95 左右。 附加动量法的实质是将最后一次权值(或阈值)变化的影响,通过一 个动量因
12、子来传递。当动量因子取值为零时,权值(或阈值)的变化仅是 根据梯度下降法产生;当动量因子取值为 1 时,新的权值(或阈值)变化 则是设置为最后一次权值(或阈值)的变化,而依梯度法产生的变化部分 则被忽略掉了。以此方式,当增加了动量项后,促使权值的调节向着误差 曲面底部的平均方向变化,当网络权值进入误差曲面底部的平坦区时, 将变得很小,于是wij(k 1)wij(k), 从而防止了wij 0的出现,有助于使网络从误差曲面的局部极小值中跳出。根据附加动量法的设计原则,当修正的权值在误差中导致太大的增长 结果时,新的权值应被取消而不被采用,并使动量作用停止下来,以使网 络不进入较大误差曲面;当新的误
13、差变化率对其旧值超过一个事先设定的 最大误差变化率时,也得取消所计算的权值变化。其最大误差变化率可以 是任何大于或等于 1 的值。典型的取值取 1.04 。所以,在进行附加动量法 的训练程序设计时,必须加进条件判断以正确使用其权值修正公式。训练程序设计中采用动量法的判断条件为:0E(k) E(k 1) * 1.04me 0.95 E(k) E(k 1), E (k)为第k步误差平方和。mc其它2.3.2 自适应学习速率 对于一个特定的问题,要选择适当的学习速率不是一件容易的事情。 通常是凭经验或实验获取,但即使这样,对训练开始初期功效较好的学习 速率,不见得对后来的训练合适。为了解决这个问题,
14、人们自然想到在训 练过程中,自动调节学习速率。通常调节学习速率的准则是:检查权值是 否真正降低了误差函数,如果确实如此,则说明所选学习速率小了,可以 适当增加一个量;若不是这样,而产生了过调,那幺就应该减少学习速率 的值。下式给出了一个自适应学习速率的调整公式:1.05 (k) E(k 1) E(k)(k 1)0.7 (k) E(k 1)1.04E(k) ,E( k)为第 k 步误差平方和。(k)其它初始学习速率 (0)的选取范围可以有很大的随意性。2.3.3动量-自适应学习速率调整算法当采用前述的动量法时,BP算法可以找到全局最优解,而当采用自适应学习速率时,BP算法可以缩短训练时间,采用这
15、两种方法也可以用来训练神经网络,该方法称为动量-自适应学习速率调整算法。2.4网络的设计2.4.1网络的层数理论上已证明:具有偏差和至少一个S型隐含层加上一个线性输出层的网络,能够逼近任何有理数。增加层数可以更进一步的降低误差,提高 精度,但同时也使网络复杂化,从而增加了网络权值的训练时间。而误差精度的提高实际上也可以通过增加神经元数目来获得,其训练效果也比增 加层数更容易观察和调整。所以一般情况下,应优先考虑增加隐含层中的 神经元数。2.4.2隐含层的神经元数网络训练精度的提高,可以通过采用一个隐含层,而增加神经元数了 的方法来获得。这在结构实现上,要比增加隐含层数要简单得多。那么究 竟选取
16、多少隐含层节点才合适?这在理论上并没有一个明确的规定。在具 体设计时,比较实际的做法是通过对不同神经元数进行训练对比,然后适 当地加上一点余量。2.4.3初始权值的选取由于系统是非线性的,初始值对于学习是否达到局部最小、是否能够 收敛及训练时间的长短关系很大。如果初始值太大,使得加权后的输入和 n落在了 S型激活函数的饱和区,从而导致其导数 f'n)非常小,而在计算权值修正公式中,因为f'(n),当f 'n) 0时,则有 0。这使得wij 0 ,从而使得调节过程几乎停顿下来。所以一般总是希望经过初始 加权后的每个神经元的输出值都接近于零,这样可以保证每个神经元的权 值都
17、能够在它们的 S 型激活函数变化最大之处进行调节。所以,一般取初 始权值在( -1 , 1)之间的随机数。2.4.4 学习速率 学习速率决定每一次循环训练中所产生的权值变化量。大的学习速率 可能导致系统的不稳定;但小的学习速率导致较长的训练时间,可能收敛 很慢,不过能保证网络的误差值不跳出误差表面的低谷而最终趋于最小误 差值。所以在一般情况下,倾向于选取较小的学习速率以保证系统的稳定 性。学习速率的选取范围在 0.01-0.8 之间。3 BP 神经网络的应用现给出一药品商店一年当中 12 个月的药品销售量(单位:箱)如下: 2056 2395 2600 2298 1634 1600 1873
18、1487 1900 1500 2046 1556训练一个 BP 网络,用当前的所有数据预测下一个月的药品销售量。 有两种方法实现,一种是编写 matlab 程序,一种是 使用 nntool 工具 箱。3.1 matlab 程序实现我们用前三个月的销售量预测下一个月的销售量,也就是用 1-3 月的 销售量预测第 4 个月的销售量,用 2-4 个月的销售量预测第 5 个月的销售 量,如此循环下去,直到用 9-11 月预测 12 月份的销售量。这样训练 BP 神经网络后,就可以用 10-12 月的数据预测来年一月的销售量。 实现程序如下: p=2056 2395 2600;2395 2600 229
19、8;2600 2298 1634;2298 1634 1600;1634 1600 1873;1600 1873 1478;1873 1478 1900;1478 1900 1500;1900 1500 2046; t=2298 1634 1600 1873 1487 1900 1500 2046 1556; pmax=max(p);pmax1=max(pmax); pmin=min(p);pmin1=min(pmin);for i=1:9%归一化处理p1(i,:)=(p(i,:)-Pmi n1)(pmax1-pmi n1);endt1=(t-pmi n1)/(PmaXI-Pmi n1);t1
20、=t1'net=newff(0 1;0 1;0 1,7 1,'tansig','Iogsig' , 'traingd');for i=1:9n et.tra in Param.epochs=15000;n et.trai nParam.goal=0.01;LP.lr=0.1;n et=trai n(n et,p1(i,:)',t1(i);endy=sim(net,1500 2046 1556');y1=y*(pmax1-pm in 1)+pm in1;如果神经网络的训练函数使用trai nlm,则仿真步骤会很少,但需要较大
21、的系统内存。经预测,来年一月的销售量(y1 )为1.4848e+003 箱(每次运行后的结果可能 不同)。3.2 nntool神经网络工具箱的使用1)在matlab (7.4 )命令窗口键入nntool命令打开神经网络工具箱。如图:2)点击ImPOrt按钮两次,分别把输入向量和目标输出加入到对应的窗口 ( Inputs 和Targets)中,有两种可供选择的加入对象(点击 ImPOrt后可以看见),一种 是把当前工作区中的某个矩阵加入,另一种是通过 .mat文件读入。 I:LP曲Xt to KErtSlJlkD-dl ZL KUIlIlIXb!K×<wreft.*' T
22、l!>jr1 r UI NKmfl V Tkkti!i -.-Lead, ir*t disk iLItChItP3)点击New Network按钮,填入各参数:(以最常用的带一个隐层的3层神经网 络为例说明,下面没有列出的参数表示使用默认值就可以了, 例如NetWOrk TyPe 为默认的BP神经网络);i)Input Rang这个通过点击 Get FrOm InPUt下拉框选择你加入的输入向量便可自动完成,当然也可以自己手动添加。ii)Training FUnction 最好使用TRAINSCG ,即共轭梯度法,其好处是当训练不收敛时,它会自动停止训练,而且耗时较其他算法(TRAINL
23、M ,TRAINGD) 少,也就是收敛很快(如果收敛的话),而且Train ParameterS输入不多,也不用 太多的技巧调整,一般指定迭代次数、结果显示频率和目标误差就可以了(详见下文)。iii)Layer 1 NUmber of Neuro ns 隐层的神经元个数,这是需要经验慢慢尝 试并调整的,大致上由输入向量的维数、样本的数量和输出层( Laye的神经 元个数决定。一般来说,神经元越多,输出的数值与目标值越接近,但所花费的训练时间也越长,反之,神经元越少,输出值与目标值相差越大,但训练时间会 相应地减少,这是由于神经元越多其算法越复杂造成的,所以需要自己慢慢尝试, 找到一个合适的中间点。比如输入是 3行5000列的0-9的随机整数矩阵,在一 开始选择1000个神经元,虽然精度比较高,但是花费的训练时间较长,而且这 样神经网络的结构与算法都非常复杂,不容易在实际应用中实现,尝试改为100个,再调整为50个,如果发现在50个以下时精度较差,则可最后定为 50个神 经元,等等。iv)Layer 1 TranSfer FUnction一般用 TANSIG (当然也可以 LOGSIG),即表示隐层输出是-1,1之间的实数,与LOGSIG相比范围更大。V) L
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年大班幼师美术教案
- 施工用水管理规范方案
- 施工现场配电箱开关箱设置及安全管理标准
- 燃气阀门更换方案
- 企业大客户开发方案
- 景观材料选用方案
- 2025年安徽南陵县国有企业职业经理人招聘1人笔试历年参考题库附带答案详解
- 2025年北京智芯微电子科技有限公司高校毕业生招聘15人(第二批)笔试历年参考题库附带答案详解
- 建筑施工安全生产检查与评分标准细则
- 2025年中智集团总部公开招聘工作人员1名笔试历年参考题库附带答案详解
- 加强电力物资管理提高企业经济效益-图文
- 2025年一建民航真题
- JGJT46-2024《施工现场临时用电安全技术标准》条文解读
- 华南理工大学《微积分Ⅰ(二)》2021-2022学年第一学期期末试卷
- 法院书记员面试题
- 2024年广州市中考语文试卷真题(含官方答案)
- 2024年上海市普通高中学业水平等级性考试化学试卷(含答案)
- 化学灾害事故现场的应急洗消课件市公开课一等奖省赛课微课金奖课件
- 2023年肇庆市高要区教育局招聘事业编制教师考试真题
- 初中八年级信息技术课件- 动态图形
- 模板:科室医疗质量与安全管理小组成员及职责分工
评论
0/150
提交评论