如何在训练卷积神经网络中提高验证准确性?

问题描述 投票:0回答:1

我正在训练CNN模型(使用Keras制作)。输入图像数据约有10200张图像。有120个类别要分类。绘制数据频率,我可以看到每个类别的样本数据在分布方面大致相同。

我面临的问题是训练数据的损失图会随着时间的流逝而下降,但对于验证数据而言,它会先下降然后增加。精度图反映了这一点。训练数据的准确性最终稳定在0.94,但对于验证数据,准确性约为0.08。

基本上是过度拟合的情况。

我使用的学习率为0.005,辍学率为0.25。

我可以采取哪些措施来提高验证的准确性?每个类的样本量是否可能太小,我可能需要数据扩充才能拥有更多数据点?

keras conv-neural-network
1个回答
0
投票

很难说是什么原因。首先,您可以尝试经典的正则化技术,例如减小模型的大小,向层中添加dropout或l2 / l1-regularizer。但这更像是随机猜测模型的超参数并希望达到最佳效果。

科学方法是查看模型的输出,并尝试了解为什么产生这些输出并显然检查管道。您是否看过输出(它们都是一样的)?您是否以与培训数据相同的方式预处理验证数据?您是否进行了分层训练/测试拆分,即在两组中保持班级分配相同?当您将数据输入模型时,数据会乱码吗?

最后,每个班级大约有85张图像,这确实不是很多,比较一下CIFAR-10。 CIFAR-100每班6000/600张图像,或ImageNet 20k班和14M图像(每班约500张图像)。因此,数据增强也可能是有益的。

© www.soinside.com 2019 - 2024. All rights reserved.