“开发测试集”有什么用?

人工智能 术语 交叉验证 训练数据集 测试数据集 验证数据集
2021-11-06 09:19:04

这是一个理论问题。我是人工智能和机器学习的新手,越看越喜欢这个。到目前为止,我一直在阅读有关语言模型评估的内容(我专注于 ASR),但我仍然没有得到开发测试集的概念。

我遇到的最清楚的解释如下(摘自Dan Jurafsky 和 ​​James H. Martin的《语音和语言处理》(第 3 版草稿)一书的第 3 章)

有时我们经常使用特定的测试集,以至于我们隐含地调整到它的特征。然后,我们需要一个真正看不见的新测试集。在这种情况下,我们将初始测试集称为开发测试集或 devset。

无论如何,我仍然不明白为什么必须使用额外的测试。换句话说,为什么训练和测试集还不够?

1个回答

在机器学习中,您通常将数据分成 3 部分 (80-10-10%)。

第一部分(80% 的初始数据)用于训练 ML 模型:这称为训练数据集

第二部分(10%)是开发集(或数据集),也就是验证集这用于衡量您使用各种超参数的性能(例如在神经网络中:层大小)。

找到最佳超参数后,您在训练集上再次学习模型,然后在模型从未见过的测试数据集(10%) 上对其进行测试。您对测试数据的结果现在可以很好地指示您的模型预测质量在现实世界中的情况(因为它从未针对此测试数据进行优化)。