神经网络在数学建模竞赛中的应用

发布时间 : 星期日 文章神经网络在数学建模竞赛中的应用更新完毕开始阅读

提取更多有用的信息,使网络可以完成更复杂的任务.

(2)多层感知器中每个神经元的激励函数是可微的Sigmoid函数,如

vi?1 (2-8)

1?exp?(ui)式中ui是第i个神经元的输入信号,vi是该神经元的输出信号.

(3)多层感知器具有独特的多个突触使得网络更具有连通性,联接域的变化或权

值的变化都会引起连通性的变化.

(4)多层感知器具有独特的学习算法(BP算法),所以多层感知器也常常称之为BP网络.

多层感知器的这些特点,使它具有强大的计算能力.多层感知器是目前应用最广泛的一种神经网络.

2.3.2 BP学习算法

20世纪80年代中期,美国加利福尼亚的PDP(parallel distributed procession)小组于1986年发表了Parallel Distributed Procession一书,该书的出版对BP算法产生了重要的影响.BP算法解决了多层感知器的学习问题,促进了神经网络的发展.

1. BP学习过程的描述

(1)工作信号的传播:输入信号从输入层经隐单元,传向输出层,在传出端产生输出信号,这是工作信号的正向传播.在信号的向前传递过程中网络的权值是固定不变的,每一层神经元的状态只影响下一层神经元的状态.如果在输出层不能得到期望的输出,则输入误差信号反向传播.

(2)误差信号反向传播:网络的实际输出与期望输出之间的差值即为误差信号,误差信号由输出端开始逐层向前传播,这是误差信号是反向传播.在传播的过程中,网络的权值由误差反馈进行调节.通过权值的不断修正使网络的实际输出更接近期望输出.

工作信号误差信号

图2-6 工作信号正向传播,误差信号反向传播

图2-6为多层感知器的一部分,其中有两种信号:一是工作信号,工作信号正向传播;二是误差信号,误差信号反向传播.

下面以含有两个隐层的BP网络为例,如图2-7所示,具体推导BP算法.

17

wijx1x2wjpy1y2?????ypxm?xM????ypi?(1,2,?,I)j?(1,2,?,J)

图2-7 含有二个隐含层的BP网络

设输入层位M,即有M个输入信号,其中的任一输入信号用m表示:第1隐层为I,即有I个神经元,其中的任何一个神经元用i表示;第二层为J,即有J个神经元,其中任一神经元用j表示,输出层为p,即有p个输出神经元,其中任一神经元用p表示.

输入层与第一隐层的突触权值用wmi表示;第1隐层与第2隐层的突触权值用wij表示;第2隐层与输出层用的突触权值用wjp表示.

神经元的输入用u表示,激励输出用v表示,u,v的上标表示层,下标表示层中的某个神经元,如uiIA表示I层(即第1层)的第i个神经元输入.设所有的神经元的激励函数均用Sigmoid函数.设训练样本集为X??X1,X2,?,Xk,?,XN?,对应任一训练样本Xk??xk1,xk2,?,xkM?,?k?1,2,?,N?的实际输出为Yk?yk1,yk2,?,ykpT??T,

期望输出为dk?[dk1,dk2,?,dkp]T.设n为迭代次数,权值和实际输出是n的函数.

网络输入训练样本Xk,由工作信号的正向传播可得:

?M?u??wmixkm v?f??wmixkm? i?1,2,?,I

m?1?m?1??I?J vj?f??wijviI? j?1,2,?,J

?i?1?J?J?PIPJ?,2,?,P up??wijvi vp?f?wv?jpj? p?1?j?1?j?1??J?PPJ?ykp?vp?fup?f??wjpvj?? p?1,2,?,P ?j?1?输出层第p个神经元的误差信号为ekp?dkp?n??ykp?n?

IiMIi??12?n?,则输出层所有神经元的误差能量总和为E?n?:定义神经元p的误差能量为ekp 21P2 E?n???ekp?n? (2-9)

2p?1误差信号从后向前传递,在反向传播的过程中,逐层修改联接权值.下面计算误差

18

信号的反向传播过程:

(1)隐层J与输出层P之间的权值修正量.BP算法中权值的修正量与误差绝对值的偏微分成正比,即:

?E?n??wjp?n?? ?wjp?n?因为

P?E?n??E?n??ekp?n??ykp?n??up?n????P? ?wjp?n??ekp?n??ykp?n??up?n??yjp?n?又

?E?n??ekp?n?,??1,?ekp?n????ykpn则

?ekp?n??ykp?n??uPp?n??f'u??n??,?yPpP?n??upjp?n??vJj?n?

?E?n?P?n?vJj?n? ??ekp?n?f'up?wjp?n???设局部梯度

P ?p??E?n? (2-10) P?n??upP ?f'up?n?ekp?n?

??当激励函数为逻辑函数,即

f(x)?1,a?0;???x??

1?exp(?ax)PP?n?1?vp?n??ykp?n??1?ykp?n?? ?vp从而有

f'u?n??Pp??P?n??vp?u?n?Pp??则

?ykp?n??1?ykp?n???dp(n)?ykp(n)? (2-11) 根据Delta学习规则,wjp(n)的修正量为

wjp(n)???P?n??ykp?n??1?ykp?n??ekp?n? ?p?E(n) (2-12)

?wjp(n)P??E(n)??up(n)? ????P

??u(n)??wjp(n)p??P ???p(n)vJj(n)

P式中,?是学习步长,?p(n)可由式(2-11)求得,vJj(n)可由正向传播求得.则下一次

的迭代时隐层J上任一节点与输出层P上任一节点之间的权值为

wjp(n?1)?wjp(n)??wjp(n) (2-13)

(2)隐层I与隐层J之间的权值修正量:

19

J?E(n)?E(n)?uj(n)???wij(n)?uJ?wij(n)(n)j

?与式(2-14)相类似,局部梯度为

?E(n)I?vi(n)J?uj(n) (2-14)

?jJ(n)???E(n) (2-15)

?uJ(n)jJ?E(n)?vj(n)? ??J ?vj(n)?uJ(n)j因为

?vJj(n)?uJj(n)?f'(uJj(n)) (2-16)

1P2E(n)??ekp(n)

2p?1P?ekp(n)?E(n) ??ekp(n)?JJ?vj(n)p?1?vj(n)P?ekp(n)?up(n)?J ??ekp(n)?P

?u(n)?v(n)p?1pjPP又 ekp(n)?dkp(n)?ykp(n)?dkp(n)?f(up(n))

?ekp(n)?u(n)Pp??f'(u(n)),PpP?up(n)?v(n)Jj?wjp(n)

P?E(n)P J???ekp(n)?f'(up(n))?wjp(n) (2-17)

?vj(n)p?1由式(2-15)和式(2-17)得

P??f'(u(n))?f'(up(n))?wjp(n) JjJjp?1P将式(2-10)代入上式得

P ??f'(u(n))??p(n)?wjp(n) (2-18)

JjJjp?1PP式中?p(n)可由式(2-11)求得,f'(uJj(n))??vJj(n)?u(n)Jj?vJ1?vJj(n)(j(n)).wjp(n)为隐含层

J与输出层P任一节点之间的权值,已由式(2-13)求得.

所以

?wij(n)???iI(n)viI(n) (2-19)

则下一次迭代时,隐层I上任一节点与隐层J上任一节点之间的权值为

wij(n?1)?wij(n)??wij(n) (2-20) (3)与隐层I和隐层J之间的权值修正量的推导方法相同,输入层M上任一节点与

20

联系合同范文客服:xxxxx#qq.com(#替换为@)