我正在使用resnet50对来自Kaggle数据集的花朵图片进行分类。我想澄清一些关于我的结果的问题。
epoch train_loss valid_loss error_rate time 0 0.205352 0.226580 0.077546 02:01 1 0.148942 0.205224 0.074074 02:01
这是训练的最后两个epoch。正如你所见,第二个epoch显示出一些过拟合的迹象,因为训练损失明显低于验证损失。尽管存在过拟合,错误率和验证损失都在下降。我想知道尽管有过拟合,模型是否实际上有所改善。对于未见数据,是使用第0个epoch的模型还是第1个epoch的模型更好?谢谢!
回答:
遗憾的是,如今“过拟合”这个术语被滥用,用来形容几乎所有与次优性能相关的事物;然而,从实际角度来说,过拟合意味着非常具体的东西:它的典型特征是当你的验证损失开始增加,而你的训练损失继续减少时,即:
(图片改编自维基百科关于过拟合的条目)
显然,你的情况并没有发生这种现象;训练损失和验证损失之间的“差距”是另一回事(它被称为泛化差距),并不代表过拟合。
因此,原则上,你完全没有理由选择验证损失较高的模型(即你的第一个模型),而不是选择验证损失较低的模型(你的第二个模型)。