过度拟合,过度拟合还是合身?

时间:2018-03-28 01:01:28

标签: tensorflow machine-learning neural-network lstm rnn

因此,我正在训练一个二进制文本分类任务的lstm rnn,我有一些理解损失结果的问题。训练集大约有700 000个示例,验证集大约为35000个示例。 验证集和培训集是独立的,因此我不会对验证集中的数据进行培训。 从我在学校学到的知识和检查其他一些帖子时,验证损失应该略高于训练损失,以确保合适。但就我而言,你可以看到验证损失波动很大。我正在使用二元交叉熵来表示损失函数。

我正在运行每300批次培训数据的验证集,因为我将批量大小设置为128.因此,每300批次的培训数据意味着算法已经通过大致的验证集大小修剪,因此每300批次感觉到像一个很好的测量点。

我不太明白如何解释这些结果。准确性很好,在3个时期后的验证集上约为79%,在训练集上为78-82%。但我不确定我是否过度装配/不合适。

不介意x轴标签,它们格式奇怪。这张照片是在大约3个完整的时代之后,刚刚开始的第4个。 enter image description here '

1 个答案:

答案 0 :(得分:0)

如果培训和验证是独立的,您似乎不会过度使用:您的培训和验证错误非常接近。如果在你的训练持续减少的同时你的验证损失开始增加,你就会想要过度适应,但事实并非如此。

你是否适合自己更难以辨别,并且在很大程度上取决于问题和你的数据。

验证损失波动的事实绝对正常。特别是与训练集相比,它有点小。

为了更多地了解您的模型,您可以计算其他指标,如F1 socre,ROC,精确回忆曲线等。

另一个有趣的事情是查看一些输入和预测输出对,以更准确地了解正在发生的事情:特别是假阳性和假阴性。

一个非常重要的步骤是尝试使用敏感度分析技术(例如Sobol指数(ANOVA)或SHAP values)“解释”您的模型行为。