Python 对于我的CNN模型,我应该如何解释或直观地解释以下结果?

Python 对于我的CNN模型,我应该如何解释或直观地解释以下结果?,python,tensorflow,machine-learning,keras,Python,Tensorflow,Machine Learning,Keras,我正在训练一个CNN模型,它必须对4个物体进行分类。3个杯子(白色、黑色、蓝色)和1个玻璃杯。当我只对我的模型进行10个时代的训练时,我得到了25%的验证准确率,所有东西都被标记为白色杯子。然而,当我对同一个模型进行更长时间的训练时,它最终偏离了25%的准确度,上升到80%,唯一的问题是对白色杯子进行分类 换句话说,如果我能够找到分类器错误分类白色杯子的原因,那么我就有可能达到90%的验证精度。因此,我的问题是,我可以尝试找出哪些事情导致预测失误,或者哪些事情需要改进。我已经用莱姆来检查为什么我

我正在训练一个CNN模型,它必须对4个物体进行分类。3个杯子(白色、黑色、蓝色)和1个玻璃杯。当我只对我的模型进行10个时代的训练时,我得到了25%的验证准确率,所有东西都被标记为白色杯子。然而,当我对同一个模型进行更长时间的训练时,它最终偏离了25%的准确度,上升到80%,唯一的问题是对白色杯子进行分类

换句话说,如果我能够找到分类器错误分类白色杯子的原因,那么我就有可能达到90%的验证精度。因此,我的问题是,我可以尝试找出哪些事情导致预测失误,或者哪些事情需要改进。我已经用莱姆来检查为什么我的模型会对某些东西进行分类,但我不能从中得到任何更明智的答案

模型的某些规格:

  • 无数据扩充
  • 5个卷积层(32、64、128、256、512)->分为全局展开、展平和2个密集层(128、4)
  • 激活层(relu)
  • 2000张培训图片,1000张验证图片(课程平衡)
  • 额外:模型在两个时间段后对训练数据的准确率达到100%,在验证数据上的准确率缓慢上升到80%(大约40-50个时间段后)


    额外2:有时模型得到80%,有时只有74%

    当验证精度仍然只有25%时,模型达到了100%的训练精度。训练和验证精度之间75%的差距是巨大的,这表明模型与训练数据过度拟合,可能是由于训练数据集(2000年)太小。数据扩充可能会显著减少过度拟合并提高验证精度——我将从随机裁剪、亮度和饱和度开始。收集更多不同背景、方向和光照条件下的训练数据也会有所帮助。

    当验证精度仍然只有25%时,该模型达到了100%的训练精度。训练和验证精度之间75%的差距是巨大的,这表明模型与训练数据过度拟合,可能是由于训练数据集(2000年)太小。数据扩充可能会显著减少过度拟合并提高验证精度——我将从随机裁剪、亮度和饱和度开始。收集更多不同背景、方向和光照条件下的培训数据也会有所帮助。

    这里可能存在多个问题。看起来你的人际网络过于适合,所以首先你可能想在训练过程中加入正规化或退出。其次,您还需要确保您的图像来自同一来源,即,如果您的培训/测试示例全部来自谷歌图像,或者具有截然不同的质量、角度、颜色等,这可能会损害网络正确分类杯子的能力


    最后,由于正在进行多类分类,您可能希望在网络的末尾添加softmax层。通过这样做,您将能够看到与其他对象相比,白色杯子的概率是多少,这有助于您进行调试。

    这里可能存在多个问题。看起来你的人际网络过于适合,所以首先你可能想在训练过程中加入正规化或退出。其次,您还需要确保您的图像来自同一来源,即,如果您的培训/测试示例全部来自谷歌图像,或者具有截然不同的质量、角度、颜色等,这可能会损害网络正确分类杯子的能力


    最后,由于正在进行多类分类,您可能希望在网络的末尾添加softmax层。通过这样做,您将能够看到白色杯子与其他对象相比的概率,这有助于您进行调试。

    最终差距缩小,因此我的解释是,在开始时,它会在训练数据中发现他可以分类的怪癖,但训练时间越长,越“现实”他发现的差异,也出现在验证集中最终差距会缩小,所以我的解释是,在开始时,它会在他可以分类的训练数据中发现怪癖,但训练时间越长,他发现的差异越“现实”,这也会出现在验证集中