首页 > 解决方案 > 如何确认 LSTM 网络的收敛性?

问题描述

我正在使用 LSTM 使用 Keras 进行时间序列预测。我使用了 3 个 LSTM 层,dropout=0.3,因此我的训练损失高于验证损失。为了监控收敛,我将训练损失和验证损失一起绘制。结果如下所示。

在此处输入图像描述

在研究了这个话题之后,我看到了多个答案,例如([1] [2],但我在互联网上的不同地方发现了几个相互矛盾的论点,这让我有点困惑。我在下面列出了其中的一些:

1) Jason Brownlee提出的文章建议验证和训练数据应该满足收敛,如果它们不满足,我可能会欠拟合数据。

https://machinelearningmastery.com/diagnose-overfitting-underfitting-lstm-models/

https://machinelearningmastery.com/learning-curves-for-diagnosing-machine-learning-model-performance/ 在此处输入图像描述

2)但是,此处的以下答案表明我的模型刚刚收敛

我们如何分析损失与时期图?

在此处输入图像描述

因此,总的来说,我对整个概念有点困惑。任何帮助将不胜感激。

标签: pythontensorflowkeraslstmrecurrent-neural-network

解决方案


收敛意味着你有一些东西要收敛。要使学习系统收敛,您需要事先了解正确的模型。然后你会训练你的模型,直到它与正确的模型相同。那时你可以说模型收敛了!...但机器学习的全部意义在于,我们一开始并不知道正确的模型。

那么什么时候停止训练呢?在实践中,当模型运行得足够好,可以做你想让它做的事情时,你就会停下来。这可能是当验证错误低于某个阈值时。可能只是当您负担不起更多的计算能力时。这真的取决于你。


推荐阅读