面部表情数据集的训练验证测试集拆分
Training Validation Testing set split for facial expression dataset
我正在使用卷积神经网络 (CNN),我只想问一下我拆分 training/validation/testing 集的方式是否正确。
我总共有55个科目。
我计划将它们分成 80-10-10 用于训练(45 个科目)、验证(看不见的 5 个科目)、测试(看不见的 6 个科目)。
验证集是否也应该包含未见过的对象?或者我可以打乱整个训练集并使用其中的一部分 (10-20%) 作为验证集吗?
我读到过使用 N 折交叉验证,整个训练集(实例)被打乱然后分成 N 折,模型被训练并平均 N 次。
但是,对于神经网络或 CNN,我们不使用交叉验证,因为它的计算成本非常高。
我只是想知道哪个是正确的,因为使用一组未见过的主题验证,我的模型在 3-5 个时期后开始过度拟合并且根本不学习。
另一方面,如果我使用 10-20% 的训练集作为我的验证集,我的模型使用 3 层 CNN 以合理的准确度 (45-50%) 学习,但是当使用看不见的测试集进行测试时,我的顶部-1 准确率只有 15-16% 左右。
非常感谢。
总体来说,没有规律;几乎没有经验法则。开发拓扑和模型的大部分工作是调整超参数;训练-测试-验证比率只是其中之一。典型的拆分 非常 大致 2:1:1,有很多变化,具体取决于目的和数据集。如果训练低于 50%,或者测试或验证低于 20%(尽管 15% 有时有用,尤其是数据集太小的情况下),我开始质疑这个部门。
"Correct" 在很大程度上取决于模型的最终目的。如果您希望它处理新主题,那么您当然必须包括未见过的主题以进行测试和验证。如果只需要很好地区分给定的主题,那么您将需要一个平衡的组合,也许 45:10:0 - 在这种情况下,您会 welcome 过拟合。
如果你希望处理来自一般人群(新科目)的表情,那我相信你缺少培训科目。要正确调整这样的模型,您需要足够的空间来自由调整比例,即使像 8:1:1 这样纤细的东西也应该给您带来您认为有用的结果。
我正在使用卷积神经网络 (CNN),我只想问一下我拆分 training/validation/testing 集的方式是否正确。
我总共有55个科目。 我计划将它们分成 80-10-10 用于训练(45 个科目)、验证(看不见的 5 个科目)、测试(看不见的 6 个科目)。
验证集是否也应该包含未见过的对象?或者我可以打乱整个训练集并使用其中的一部分 (10-20%) 作为验证集吗?
我读到过使用 N 折交叉验证,整个训练集(实例)被打乱然后分成 N 折,模型被训练并平均 N 次。 但是,对于神经网络或 CNN,我们不使用交叉验证,因为它的计算成本非常高。
我只是想知道哪个是正确的,因为使用一组未见过的主题验证,我的模型在 3-5 个时期后开始过度拟合并且根本不学习。 另一方面,如果我使用 10-20% 的训练集作为我的验证集,我的模型使用 3 层 CNN 以合理的准确度 (45-50%) 学习,但是当使用看不见的测试集进行测试时,我的顶部-1 准确率只有 15-16% 左右。
非常感谢。
总体来说,没有规律;几乎没有经验法则。开发拓扑和模型的大部分工作是调整超参数;训练-测试-验证比率只是其中之一。典型的拆分 非常 大致 2:1:1,有很多变化,具体取决于目的和数据集。如果训练低于 50%,或者测试或验证低于 20%(尽管 15% 有时有用,尤其是数据集太小的情况下),我开始质疑这个部门。
"Correct" 在很大程度上取决于模型的最终目的。如果您希望它处理新主题,那么您当然必须包括未见过的主题以进行测试和验证。如果只需要很好地区分给定的主题,那么您将需要一个平衡的组合,也许 45:10:0 - 在这种情况下,您会 welcome 过拟合。
如果你希望处理来自一般人群(新科目)的表情,那我相信你缺少培训科目。要正确调整这样的模型,您需要足够的空间来自由调整比例,即使像 8:1:1 这样纤细的东西也应该给您带来您认为有用的结果。