BP网络每次的结果都不一样
我在用BP模型时,每次的结果都不一样,我已经把权值、阀值调成固定值了,可是结果还是每次都不一样。这是为什么呢?希望能帮我解决一下。
非常感谢!
[ 本帖最后由 ericlin 于 2006-8-10 16:05 编辑 ] 训练数据和测试数据是不是一样的。 请问楼主:你是如何在bp中使用自己初始化的权重和阀值的?在开始初始化的时候,如何定义?谢谢~~! 你的前提是什么,是每次训练时初始化的时候没有随机赋值,而是用了自己定义的权值和阈值?
BP网络每次的结果都不一样
p=[-0.5 -0.5 0.3 0;-0.50.5 -0.5 1 ];t=;
net=newff(minmax(p),,{'tangsig','purelin'},'trainlm');
net=init(net);
固定权值阀值
inputWeights=[];
inputbias=[];
layerWeights=[];
inputbias=[];
当前输入层权值阀值
inputWeights=net.IW{1,1};
inputbias=net.b{1};
网络层权值阀值
layerWeights=net.LW{2,1};
layerbias=net.b{2};
net=train(net,p,t);
y=sim(net,p)
即使是上面简单的程序,每次计算结果都不一样!我想让每次运行的结果是一致的,所以我加上输入层、网络层的权值阀值,并把权值阀值固定。可是结构还是不一样。 结果不一样是很正常,由于神经网络初始化是随机的
建议在训练的过程中记录下一些初始值,这样训练效果理想就可能重复得到相同的结果 我不明白,需要记录哪些初始值 在用bp模型进行预测时,误差会特别大!甚至出现的结果不能叫误差!
load p50.mat
load t50.mat
p=p50',
t=t50',
net=newff(minmax(p),,{'tansig','purelin'},'trainlm');
net=initlay(net);
给权值阀值赋值
inputWeights=
inputbias=[-9.854436918404796;3.570030805596352;-1.773581770780901;-4.557901632847051;-5.862101554924009;-6.635235020149124;2.115174813461072;4.275858630573478;]
layerWeights=
layerbias=
inputWeights=net.IW{1,1}
inputbias=net.b{1}
layerWeights=net.LW{2,1}
layerbias=net.b{2}
net.trainParam.epochs=2000;
net.trainParam.goal=0.1;
net.performFcn = 'msereg';
net.trainParam.show=100;
net=train(net,p,t);
a=sim(net,p);
E=t-a;
MSE=mse(E);
e=abs((t-a)./t);
figure(3)
=postreg(a,t);
figure(4)
i=1:1:50;
plot(i,t,'+',i,a,'o','MarkerSize',3);
p_test=;
t_test=sim(net,p_test);
这是我的程序代码
我在预测时,调一组数据进行预测,数据不是50组中的,预测结果误差特大
为什么会出现这样的问题呢? 每次初始化网络时都是随机的,因为newff()函数具有机性,所以训练终止时的误差也不完全相同,结果训练后的权植和阀也不完全相同(当然总体上来讲大致是一样的),因此每次训练后的结果也略有不同。
只有每次的结果不一样,才有可能找到比较理想的网络,找到之后用命令save filename net;保存网络就行了。调用时用命令load filename net; 我在预测时,调一组数据进行预测,数据不是50组中的,预测结果误差特大
为什么会出现这样的问题呢?
我该如何处理呢? 你是说训练后返回的权植和阀值相差特别大? 我是说我用另外一组p值,预测t时,
误差特别大 我得到理想的网络后,权值阀值已确定
如何得到p与t之间的关系式 神经网络训练的过程中,由于BP算法的特性决定了其在训练时,收敛结果具有如下几个特性:
1. 对初值的敏感性,也就是改变初值时收敛结果可能发生变化;
2. 算法收敛收敛后,得到的结果不一定是全局最优
所以出现你所说的现象是正常的,是难以回避的,当然也有一些改进,但都只是对第2种情况的改善 原帖由 caochongwen 于 2006-8-16 10:03 发表
我得到理想的网络后,权值阀值已确定
如何得到p与t之间的关系式
t=f(W*p+b)
页:
[1]
2