CNN 准确性冻结

Bao*_*ran 3 python python-3.x deep-learning keras tensorflow

所以我正在训练一个 CNN 网络来检测输入图像中的某些特征。结构如下:

输入图像 -> Conv2D -> Relu -> Dense -> Softmax -> 结果

该数据集包含 3 个类别的 180 张黑白图像,每个类别正好有 60 张图像。

我的问题是验证准确率和训练准确率在大约 6-7 个 epoch 后都没有改变,如下图所示:

在此处输入图片说明

我尝试谷歌搜索解决方案,但到目前为止没有结果。起初我认为我的模型过拟合了,因为它不再“学习”并且训练损失不断减少而验证损失没有。因此,我尝试添加学习率衰减、Nesterov 动量、增加批量大小以减少过度拟合,但它们并没有太大变化(不过,总体准确度确实从 0.90 提高到 0.92),而我的准确度恰好停留在 1.00、0.88每次都是 0.87(之前是 1.00、0.85 和 0.85)。

我想要识别的特征相当简单,我需要在控制循环中使用结果,因此我希望尽可能拥有一个精度至少为 95% 的轻量级模型。你们对应该做什么或至少是改进这个模型的研究方向有什么想法吗?

rmk*_*ker 5

您的模型过度拟合。训练损失接近于零(训练准确率已经达到 100%);而验证损失远高于训练损失。理想的模型将同时降低训练和验证损失。您尚未提供任何代码;因此,假设您的模型没有错,我会建议使用正则化技术,例如 dropout、权重衰减 (L2) 和批量归一化。