Matlab神经网络测试

时间:2012-09-27 16:11:20

标签: matlab neural-network

我创建了一个神经网络,性能很好。通过使用nprtool,我们允许使用输入数据和目标数据测试网络。这是我的问题,用提供的目标数据测试神经网络的目的是什么?是不是测试不应该有目标数据,以便我们可以知道训练好的神经网络在没有目标数据的情况下的表现如何?希望有人会对此作出回应,谢谢=)

3 个答案:

答案 0 :(得分:0)

我不熟悉nprtool,但我怀疑它会将输入数据提供给您的神经网络,然后比较NN的输出数据使用目标数据(并根据该数据计算某种成功率)。

因此,您的NN永远不会看到目标数据,它只是用于衡量效果。

这就像学校练习册的“教师版”。学生(即NN)没有解决方案,但老师会将她/他的答案与他们进行比较(即nprtool)。 (好吧,老师可能/希望知道这个主题,但你明白了。)

答案 1 :(得分:0)

“目标”数据ty所需的y=net(x)用于训练网络的示例。 nprtool做的是将训练集分为三组:训练集,验证集和测试集。

第一个用于实际更新网络。

第二个用于确定网络的性能(注意:此组不以任何方式用于更新网络):因为NN“学习”错误(作为t之间的差异并且验证集上的net(x))减少了。这种趋势最终会停止甚至逆转:这种现象被称为“overfitting”,这意味着NN正在追逐训练集,以“概括”的方式“记忆”它(意思是:表现良好)看不见的数据)。因此,此验证集的目的是确定何时在NN开始过度拟合之前停止训练。这应该回答你的问题。

最后第三组用于外部测试,为您提供一组训练程序未触及的数据。

答案 2 :(得分:0)

即使总数据集[训练,验证和测试]是训练算法的输入,测试数据也绝不用于设计(即训练和验证)网络

total = design + test

design = train + validate

训练数据用于估计权重和偏差

验证数据用于监控非训练数据的设计性能。无论培训数据的性能如何,如果验证性能在6个(默认)时期内持续降低,则终止培训(验证停止)。

这减轻了过度使用过度网络的可怕现象,即使训练集性能提高,非训练数据的性能也会下降。

过度拟合网比训练方程具有更多未知的权重和偏差,从而允许无限多个解。一个简单的例子,用两个未知数过度拟合,但只有一个等式:

已知:a,b,c

FIND:唯一的x1和x2

使用:a * x1 + b * x2 = c

希望这有帮助。

格雷格