神经网络 - 为什么我的训练误差会随着我添加隐藏单位(神经元)而增加?

时间:2017-04-04 19:37:24

标签: validation neural-network training-data

我试图优化MLP中隐藏单位的数量。

我使用k-fold交叉验证,10折 - 每次折叠16200个训练点和1800个验证点。

当我使用隐藏单位从1:10开始运行网络时,我发现最小错误始终发生在2(NMSE约为7)。 3略高(NMSE约为11)和4个或更多隐藏单位,误差保持不变,大约为14或15,无论我添加多少。

为什么会这样?

我发现很难相信过度拟合正在发生,因为使用了大量的数据点(全部10倍,即162000个训练点,尽管每次重复9次)。

非常感谢您的任何帮助或建议!

1 个答案:

答案 0 :(得分:1)

如果输入是电压和电流,问题是关于产生的功率,那么它只是P = V * I.即使你有一些噪音,这种关系仍然是线性的。在这种情况下,简单的线性模型可以做得很好 - 并且可以更好地解释!这就是为什么简单的ANN工作得最好而且更复杂的是过度拟合,因为它寻找非线性关系(不存在,但它会做任何会使成本函数最小化的事情)。

总结一下,我建议检查一个简单的线性模型。此外,由于您有很多数据点,因此对training, test and validation sets进行50-25-25分割。查看您的成本函数,看看它如何随错误率而变化。