因此,我正在训练一个二进制文本分类任务的lstm rnn,我有一些理解损失结果的问题。训练集大约有700 000个示例,验证集大约为35000个示例。 验证集和培训集是独立的,因此我不会对验证集中的数据进行培训。 从我在学校学到的知识和检查其他一些帖子时,验证损失应该略高于训练损失,以确保合适。但就我而言,你可以看到验证损失波动很大。我正在使用二元交叉熵来表示损失函数。
我正在运行每300批次培训数据的验证集,因为我将批量大小设置为128.因此,每300批次的培训数据意味着算法已经通过大致的验证集大小修剪,因此每300批次感觉到像一个很好的测量点。
我不太明白如何解释这些结果。准确性很好,在3个时期后的验证集上约为79%,在训练集上为78-82%。但我不确定我是否过度装配/不合适。
答案 0 :(得分:0)
如果培训和验证是独立的,您似乎不会过度使用:您的培训和验证错误非常接近。如果在你的训练持续减少的同时你的验证损失开始增加,你就会想要过度适应,但事实并非如此。
你是否适合自己更难以辨别,并且在很大程度上取决于问题和你的数据。
验证损失波动的事实绝对正常。特别是与训练集相比,它有点小。
为了更多地了解您的模型,您可以计算其他指标,如F1 socre,ROC,精确回忆曲线等。
另一个有趣的事情是查看一些输入和预测输出对,以更准确地了解正在发生的事情:特别是假阳性和假阴性。
一个非常重要的步骤是尝试使用敏感度分析技术(例如Sobol指数(ANOVA)或SHAP values)“解释”您的模型行为。