Skip to content
This repository was archived by the owner on Aug 16, 2022. It is now read-only.

Latest commit

 

History

History
20 lines (13 loc) · 2.28 KB

17.if-you-have-a-large-dev-set-split-it-into-two-subsets-only-one-of-which-you-look-at.md

File metadata and controls

20 lines (13 loc) · 2.28 KB

17. 将大型开发集拆分为两个子集,专注其一

假设你有一个含有 5000 个样本的大型开发集,并有着 20% 的误差。因此算法将误分类 1000 张开发集图片。手动检查这 1000 张图片会花费很长时间,因此我们在误差分析时可以决定不使用所有的图片。

在这种情况下,我会明确地将开发集分成两个子集,并只专注其一。你将会更快地过拟合手动查看的那个子集,而另一子集中没有被手动查看的图片可以拿来调参。

继续上面的例子,在该例子中算法将误分类 5000 个开发集样本中的 1000 个。假设我们想手动检查约 100 个错误样本(整体的10%)进行误差分析。你应该随机选择 10% 的开发集,并将其放入 Eyeball 开发集 中,以提醒我们自己,我们正在用眼睛看它。(对于语音识别项目,你可能需要听一些音频的剪辑,此时则将数据集称为 Ear 开发集)。因此 Eyeball 开发集将有 500 个样本,其中预计的算法误分类样本约 100 个。

第二个子集叫做 Blackbox 开发集,它有着剩余的 4500 个样本。你可以使用 Blackbox 开发集,通过测量错误率来自动评估分类器,也可以使用它来选择算法或调整超参数。但是,你应该避免将目光聚焦于此。我们使用术语 “Blackbox” 是因为我们只使用该子集来获得分类器的 “Blackbox” 评价。

为什么我们将开发集明确分为 Eyeball 开发集和 Blackbox 开发集呢?当你在 Eyeball 开发集中建立对样本的直观认识之后,则容易更快地过拟合。当你发现 Eyeball 开发集的性能比 Blackbox 开发集提升得更快,说明已经过拟合 Eyeball 开发集了。此时可能需要丢弃它并寻找一个新的 Eyeball 开发集,比如可以将更多 Blackbox 开发集中的样本移到 Eyeball 开发集中,也可以通过获取新的标注数据来获得。

将开发集明确地分为 Eyeball 和 Blackbox 开发两个子集将很有帮助,它使你了解在人为的误差分析过程中 Eyeball 开发集何时开始发生过拟合。