CNN 中的验证损失显着减少,模型拟合还是过拟合?

Posted

技术标签:

【中文标题】CNN 中的验证损失显着减少,模型拟合还是过拟合?【英文标题】:validation loss decreases dramatically in CNN, model fit or overfit? 【发布时间】:2020-06-25 01:21:55 【问题描述】:

我的 CNN 模型有问题。

我有 89 张原始眼底图像,其中 5 张是正常类图像,84 张是非正常类图像。然后,我用 OpenCV 扩充了正常类,所以我有 85 个正常类的图像和 84 个非正常类的图像。

我使用 ResNet-50 对其进行了训练。我得到了:

Train on 118 samples, validate on 51 samples
Epoch 1/200
118/118 [==============================] - 9s 80ms/sample - loss: 0.3268 - accuracy: 0.8475 - val_loss: 1260226.0000 - val_accuracy: 0.7549
Epoch 2/200
118/118 [==============================] - 1s 8ms/sample - loss: 0.2474 - accuracy: 0.8771 - val_loss: 114804.7059 - val_accuracy: 0.7549
Epoch 3/200
118/118 [==============================] - 1s 8ms/sample - loss: 0.2740 - accuracy: 0.8390 - val_loss: 6039848.1569 - val_accuracy: 0.7549
Epoch 4/200
118/118 [==============================] - 1s 8ms/sample - loss: 0.1889 - accuracy: 0.9110 - val_loss: 3247823.3725 - val_accuracy: 0.7549
.
.
.
Epoch 32/200
118/118 [==============================] - 1s 8ms/sample - loss: 7.9578e-04 - accuracy: 1.0000 - val_loss: 0.2045 - val_accuracy: 0.9314
Epoch 33/200
112/118 [===========================>..] - ETA: 0s - loss: 2.0889e-04 - accuracy: 1.0000

Epoch 34/200
112/118 [===========================>..] - ETA: 0s - loss: 0.0019 - accuracy: 1.0000
Epoch 00034: val_accuracy did not improve from 0.96078

Epoch 00034: ReduceLROnPlateau reducing learning rate to 1.5625000742147677e-05.
Restoring model weights from the end of the best epoch.
118/118 [==============================] - 1s 9ms/sample - loss: 0.0018 - accuracy: 1.0000 - val_loss: 0.1718 - val_accuracy: 0.9314
Epoch 00034: early stopping

Loss and Accuracy情节。

Classification result.

您对此有何看法?我很困惑,因为在第一个时期val_loss 这么高,但在最后一个时期,val_loss 低。没事吧?还是我的模型过拟合了?

如果我的模型有误,我应该怎么做才能获得更好的结果?

【问题讨论】:

【参考方案1】:

经过长时间的训练,神经网络会学习到非常具体的模式,这会导致训练损失减少和验证损失增加。在这种情况下,您可以说您的模型过度拟合。

在你的情况下,我会说你的模型很合适。

如果您的模型开始过度拟合,请尝试减少要训练的模型的参数数量或应用提前停止。

【讨论】:

以上是关于CNN 中的验证损失显着减少,模型拟合还是过拟合?的主要内容,如果未能解决你的问题,请参考以下文章

Keras LSTM 模型过拟合

如何知道是不是发生了欠拟合或过拟合?

我的验证损失为1.86,我应该如何减少它?

这个分类模型是不是过拟合?

过拟合与欠拟合

CNN模型在多类分类上过拟合