我正在训练一种语言模型,每次训练都会绘制损失与历时的图表。我要附上两个样本。
显然,第二个表现出更好的性能。但是,从这些图表中,我们什么时候可以决定停止训练(提前停止)?
我们可以从这些图中了解过度拟合和拟合不足吗,还是需要绘制其他学习曲线?
从这些图可以得出哪些其他推论?
答案 0 :(得分:2)
第一个结论很明显,第一个模型的性能要比第二个模型差,只要您使用相同的数据进行验证,这通常是正确的。在训练具有不同分割的模型的情况下,不一定是这种情况。
此外,回答有关过度拟合/不足的问题:
典型的过度拟合图如下所示:
因此,在您的情况下,您显然只是达到了收敛,但实际上并不过分! (这是个好消息!)另一方面,您可以问自己是否可以获得更好的结果。我假设您正在降低学习速度,从而使您处于某种形式的平稳状态。如果是这种情况,请先尝试降低学习率,然后看看是否可以进一步减少损失。
此外,如果您仍然看到一个很长的平稳期,那么您也可以考虑尽早停止,因为您实际上并没有获得更多改善。根据您的框架,有一些实现(例如,Keras has callbacks for early stopping,通常与验证/测试错误相关)。如果您的验证错误增加(类似于图像),则应考虑使用最低的验证错误作为提前停止的点。我喜欢这样做的一种方法是不时地对模型进行检查,但前提是验证错误得到改善。
您可以得出的另一个推断是一般的学习率:如果学习率太大,则您的图形可能会非常“跳跃/锯齿”,而学习率很低的情况下误差只会有很小的下降,而不会呈指数级增长衰减行为。
通过比较两个示例中前几个时期下降的陡峭程度,可以看到这种形式的弱形式,其中第一个(学习率较低)需要更长的时间收敛。
最后,如果您的培训和测试错误相距甚远(如第一种情况),您可能会问自己,您是在准确地描述问题还是对问题进行建模;在某些情况下,您可能会意识到,(数据)分发中存在一些您可能会忽略的问题。由于第二张图更好,所以我怀疑您的问题就是这种情况。