【问题标题】:Gap between validation loss and training loss验证损失和训练损失之间的差距
【发布时间】:2020-09-04 13:01:15
【问题描述】:

下面是我的 CNN 模型的验证损失和训练损失图。

验证损失随着训练损失而减少,但两个函数之间存在差距。

这是什么意思?随着验证损失的减少,模型并没有过度拟合,但是模型是否有问题,因为两个函数之间存在差距?

我是新手,所以请帮忙。

Validatoin loss

【问题讨论】:

    标签: python-3.x tensorflow keras neural-network conv-neural-network


    【解决方案1】:

    过拟合不一定伴随着验证损失曲线的变平——损失曲线之间的差距仅仅表明模型正在学习不适用于验证数据的关系。在这种情况下,我首先要检查的是集合的平衡——训练集和验证集是否都包含类/值的相等分布?在为它们分配“训练”和“验证”标签之前,整个数据集是否正确洗牌?

    【讨论】:

    • 我正在使用来自同一数据集的两个会话。第一个会话用于训练模型,第二个用于验证。用于训练的第一个会话使用具有随机状态的 sklearn train_test_split 分为训练集和测试集,定量为 0.33。我是否也应该对用于验证的数据进行洗牌?
    • 你的意思是从数据集中随机选择一个分数进行训练,然后从同一个数据集中再次随机选择进行验证?这些验证结果不会很有用,因为很可能至少有一些训练中使用的数据会再次被选中进行验证。正确的做法是先拆分数据,在拆分的一部分进行训练,然后在另一部分进行验证。
    • 这项工作的目的是对脑电信号进行分类。数据是从在几个会话中进行的实验中获得的。训练使用第一个会话完成,验证使用来自同一实验的另一个会话完成。是。因此,验证是使用看不见的数据但相同类型的数据完成的。在训练模型时,第一个会话的数据在分成训练集和测试集之前被打乱。使用会话 2 中未见过的数据验证模型时,数据没有被打乱。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-29
    • 1970-01-01
    • 2018-04-05
    • 1970-01-01
    • 2019-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多