【问题标题】:What happens if optimal training loss is too high如果最优训练损失太高会发生什么
【发布时间】:2022-01-25 15:42:42
【问题描述】:

我正在训练变形金刚。在我的许多设置中,我获得了如下所示的验证和训练损失:

然后,我知道我应该在 epoch 1 左右停止训练。但是训练损失非常高。这是一个问题吗?训练损失的价值真的意味着什么吗?

谢谢

【问题讨论】:

    标签: pytorch huggingface-transformers transformer gpt-2 trainingloss


    【解决方案1】:

    您在描述overfitting:您的模型的表达能力太强了,它正在记忆训练数据,而不是学习可以泛化到验证数据的有用表示。

    为了缓解这个问题,您应该对模型应用更强的正则化,以防止它记忆并引导它使用有用的表示。
    正则化方法包括(但不限于):

    1. 输入增强
    2. 退出
    3. 早停
    4. 体重衰减

    【讨论】:

    • 谢谢,是的,我明白了。但是如果提前停止,训练损失将在 6 左右(在 epoch 1 左右停止)。这不是一个太大的价值吗?还是什么都没有?感谢您的回复。
    • @katze 正如我的回答中提到的,提前停止只是正则化的一种方式,您应该采用其他方法
    • 这并不能回答我的两个问题,即训练值是否太高。
    【解决方案2】:

    关于您的第一个问题 - 您的训练损失很高并不一定是个问题,因为对于被认为是高训练损失的情况没有阈值。这取决于您的数据集、您的实际测试指标和您的业务目标。

    更具体地说,训练损失值的问题:

    1. 这个数字并不直观,因为损失目标是针对梯度下降优化的指标(即一个可微函数,通常是它的对数版本)。 您可能拥有面向最终目标的直观业务指标(例如精度、召回率),您应该使用这些指标来确定您的模型是否良好。

    2. 您的训练损失是根据训练数据集计算的,这并不总是代表一个好的模型,这可以从您发布的过度拟合模型中看出。您不应该使用这个数字来为模型的优劣做出决定。

    3. 这取决于您要达到的目标。 80%的准确率是高还是低?

    关于您的第二个问题 - 从技术上讲,数字越大,模型在收敛方面的表现越差,因此您应该始终尝试降低它(同时考虑过拟合)。 相比之下,您可以说一个模型比另一个模型具有更高的损失,然后尝试多个超参数(例如,dropout、不同的优化器)以最小化验证集的分歧点。

    【讨论】:

    • 非常感谢您的详细回复。这是我需要知道的。
    猜你喜欢
    • 2020-10-24
    • 1970-01-01
    • 1970-01-01
    • 2021-06-04
    • 2016-08-26
    • 1970-01-01
    • 1970-01-01
    • 2019-09-27
    • 2020-12-11
    相关资源
    最近更新 更多