首页 文章

Matlab神经网络测试

提问于
浏览
2

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

3 回答

  • 0

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

    So your NN will never see the target data, it's just used to measure the performance.

    它没有解决方案,但老师会将她/他的答案与他们进行比较(即 nprtool ) . (好吧,老师可能/希望知道这个主题,但你明白了 . )

  • 0

    "target"数据 t 是用于训练网络的 y=net(x)y . nprtool做的是将训练集分为三组:训练集,验证集和测试集 .

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

    第二个用于确定网络的性能(注意:此组不以任何方式用于更新网络):作为NN "learns",验证集上的错误(作为 tnet(x) 之间的差异)减小 . 这种趋势最终会停止甚至逆转:这种现象被称为“记忆”,这是以推广能力为代价的(意思是:用看不见的数据表现良好) . 因此,此验证集的目的是确定何时在NN开始过度拟合之前停止训练 . 这应该回答你的问题 .

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

  • 0

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

    总=设计测试

    design = train validate

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

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

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

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

    知道:a,b,c

    FIND:唯一的x1和x2

    使用:a * x1 b * x2 = c

    希望这可以帮助 .

    格雷格

相关问题