如何知道模型已开始过度拟合?


12

我希望以下摘录能够深入了解我的问题。这些来自http://neuralnetworksanddeeplearning.com/chap3.html

然后学习逐渐放慢。最终,在时代280左右,分类精度几乎停止提高。稍后的时期仅在时期280处的准确性值附近看到小的随机波动。这与之前的图相反,在早期的图中与训练数据相关的成本继续平稳下降。如果仅考虑这一成本,看来我们的模型仍在“变得更好”。但是测试精度结果表明,改进是一种幻想。就像费米不喜欢的模型一样,在280期之后,我们的网络所学的内容不再推广到测试数据。因此,这不是有用的学习。我们说,网络在第280代之后过度拟合或过度训练。

我们正在训练一个神经网络,并且成本(在训练数据上)一直下降到第400阶段,但是在280阶段之后分类精度变得固定(除非有一些随机波动),因此我们得出结论,该模型在280阶段之后过度拟合了训练数据。

我们可以看到测试数据的成本在直到第15个时期之前一直在提高,但此后它实际上开始变得更糟,即使训练数据的成本在继续提高。这是我们的模型过度拟合的另一个迹象。但是,这构成了一个难题,那就是我们是否应该将第15或280时期视为过度拟合将主导学习的点?从实践的角度来看,我们真正关心的是提高测试数据的分类准确性,而测试数据的成本只不过代表了分类准确性。因此,将时代280视为过度拟合是控制我们神经网络学习的主要途径。

与以前相比,将测试数据的分类准确性与培训成本进行对比,我们现在将测试数据的成本与培训成本进行比较。

然后,本书继续解释为什么280是过度拟合开始的正确时期。这就是我的问题。我无法解决这个问题。

我们要求模型最小化成本,因此成本是它用来衡量自身正确分类强度的度量。如果我们认为280是过度拟合开始的正确时机,我们是否没有以某种方式创建一个偏向模型,尽管该偏向模型虽然可以对特定测试数据进行更好的分类,但是却以较低的置信度做出决策,因此更倾向于偏离从测试数据上显示的结果来看?


模型不知道测试集。它代表了看不见的数据。因此,如果它来自代表性分布,则可以使用它来确定何时发生过度拟合。如果需要,您可以创建另一个保留集,并查看此假设是否成立。
艾姆雷(Emre)

“以低信心进行决策”是什么意思?
草蜢

@Grasshopper让我们说该模型正在尝试预测4个类之一{A,B,C,D}。测试数据标签(按顺序)是(A,B,C,D)。现在在一个实例中,模型抛出概率为((我将沿着这些标记标注)((0.28,0.24,0.24,0.24)(A),(0.24,0.28,0.24,0.24)(B),(0.24,0.24, 0.28,0.24)(C),(0.24,0.24,0.24,0.28)(D)),在另一个模型中,模型抛出((1,0,0,0)(A),(0,1,0,0) (B),(0.24、0.26、0.25、0.25)(B),(0,0,0,1)(D))。我所说的低置信度是一审。请注意,分类的准确性一开始是100%,但成本更高
Nitin Siwach

@Grasshopper简而言之。该模型的第一个实例是在280个纪元后创建的(请参阅所询问的问题),该模型的第二个实例是在15个纪元后创建的。现在,这本书继续建议时代280为过度拟合的开始。我发现很难下咽。您能提供的任何帮助或想法,我们将不胜感激。
Nitin Siwach's

Answers:


6

假设我们要根据学生的简历来预测学生是否会进行面试。

现在,假设我们从10,000个简历及其结果的数据集中训练了一个模型。

接下来,我们在原始数据集上试用该模型,并以99%的准确度预测结果……哇!

但是现在来了一个坏消息。

当我们在新的(“看不见的”)简历数据集上运行模型时,我们只能获得50%的准确性……呃!

从训练数据到看不见的数据,我们的模型不能很好地推广。

这被称为过度拟合,这是机器学习和数据科学中的常见问题。

过度拟合V / s过度拟合

通过研究相反的问题,即拟合不足,我们可以更好地理解过度拟合。

当模型过于简单时(由于功能太少或正则化程度过高),就会导致欠拟合,这会使模型在从数据集中学习时缺乏灵活性。

简单的学习者往往在预测中具有较小的方差,但对错误结果的偏见则更大(请参阅:偏差-偏差权衡)。

另一方面,复杂的学习者的预测往往会有更多的差异。

偏差和方差都是机器学习中预测误差的形式。

通常,我们可以减少偏差带来的误差,但结果可能会增加方差带来的误差,反之亦然。

太简单(高偏差)与太复杂(高方差)之间的权衡是统计和机器学习中的关键概念,并且会影响所有监督学习算法。


2

我知道,很难学到的东西是绘制学习曲线,我知道,这不像自己编写机器学习代码那么有趣,但是从视觉上了解正在发生的事情是基础。

经验法则是,当火车精度不断提高而验证精度不再提高(甚至开始变差)时,就会出现过度拟合。

避免过度拟合的最简单解决方案是尽早停止(一旦发现问题,立即停止培训),当然,最简单的解决方案需要付出一定的代价:这不是最佳解决方案。正则化和辍学是对抗拟合的好工具,但这是另一回事:)

希望能帮助到你


2

正如您所引用的消息来源所说,“测试数据的成本只不过是分类准确性的代表”。您可能会问,为什么我们要使用代理,为什么不直接使用准确性?答案是,您需要针对权重和偏差最小化成本函数。因此,它必须是权重和偏差的可微函数。精度不是微分函数,因此不能直接使用。但是由于最终您最终会关注准确性,如您自己上面的说明(...请注意,分类的准确性最初是100%,但是成本更高...),因此您可以根据测试的准确性来确定过度拟合组。


0

要了解过拟合的含义以及它如何影响模型的准确性,您需要了解偏差-方差折衷。

拟合不足和拟合过度是与偏差方差问题直接相关的两个不同问题。理解三个不同因素之间的关系以及这些因素如何与偏差方差(过度拟合-拟合不足)问题联系在一起始终很重要:

1-模型的大小。参数数量

2-可用于培训的数据量。训练样本数。

3-迭代次数。训练迭代。

如果将这些因素中的任何一个与过度拟合,拟合不足的问题直接联系在一起,而又不去看其他因素,总会得出错误的结论。

由于理解了这些因素并通过使用数学方程式来避免过度拟合和欠拟合的问题来链接主题是一项艰巨的任务,而且它是一项取决于任务的工作,因此人们使用简单的方法来发现并避免过度拟合。简单的方法是将数据分为三个不同的部分,即训练,验证和测试。不得触摸测试。使用训练集训练网络,并使用验证集在每次迭代或多次迭代后测试网络。从理论上讲,您将看到验证集的误差在前N个迭代中逐渐减小,然后在很少的迭代中稳定,然后开始增加。当错误开始增加时,您的网络将开始过度拟合训练数据,并且应该停止训练过程。

注意:值N与上面列出的三个因素非常相关。拥有演示训练集并使用不同的模型和训练数据进行测试始终是一个好习惯。您会看到模型越大-训练数据越少,N越小。模型越小-训练数据越多,N越大。注意:使用具有欠拟合问题的小模型时要小心。


您已经说过:“从理论上讲,您将看到验证集的错误在前N个迭代中逐渐减小,然后在很少的迭代中稳定,然后开始增加。” 您在这里表示错误是什么意思。这正是我在问题中提出的问题。如果我将成本作为误差的量度,答案是15,如果我将分类精度作为误差的量度,答案是280
Nitin Siwach

请注意上述评论中的更正:如果我将成本作为错误的度量标准,那么过度拟合何时开始的答案是第15
纪,

验证集上的错误
Bashar Haddad

那个错误的度量是?(100-分类准确度)或费用。我了解验证集上的错误与分类准确性有关。但这正是我要的。为什么不收费呢?请参考我已经响应作出蝈蝈在原来的问题的意见
尼廷Siwach
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.