我可以有太多的数据吗?

机器算法验证 机器学习 数据集 神经网络
2022-03-28 18:21:46

我正在为一个非常简单的任务训练大量的神经网络。其中 10 个网络具有相同的配置,但具有不同的数据量。10 个网络每个都有一个隐藏层,其中有 2 个神经元。第一个网络有 1.000 个训练样本,接下来是 2.000 个,最后一个网络有 10.000 个训练样本。

第一个网络的 1000 个训练示例是第二个网络的 2000 个训练示例的子集,第二个网络也是 3000 个训练示例的子集,依此类推。

我使用 MATLAB 中的 NN-Toolbox 中的构建来训练我的网络,我使用的是 Levenberg-Marquardt 算法。当我训练网络时,它们的均方误差都在 0.007 左右(这对于我的特定问题来说似乎是公平的)。唯一不同的是第一个,它实现了大约 0.002 的 MSE。

在我用数据训练我的网络之后,我在一些我没有用于训练的测试数据上测试它们。现在的问题是,具有 1000 个训练示例的网络严重优于其他网络。从 MSE 分数来看,这似乎是公平的,但我不明白为什么拥有更多可用数据的网络,甚至网络使用的数据,都无法更好地学习参数。

是否存在数据过多之类的问题?

1个回答

听起来您训练的网络使用更多数据过度拟合该数据,因此在不同数据上表现更差。网络应该学习的概念可能从小数据集中很明显,但是在另一个集中添加更多数据会使其模糊(甚至将其转换为不同的概念)。

减轻这种影响的一种方法是确保不同预测的分布在训练和测试数据(分层)中大致相同。或者,您可以使用交叉验证来训练和评估您的网络