神经网络的哪些元素会导致过度拟合?

机器算法验证 机器学习 神经网络 数理统计 预测模型 过拟合
2022-03-26 16:06:05

我对神经网络很陌生。我正在使用 Keras(TensorFlow 后端)在具有大约 5000 个观察值和 4 个特征的数据集上运行一个简单的 ANN。

我在神经网络中尝试不同的参数和类似的东西,然后绘制训练和测试错误。例如,我增加/减少了 batch_size,我增加/减少了 epoch 的数量,我增加/减少了我使用的数据量,我增加/减少了第一个也是唯一一个隐藏层中的节点数量,我增加/减少了数量隐藏层等等。

绘制训练和测试错误表明其中一些可能导致过度拟合。所以这是我的问题:

NN 的哪些特征会导致过度拟合?我错过了哪些?[一般来说!]

  1. 增加/减少批量大小。
  2. 增加/减少 epoch 大小
  3. 增加/减少第一个隐藏层(或其他层)中的神经元数量。
  4. 增加/减少隐藏层的数量

我的猜测是增加神经元和层的数量会导致过度拟合。增加 epoch 的数量不会,而增加批量大小可能会导致过度拟合。

这个对吗?与我们拥有的样本数量无关,其中哪些可能导致过度拟合?为什么?

此外,神经网络的哪些其他特征可能导致过度拟合?

1个回答

增加隐藏单元和/或层的数量可能会导致过度拟合,因为这将使神经网络更容易记住训练集,即学习一个完美分离训练集但不能泛化到看不见的数据的函数.

关于批量大小:与学习率相结合,批量大小决定了您学习的速度(收敛到解决方案)通常这些参数的错误选择会导致学习缓慢或无法收敛到解决方案,而不是过度拟合。

epochs 的数量是你迭代整个训练集的次数,因此,如果你的网络容量很大(很多隐藏单元和隐藏层),你训练的时间越长,你越有可能过度拟合. 为了解决这个问题,您可以使用提前停止,即当您训练神经网络时,只要外部验证集上的误差不断减少而不是固定数量的 epoch。

此外,为了防止整体过度拟合,您应该使用正则化一些技术,包括对权重和/或 dropout 进行 l1 或 l2 正则化。最好拥有一个容量超过必要的神经网络并使用正则化来防止过度拟合,而不是试图完美地调整隐藏单元和层的数量。