2

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

4

3 回答 3

0

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

所以你的神经网络永远不会看到目标数据,它只是用来衡量性能。

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

于 2012-09-27T16:18:25.140 回答
0

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

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

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

最后,第三组用于外部测试,让您的一组数据不受训练过程的影响。

于 2012-09-27T17:38:00.390 回答
0

尽管整个数据集 [训练、验证和测试] 是训练算法的输入,但测试数据绝不用于设计(即训练和验证)网络

总计 = 设计 + 测试

设计 = 训练 + 验证

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

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

这减轻了 OVERTRAINING AN OVERFIT NET 的可怕现象,即使训练集的性能正在提高,非训练数据的性能也会下降。

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

已知:a、b、c

查找:唯一的 x1 和 x2

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

希望这可以帮助。

格雷格

于 2017-11-22T04:09:40.613 回答