首页 > 解决方案 > 我过拟合了吗?

问题描述

Val loss(蓝色) & Train Loss(橙色)

平滑度较低时的外观

你好!我目前正在使用 Darkflow Yolov2 训练我的模型。优化器是具有 lr 0.001 的 SGD。根据这张图,我的 val loss > train loss,这是否意味着它是过拟合的?如果是,推荐的行动方案是什么?这看起来很奇怪,因为两个损失都在减少,但 val 损失更慢。

有关更多信息,我的火车数据集由每个类 400 个图像组成,带有单个注释,总共 2800 个图像。我这样做是为了防止类不平衡,每张图像只注释一个类实例。我的 val 数据集包含 350 张图像,带有多个注释。基本上,我注释了图像中的每个对象。我有 7 个班级,我的 train-val-test 拆分为 80-10-10。这是 val 损失的原因吗?

标签: pythontensorflowtraining-datayolodarkflow

解决方案


过拟合检测包括不匹配,因为训练精度与测试(验证)精度不同。由于您尚未提供该数据,我们无法评估您的模型。

这可能有助于澄清阶段和条款;这应该让您将来自己回答这个问题:

“收敛”是训练中我们相信模型的点

  • 学到了有用的东西;
  • 通过可重现的过程达到了这一点;
  • 不会明显好转;
  • 即将变得更糟。

收敛是我们想要停止训练并保存(检查点)模型以供生产使用的地方。

我们通过使用训练通过和测试(验证)通过来检测收敛。在收敛时,我们期望:

  • 验证损失(误差函数、困惑度等)处于相对最小值;
  • 验证准确度处于相对最大值;
  • 就模型的一般行为而言,验证和训练指标“相当稳定”;
  • 训练准确率和验证准确率基本相等。

一旦训练运行通过了这一点,它通常会转变为“过度拟合”,在这种情况下,模型会学习特定于训练数据的东西,以至于它不再擅长推断新的观察结果。在这种状态下,

  • 训练损失下降;验证损失增加;
  • 训练准确率提高;验证准确率下降。

推荐阅读