所以,我正在对大约 12600 张图像进行 4 标签 X 射线图像分类:
Class1:4000
Class2:3616
Class3:1345
Class4:4000
我正在使用与 imageNet 数据集相关的 VGG-16 架构,具有交叉熵和 SGD,批大小为 32,学习率为 1e-3,在 pytorch 上运行
[[749., 6., 50., 2.],
[ 5., 707., 9., 1.],
[ 56., 8., 752., 0.],
[ 4., 1., 0., 243.]]
我知道因为两个 train loss/acc 都是相对 0/1,所以模型过度拟合,但我很惊讶 val acc 仍然在 0.9 左右! 如何正确解释它以及导致它的原因以及如何预防它? 我知道这有点像因为准确度是 softmax 的 argmax 就像实际预测越来越低但 argmax 总是保持不变,但我真的很困惑!我什至让它训练 +64 epochs 相同的结果平坦的acc,而损失逐渐增加!
附注。我看过其他有答案的问题,并没有真正得到解释
答案 0 :(得分:1)
我认为您的问题已经说明了正在发生的事情。正如您所发现的那样,您的模型过度拟合。现在,随着您进行更多训练,您的模型会慢慢变得更加专业化,并逐渐失去泛化能力。所以 softmax 概率变得越来越平坦。但是它仍然显示出或多或少与验证集相同的准确性,因为现在正确的类别至少比其他类别的概率略高。所以在我看来,这可能有一些原因: