我们如何分析损失与时期图?
How do we analyse a loss vs epochs graph?
我正在训练一个语言模型,每次训练时都会绘制损失与时期的关系图。我附上了其中的两个样本。
显然,第二个显示出更好的性能。但是,从这些图中,我们什么时候决定停止训练(提前停止)?
我们能否从这些图中了解过拟合和欠拟合,或者我是否需要绘制额外的学习曲线?
从这些图中可以得出哪些额外的推论?
第一个结论显然是第一个模型比第二个模型表现差,这通常是正确的,只要您使用相同的数据进行验证。如果您训练具有不同分割的模型,情况可能不一定如此。
此外,回答你关于 overfitting/underfitting 的问题:
过度拟合的典型图表如下所示:
因此,在您的情况下,您显然刚刚达到 收敛,但实际上并没有过拟合! (这是个好消息!)另一方面,您可以问问自己是否可以获得更好的结果。我假设你正在降低你的学习率,这让你在某种形式的高原上摇摇欲坠。如果是这种情况,请先尝试降低学习率,看看是否可以进一步降低损失。
此外,如果您仍然看到一个很长的平台期,您也可以考虑提前停止,因为您实际上没有获得更多的改进。根据您的框架,有此的实现(例如,Keras has callbacks for early stopping,通常与 validation/testing 错误相关联)。如果您的验证错误增加,类似于图像,您应该考虑使用最低的验证错误作为提前停止的点。我喜欢这样做的一种方法是不时检查模型,但前提是验证错误得到改善。
您可以做出的另一个推论是一般的学习率:它太大了,您的图表可能会非常 "jumpy/jagged",而非常低的学习率只会使错误率下降很小,而不是呈指数级下降腐朽的行为。
通过比较两个示例中前几个时期的下降幅度,您可以看到这种情况的弱形式,其中第一个(学习率较低)需要更长的时间才能收敛。
最后,如果你的训练误差和测试误差相差很远(如第一种情况),你可能会问自己是否真的在准确地描述或建模问题;在某些情况下,您可能会意识到(数据)分布中存在一些您可能忽略的问题。不过,由于第二张图更好,我怀疑你的问题是否属于这种情况。
我正在训练一个语言模型,每次训练时都会绘制损失与时期的关系图。我附上了其中的两个样本。
显然,第二个显示出更好的性能。但是,从这些图中,我们什么时候决定停止训练(提前停止)?
我们能否从这些图中了解过拟合和欠拟合,或者我是否需要绘制额外的学习曲线?
从这些图中可以得出哪些额外的推论?
第一个结论显然是第一个模型比第二个模型表现差,这通常是正确的,只要您使用相同的数据进行验证。如果您训练具有不同分割的模型,情况可能不一定如此。
此外,回答你关于 overfitting/underfitting 的问题:
过度拟合的典型图表如下所示:
因此,在您的情况下,您显然刚刚达到 收敛,但实际上并没有过拟合! (这是个好消息!)另一方面,您可以问问自己是否可以获得更好的结果。我假设你正在降低你的学习率,这让你在某种形式的高原上摇摇欲坠。如果是这种情况,请先尝试降低学习率,看看是否可以进一步降低损失。
此外,如果您仍然看到一个很长的平台期,您也可以考虑提前停止,因为您实际上没有获得更多的改进。根据您的框架,有此的实现(例如,Keras has callbacks for early stopping,通常与 validation/testing 错误相关联)。如果您的验证错误增加,类似于图像,您应该考虑使用最低的验证错误作为提前停止的点。我喜欢这样做的一种方法是不时检查模型,但前提是验证错误得到改善。
您可以做出的另一个推论是一般的学习率:它太大了,您的图表可能会非常 "jumpy/jagged",而非常低的学习率只会使错误率下降很小,而不是呈指数级下降腐朽的行为。
通过比较两个示例中前几个时期的下降幅度,您可以看到这种情况的弱形式,其中第一个(学习率较低)需要更长的时间才能收敛。
最后,如果你的训练误差和测试误差相差很远(如第一种情况),你可能会问自己是否真的在准确地描述或建模问题;在某些情况下,您可能会意识到(数据)分布中存在一些您可能忽略的问题。不过,由于第二张图更好,我怀疑你的问题是否属于这种情况。