gpt4 book ai didi

machine-learning - 训练精度非常高,验证精度非常高,但测试集精度非常低

转载 作者:行者123 更新时间:2023-11-30 09:05:02 26 4
gpt4 key购买 nike

我已将数据集(大约 28K 图像)分成 75% 的训练集和 25% 的测试集。然后我随机抽取 15% 的训练集和随机 15% 的测试集来创建验证集。目标是将图像分为两类。无法共享确切的图像样本。但它与所附的相似。我正在使用这个模型:VGG19,带有 imagenet 权重,最后两层可训练,并附加了 4 个密集层。我还使用 ImageDataGenerator 来增强图像。我对模型进行了 30 个 epoch 训练,发现训练准确度为 95%,验证准确度为 96%,而在测试数据集上进行训练时,准确率大幅下降至 75%。

我尝试过正则化和 dropout 来解决过度拟合的问题。我还做了另一件事,看看如果我使用测试集作为验证集并在同一测试集上测试模型会发生什么。结果是:训练集 Acc = 96%,验证 ACC = 96.3%,testAcc = 68%。我不明白我应该做什么?

image

最佳答案

首先,您需要确保在分割数据时,新数据集中每个类的相对大小相等。如果这是初始数据的分布,它可能会不平衡,但分割后的所有数据集中必须具有相同的不平衡。

现在,关于 split 。如果您需要训练集、验证集和测试集,它们必须彼此独立(无共享样本)。如果您不想用所得到的结果欺骗自己,这一点很重要。

一般来说,在机器学习中,我们从训练集和测试集开始。为了选择最佳的模型架构/超参数,我们进一步划分训练集以获得验证集(不应触及测试集)。在确定模型的最佳架构/超参数后,我们将训练集和验证集结合起来,并使用组合的完整训练集从头开始训练最佳案例模型。现在我们才可以在测试集上测试结果。

关于machine-learning - 训练精度非常高,验证精度非常高,但测试集精度非常低,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54212584/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com