我应该多久检查一次过拟合?如何自动检测并处理过拟合?

我刚开始学习机器学习和神经网络,并且一直在阅读《http://neuralnetworksanddeeplearning.com》,该书在第三章中讨论了过拟合问题。

作者在每次训练周期(epoch)后让他的示例模型在测试集上运行,这样他就可以构建图表来显示训练准确率和测试准确率(或成本的变化)。

我目前正在修改我的程序,使我的神经网络每两个训练周期后在测试集上运行,然后我将构建一个训练周期与测试准确率的图表。我猜这可能过于频繁,但我不是很确定…

作者指出,一旦测试准确率的变化停止增加,就表明发生了过拟合(或者训练集上的成本也停止增加)。所以我想我会编写代码来检测测试准确率何时达到平台期,这样我就可以自动切换训练集(要么是全新的,要么是k折交叉验证的不同变体)——但可能有更好的方法?

提前感谢您的任何建议和指导 🙂


回答:

当测试/验证损失停止改善时,这被称为提前停止(Early Stopping)。Ian Goodfellow等人在《深度学习书籍第7章》中解释了模型正则化,包括第7.8节中的提前停止。

Keras有一个回调函数来执行此检查并停止训练,恰当地命名为EarlyStopping。默认情况下,它会监控val_loss,如果停止改善,则停止训练。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注