【问题标题】:why too many epochs will cause overfitting?为什么太多的epoch会导致过拟合?
【发布时间】:2019-05-25 08:08:49
【问题描述】:

我正在阅读 a deep learning with python 书。 读完第 4 章,对抗过度拟合,我有两个问题。

  1. 为什么增加 epoch 的数量会导致过拟合? 我知道增加 epoch 的数量会涉及更多的梯度下降尝试,这会导致过度拟合吗?

  2. 在对抗过拟合的过程中,会不会降低准确率?

【问题讨论】:

  • 这个问题与编程无关,属于CrossValidated,我已将其标记为这样。

标签: machine-learning gradient-descent


【解决方案1】:

我不确定您正在阅读哪本书,因此在我具体回答问题之前,一些背景信息可能会有所帮助。

首先,增加 epoch 的数量不一定会导致过度拟合,但肯定可以。如果学习率和模型参数很小,可能需要很多 epoch 才能导致可测量的过拟合。也就是说,进行更多培训是很常见的。

为了保持问题的正确性,重要的是要记住,我们最常使用神经网络来构建可用于预测的模型(例如,预测图像是否包含特定对象或变量的值将在下一个步骤)。

我们通过迭代调整权重和偏差来构建模型,以便网络可以充当在输入数据和预测输出之间进行转换的函数。我们转向这样的模型有很多原因,通常是因为我们只是不知道函数是/应该是什么,或者函数太复杂而无法进行分析开发。为了使网络能够对如此复杂的功能进行建模,它本身必须能够高度复杂。虽然这种复杂性很强大,但也很危险!该模型可能变得如此复杂,以至于它可以非常精确地有效地记住训练数据,但随后无法作为适用于训练集之外数据的有效通用函数。 IE。它可能会过拟合。

你可以把它想象成一个人(模型)通过一遍又一遍地烘焙水果蛋糕(训练数据)来学习烘焙——很快他们将能够在不使用的情况下烘焙出出色的水果蛋糕一个食谱(培训),但他们可能无法很好地烘烤海绵蛋糕(看不见的数据)。

回到神经网络!由于神经网络过拟合的风险很高,因此深度学习工程师可以使用许多工具和技巧来防止过拟合,例如使用 dropout。这些工具和技巧统称为“正则化”。

这就是我们使用涉及测试数据集的开发和训练策略的原因——我们假装测试数据是看不见的,并在训练期间对其进行监控。您可以在下图中看到一个示例 (image credit)。大约 50 个 epoch 后,测试误差开始增加,因为模型开始“记忆训练集”,尽管训练误差保持在最小值(通常训练误差会继续改善)。

所以,回答你的问题:

  1. 允许模型继续训练(即更多的 epoch)会增加权重和偏差被调整到模型在看不见的(或测试/验证)数据上表现不佳的风险。该模型现在只是“记忆训练集”。

  2. 持续的 epoch 可能会提高训练准确度,但这并不一定意味着模型根据新数据做出的预测会准确 - 通常情况会变得更糟。为了防止这种情况,我们使用测试数据集并在训练期间监控测试准确性。这使我们能够就模型是否对看不见的数据变得更加准确做出更明智的决定。

我们可以使用一种称为提前停止的技术,即一旦测试准确度在少量时期后停止提高,我们就停止训练模型。提前停止可以被认为是另一种正则化技术。

【讨论】:

  • 在上图中,y 轴上的单位是Error,而不是Accuracy。我认为你应该改写那段,以“这就是我们使用开发和培训的原因......”开头。
【解决方案2】:

更多的体面尝试(大量时期)可以让您非常接近理想情况下的损失函数的全局最小值,现在由于我们对测试数据一无所知,因此精确地拟合模型以预测类训练数据的标签可能会导致模型失去它的泛化能力(对看不见的数据的错误)。在某种程度上,毫无疑问,我们想从训练数据中学习输入-输出关系,但我们不能忘记最终目标是让模型在看不见的数据上表现良好。因此,保持接近但不是非常接近全局最小值是个好主意。 但是,我们仍然可以问,如果我达到全局最小值会怎样,这可能是什么问题,为什么它会导致模型在看不见的数据上表现不佳? 对此的答案可能是,为了达到全局最小值,我们将尝试拟合最大量的训练数据,这将导致模型非常复杂(因为不太可能具有更简单的所选空间分布有幸提供给我们的火车数据的数量)。但是我们可以假设的是,大量看不见的数据(比如面部识别)将具有更简单的空间分布,并且需要更简单的模型来更好地分类(我的意思是整个看不见的数据世界,肯定会有一个模式我们不能仅仅因为我们可以以训练数据的形式访问其中的一小部分)

如果你从一个分布中增量观察点(比如 50,100,500, 1000 ...),我们肯定会发现数据的结构很复杂,直到我们观察到足够多的点(最大值:整个分布),但是一旦我们观察到足够多的点,我们就可以期望观察到数据中存在的更简单的模式,这些模式可以很容易地分类。

简而言之,与整个数据集相比,一小部分训练数据应该具有复杂的结构。而对训练数据的过度拟合可能会导致我们的模型在测试数据上的表现更差。

在日常生活中强调上述现象的一个类似例子如下:-

假设我们一生中遇到了 N 人,在遇到他们时,我们自然而然地向他们学习(我们成为我们周围的人)。现在,如果我们深受每个人的影响,并试图密切关注所有人的行为,我们就会发展出一种与我们遇到的人非常相似的性格,但另一方面,我们会开始评判每个与我不同的人—— > 不像我们已经见过的人。由于我们非常努力地训练以尽量减少与我们已经遇到的人的差异(训练数据),因此判断力会影响我们与新群体的协调能力。在我看来,这是过度拟合和泛化能力损失的一个很好的例子。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-05
    • 1970-01-01
    • 2011-04-23
    相关资源
    最近更新 更多