2017-03-01 643 views
0

请给我这些CNN结果的任何评论。 我已经使用了2000个训练图像和400个测试图像。 训练的准确性是完美的,但测试的准确性非常低。 我认为这是因为训练和测试图像之间存在很大差异。 任何人都有这个案例的好主意?Keras CNN培训的准确性不错,但测试的准确性很低

[Accuracy plot]

+0

可能会适合stats.stackexchange更多 – Fezvez

回答

4

这是过拟合的明显例子。你有多少个可学习的参数?例如VGGnet有138M参数,在这种情况下,不难看出网络中的某些神经元必须记住一个训练图像,因此它的网络不能很好地通用化。

要解决这个问题,首先你可以尝试一个更简单的模型,如果任务很简单,就像辨别形状一样。您还可以通过转换颜色通道(如果它不影响输出类别),翻转或旋转图像以使您的网络更好地进行总结,来增加训练数据。在你的损失功能中包括L1/L2正规化并尝试退出。

+0

完全同意过度配合,不同意“更简单的模型”。您需要正规化技术,例如您建议的转换和L1/L2。其他技巧是辍学和早期停止(编辑:我看到你添加了辍学,对我来说它产生了最好的结果) – Fezvez

+1

我做了一些研究,是的你是对的,浅层模型更容易'记忆'比深层网络可以利用数据的层次结构。只有我相信,小型网络的好处是提高了培训时间。感谢Thanx指出。我正在编辑适当的答案 – rajat

相关问题