18. 眼球开发集和黑盒开发集应该多大?

18. 眼球开发集和黑盒开发集应该多大? - 图1

你的眼球开发集应该足够大,大到能够让你分析出算法的主要错误类别。如果你正在负责一项人类表现良好的任务(如识别图像中的猫),以下是一些粗略的指导方针:

  • 如果你的分类器在眼球开发集中犯错10次——这是非常小的误差,将很难估计不同错误类别的影响,即使你的数据集很小,无法继续扩大开发集规模,但是有总比没有好,这将依然有助于项目的优先级制定;
  • 如果分类器在眼球开发集中犯错20次,你将开始大概地了解错误的来源;
  • 如果有约50个错误,你会比较好的了解错误的主要来源;
  • 如果大约100个错误,你将能够深刻的理解错误的主要来源,我曾看到有人手动分析过多达500个的错误。只要你足够的数据,就不会有什么坏处。

假设你的分类器有5%的误差,为了确保在眼球开发集中会出现约100个错误标记的样例,眼球开发集必须有大约2000个样本(0.05*2000=100)。随着分类器的误差变低,为了获得足够多的错误来分析,眼球开发集的样本量则要越大。

如果你正在负责一项连人类也没办法做的很好的任务,那么检查眼球开发集的这项操作作用不大,因为很难找出算法不能正确分类一个样本的原因。这种情况下,忽略眼球开发集吧,我们将在后续章节讨论此类问题的解决方案。

18. 眼球开发集和黑盒开发集应该多大? - 图2

那黑盒开发集又有哪些要点呢?我们之前提到过,开发集的样本量从1000-10000都是很常见的。现在完善以下这一表述:一个有着1000-10000个样本的黑盒开发集基本上能够为你提供足够的数据量来进行参数调优和模型选择。一个含有100个样本的黑盒开发集虽然小,但依然是有用处的。

如果你只有一个小的开发集,那么你可能没办法将其分割成足够大的眼球开发集和黑盒开发集。取而代之的操作是你不得不将整个开发集都当作是眼球开发集——你将手动检查整个开发集。

在眼球开发集和黑盒开发集之间,我认为眼球开发集更加重要(假设你正在研究一个人类表现水平很高的问题,检查这些样本能帮你获得对系统性能表现的深刻理解)。如果你只有一个眼球开发集,你可以在这个开发集中进行误差分析、参数调优和模型选择。只有一个眼球开发集的缺点只是出现过拟合的风险更大而已。

如果你有大量的数据,那么眼球开发集的大小将主要取决于你想要分配多少时间去手动分析它们。但是,我基本上没看到过有人会去手动分析超过1000个错误。