【问题标题】:How to know if I am not overfitting my neural network?如何知道我是否没有过度拟合我的神经网络?
【发布时间】:2017-09-06 10:43:55
【问题描述】:

我正在尝试使用 NNTool 在 MATLAB 上构建神经网络。我有一个庞大的数据集,有超过 2 万个样本。它有3个输入参数和1个输出。

这是一个数据样本:U 以 0.5 步长变化,直到 10 (0.2 ; 0.5 ; 1.0 ... 10)。 n 从 0 变化到 1,m 从 0 变化直到等于 n。

我正在使用 Levenberg-Marquartd 算法,并且一直在研究神经元和隐藏层的数量。鄙视这一点,我在其他参数上什么也没做。

在不过度拟合如此庞大的数据集的情况下,我如何知道自己是否取得了良好的性能?

以下是 MATLAB 告诉我的有关性能的信息:

【问题讨论】:

  • 我建议在此处删除此问题并将其移至cross validated。虽然防止过度拟合没有简单的答案,但不难确定您的模型何时过度拟合。交叉验证的人员可以很好地引导您了解详细信息。

标签: matlab neural-network


【解决方案1】:

我建议执行以下操作:

(1) 将您的样本数据分解为训练/测试集。例如,尝试 30% / 70%。

(2) 选择一种配置:隐藏层数和每层神经元数。

(3) 训练您的网络。

(4) 将您的训练错误与测试错误进行比较。

(5) 选择其他网络配置。

(6) 执行步骤 (3) 和 (4)。

继续执行此过程,直到您对数据有更好的感觉。如果您的训练误差相对于测试误差非常小,则可能是您的网络配置过度拟合了您的数据集。

【讨论】:

  • 使用 nntool 代替命令行有什么缺点吗?
  • 我不确定,但我确实找到了一些对你有用的东西! quora.com/…
  • 如果您认为我的答案合适,请选择它作为答案,因为这是我们在社区中获得声誉的方式。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-13
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 2016-09-01
  • 2014-10-23
  • 1970-01-01
相关资源
最近更新 更多