训练与测试错误差距及其与过拟合的关系:调解相互矛盾的建议


14

关于如何处理火车与测试错误的比较,似乎存在相互矛盾的建议,尤其是当两者之间存在差距时。在我看来,似乎有两种流派。我想了解如何调和两者(或了解我在这里缺少的内容)。

思想#1:仅培训和测试集性能之间的差距并不表示过拟合

首先,(在这里也进行了讨论:训练和测试错误比较如何指示过度拟合?),仅火车和测试集之间的差异就不能表明过度拟合的想法。这与我在例如集成树方法方面的实践经验相吻合,在集成方法中,即使在基于交叉验证的超参数调整之后,训练误差和测试误差之间的差距仍会保持较大。但是(无论模型类型如何)只要您不会验证错误,就可以了。至少,这就是想法。

思想#2:当您看到培训和测试性能之间存在差距时:做一些可以防止过度拟合的事情

但是,您会从非常好的来源中看到一些建议,这些建议表明训练误差和测试误差之间的差距表明过度拟合。这是一个示例:Andrew Ng的“深度学习的要点”演讲(精彩演讲)https://www.youtube.com/watch?v=F1ka6a13S9I在大约48:00的时间戳上,他绘制了流程图表示“如果火车设置误差很小,而火车-dev设置误差很大,则应该添加正则化,获取更多数据或更改模型架构” ...这都是您可能要采取的应对过度拟合的措施。

带我去... :我在这里想念什么吗?这是特定于模型的经验法则吗(通常更简单的模型似乎在训练和测试之间的差距较小)?还是仅仅存在两种不同的思想流派?

Answers:


4

我认为这并不矛盾。我们真正感兴趣的是良好的样本外性能,而不是减少训练和测试集性能之间的差距。如果测试集性能代表样本外性能(即测试集足够大,未被污染并且是我们模型将应用的数据的代表性样本),则只要我们在不管有什么差距,我们都不会过度拟合测试集。

但是,通常情况下,如果差距很大,则可能表明我们可以通过更多的正则化/对模型引入更大的偏差来获得更好的测试集性能。但这并不意味着较小的差距意味着更好的模型。只是如果我们在训练和测试集性能之间有很小的差距或没有差距,我们就知道我们绝对不会过度拟合,因此在模型中添加正则化/引入更多偏差将无济于事。


有趣的一点。总而言之,“在训练和测试之间没有间隙”绝对不意味着过度拟合,但是“在训练和测试之间存在一定的间隙”可能意味着或可能不意味着过度拟合。如果按照这种逻辑,吴恩达的演讲中的流程图似乎有点误导性:它不像幻灯片所显示的那样扣篮,即如果您有差距,可以 尝试进行正则化或获取更多数据,但这可能无济于事。你同意吗?
ednaMode '17

1
根据我的经验,是的,我同意。
rinspy

“总结火车和测试之间没有缝隙就意味着绝对不会过度拟合”可能不一定成立。当数据量无限大时,即使模型过拟合,训练与测试之间的间隙也将为零。因此,我认为为了使该陈述有效,您需要更多假设。
LKS

@LKS我不确定在这里过拟合的意思。假设数据分布保持恒定,则样本外性能将始终小于或等于样本内性能。因此零差距是我们最好的情况。零间隙如何过拟合?
rinspy

@rinspy如果您将过度拟合定义为训练数据与测试数据之间的数值差距,那么您的说法是正确的。但是,我想对模型的作用进行更多的推理。例如,我们有一个次数为3的多项式函数,结果将包括一个小的高斯噪声。如果我们有有限的样本并使用5级多项式进行拟合,则样本内(样本)和样本外(预测)性能之间会有很大差异。但是,如果我们可以绘制几乎无限的样本,那么一个纯记忆的模型的样本误差为零。
LKS
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.