yxb345 发表于 2007-4-24 21:00

求助:BP神经网络

我在做BP神经网络时总出现如下结果:
Maximum MU reached, performance goal was not met.
调整隐层数依然是这样,也就是说我的目标误差是0.001,但是神经网络算得的误差总只能达到0.1,请问这是为什么?

jimin 发表于 2007-4-25 00:47

归一一下,或者权值用ga优化一下

xjzuo 发表于 2007-4-25 09:13

把代码贴出来看看.

sffei 发表于 2007-4-25 09:18

或者有可能是你的输出函数不对

F117_ren_0 发表于 2007-4-25 10:31

说明样本的相关性不好,再有就是要数据归一化!~

yxb345 发表于 2007-4-25 13:52

源程序代码如下

load shangxian.txt;   %加载数据文件
load cedian.txt;      %加载数据文件
load s00.txt;            %加载数据文件
a=s00;
b=(shangxian(:,2:3));
c=(cedian(1:67,2:3));
d=zeros(1090,1);
e=(6894.76*a(1,3:69))';
tt=;
=premnmx(',tt');%归一化ptest,p,ttest
for i=1:67
   if (abs(tn(1,i)))<1.0e-3
      tn(1,i)=0;
    else
    end
end
for m=1:2
for j=1:67
   if (abs(pn(m,j)))<1.0e-3
       pn(m,j)=0;
   else
   end
end
end
pt=(pn(:,1:67));
p=(pn(:,68:1157));
tt=tn(1,1:67);
s=3:18;
res=1:16;
for i=1:16
net=newff(minmax(pt),,{'tansig','logsig'},'trainlm');             %建立网络
net.trainParam.epochs=1000;
net.trainParam.goal=0.001;
net=init(net);
net=train(net,pt,tt);
wind=sim(net,pt);                              %网络仿真
error=wind-tt;
res(i)=norm(error);
end
w=sim(net,p);
we=(postmnmx(w,mint,maxt))';                              %反归一化
save we.txt we -ascii

xjzuo 发表于 2007-4-25 19:27

换了一下训练函数---traingdx---结果也不好.
所以, 原因可能是你的矩阵太奇异,或者是归一化出了问题.
建议自己调试一下,查一下是否如此.

sffei 发表于 2007-4-25 21:14

net=newff(minmax(pt),,{'tansig','logsig'},'trainlm');   
logsig是不是输出函数,换成线性函数purelin试试,记不太清了

[ 本帖最后由 sffei 于 2007-4-25 21:19 编辑 ]

yxb345 发表于 2007-4-26 10:28

归一化并没有问题.可能是数据太无规律吧.因为如果没有中间的两个FOR循环,就会WARNING矩阵奇异,但是加了FOR之后,就没有这个warning了.而且我看了一下归一化的数据,并没有什么问题.所有的值均在[-1,1]之间.

F117_ren_0 发表于 2007-4-27 09:59

把数据归一到之间,恐怕会有好的发现

lxq 发表于 2007-4-27 20:13

精度要求是不是太高了
另外你用的BP网络是没有改进的?
也有可能是训练次数少
页: [1]
查看完整版本: 求助:BP神经网络