如何根据过拟合/欠拟合识别何时停止训练?

数据挖掘 神经网络 深度学习 lstm 损失函数 过拟合
2021-10-14 19:06:45

我正在尝试训练一个 LSTM 网络,总共超过 200 个时期,隐藏层大小为 100,LSTM 层之后有 1 个密集层。我已经使用了 10 的批量大小。基本上,我很困惑为什么我得到的损失曲线(以 MAE 作为损失标准和 Adam 优化器)看起来与一个好的模型通常给出的非常不同。我认为可能的原因可能是训练发生在比理想情况更多的时期,并且它是欠拟合/过拟合,但我不确定如何识别相同的。

模型的损失曲线是 模型损失曲线

我想确定模型是过度拟合还是欠切,以及是否需要减少训练时间(比如从 2​​00 到 20?)。对此不熟悉,是否有任何具体点可以确定何时停止训练过程(例如基于此损失曲线)。感谢您在这方面的任何帮助。

1个回答

过拟合:

该模型试图记住它所学的内容。因此,它无法对看不见的样本进行分类。

在过度拟合的情况下,验证准确度停止增加,验证损失也没有减少。

这意味着该模型不能再泛化自身以获得高于某个阈值的验证准确度。

因此,当 val_acc 在特定数量的时期内没有变化时,您可以停止训练。

欠拟合:

欠拟合意味着模型即使在学习之后也无法对任何样本进行分类。

当准确率和损失似乎是恒定的或者它们只围绕某个值时,模型应该停止训练。

在你的情况下:

train以及test 似乎同时减少的损失。测试曲线更早地变平。如果学习率降低,则可以处理。

提示:如果您使用的是 Keras,请尝试EarlyStopping回调。