MATLAB 神经网络性能数据结构

MATLAB Neural Network Performance data structures

我在 MATLAB 上使用神经网络逼近余弦函数。训练完成后,工作空间会输出一些数据结构。其中有 4 个结构(好吧,确实是值),其中包含网络的性能结果。

对于性能分析,你得到一个performance结构,trainPerformancetestPerformancevalPerformance

虽然我知道最后三个结构的含义,但第一个让我感到困惑,因为它的值与其他结构不同。

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

% 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)

performance结构和其他三个有什么区别?

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

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

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

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

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