【发布时间】:2019-10-03 17:42:33
【问题描述】:
我实际上是在使用 CNN 对图像进行分类。我有 16 个类和大约 3000 个图像(非常小的数据集)。这是一个不平衡的数据集。我进行了 60/20/20 的拆分,所有课程中每个班级的百分比相同。我使用权重正则化。我使用数据增强(keras augmenteur、SMOTE、ADSYN)进行了测试,这有助于防止过度拟合
当我过拟合(epoch=350、loss=2)时,我的模型的准确度(70+%)(以及 F1 分数等其他指标)比我没有过拟合时(epoch=50、loss=1)准确度更高约为 60%。当损失为验证集损失时,准确度适用于测试集。
使用过拟合模型作为最佳模型真的是一件坏事吗?既然在测试集上表现更好?
我已经用另一个测试集(之前在训练集上)运行了相同的模型,性能仍然更好(尝试了 3 种不同的拆分)
编辑:关于我所阅读的内容,验证损失并不总是确认模型过度拟合的最佳指标。在我的情况下,最好使用验证 F1 分数和召回率,当它开始下降时,模型可能会过度拟合。 我仍然不明白为什么验证损失是模型评估的一个坏指标,模型仍然使用训练损失来学习
【问题讨论】:
-
你如何断定你的模型已经“过度拟合”了?
-
我认为当验证损失增加模型过度拟合时.. 大多数教程都这么说。但它看起来比这更复杂。当验证损失增加时,我实际上在验证和测试集上具有相似(良好)的性能。看起来这不是一个很好的指标来判断模型是否在我的情况下过度拟合,对吗?
标签: python image machine-learning keras conv-neural-network