【问题标题】:When to stop training neural networks?何时停止训练神经网络?
【发布时间】:2016-04-08 19:45:42
【问题描述】:

我正在尝试使用 RNN 进行特定领域的分类研究,并积累了数千万条文本。由于运行整个数据集需要几天甚至几个月的时间,我只选择了一小部分进行测试,比如 100 万个文本(80% 用于训练,20% 用于验证)。我使用词向量化对整个语料库进行了预训练,并将 Dropout 应用于模型以避免过度拟合。当它在 12 小时内训练 60000 条文本时,损失已经下降到相当低的水平,准确率达到 97%。我应该继续还是不继续?是否有助于继续培训?

它仍在运行第一个 epoch,如果我现在停止,恐怕模型不会覆盖整个...

【问题讨论】:

    标签: machine-learning nlp neural-network lstm recurrent-neural-network


    【解决方案1】:

    作为一般经验法则,您可能希望让模型保持在训练阶段,直到验证开始下降几个连续的迭代。在那之后,模型已经对数据进行了过度拟合。对于您的问题,由于训练模型需要很长时间,我建议您在第一个 epoch 之后停止训练并测试模型并确保代码中没有实现错误。如果模型具有可接受的准确度,则重新开始训练。

    【讨论】:

    • 嗯,所以你建议我让它运行至少直到第一个 epoch 结束,看看验证损失是什么样子的?我发现自己陷入了两难境地,如果我使用整个数据集来训练模型,那可能是浪费时间,而如果我只使用数据集的一部分,那将是浪费数据......那可能算是一种权衡吧……
    • 是的。对于大规模问题,明智的决定是在一段时间后停止训练,测试模型以确保它获得可接受的准确性,然后让它再次训练。假设每个 epoch 需要 1 天。在 1 天后停止训练并确保模型运行良好(并且代码没有错误)而不是浪费 10 天然后发现模型有问题不是更好吗?
    • 感谢您的建议。我选择你的作为最终答案。
    猜你喜欢
    • 2014-04-07
    • 2011-04-07
    • 1970-01-01
    • 2014-03-22
    • 2010-11-20
    • 2019-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多