当我使用其参数时,为什么newff()无法正常工作!

时间:2011-08-18 10:15:01

标签: matlab neural-network

我的数据集包括29个输入和6个输出。当我使用

net = newff(minmax(Pl),[14 12 8 6]); 

构建我的前馈MLP网络并通过

进行训练
net.trainParam.epochs=50;
net=train(net,Pl,Tl);

网络无法学习我的数据集,并且其错误不会降低到0.7以下,但是当我使用newff函数的参数时,这样:

net=newff(minmax(Pl),[14 12 8 6],{'tansig' 'tansig' 'tansig' 'purelin'},'trainlm');

错误降低得非常快,低于0.0001!不寻常的注意事项是,当我使用前面的代码时,只使用一个包含2个神经元的层:

net=newff(minmax(Pl),[2 6],{'tansig' 'purelin'},'trainlm');

错误再次降至0.2以下,这是值得怀疑的! 请给我一些提示并帮助我了解它们之间的区别:

net = newff(minmax(Pl),[14 12 8 6]);

net=newff(minmax(Pl),[14 12 8 myANN.m],{'tansig' 'tansig' 'tansig' 'purelin'},'trainlm');

1 个答案:

答案 0 :(得分:0)

我认为NEWFF (链接需要登录)的第二个参数应该是目标向量,而不是隐藏层的大小(这是第三个参数)。 / p>

请注意,隐藏图层的默认传输功能为tansig,输出图层的默认传输功能为purelin,默认训练算法为trainlm

最后,请记住,如果要获得可重现的结果,则必须在每次运行开始时手动将随机数生成器重置为固定状态。