MATLAB神经网络性能数据结构

时间:2015-01-15 10:15:18

标签: matlab neural-network

我在MATLAB上使用神经网络逼近余弦函数。当训练完成时,在工作空间上输出许多数据结构。其中包括4个结构(嗯,值确实),其中包含网络的性能结果。

对于性能分析,您将获得性能结构, trainPerformance testPerformance valPerformance

虽然我知道最后三个结构意味着什么,但第一个结构令我困惑,因为它与其他结构的价值不同。

我正在使用神经网络工具箱。

% Train the Network
[net,tr] = train(net,inputs,targets);

% Test the Network
outputs = net(inputs);
errors = gsubtract(targets,outputs);
performance = perform(net,targets,outputs)

% Recalculate Training, Validation and Test Performance
trainTargets = targets .* tr.trainMask{1};
valTargets = targets  .* tr.valMask{1};
testTargets = targets  .* tr.testMask{1};
trainPerformance = perform(net,trainTargets,outputs)
valPerformance = perform(net,valTargets,outputs)
testPerformance = perform(net,testTargets,outputs)

性能结构与其他三种结构有什么区别?

我想我刚刚意识到性能是网络的整体结果,而trainPerformance是针对当前的迭代。

1 个答案:

答案 0 :(得分:1)

在进行神经网络时,您通常会将数据分成3个子集:培训验证测试。有人在这个网站上有一个很好的问题和答案,关于这些是什么以及为什么:

whats is the difference between train, validation and test set, in neural networks?

在您的情况下,您似乎在测试数据的每个子集以及整个数据集中的性能!因此,performance是性能NN使用所有数据,train/val/test-performance是每个提到的数据子集的性能。

确保您正确理解这3个子集是什么,因为它对于理解NN的性能至关重要