当前位置:文档之家› 多层前馈神经网络

多层前馈神经网络

多层前馈神经网络
5 多层前馈网络及BP算法
多层前馈网络的反向传播 (BP)学习算法,简称BP算法,是有导师的学习,它是梯度下降法在多层前馈网中的应用。

(a) 网络结构
yu 见下图,、是网络的输入、输出向量,神经元用节点表示,网络由输入层、隐层和输出层节点组成,隐层可一层,也可多层(图中是单隐层),前层至后层节点通过权联接。

由于用BP学习算法,所以常称BP神经网络。

I:y:x:每个神经元(节点)的输入;每个神经元(节点)的输出;神经元j
w:jji的第个输入。

神经元到神经元的连接权 ij
,,y,f(x,,)节点的作用函数:, 为阈值(可设置一个偏置节点代替)
1,f可为线性函数,一般取为Sigmoid函数 , 为很小的数,如0.1 ,x/,1,e
(b) BP学习算法
• 已知网络的输入/输出样本,即导师信号。

• BP学习算法由正向传播和反向传播组成:
• 正向传播是输入信号从输入层经隐层,传向输出层,若输出层得到了期望
的输出,则学习算法结束;否则,转至反向传播。

• 反向传播是将误差(样本输出与网络输出之差)按原联接通路反向计算,
由梯度下降法调整各层节点的权值和阈值,使误差减小。

BP学习算法步骤如下:
W(0)(1) 设置初始权值,它是较小的随机非零值。

(2) 给定输入/输出样本对,计算网络的输出。

,,u,u,u,...,u设第p组样本输入: p1p2pnp
,,d,d,d,...,d,p,1,2,..,L 输出: p1p2pmp
ypi节点在第组样本输入时,输出为 : ip
,,
,,y(t),fx(t),fw(t)I ----(1式) ,,,ipipijjpj,,
Ijpi式中,是在第组样本输入时,节点的第个输入。

jp
1f(,)f(x)s取可微的型作用函数式 = -------(2式) ,x1,e可由输入层隐层至输出层,求得网络输出层节点的输出。

J(1) 计算网络的目标函数
ELp设为在第组样本输入时,网络的目标函数,取范数,则 p2
111222E(t),||d,y(t)||,[d,y(t)],e(t)--------(3式) ,,pppkpkpkp2222kk y(t)pkt式中,是在第组样本输入时,经次权值调整后网络的输出:是p k输出层第个节点。

E(t)J(t),网络的总目标函数: = ----------(4式) p
p
作为对网络学习状况的评价。

(2) 判别
J(t),若 ? -------(5式)
,,,0算法结束;否则,至步骤(4)。

式中,是预先确定的,. (3) 反向传播计算J由输出层,依据,按梯度下降法反向计算,可逐层调整权值。

,,,Jak,a,a,ji由式,取步长为常值,可得到神经元到神经元的,1kkk,ak t,1连接权次调整算式:
,E(t),J(t)pw(t,1),w(t),,,w(t),,,w(t),,w(t)---6
式) ,ijijijijij,w(t),w(t)pijij
,式中,为步长,在此称为学习算子。

具体算法如下:
,E,E,xppip,, --------(7式) ,w,x,wijipij

,Ep,, ----------(8式) ip,xip
xE,piip是第个节点的状态对的灵敏度(第组样本输入时)。

式中,pip
又(7式)(8式)可得:
E,p,,,Iipjp ----------(9式) w,ij
,分以下两种情况计算。

ip
i? 若为输出节点,由(3式)和(8式)可得:
,E,ypkp',,,,,,,,,efx --------(10式) ipkpkpkp,y,xkpkp将(10式)代入(7式),则:
,Ep',,,,efxIkpkpjp ---------(11式) ,wij
i? 若不是输出节点,此时(8式)为:
,E,E,y,Eppipp',,,,,,,,fx -----(12式) ipip,x,y,x,yipipipip其中
,x,E,E,E,E,mppppp,1,,,,wI,w,,w,,,,,mjjpmjmpmi1111,y,x,y,x,y,xmmjmmip mpipmpipmp1111111(13式)
,mIjmmi式中,是节点后边一层的第个节点;是节点的第个1jp11
i,jp输入(第组样本输入时),当时
,y,I ipjp
将(12式)和(13式)代入(7式),有
,E,Ep''P,,,,,fxIw,fxI,w ----(14
式) ,,ipjpmiipjpmpmi111,w,xmmijmp111
可见,由(11式)和(14式),可进行(6式)的权值调整计算。

(c)几个问题讨论:
(1)实现输入/输出的非线性映射
(2)输入/输出的归一化,即将输入输出转化到(0,1)
(3)泛化能力
(4)训练误差
(5)BP的不足
, 收敛速度慢,局部最优点,收敛速度与初始权的选择有关 , 隐层及接点数的选择无理论指导
, 新加入的样本会影响到已学好的样本
(6)改进的BP算法
例: ,,算法的思路及计算过程
为了找出小麦产量与化肥用量的关系, 观测得到了多组数据, 如化肥用量为0.01吨/每亩时,产量为0.3吨/每亩, 0.015吨/每亩时,产量为0.350吨/每亩, 0.020吨/每亩时,产量为0.380吨/每亩, 若化肥用量为0.050吨/每亩,则产量为多少?
yx思路: 假设产量为,化肥用量为,需要根据已知数据求出y,f(x)yx.可利用神经网络实现与之间的映射关系.
u,d,输入/输出样本对有三个(p=3),为0.01, 0.3; 11
u,u,d,d,0.015, 0.35; 0.02, 0.38; 3211
w,0.2w,0.1假设权值的初始值为: 输入到隐层: ,; 2,11,1
w,0.12w,0.22隐层到输出: ,.节点的作用函数1,11,2
1,,1,此例仅为演示BP训练过程,为计算方便,取,,x/,1,e ,,阈值取为0(不为0时,需加一个偏置节点)
(1)对第一个样本(p=1):
x,0.01*w,0.001隐层节点1的输入为: ; 1,11,1
x,0.01*w,0.002隐层节点2的输入为: ; 2,12,1
1,0.5002y,f(x),隐层节点1的输出为: ; 1,11,1,x1,1e1,
y,0.5005隐层节点2的输出为: ; 2,1
输出节点的输入为:
x,0.5002*0.12,0.5005*0.22,0.1701 1,1
输出节点的输出为:
y,0.5424 1,1
e,(0.3,0.5424),,0.2424和期望输出的误差为: 1,1
,Ep',,,,efxIkpkpjp隐层到输出层的权值调整
(): ,wij,E',0.1701,0.1701,21,,,,efxI,0.2424*e*(1,
e)*0.5002,0.030101,11,11,1,w1,1
,E',0.1701,0.1701,21,,,,efxI,0.2424*e*(1,
e)*0.5005,0.030111,11,12,1,w1,2
,E'1,,,,ef(x),0.060161,11,11,1 ,x1,1
,E'P,,,fxI,w,输入层到隐层的权值调整():
ipjpmpmi11,wmij1,E'0.0010.0012,,,1,,,fxI,w,e*(1,
e)*0.01*,*0.12,1.8048e-005,1,11,1m,1m,11,111,wm1,11
,E'0.0020.0022,,,1,,,fxI,w,e*(1,e)*0.01*,*0.22,3.3088e-005,2,11,1m,1m,21,111,wm2,11
,E,E23,(2)同理求得第2、第3个样本时的。

,w,wi,ji,j
3,Epw,w,,(3)更新权值 ,i,ji,j,w,p1i,j
E,,J,(4)如果训练误差=回到步骤(1),否则结束 p
p
例: 利用Matlab中的神经网络工具箱,使用BP网络实现对
正弦函数的逼近。

程序:
p=-1:0.1:1
t=[-0.9602 -0.5770 -0.0729 0.3771 0.6405 0.66 0.4609 0.1336 -0.2013 -0.4344 -0.5 -0.3930 -0.1647 0.0988 0.3072 0.3960 0.3449 0.1816 -0.0312 -0.2189 -0.3201] S1=5;
[w1,b1,w2,b2]=initff(p,S1,'tansig',t,'purelin');
df=10;
me=8000;
eg=0.02;
lr=0.01;
tp=[df me eg lr];
[w1,b1,w2,b2,ep,tr]=trainbp(w1,b1,'tansig',w2,b2,'purelin',p,t,tp);
思考题:
u,d,输入/输出样本对有两个(p=2),为0.1, 0.2; 11u,d,0.15, 0. 5。

请按照BP算法的训练过程给出BP算21
法训练的第1个循环的计算。

相关主题