Nin*_*Lee 1 machine-learning gradient-descent
我正在阅读python深度学习书。在阅读了第4章,克服过度拟合之后,我有两个问题。
为什么增加时期数会导致过度拟合?我知道增加历元数会涉及到更多的梯度下降尝试,这会导致过度拟合吗?
在对抗过度拟合的过程中,精度会降低吗?
我不确定您正在阅读哪本书,因此在我专门回答问题之前,一些背景信息可能会有所帮助。
首先,增加纪元的数量并不一定会导致过度拟合,但确实可以。如果学习率和模型参数较小,则可能需要花费很多时间才能导致可测量的过度拟合。也就是说,通常需要进行更多培训。
为了使问题更清晰,重要的是要记住,我们最常使用神经网络来构建可用于预测的模型(例如,预测图像是否包含特定对象或下一步骤中变量的值将是什么) )。
我们通过迭代地调整权重和偏差来构建模型,以便网络可以充当在输入数据和预测输出之间转换的功能。我们之所以选择此类模型有多种原因,通常是因为我们只是不知道函数应该/应该是什么,或者函数过于复杂而无法进行分析开发。为了使网络能够对这种复杂的功能进行建模,网络本身必须具有高度的复杂性。尽管这种复杂性非常强大,但却很危险!该模型可能变得如此复杂,以至于它可以非常精确地有效记住训练数据,但随后却无法充当有效的通用功能,无法对训练集之外的数据起作用。即它可能会过拟合。
您可以认为它有点像某个人(模型),他一次又一次地烘烤水果蛋糕(训练数据)来学习烘烤-很快,他们将能够无需使用食谱即可烘烤出色的水果蛋糕(培训),但他们可能无法很好地烘烤海绵蛋糕(看不见的数据)。
回到神经网络!由于使用神经网络进行过度拟合的风险很高,因此深度学习工程师可以使用许多工具和技巧来防止过度拟合,例如使用辍学。这些工具和窍门统称为“规则化”。
这就是为什么我们使用涉及测试数据集的开发和培训策略的原因-我们假装看不见测试数据,并在培训期间对其进行监视。您可以在下面的图中看到一个示例(image credit)。尽管训练精度保持在最小值(尽管训练精度通常会不断提高),但在大约50个纪元后,随着模型开始“记忆训练集”,测试准确性开始提高。
因此,回答您的问题:
允许模型继续训练(即更多的时期)会增加权重和偏差的调整风险,以至于模型在看不见(或测试/验证)的数据上表现不佳。该模型现在只是“存储训练集”。
持续不断的时期可能会很好地提高训练的准确性,但这并不一定意味着该模型对新数据的预测将是准确的-通常情况实际上会变得更糟。为了防止这种情况,我们使用测试数据集并在训练过程中监控测试准确性。这使我们能够对模型是否对于看不见的数据变得更加准确做出更明智的决定。
我们可以使用一种称为“ 早期停止”的技术,通过这种技术,一旦测试精度在少数时间段内停止提高后,就停止训练模型。提前停止可以被视为另一种正则化技术。
| 归档时间: |
|
| 查看次数: |
517 次 |
| 最近记录: |