关于如何处理比较训练与测试错误似乎存在相互矛盾的建议,特别是当两者之间存在差距时。对我来说,似乎有两种思想流派似乎相互冲突。我希望了解如何调和两者(或了解我在这里缺少什么)。
想法 #1:仅训练集和测试集性能之间的差距并不表示过度拟合
首先,(也在这里讨论:训练和测试误差比较如何指示过度拟合?),仅训练集和测试集之间的差异不能指示过度拟合的想法。这与我在集成树方法等方面的实践经验一致,即使在基于交叉验证的超参数调整之后,训练误差和测试误差之间的差距仍可能会很大。但是(无论模型类型如何)只要您的验证错误不会再次出现,您就很好。至少,是这样的想法。
想法#2:当你看到训练和测试性能之间的差距时:做一些可以对抗过度拟合的事情
但是,您确实看到了一些建议,这些建议来自非常好的来源,表明训练和测试错误之间的差距表明过度拟合。这是一个示例:Andrew Ng 的“深度学习的基本要素”演讲(精彩的演讲)https://www.youtube.com/watch?v=F1ka6a13S9I在时间戳 48:00 左右,他绘制了一个流程图这就是说“如果你的训练集误差很低,而你的训练集误差很高,你应该添加正则化,获取更多数据,或者改变模型架构”......这些都是你可以采取的对抗过度拟合的行动。
这让我想到...... :我在这里错过了什么吗?这是一个特定于模型的经验法则(通常更简单的模型似乎在训练和测试之间的差距较小)?或者仅仅是两种不同的思想流派?