2017-06-19 259 views
1

我正在使用cnn来分类图像。我有1000张图片开始我的旅程。所以我用900作为训练数据集,100作为测试数据集。我得到了一个约70%正确性的模型。我可以重复使用测试数据作为训练数据吗?

那我今天再拍150张照片。所以我有两个想法可以继续:

(1)我可以将以前的100个测试数据+ 900个训练数据组合成一个“新”训练集,这样我就可以有1000个训练数据来获得更好的模型?那么我可以使用新的150张图像作为新的“测试”数据? (2)我可以将新的150张图像加上900个训练数据组合成一个“新”训练集来训练一个更好的模型,并继续使用前面的100个测试数据集来测试新模型吗?

显然我会尝试两种,但我不知道理论上哪一个更好......有什么意见?谢谢。

回答

1

如果你想要最好的CNN,你应该尽可能多地训练数据。理论说,你拥有的训练数据越多,你的测试错误就越接近你的训练错误。这意味着你的CNN会更擅长对未经过培训的例子进行分类。另一方面,您不需要太少的测试数据,因为您需要对准确性测量充满信心。所以你应该理想的获得更多的培训和更多的测试数据。

如果你的数据是IID,那么你不应该担心它的1150个的图像被用来训练模型。

重复使用相同测试数据的唯一危险是您可能会更改模型(例如添加另一个图层和/或向现有图层添加更多单位),因为它可以为您提供更好的测试数据结果。当您根据测试错误的观察结果改变模型时,可能会过度适应数据。您可以通过使用称为验证集的第三个数据集来调整模型,从而缓解此问题。

IID:总共1150张图像是从相同的分布中独立绘制的。换句话说,粗略地说,除了1000以外,没有什么区别它们,因为每个图像的选择都不受任何其他图像选择的影响。

1

只要新的150幅图像来自与前面的1000个样本相同的分布,这并不重要。

+0

我不确定是否可以一次又一次地使用相同的测试数据集。因此,如果我继续使用相同的100个测试数据并不断向训练集中添加新数据,那么可能会好吗?是的,他们来自同一分配。 – user2210021

+0

只要你的模型没有考虑拟合模型参数的测试数据就没有问题。使用模型进行预测不会影响模型的学习参数,因此您可以一次又一次使用相同的测试数据。在ML中,体面的列车测试分组通常为75-25或80-20。如果您认为分割数据太少,请尝试进行k次交叉验证。 – mujjiga

相关问题