这是过拟合的情况吗? CNN图像分类器
Posted
技术标签:
【中文标题】这是过拟合的情况吗? CNN图像分类器【英文标题】:Is this a case of overfitting? CNN Image classifier 【发布时间】:2020-03-19 07:22:56 【问题描述】:如果这个问题被认为是题外话或者只是一个糟糕的问题,请原谅我,我一般是计算机视觉和 CNN 的新手。
我总共有 3440 张图片,总共 10 个类。
每行每列 85 张图片:
因为我的数据集中只有 3440 张图像,所以我使用数据增强将数据集增加到 34400 张图像。 (每张图片增加 10 倍)
aug = ImageDataGenerator(
rescale = 1./255,
rotation_range = 20,
width_shift_range = 0.10,
height_shift_range = 0.10,
zoom_range= 0.05
)
这是我用于两个实例的模型。 (一次有增强,一次没有)
model = Sequential()
model.add(Conv2D(32, (3,3), input_shape = (50, 50, 3)))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Conv2D(64, (3, 3)))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Conv2D(64, (3, 3)))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Dropout(0.25))
# 2 hidden layers
model.add(Flatten())
model.add(Dense(128))
model.add(Activation("relu"))
model.add(Dense(128))
model.add(Activation("relu"))
# The output layer with 10 neurons, for 10 classes
model.add(Dense(10))
model.add(Activation("softmax"))
# Compiling the model using some basic parameters
model.compile(loss="sparse_categorical_crossentropy"
,optimizer="adam"
,metrics=["accuracy"])
我能够将准确度从 ~90%(无增强)提高到 ~97%(有增强),但训练准确度和验证准确度之间的差异仍然相似。
带有数据增强的图表:
我已经读过,非收敛的训练和验证准确率/损失有很大差异是过度拟合的标志。
我的 CNN 模型是这种情况吗?我还能做些什么来改进我的模型?
完整代码可以在我的github上找到
https://github.com/jwngo/SimpleImageClassifier
谢谢大家,感谢你们的时间。
编辑: 对于增强数据集,训练集是 29355 张图像,验证集是 7331 张图像。准确率的差异是 0.9972(training) vs 0.9750(validation),loss 的差异是 0.0102(training) vs 0.1245(validation)
验证图像也已增强,我将更改为仅使用非增强图像。
【问题讨论】:
【参考方案1】:您可以使用一些正则化 (https://www.analyticsvidhya.com/blog/2018/04/fundamentals-deep-learning-regularization-techniques/) 例如退出。训练准确率和验证准确率有什么区别?验证集有多大?
【讨论】:
训练集为 29355 张图片,验证集为 7331 张图片。准确率之间的差异是 0.9972 vs 0.9750,差异是损失是 0.0102 vs 0.1245 我认为更好的方法是在增强之前创建验证集,特别是当您想稍后将其与完全没有增强的数据的结果进行比较时。 我遇到的“问题”是增强数据集和未增强数据集的图形形状几乎相同。训练和验证的准确性和损失是否总是应该收敛的? 我会按照您的建议尝试在扩充之前进行验证集,但这会导致验证集与测试集相比非常小(可能是 960)。 (>20,000) 这会是个问题吗? '我遇到的'问题'是增强数据集和未增强数据集之间的图形形状几乎相同'-> 这表明增强产生了利润,但模型仍然有点过拟合。您可以尝试使用一些规范化。以上是关于这是过拟合的情况吗? CNN图像分类器的主要内容,如果未能解决你的问题,请参考以下文章
对于图像分类任务,相对于全连接的DNN,CNN模型的主要优点有哪些?
keras构建卷积神经网络(CNN(Convolutional Neural Networks))进行图像分类模型构建和学习