我正在尝试使用 NNTool 在 MATLAB 上构建神经网络。我有一个巨大的数据集,有超过 20k 的样本。它有 3 个输入参数和 1 个输出。
这是一个数据样本:U 以 0.5 步长变化,直到 10 (0.2 ; 0.5 ; 1.0 ... 10)。 n 从 0 到 1 变化,m 从 0 变化直到等于 n。
我正在使用 Levenberg-Marquartd 算法,并且一直在研究神经元和隐藏层的数量。鄙视一下,其他参数我什么也没做。
在不使用如此庞大的数据集进行过拟合的情况下,我如何知道自己是否取得了良好的性能?
以下是 MATLAB 告诉我的有关性能的信息:
我建议执行以下操作:
(1) 将样本数据分解为训练/测试集。例如尝试 30% / 70%。
(2) 选择配置:隐藏层数和每层神经元数。
(3) 训练你的网络。
(4) 将训练误差与测试误差进行比较。
(5) 选择其他网络配置。
(6) 执行步骤(3)和(4)。
继续执行此过程,直到您对数据有更好的感觉。如果您的训练误差相对于测试误差非常小,那么您的网络配置很可能会过度拟合您的数据集。
这条曲线表明,如果训练和测试之间的误差非常低,您的模型是最合适的。因此它是一个最佳拟合模型。您可以查看该网站以获取更多信息:https://medium.com/@datascienceeurope/do-you-know-overfitting-and-underfitting-f27f87ac2f37。谢谢你