用MATLAB中神经网络工具箱固有函数建立的BP网络,训练精度始终达不到,而且误差也大,该如何解决

我建的两输入一输出的BP网络用于预测,有48组训练样本,28组测试样本,训练的精度达不到要求,而且出来的误差曲线波动很大,误差值也很大,实际输出和预测输出的仿真图不是很好的吻合,是不是该改进算法呢?急求大侠们帮助,谢谢了

除了楼上的方法,还可以修改下神经网络的初始权值,这方面的方法很多,可以改变下初始参数的取值范围,或者用遗传算法搜索下。另外,改变神经网络的训练函数是十分有效的,比如trainscg什么的,还有好几个记不得了,自己找找看!追问

我是用的神经网络工具箱中的函数,不知道怎么改权值,还请值点啊

追答

不知道你用的是net=newcf(minmax(tzk),[S1,S2],{'logsig','purelin'},'trainscg');这种类型的不,最简单的方法是改最后一个参数trainscg,将其换成trainlm或者traingdx试试。MATLAB自己初始的权值一般都比较好。

追问

我用的是net=newff(threshold,[5,1],{'tansig','purelin'},'traingdx'); 后面的训练函数都试过了 我快崩溃了 是不是需要改进算法啊?这位大侠 如果有兴趣一起学习

追答

看似你的神经元数挺少的啊,怎么会出现你说的情况,把你的程序发给我看看!
[email protected]

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-08
调一下隐含层层数。。。隐含层神经元数还有学习速率试试追问

这个我都调过 但是还是达不到好的效果 我怀疑是我选的样本不好

追答

把数据集贴一下?

第2个回答  2012-08-20
还有可能是训练样本数过少。
第3个回答  2012-06-10
哥们我能看一下你的程序吗?[email protected],你发过来看一下!
相似回答