模型选择后使用交叉验证进行训练

人工智能 神经网络 机器学习 训练 数据集
2021-10-31 18:26:30

我最近一直在阅读有关模型选择算法的文章(例如,决定正则化参数的值或要使用的神经网络的大小,广义上的超参数)。这是通过将示例分成三组(训练 60%,交叉验证 20%,测试 20%)并在数据上完成所有参数的第一组训练,然后根据结果选择最佳参数在交叉验证中,最后使用测试集估计性能。

我了解与选择模型的训练和测试相比需要不同的数据集,但是,一旦选择了模型,为什么不在估计性能之前使用交叉验证示例来改进假设呢?

我能看到的唯一原因是,这可能会导致假设恶化,我们将无法检测到它,但是,通过添加更多示例(60% -> 80%),假设真的有可能变得更糟吗? ?

1个回答

你说得很对。如果您正确遵循了交叉验证程序并确实选择了最佳模型,那么您可以使用 CV 集作为最终模型的训练集。不,如果您正确选择了模型,它不会导致您的假设恶化(可能对于该集合,但对于新示例不会)。事实上,您可以使用整个 100% 的数据集。

斯坦福大学的助教贾斯汀·约翰逊(Justin Johnson)回答了关于使用 100% 的数据集训练 CNN 的类似问题。他说,如果你有足够的计算资源并且想从你的模型中挤出额外的 1% 或 2% 的准确率,你可以在模型选择后使用整个数据集。

注意:正如@NeilSlater 指出的那样,如果您需要模型用于报告目的,您应该只使用 80% 的数据集,否则您将失去唯一的无偏模型验证来源。但是,如果您希望在现场部署模型,您可以使用 100% 的数据集。