何时停止训练神经网络?

4
我正在使用循环神经网络进行领域特定分类研究,已经积累了数千万条文本数据。由于整个数据集需要花费数日甚至数月才能运行完毕,因此我选择了一小部分数据进行测试,例如100万条文本(其中80%用于训练,20%用于验证)。我对整个语料库进行了词向量化的预处理,并将Dropout应用于模型以避免过拟合。当它在12小时内训练了60000条文本时,损失已经降到了相当低的水平,准确率达到了97%。我是否应该继续训练?继续训练有帮助吗?
目前仍在进行第一次迭代,我担心如果现在停止,模型可能无法完全覆盖...
1个回答

8

一般来说,您可以让模型在训练阶段保持状态,直到验证开始连续几次迭代下降为止。在这一点之后,模型开始过度拟合数据。对于您的问题,因为训练模型需要很长时间,建议您在第一个时期停止训练,测试模型并确保代码没有实现错误。如果模型具有可接受的准确性,则再次开始训练。


1
嗯,所以你建议我至少让它跑到第一轮结束,看看验证损失的情况?我发现自己陷入了两难境地,如果我使用整个数据集来训练模型,那可能是浪费时间,但如果我只使用部分数据集,那就是浪费数据... 这可能被视为一种权衡... - Isilmë O.
1
是的。对于大规模问题,明智的决定是在一段时间后停止训练,测试模型以确保其获得可接受的准确性,然后再让它重新训练。假设每个时期需要1天。停止训练1天并确保模型运行良好(代码无错误)是否比浪费10天后才发现模型存在问题更好? - Amir
谢谢您的建议。我选择您的答案作为最终答案。 - Isilmë O.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接