当验证损失和验证准确度都在增加时,它会过度拟合吗?

机器算法验证 分类 神经网络 过拟合
2022-03-16 18:46:43

在一个非常稀疏的矩阵(有 2400 个特征和 18000 个训练行)上训练一个简单的神经网络来解决二元分类问题。在第一个 epoch 结束时,验证损失开始增加,而验证准确度也在增加。我可以称之为过度拟合吗?我正在考虑在第 6 个 epoch 之后停止训练。我的标准是:如果准确度下降就停止。真的有什么不对劲吗?

ps:我有完美平衡的二进制分类数据集,随机分类器的准确率约为 %50。

得到这个数字

2个回答

是的,一点没错。首先,最好通过查看损失而不是准确度来判断过度拟合,原因有很多,其中包括准确度不是估计分类模型性能的好方法。看这里:

https://stats.stackexchange.com/a/312787/58675

为什么准确性不是评估分类模型的最佳衡量标准?

分类概率阈值

其次,即使您使用准确性而不是损失来判断过度拟合(并且您不应该),您也不能只查看测试曲线上准确性的(平滑)导数,即,如果它平均增加或不是。您应该首先查看 训练准确度和测试准确度之间的差距。在您的情况下,这个差距非常大:您最好使用从 0 开始的比例,或者以随机分类器(即,将每个实例分配给多数类的分类器)的准确度,但即使使用您的规模,我们说的是训练准确度接近 100%,而测试准确度甚至没有达到 65%。

TL;DR:你不想听到它,但你的模型已经过拟合了。

PS:你关注的是错误的问题。这里的问题不在于是否在第 1 个 epoch 进行提前停止以获得 55% 的测试准确度,或者是否在第 7 个 epoch 进行提前停止以获得 65% 的准确度。这里真正的问题是你的训练准确度(但同样,我会关注测试损失)相对于你的测试准确度来说太高了。55%、65%甚至75%相对于99%都是垃圾。这是一个教科书式的过拟合案例。您需要对此做点什么,而不是专注于“不太糟糕”的早期停止时期。

在这种情况下,这种曲线变化至少有两个可能的原因会发生。通过查看此图形数据集,我们可以假设的合理可能区别如下:

1- 该训练网络表明验证损失,因为模型过度拟合。

这里的答案可能是我自己在研究这个主题时的个人评论,并且很难得出结论。这里有很多答案,但理想的选择是我提到的第 1 个答案。

2- 其他可能的原因是该训练网络在训练数据集中有未知的变体或错误,例如自发反应。

随意发表评论。