PDA

查看完整版本 : BP神经网络


linden
2009-03-05, 19:14
>> P=-1:0.1:1;
T=[-0.9602 -0.5770 -0.0729 0.3771 0.6405 0.6600 0.4609 0.1336 -0.2013 -0.4344 -0.5000 -0.3930 -0.1647 0.0988 0.3072 0.3960 0.3449 0.1816 -0.0312 -0.2189 -0.3201];
plot(P,T,'*')
net=newff(minmax(P),[8,1],{'tansig','logsig'},'trainlm');
net.trainParam.epochs=2000;
net.trainParam.goal=0.001;
net=train(net,P,T);
y=sim(net,P);
error=y-T;
res=norm(error);
程序如上,每次运行时结果都不一样,为什么?
还有就是这段程序是从书上抄的,书上说可以达到训练要求,可我试了多次也不行为什么?

tj767061
2009-03-06, 17:46
因为每次训练时的初始权值和阈值都不一样,因此结果不一样

linden
2009-03-07, 14:48
能不能通过设置权值和初值使达到训练目标?
因为每次训练时的初始权值和阈值都不一样,因此结果不一样

草草
2009-03-10, 10:43
哈哈,我是菜鸟,最近一直在搞BP网络,昨天刚看到一个程序和你的类似,也是每次运行结果不同,这是正常的,因为每次训练时的初始权值和阈值都不一样,因此结果不一样,有时候网络会收敛的很快有时候又需要很长时间。我是这样理解的。

倏忽
2009-03-18, 10:25
权阈值是除了结构,最重要的部分,具体值是不可以设置的,但可以规定它们的范围。方法很多,如果你的模型对权阈值要求很高,建议你学学径向基神经网络。:redface:

huichou
2009-04-14, 11:21
不错,好东西,谢谢分享

silas_xue
2009-04-14, 17:15
lz 不太清楚你所指的结果不一样是什么意思? 是指的是训练的收敛过程还是最终结论 前者当然是可能不同的 最终结论 看你的应用是否是基于统计模型下的 如果是的话 那么从期望上来讲 对于成熟的正确的算法 其结果在统计意义上应当是恒定的