训练集大小与训练时期之间的关系

时间:2017-03-25 17:43:09

标签: image-processing classification deep-learning

我目前正在Cifar10数据集上训练一个convul​​otional网络。让我们说我有50,000张训练图像和5,000张验证图像。

要开始测试我的模型,让我们说我只从10,000张图片开始,以了解模型的成功程度。

经过40个训练时期和128个批次大小 - 即每个时代我都在运行我的优化器,以便在一批128张图像(SGD)上将损失减少10,000 / 128~78次。

现在,让我们说我找到了一个在验证集上达到70%准确度的模型。很满意,我继续训练完整的训练集。

这一次,对于每个时代,我运行优化器以最小化损失5 * 10,000 / 128~391次。

这让我觉得我在每个时代的准确性应该高于有限的10,000个。令我沮丧的是,有限训练集的准确性增加得更快。在完整训练集的40个时代结束时,我的准确率为30%。

认为数据可能已损坏,我在10-20k,20-30k,30-40k和40-50k的训练图像上执行有限的运行。令人惊讶的是,这些运行中的每一个都产生了约70%的准确度,接近0-10k图像的准确度。

因此出现了两个问题:

  1. 当数据集较大时,为什么验证准确性会下降,而且我已经确认每个数据段确实提供了不错的结果?
  2. 对于更大的训练集,我是否需要训练更多的时期,即使每个时期代表更多的训练步骤(391对78)?

1 个答案:

答案 0 :(得分:0)

事实证明我的直觉是正确的,但我的代码却没有。

基本上,我一直在使用训练数据(用于训练模型的数据)运行验证准确性,而不是验证数据(模型尚未看到的数据)。

在纠正此错误后,正如预期的那样,通过更大的训练数据集,验证准确性不可避免地得到改善。