0

因此,我正在对大约 12600 张图像进行 4 标签 X 射线图像分类:
Class1:4000
Class2:3616
Class3:1345
Class4:4000
我使用的是 imageNet 数据集上的 VGG-16 架构,具有交叉熵和 SGD在 pytorch 上运行的批量大小为 32,学习率为 1e-3

在此处输入图像描述

   [[749.,   6.,  50.,   2.],
    [  5., 707.,   9.,   1.],
    [ 56.,   8., 752.,   0.],
    [  4.,   1.,   0., 243.]]

我知道,由于火车损失/acc 都相对 0/1,因此模型过度拟合,尽管我很惊讶 val acc 仍然在 0.9 左右!如何正确解释它以及导致它的原因以及如何预防它?我知道这有点像,因为准确度是 softmax 的 argmax,就像实际预测越来越低,但 argmax 始终保持不变,但我真的很困惑!我什至让它训练 +64 epochs 相同的结果 flat acc 而损失逐渐增加!

PS。我已经看到其他问题的答案,并没有真正得到解释

4

1 回答 1

1

我认为您的问题已经说明了正在发生的事情。正如您也发现的那样,您的模型过度拟合。现在,随着您训练的更多,您的模型逐渐变得更加专业于训练集并逐渐失去泛化能力。所以softmax概率越来越平坦。但它仍然显示出或多或少相同的验证集准确性,因为现在正确的类别至少比其他类别的概率略高。所以在我看来,这可能有一些可能的原因:

  • 您的训练集和验证集可能不是来自同一分布。
  • 您的验证集并未涵盖所有需要评估的案例,它可能包含相似类型的图像,但它们并没有太大差异。因此,当模型可以识别一个时,它可以从验证集中识别出其中的许多。如果您在验证集中添加更多异构图像,您将不再在验证集中看到如此大的准确性。
  • 同样,我们可以说您的训练集具有异构图像,即它们有很多变化,而验证集仅涵盖少数种类,因此随着训练的进行,这些少数群体的优先级会降低,因为模型尚未有很多东西要学习和概括。如果您增加您的训练集并且您的模型发现验证集最初相对容易(直到过度拟合),则可能会发生这种情况,但随着训练的进行,模型会在学习训练集中可用的许多增强品种时自行迷失。在这种情况下,不要使增强过于狂野。想一想,增强的图像是否仍然真实。只要图像保持真实,就对图像进行增强,并且这些图像的每种类型的变化在训练集中都有足够的代表性示例。大学教师'
于 2021-06-16T14:31:58.350 回答