首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >面部表情数据集的训练验证测试集分割

面部表情数据集的训练验证测试集分割
EN

Data Science用户
提问于 2016-10-04 00:56:17
回答 2查看 2.1K关注 0票数 2

我正在使用卷积神经网络(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%。

非常感谢。

EN

回答 2

Data Science用户

回答已采纳

发布于 2016-12-03 09:35:02

注:这个建议假设你的目标是识别任何人的照片,而不仅仅是从你的训练数据中识别人的表情。

验证集是否也应由看不见的主题组成?

是。这将为您提供在您想要使用网络的任务中最精确的性能度量,以便选择最佳的泛化并进行测试。

你只会使用一个简单的随机分割,如果你的训练网络的最终目标是从训练集中的人的图像中识别表达。

或者我可以洗牌整套培训,并使用其中的一部分(10-20%)作为验证集?

不是的。如果你在训练和简历中随机抽取同一张脸的样本,你会得到一个泛化的高估。我在Kaggle 州立农场分心司机竞赛中亲眼目睹了这种效果,你应该在那里的论坛上看到它的讨论。它也可能有助于提高性能的想法。

如果我使用10-20%的训练集作为我的验证集,我的模型使用三层CNN以合理的准确性(45-50%)学习。

这是火车和交叉验证之间的数据泄漏--网络已经学会了正确地分类它已经看到的人的图像中的表达,这就是你用这种方式来衡量的。不奇怪的是,测试结果与交叉验证的有希望的值不匹配。

我只是想知道哪一种方法是正确的,因为使用了一组看不见的主题,我的模型在3-5年代之后开始变得过于适合,根本不学习。

无论你如何分割火车,简历,你都太适合了。当你不正确地划分简历时,除了过分拟合之外,数据泄露还会给你提供糟糕的指导。

看起来训练数据的多样性很小,而从零开始训练图像分类器需要大量的数据。考虑:

  • 收集更多标签数据,也许还可以下载其他数据集。
  • 在您的模型中添加大量的正则化(例如多个下拉层)
  • 使用预先训练的图像分类器网络(例如VGG-19或Inception)作为起点,并为您的分类任务对其进行微调。
  • 使用完全k倍交叉验证,而不考虑计算成本,以减少使用小训练集的问题。这将无助于直接解决你的训练问题,但是一旦你解决了这个问题,你就可以更好地调整你的网络超参数。
票数 3
EN

Data Science用户

发布于 2016-10-04 07:35:40

验证集意味着它是通过获取一部分训练数据集来获得的。它不可能是看不见的(我假设,你指的是你不知道或想检查的标签)主题,因为首先我们将无法验证(检查准确性/精确性来测试我们的模型)。我认为您正在做的可能是采取验证集从培训数据集,您正在使用的培训,以及导致过度拟合。让我详细说明:

让我们假设你有100份文件。训练使用80,验证使用休息20。不要使用这20个文档进行培训。如果你使用它,你会导致过度(我认为这可能是你的过度装修的答案)。现在,可以在其他测试数据集(未见文档)上进行测试。

票数 2
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/14342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档