【发布时间】:2011-08-19 00:02:13
【问题描述】:
我的数据集包括 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');
?
【问题讨论】:
-
您使用的是哪个版本的 MATLAB?另外,不要使用太多隐藏层。你需要一个,也许两个。跨多个层的反向传播效果不佳。
-
您的输入/目标数据的维度是多少?
标签: matlab neural-network