【问题标题】:At which point adding new data to a training set, will not improve training accuracy此时将新数据添加到训练集中不会提高训练准确性
【发布时间】:2019-05-08 06:13:24
【问题描述】:

这是一个关于训练 CNN 的一般性问题,但我使用的是 YOLO。 我已经通过标记来自不同相机视频(在类似环境中)的一些数据来开始我的“人”检测训练集......每次我为新相机添加新数据时,我都在重新训练 YOLO,这实际上改进了检测对于这台相机。对于训练,我将我的数据随机分成训练/验证集。我使用验证集来计算准确性。这并没有过度拟合,因为之前的所有数据也都用于训练。

现在,我已经收集了超过 100 000 个标记数据。由于我的数据集非常大,我希望此时不必再训练了。但看起来我仍然需要这样做。如果我得到一个新的相机视频,标记 500-1000 个样本,将它们添加到我的庞大数据集中并再次训练,那么这台相机的准确性正在提高。 我真的不明白为什么。为什么我仍然需要向我的集合中添加新数据?为什么新数据的准确性提高了很多,而成千上万的现有数据却被“绘制”了?我是否可以停止训练,因为添加新数据不会提高准确性?

感谢您分享您的想法和想法!

【问题讨论】:

    标签: deep-learning conv-neural-network training-data yolo


    【解决方案1】:

    有趣的问题。如果您的数据质量良好并且训练过程“完美”,您将始终能够更好地概括。想想你想要检测的所有可能的无限不同的图像。您只是使用其中的一个样本,希望它足以概括。你可以继续增加你的数据集,可能会增加 0.01%,问题是你什么时候想停下来。你的模型准确率永远不会是 100%。

    我的意见:如果你的项目是个人的并且没有人的生活依赖它,那么如果你的准确率超过 95%,就停止生成更多数据。考虑后期处理以改善结果。由于您在视频上进行检测,因此可能会尝试跟随人的运动,因此如果在一帧中未检测到它并且您有来自前一帧和后一帧的信息,您可能会做一些花哨的事情。

    希望对你有帮助,干杯!

    【讨论】:

    • 感谢您的回复。这实际上是我的工作,我们每次都会获得新客户,使用新相机等......我想我只是对 CNN 的力量感到惊讶,它仍然可以学习并考虑我提供的新数据每次!
    • 不错!然后永远不要停止提高准确性,直到不值得这样做!
    【解决方案2】:

    当然,要创建一个好的模型,您需要尽可能多的图像。但是你必须注意你的模型是否变得overfit,这是你的模型不再学习,平均损失越来越高,mAP越来越低,当发生过度拟合时,您必须停止训练并选择已保存在 darknet/backup/ 文件夹中的最佳权重。

    对于 YOLO,您可以遵循一些关于何时应该停止训练的指南。最明显的是:

    在训练期间,您会看到不同的错误指标,当不再减少 0.XXXXXXX avg 时,您应该停止:

    Region Avg IOU: 0.798363, Class: 0.893232, Obj: 0.700808, No Obj: 0.004567, Avg Recall: 1.000000, count: 8 Region Avg IOU: 0.800677, Class: 0.892181, Obj: 0.701590, No Obj: 0.004574, Avg Recall: 1.000000, count: 8
    
    9002: 0.211667, 0.060730 avg, 0.001000 rate, 3.868000 seconds, 576128 images Loaded: 0.000000 seconds
    

    9002 - 迭代次数(批次数)
    0.060730 avg - 平均损失(误差) - 越低越好

    当您看到平均损失 0.xxxxxx avg 在多次迭代中不再减少时,您应该停止训练。最终的平均损失可以从 0.05(对于小模型和简单数据集)到 3.0(对于大模型和困难数据集)。我个人认为平均损失为 0.06 的模型就足够了。

    AlexeyAB 在他的 github repo 上详细解释了一切,请阅读本节https://github.com/AlexeyAB/darknet#when-should-i-stop-training

    【讨论】:

    • 感谢您的回复。我知道什么时候停止特定的训练。但我的问题并不是什么时候停止训练,而是什么时候不再需要训练。这意味着我的所有数据都应该涵盖我想在任何类似环境中检测到的所有对象..
    • 我想没有限制,如果我错了,请纠正我。因为深度学习模型总是可以改进的,我从来没有听说过这样的指标告诉你停止添加更多数据并停止训练过程。
    • 是的,没有指标,我想我更多的是询问人们的知识和经验!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-30
    • 2019-09-30
    • 2013-10-23
    • 2014-07-22
    • 2018-01-08
    • 2018-12-20
    相关资源
    最近更新 更多