我可以将测试数据重新用作训练数据吗?

时间:2017-06-19 14:14:16

标签: machine-learning conv-neural-network

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

然后我今天再拍了150张照片。所以我有两个想法要继续:

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

(2)我可以将新的150张图像+ 900列车数据组合成一个“新”训练集来训练更好的模型,并继续使用之前的100个测试数据集来测试新模型吗?

显然我会尝试这两种方法,但我不确定哪种方法更好......有什么意见吗?感谢。

2 个答案:

答案 0 :(得分:1)

只要新的150张图像来自与前1000张样本相同的分布,就无所谓了。

答案 1 :(得分:1)

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

如果您的数据是 IID ,那么您不必担心1150张图片中的哪一张用于训练您的模型。

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

IID :总共1150张图片是从相同的分布中独立绘制的。换句话说,粗略地说,除了他们对你不熟悉之外,没有什么可以区分150和150,并且每个图像的选择都不受任何其他图像选择的影响。