CNN Chainer 中的验证准确性下降

Validation accuracy dropping in CNN Chainer

我在 Chainer 中使用 CNN 对细胞图像进行分类。随着 main/training 准确性的提高,模型的验证准确性正在下降。我想知道为什么验证准确性会下降以及提高验证准确性的方法是什么。

数据形状为(32, 3, 60, 80) 其中32为batchsize,3为channel,60和80分别为高度和宽度。

除了最后一层,我在所有层都应用了relu和dropout。在该模型中,即使在 50 个 epoch 之后,训练和验证的准确性也没有变化。 下面给出的模型显示 main/training 精度从 0.78 逐渐增加到 0.98,验证精度在 100 个时期后从 0.79 变为 0.66。

model = Sequential(
    L.Convolution2D(None, 128, 3, 2),
    F.relu,
    L.Convolution2D(128, 64, 3, 2),
    F.relu,
    L.Convolution2D(64, 32, 3, 2),
    F.relu,
    L.Linear(None, 16),
    F.dropout,
    L.Linear(16, 4)
)

这不是意外行为,它被称为 "overfit"。 在训练期间,机器学习模型将与验证数据一起适应训练数据(提高训练准确性),但从某个时间模型只适合训练数据,因此它不会适应验证数据(降低验证准确性) .

有关其他参考,请参阅 Overfitting