xuebaolin 发表于 2007-8-18 10:12

初始权重和域值的设定问题(麻烦各位高手看一下,谢谢!!)

针对BP网络每次训练结果都不一样,有什么对策啊?什么方法比较好?我知道是初始域值和权重的原因。因为要预测,别人必须能够验证我的我的结果,如果我只是随机做,然后找一个最好的结果,但是别人作不出来,是不行的。所以。所做的过程别人必须能够重复,也就是别人可以得到我的结果。
要实现上述目的应该怎么做啊?是不是可以自己设定初始权重和域值?应该怎么做啊?
我看到几句,但是不明白每句的意思,哪位能解释下马?
net=newff(minmax(et_p),,{'tansig','purelin'},'trainlm');
net.iw{1,1}=zeros(size(net.iw{1,1}))+0.5;
net.lw{2,1}=zeros(size(net.lw{2,1}))+0.75;
net.b{1,1}=zeros(size(net.b{1,1}))+0.5;
net.b{2,1}=zeros(size(net.b{2,1}));

还有一个问题,如果网络设定了初始的权重和域值,训练N次,这N次最终的权重和域值是一样的嘛?
我觉得应该不一样,可是,结果是如果我设定了权重和域值,无论训练多少次,其预测结果都是一样的,而且每个最终的预测值所对应最终的权重和域值也完全一样(换句话说,如果你不设定初始权重,让我网络自己初始化,每训练一次,结果都会不同;现在我只不过设定了一个初始值而已,为什么N次训练之后结果都一样呢?)。
这是怎么回事啊?

麻烦高手能认真解答一下,多谢!!!!

hahaer 发表于 2007-8-18 18:24

楼主这个问题问的本身有问题

BP网络每次训练结果不可能一样
但是最终目的会一样
初始权重一般随机化初始设置
你自己指定显然是有问题

但是网络经过训练后收敛
不会影响你的预测效果
别人来用也没有问题

训练结果的权重和阈值是不可能一样的
但是 对 结果并无影响
就象你去一个 目的地
但是有N条路径可以选择一样
但是最终你会走到目的地

数学原因就在于你初始化权值(决定了搜索起点)每次不一样
网络作为一个模型
其组合输出的结果是靠各个神经元的共同作用
如果你设定了固定的初始值
在相同的训练样本和网络拓扑结构之下,包括学习步长,那你最终得到的结果是一样的
不过没有什么实际意义!

xuebaolin 发表于 2007-8-19 09:39

s首先感谢你的解答!你提到:
但是网络经过训练后收敛
不会影响你的预测效果
别人来用也没有问题

我的问题是:我可能训练N次,其中有一次的训练结果(包括用其进行预测的结果最好)。别人如果想得到我这次的结果,应该怎么做?

hahaer 发表于 2007-9-4 21:04

如果你想保留某次最优的训练结果
你应该对训练的结果进行保存!
也就是保存你最佳的网络模型以供以后应用

此外如果用于预测
好像每次你都应该记录网络模型
如果你没有记录
训练出来也没有意义啊

lxq 发表于 2007-9-6 15:06

训练网络其实是个曲面寻优的过程

权值和阈值影响了它的寻优方向和速率

结果好坏与初始点的选举也有关系
页: [1]
查看完整版本: 初始权重和域值的设定问题(麻烦各位高手看一下,谢谢!!)