如何知道我是不是过度拟合我的神经网络?

时间:2017-09-05 19:36:31

标签: matlab neural-network

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

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

Here is a data sample: U varies at 0.5 step until 10 (0.2 ; 0.5 ; 1.0 ... 10). n varies from 0 to 1 and m varies from 0 until it equals n.

我正在使用Levenberg-Marquartd算法,并且已经玩过多个神经元和隐藏层。鄙视我在其他参数中没有做任何事情。

如果不使用如此庞大的数据集,我怎么知道我是否取得了良好的表现?

以下是MATLAB告诉我的性能:

peformance

1 个答案:

答案 0 :(得分:0)

我建议做以下事情:

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

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

(3)训练你的网络。

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

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

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

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