提取更多有用的信息,使网络可以完成更复杂的任务.
(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