为什么太多的epoch会导致过拟合?
why too many epochs will cause overfitting?
我正在阅读深度学习 python 一书。
阅读第 4 章“对抗过度拟合”后,我有两个问题。
为什么增加轮数会导致过拟合?
我知道增加 epoch 的数量会涉及更多的梯度下降尝试,这会导致过度拟合吗?
在对抗过拟合的过程中,准确率会不会降低?
我不确定你在读哪本书,所以在我具体回答问题之前,一些背景信息可能会有所帮助。
首先,增加epoch的数量不一定会导致过拟合,但肯定会过拟合。如果学习率和模型参数很小,可能需要很多 epoch 才能导致可测量的过拟合。也就是说,进行更多培训是很常见的。
为了正确看待这个问题,请务必记住,我们最常使用神经网络来构建可用于预测的模型(例如,预测图像是否包含特定对象或变量的值是多少)在下一个时间步)。
我们通过迭代调整权重和偏差来构建模型,以便网络可以充当在输入数据和预测输出之间进行转换的函数。我们出于多种原因转向此类模型,通常是因为我们不知道函数 is/should 是什么,或者函数太复杂而无法分析开发。为了使网络能够对此类复杂功能进行建模,它本身必须具有高度复杂性。虽然这种复杂性很强大,但也很危险!该模型可能变得非常复杂,以至于它可以非常准确地有效地记住训练数据,但随后无法充当适用于训练集之外的数据的有效通用函数。 IE。它可能会过拟合。
你可以把它想象成有点像一个人(模型)通过一遍又一遍地只烤水果蛋糕(训练数据)来学习烘焙——很快他们就能烤出一个很棒的水果蛋糕没有使用食谱(培训),但他们可能无法很好地烘烤海绵蛋糕(看不见的数据)。
回到神经网络!由于神经网络过度拟合的风险很高,因此深度学习工程师可以使用许多工具和技巧来防止过度拟合,例如使用 dropout。这些工具和技巧统称为 'regularisation'.
这就是我们使用涉及测试数据集的开发和训练策略的原因——我们假装测试数据是看不见的,并在训练期间对其进行监控。您可以在下图中看到这样的示例 (image credit)。大约 50 个 epoch 后,随着模型开始 'memorise the training set',测试误差开始增加,尽管训练误差保持在其最小值(通常训练误差会继续改善)。
所以,回答你的问题:
允许模型继续训练(即更多时期)会增加权重和偏差被调整到模型在未见(或test/validation)上表现不佳的程度的风险数据。该模型现在只是 'memorising the training set'.
持续的 epoch 可能会提高训练的准确性,但这并不一定意味着模型对新数据的预测是准确的——通常它实际上会变得更糟。为了防止这种情况,我们使用测试数据集并在训练期间监控测试准确性。这使我们能够就模型对于未见数据是否变得更加准确做出更明智的决定。
我们可以使用一种称为 early stopping 的技术,一旦测试准确度在少量 epoch 后停止提高,我们就停止训练模型。提前停止可以被认为是另一种正则化技术。
更多的体面尝试(大量的时期)可以让你非常接近理想情况下损失函数的全局最小值,现在因为我们对测试数据一无所知,所以精确地拟合模型来预测训练数据的 class 标签可能会导致模型失去泛化能力(对未见数据的错误)。在某种程度上,毫无疑问我们想从训练数据中学习输入输出关系,但我们不能忘记最终目标是让模型在看不见的数据上表现良好。因此,保持接近但不是非常接近全局最小值是个好主意。
但是,我们仍然可以问,如果我达到全局最小值会怎样,这会有什么问题,为什么它会导致模型在看不见的数据上表现不佳?
对此的答案可能是,为了达到全局最小值,我们将尝试拟合最大量的列车数据,这将导致一个非常复杂的模型(因为不太可能有一个更简单的所选空间分布幸运的是我们可以使用的火车数据的数量)。但是我们可以假设大量看不见的数据(比如面部识别)将具有更简单的空间分布,并且需要更简单的模型才能更好地 classification(我的意思是整个看不见的数据世界,将肯定有一个我们无法观察到的模式,只是因为我们可以以训练数据的形式访问它的一小部分)
如果你从一个分布中逐渐观察点(比如 50,100,500, 1000 ...),我们肯定会发现数据的结构很复杂,直到我们观察到足够多的点(最大值:整个分布) ,但是一旦我们观察到足够多的点,我们就可以期望观察到数据中存在的更简单的模式,这些模式可以很容易地 class 化。
简而言之,与整个数据集相比,一小部分火车数据应该具有复杂的结构。并且过度拟合训练数据可能会导致我们的模型在测试数据上表现更差。
一个类似的例子来强调日常生活中的上述现象如下:-
假设我们一生中遇到过 N 个人,遇到他们时我们自然会向他们学习(我们成为我们周围的人)。现在,如果我们深受每个人的影响,并试图非常密切地调整所有人的行为,我们就会发展出一种与我们遇到的人非常相似的个性,但另一方面,我们会开始评判每个与我不同的人—— > 不像我们已经见过的人。变得有判断力会损害我们适应新群体的能力,因为我们非常努力地训练以尽量减少与我们已经遇到的人(训练数据)的差异。根据我的说法,这是过度拟合和 genralazition 能力损失的一个很好的例子。
我正在阅读深度学习 python 一书。 阅读第 4 章“对抗过度拟合”后,我有两个问题。
为什么增加轮数会导致过拟合? 我知道增加 epoch 的数量会涉及更多的梯度下降尝试,这会导致过度拟合吗?
在对抗过拟合的过程中,准确率会不会降低?
我不确定你在读哪本书,所以在我具体回答问题之前,一些背景信息可能会有所帮助。
首先,增加epoch的数量不一定会导致过拟合,但肯定会过拟合。如果学习率和模型参数很小,可能需要很多 epoch 才能导致可测量的过拟合。也就是说,进行更多培训是很常见的。
为了正确看待这个问题,请务必记住,我们最常使用神经网络来构建可用于预测的模型(例如,预测图像是否包含特定对象或变量的值是多少)在下一个时间步)。
我们通过迭代调整权重和偏差来构建模型,以便网络可以充当在输入数据和预测输出之间进行转换的函数。我们出于多种原因转向此类模型,通常是因为我们不知道函数 is/should 是什么,或者函数太复杂而无法分析开发。为了使网络能够对此类复杂功能进行建模,它本身必须具有高度复杂性。虽然这种复杂性很强大,但也很危险!该模型可能变得非常复杂,以至于它可以非常准确地有效地记住训练数据,但随后无法充当适用于训练集之外的数据的有效通用函数。 IE。它可能会过拟合。
你可以把它想象成有点像一个人(模型)通过一遍又一遍地只烤水果蛋糕(训练数据)来学习烘焙——很快他们就能烤出一个很棒的水果蛋糕没有使用食谱(培训),但他们可能无法很好地烘烤海绵蛋糕(看不见的数据)。
回到神经网络!由于神经网络过度拟合的风险很高,因此深度学习工程师可以使用许多工具和技巧来防止过度拟合,例如使用 dropout。这些工具和技巧统称为 'regularisation'.
这就是我们使用涉及测试数据集的开发和训练策略的原因——我们假装测试数据是看不见的,并在训练期间对其进行监控。您可以在下图中看到这样的示例 (image credit)。大约 50 个 epoch 后,随着模型开始 'memorise the training set',测试误差开始增加,尽管训练误差保持在其最小值(通常训练误差会继续改善)。
所以,回答你的问题:
允许模型继续训练(即更多时期)会增加权重和偏差被调整到模型在未见(或test/validation)上表现不佳的程度的风险数据。该模型现在只是 'memorising the training set'.
持续的 epoch 可能会提高训练的准确性,但这并不一定意味着模型对新数据的预测是准确的——通常它实际上会变得更糟。为了防止这种情况,我们使用测试数据集并在训练期间监控测试准确性。这使我们能够就模型对于未见数据是否变得更加准确做出更明智的决定。
我们可以使用一种称为 early stopping 的技术,一旦测试准确度在少量 epoch 后停止提高,我们就停止训练模型。提前停止可以被认为是另一种正则化技术。
更多的体面尝试(大量的时期)可以让你非常接近理想情况下损失函数的全局最小值,现在因为我们对测试数据一无所知,所以精确地拟合模型来预测训练数据的 class 标签可能会导致模型失去泛化能力(对未见数据的错误)。在某种程度上,毫无疑问我们想从训练数据中学习输入输出关系,但我们不能忘记最终目标是让模型在看不见的数据上表现良好。因此,保持接近但不是非常接近全局最小值是个好主意。 但是,我们仍然可以问,如果我达到全局最小值会怎样,这会有什么问题,为什么它会导致模型在看不见的数据上表现不佳? 对此的答案可能是,为了达到全局最小值,我们将尝试拟合最大量的列车数据,这将导致一个非常复杂的模型(因为不太可能有一个更简单的所选空间分布幸运的是我们可以使用的火车数据的数量)。但是我们可以假设大量看不见的数据(比如面部识别)将具有更简单的空间分布,并且需要更简单的模型才能更好地 classification(我的意思是整个看不见的数据世界,将肯定有一个我们无法观察到的模式,只是因为我们可以以训练数据的形式访问它的一小部分)
如果你从一个分布中逐渐观察点(比如 50,100,500, 1000 ...),我们肯定会发现数据的结构很复杂,直到我们观察到足够多的点(最大值:整个分布) ,但是一旦我们观察到足够多的点,我们就可以期望观察到数据中存在的更简单的模式,这些模式可以很容易地 class 化。
简而言之,与整个数据集相比,一小部分火车数据应该具有复杂的结构。并且过度拟合训练数据可能会导致我们的模型在测试数据上表现更差。
一个类似的例子来强调日常生活中的上述现象如下:-
假设我们一生中遇到过 N 个人,遇到他们时我们自然会向他们学习(我们成为我们周围的人)。现在,如果我们深受每个人的影响,并试图非常密切地调整所有人的行为,我们就会发展出一种与我们遇到的人非常相似的个性,但另一方面,我们会开始评判每个与我不同的人—— > 不像我们已经见过的人。变得有判断力会损害我们适应新群体的能力,因为我们非常努力地训练以尽量减少与我们已经遇到的人(训练数据)的差异。根据我的说法,这是过度拟合和 genralazition 能力损失的一个很好的例子。