我正在使用卷积神经网络(CNN),我只想问一下,我的训练/验证/测试集的划分方式是否正确。
我一共有55门学科。我计划把它们分成80-10-10个,用于培训(45个科目)、验证(5个科目未见)、测试(6个科目未见)。
验证集是否也应由看不见的主题组成?或者我可以洗牌整套培训,并使用其中的一部分(10-20%)作为验证集?
我读过,使用N-折叠交叉验证,整个训练集(实例)被洗牌,然后分裂成N-折叠,模型被训练和平均N次。然而,在神经网络或CNN的情况下,我们不使用交叉验证,因为它是非常昂贵的计算。
我只是想知道哪一种方法是正确的,因为使用了一组看不见的主题,我的模型在3-5年后就开始变得过于适合,根本不学习。另一方面,如果我使用10%-20%的训练集作为我的验证集,我的模型以合理的精确度(45%-50%)使用3层CNN来学习,但是当用看不见的测试集测试时,我的前1级的准确率仅为15%-16%。
非常感谢。
发布于 2016-12-03 09:35:02
注:这个建议假设你的目标是识别任何人的照片,而不仅仅是从你的训练数据中识别人的表情。
验证集是否也应由看不见的主题组成?
是。这将为您提供在您想要使用网络的任务中最精确的性能度量,以便选择最佳的泛化并进行测试。
你只会使用一个简单的随机分割,如果你的训练网络的最终目标是从训练集中的人的图像中识别表达。
或者我可以洗牌整套培训,并使用其中的一部分(10-20%)作为验证集?
不是的。如果你在训练和简历中随机抽取同一张脸的样本,你会得到一个泛化的高估。我在Kaggle 州立农场分心司机竞赛中亲眼目睹了这种效果,你应该在那里的论坛上看到它的讨论。它也可能有助于提高性能的想法。
如果我使用10-20%的训练集作为我的验证集,我的模型使用三层CNN以合理的准确性(45-50%)学习。
这是火车和交叉验证之间的数据泄漏--网络已经学会了正确地分类它已经看到的人的图像中的表达,这就是你用这种方式来衡量的。不奇怪的是,测试结果与交叉验证的有希望的值不匹配。
我只是想知道哪一种方法是正确的,因为使用了一组看不见的主题,我的模型在3-5年代之后开始变得过于适合,根本不学习。
无论你如何分割火车,简历,你都太适合了。当你不正确地划分简历时,除了过分拟合之外,数据泄露还会给你提供糟糕的指导。
看起来训练数据的多样性很小,而从零开始训练图像分类器需要大量的数据。考虑:
发布于 2016-10-04 07:35:40
验证集意味着它是通过获取一部分训练数据集来获得的。它不可能是看不见的(我假设,你指的是你不知道或想检查的标签)主题,因为首先我们将无法验证(检查准确性/精确性来测试我们的模型)。我认为您正在做的可能是采取验证集从培训数据集,您正在使用的培训,以及导致过度拟合。让我详细说明:
让我们假设你有100份文件。训练使用80,验证使用休息20。不要使用这20个文档进行培训。如果你使用它,你会导致过度(我认为这可能是你的过度装修的答案)。现在,可以在其他测试数据集(未见文档)上进行测试。
https://datascience.stackexchange.com/questions/14342
复制相似问题