我在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是针对当前的迭代。
答案 0 :(得分:1)
在进行神经网络时,您通常会将数据分成3个子集:培训,验证和测试。有人在这个网站上有一个很好的问题和答案,关于这些是什么以及为什么:
whats is the difference between train, validation and test set, in neural networks?
在您的情况下,您似乎在测试数据的每个子集以及整个数据集中的性能!因此,performance
是性能NN使用所有数据,train/val/test-performance
是每个提到的数据子集的性能。
确保您正确理解这3个子集是什么,因为它对于理解NN的性能至关重要