我用下面的程序试过了,但是误差非常大,好像陷入了局部极小值。 [R,Q]=size(p) [s2,Q]=size(t); %输出矢量 s1=11 ; %隐层 [w1,b1]=rands(s1,R) %权重初始化 [w2,b2]=rands(s2,s1) A2=purelin(w2*tansig(w1*p,b1),b2) disp=10; %显示间隔次数 epoch=5000; %最大的训练次数5000 err=0.01; %误差0.01 lr=0.01; %学习速率0.01 mc=0.6 tp=[disp epoch err lr] [w1,b1,w2,b2,epochs,errors]=trainbp(w1,b1,'tansig',w2,b2,'purelin',p,t,tp) %利用BP算法训练前向网络 figure(2) ploterr(errors) %画误差曲线图 Y=simuff(p,w1,b1,'tansig',w2,b2,'purelin') %simuff前向网络仿真 figure(3) plot(t) %画目标矢量图 hold on plot(Y,'r:') %画输出矢量图,也就是神经网络输出矢量图 请问有没有高手给指点一下呢?
[此贴子已经被作者于2007-7-11 18:28:46编辑过] |