matlab BP神经网络中,最后算出的MSE值应该为多少?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab BP神经网络中,最后算出的MSE值应该为多少?相关的知识,希望对你有一定的参考价值。

我用matlab做了个BP神经网络,10输入,3输出,50个样本,训练出来,最后仿真时,和测试数据的的误差,就是MSE的值有一百多。。。我想知道,如果网络合格的话,MSE的值应该不大于多少啊?

表示对网络训练结果的测试。

Mse的意思是均方误差,当然越小越好。但这和你有多少训练样本,有多少训练课程有很大关系。

这个没有标准,每个人都知道零偏差是最好的。但是,神经网络本身的致命缺陷被消除了,因为它是对解析表达式的迭代收敛逼近,所以不可能达到零误差。

这样只能根据用户的工程技术要求来判断,误差指标应该小于工程误差范围啊。但对于科学研究来说,只能具体分析。量化没有明确或绝对的意义。

扩展资料:

BP神经网络的计算过程包括正演计算过程和反演计算过程。在正向传播过程中,输入模式从输入层到隐藏单元层,再到输出层进行逐层处理。

每一层神经元的状态只影响下一层神经元的状态。如果在输出层不能得到想要的输出,则误差信号将沿原连接路径反向传播返回,并对每个神经元的权值进行修改,使误差信号最小化。

参考资料:百度百科-BP神经网络

参考技术A mse表示均方差,当然越小越好。但是这与你训练样本的多少,训练次数都有很大关系。

你试试看径向基神经网络和高斯型网络能不能更好的减低训练误差,神经网络就是一个不断调试的学习过程。追问

这个我也知道,但是我再不断调试的过程中,需要一个标准,我想知道,MSE到底达到大概多少时,我的网络才算是训练合格了?

追答

这个其实没有统一的标准,任何人都知道0偏差当然是最好。但是根绝神经网络本身致命的缺陷,由于它是迭代收敛逼近解析式,所以不可能达到0误差。

这只有根据使用者的工程技术要求来加以判断,至于你这个误差指标肯定应该在小于工程误差范围内啊。但是对于科研研究,也只能具体情况具体分析。定量一说没有具体绝对一说的。

追问

好吧,可是我这里并没有什么工程误差范围。。。就您来看,那如果MSE是六十几,合适吗?我主要是心里完全没谱,不知道MSE一旦达到多少了,那么就肯定是不合理的?一般情况下,像我这种10输入,3输出的情况,输出的值前两个都是一百左右,最后一个是40左右,MSE多少才不会很离谱呢?

追答

你这样,试试用别的神经网络做一个对比。然后请教你的老师。实际的东西太难说了。但是60几MSE不是很理想,因为你的输入才10个。

追问

唉唉,调了一天,终于MSE值可以等于14了,我想问,14合适么?还是说14仍然明显太大了?(话说我们老师从来不管我们的。。。)

追答

你们老师也太不负责了。对了,你尝试换一换别的激励函数。logsig,tansig看看。

追问

恩 我都换了试了的,调到最后最低也就到14了,是不是14仍然还是过大了啊?要至少降到零点几才合适?

追答

如果按照你从100多降到这么大,已经不错了。但是这个真的没有标准的。需要按照你的实际情况来定啊。我不懂你这个神经网络的课题来源,我不能提供给你准确的指导。

本回答被提问者和网友采纳
参考技术B 不同问题mse差很大的 而且哥哥你注意了,你用的是mse,和数据本身的数量级相关性很大追问

我是三个输出,正确的话,前两个的值一般是在90~140,第三个的值一般在30~50,这种情况下,MSE是多少的范围比较合适的呢?
MSE一百多,是不是肯定是不对的?六十多呢?是不是像我这种的,一般情况下都最好不要大于一?或者不要大于0.1?

追答

这很难说的。应该有r输出或者error histgram吧

追问

调成14了,14这个值合适么?还是说仍然还是太大了?

追答

你看看误差分布如果很集中应该就可以了

追问

新手啊,这个误差分布是怎么看呢?可以说详细点么?或者给个这样的命令语句吧?

追答

神经网络的界面里面有个按钮就是误差分布图。 我的是2010b

BP神经网络matlab源程序代码讲解

采用2个隐层,举个例子就最好了,谢谢

参考技术A newff 创建前向BP网络格式:
net = newff(PR,[S1 S2...SNl],TF1 TF2...TFNl,BTF,BLF,PF)

其中:PR —— R维输入元素的R×2阶最大最小值矩阵; Si —— 第i层神经元的个数,共N1层; TFi——第i层的转移函数,默认‘tansig’; BTF—— BP网络的训练函数,默认‘trainlm’; BLF—— BP权值/偏差学习函数,默认’learngdm’ PF ——性能函数,默认‘mse’;(误差)

e.g.
P = [0 1 2 3 4 5 6 7 8 9 10];T = [0 1 2 3 4 3 2 1 2 3 4];
net = newff([0 10],[5 1],'tansig' 'purelin');net.trainparam.show=50; %每次循环50次net.trainParam.epochs = 500; %最大循环500次
net.trainparam.goal=0.01; %期望目标误差最小值
net = train(net,P,T); %对网络进行反复训练
Y = sim(net,P)Figure % 打开另外一个图形窗口
plot(P,T,P,Y,'o')追问

出现这样的错误是怎么回事?

追答

Y = sim(net,P)Figure % 打开另外一个图形窗口
不i好意思,这句改成如下
Y = sim(net,P)
Figure % 打开另外一个图形窗口

追问

不好意思,还是有问题

可以留个QQ吗

追答

Figure改成小写:
figure
或者把这句去掉

追问

可以留个QQ吗

本回答被提问者采纳

以上是关于matlab BP神经网络中,最后算出的MSE值应该为多少?的主要内容,如果未能解决你的问题,请参考以下文章

BP神经网络matlab源程序代码讲解

matlab中建立bp神经网络的函数newff的第二个参数的问题

matlab建立bp神经网络如何设置两个隐含层呢?

MATLAB神经网络训练结果各参数解释

毕业设计/Matlab系列基于PCA和BP神经网络的人脸识别系统(附matlab代码)

毕业设计/Matlab系列基于BP神经网络的图像压缩技术及实现