我在在线文章/教程或Stack Overflow 问题中看到了一些评论,这些评论表明增加 epoch 的数量会导致过度拟合。但我的直觉告诉我,时期数和过度拟合之间根本不应该有直接关系。所以我正在寻找答案来解释我是对还是错(或者介于两者之间)。
这是我的推理。要过拟合,您需要在模型中有足够的自由参数(我认为这在神经网络中称为“容量”)来生成可以复制样本数据点的函数。如果你没有足够的自由参数,你永远不会过拟合。你可能只是不合适。
所以真的,如果你没有太多的自由参数,你可以运行无限的时期并且永远不会过拟合。如果你有太多的自由参数,那么是的,你拥有的时期越多,你就越有可能到达你过度拟合的地方。但这只是因为运行更多的 epoch 揭示了根本原因:太多的自由参数。真正的损失函数并不关心你运行了多少个 epoch。它在您定义模型结构的那一刻就存在,甚至在您尝试对其进行梯度下降之前。
事实上,我敢说:假设你有计算资源和时间,你应该总是尽可能多地运行 epoch,因为这会告诉你你的模型是否容易过度拟合。无论您运行多少个 epoch,您的最佳模型都将是提供出色训练和验证准确性的模型。
编辑 在阅读更多内容时,我意识到我忘记考虑到您也可以任意改变样本量。给定一个固定模型,较小的样本量更容易过拟合。然后那种让我怀疑我上面的直觉。不过还是很高兴得到答案!