因此,我正在训练一个CNN网络来检测输入图像中的某些特征。结构如下:
输入图像-> Conv2D -> Relu ->稠密-> ->结果
该数据集包含3个类中的180个黑白图像,每个类恰好有60个图像。
我的问题是验证的准确性和训练的准确性在大约6-7个周期后不会改变,如下图所示:

我试着在谷歌上搜索解决方案,但到目前为止还没有结果。起初,我认为我的模型被过度拟合了,因为它不再“学习”,训练损失不断减少,而验证损失却没有。因此,我尝试加入学习速率衰减,Nesterov动量,增加批次大小以减少过度拟合,但是它们并没有改变很多事情(嗯,总体精度确实从0.90提高到0.92 ),而且每次我的精度都保持在1.00,0.88和0.87 (之前是1.00,0.85和0.85)。
我想要识别的特征相当简单,我需要在一个控制回路中使用结果,所以我想要一个轻量级的模型,如果可能的话,精度至少是95%。你们知道应该做些什么,或者至少有什么研究方向来改进这个模型吗?
发布于 2018-04-18 00:46:07
你的模特太合适了。训练损失接近零(训练精度已经达到100%),但验证损失远高于训练损失。一个理想的模型将把训练和验证损失放在一起。您还没有提供任何代码;因此,假设您的模型没有错,我建议使用正则化技术,如退出、重量衰减(L2)和批处理规范化。
发布于 2020-04-24 14:34:54
使用数据增强技术是避免过度拟合的另一种可能的解决方案。即应用一些简单的图像变换,如水平翻转、眩晕翻转、旋转、平移等。这里的一些例子。
这将使您的数据更加多样化,当您的模型正在培训,它将看到更多的样本,它需要学习。如果您只是用相同的图像和标签获取这些信息,它只会记住这些内容,并且无法对验证/测试数据执行良好的结果。
https://stackoverflow.com/questions/49889385
复制相似问题