MATLAB中训练LM算法的BP神经网络

我用MATLAB仿真基于LM算法的BP神经网络训练,为什么学习率、激发函数等参数都不改变的情况下,每次训练结果的误差及训练次数都不一样呢?是否因为是初始阈值等产生的?要怎... 我用MATLAB仿真基于LM算法的BP神经网络训练,为什么学习率、激发函数等参数都不改变的情况下,每次训练结果的误差及训练次数都不一样呢?是否因为是初始阈值等产生的?要怎么样才能解决这个问题?另外,若改变隐层节点数,也要求在同样的条件下进行网络性能对比,要怎么做?谢谢
谢谢 煌兮诸火的答复,
问题找到了,可能是归一化公式premnmx中min和max的问题,很多文献中都说测试数据的归一化也用训练数据归一化时得出的min和max值,用了tramnmx导致测试数据输出结果错的离谱。在现在的程序中不使用tramnmx,而是在训练时,用premnmx归一化,训练网络的误差达到1e-5,再对测试数据用premnmx进行归一化得出另一组min和max值,通过训练好的网络进行结果运算后,再用postmnmx(A2,mint,maxt)【mint和maxt为测试数据归一化时得出的最小最大值;A2为测试输入通过网络得出的输出】对输出进行处理后,得出的结果与测试集的期望输出比较,但误差并未达到1e-5,但是误差绝对值都小于1,不知有何问题?
1、训练数据回代入网络测试,比上面说的另外测试数据测试误差要小很多,虽然也没有达到1e-5这么小,不知为何?
2、[net,tr]=train(net,Pn,Tn); %训练后,网络误差达到1e-5停止
A=sim(net,Pn);
E=A-Tn;
执行后,为何E中每个值并不是1e-5的数量级,最小的为0.0001,最大的可以达到0.0191呢?
谢谢
展开
 我来答
煌兮诸火
2009-04-24 · TA获得超过127个赞
知道小有建树答主
回答量:47
采纳率:0%
帮助的人:0
展开全部
1.初始权值不一样,如果一样,每次训练结果是相同的
2.是
3.在train之前修改权值,IW,LW,b,使之相同
4.取多次实验的均值
一点浅见,仅供参考

训练误差是否降到一定范围内,比如1e-3,
将训练样本回代结果如何,
训练样本进行了预处理,比如归一化,而测试样本未进行同样的处理

这样的归一化似有问题,我也认为“测试数据的归一化也用训练数据归一化时得出的min和max值”,
请参考这个帖子http://www.ilovematlab.cn/thread-27021-1-1.html
测试数据带入训练好的神经网络误差当然不会达到1e-5,这是预测啊。
但将训练数据带入误差必然是1e-5,算法终止就是因为达到这个误差才终止,这个误差是由训练数据的输入、输出以及神经网络的权值、激活函数共同决定的,神经网络训练完后,权值、激活函数定了,同样的数据再代入神经网络,误差会不等于1e-5?
第二个问题:不可能每个值都达到1e-5,1e-5是MSE(mean square error),它们的平方和除以总数再开方,mse(E)必为1e-5
另外,LM算法虽然训练最快,但是预测精度一般不好,不如gdm,gdx
zylq960606
2009-04-22
知道答主
回答量:26
采纳率:0%
帮助的人:0
展开全部
1.初始权值不一样,如果一样,每次训练结果是相同的
2.是
3.在train之前修改权值,IW,LW,b,使之相同
4.取多次实验的均值
一点浅见,仅供参考
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式