运行更多的 epoch 真的是过度拟合的直接原因吗?

人工智能 神经网络 梯度下降 过拟合
2021-10-24 12:09:00

我在在线文章/教程或Stack Overflow 问题中看到了一些评论,这些评论表明增加 epoch 的数量会导致过度拟合。但我的直觉告诉我,时期数和过度拟合之间根本不应该有直接关系。所以我正在寻找答案来解释我是对还是错(或者介于两者之间)。

这是我的推理。要过拟合,您需要在模型中有足够的自由参数(我认为这在神经网络中称为“容量”)来生成可以复制样本数据点的函数。如果你没有足够的自由参数,你永远不会过拟合。你可能只是不合适。

所以真的,如果你没有太多的自由参数,你可以运行无限的时期并且永远不会过拟合。如果你有太多的自由参数,那么是的,你拥有的时期越多,你就越有可能到达你过度拟合的地方。但这只是因为运行更多的 epoch 揭示了根本原因:太多的自由参数。真正的损失函数并不关心你运行了多少个 epoch。它在您定义模型结构的那一刻就存在,甚至在您尝试对其进行梯度下降之前。

事实上,我敢说:假设你有计算资源和时间,你应该总是尽可能多地运行 epoch,因为这会告诉你你的模型是否容易过度拟合。无论您运行多少个 epoch,您的最佳模型都将是提供出色训练和验证准确性的模型。

编辑 在阅读更多内容时,我意识到我忘记考虑到您也可以任意改变样本量。给定一个固定模型,较小的样本量更容易过拟合。然后那种让我怀疑我上面的直觉。不过还是很高兴得到答案!

1个回答

过拟合问题

在大多数情况下,当您增加很多时期时,您的模型最终会过度拟合。这是因为您的模型达到了不再学习的程度,而是试图记住以前看到的内容。这是过拟合。因此,通常需要在 epoch 数和过拟合之间进行权衡。一般来说,避免过度拟合的一个好方法,除了微调、正则化、dropout 等,是从学习曲线中了解你有什么。在大多数情况下,过拟合会在一些时期过去后发生,因此训练误差仍然会降低,而验证误差会波动或增加。如果是这样,您应该在出现过度拟合和/或验证错误最小之前只保存学习更新。
方法:早停、检查点。

有用的链接:https ://machinelearningmastery.com/learning-curves-for-diagnosing-machine-learning-model-performance/