你的团队有以下几个想法来改进猫咪检测器:
- 修正算法将狗误分类为猫的问题。
- 修正算法将“大猫” --- 大型猫科动物(比如狮子、黑豹等等)误分类为家猫的问题。
- 改善系统在模糊图像上的性能。
- 等等...
为了说明这一过程,下面是一个仅含四个样本的小型开发集的电子表格:
你可以并行且有效地评估所有上述想法。我通常会创建一个电子表格,并在查看100个被误分类的开发集样本完善其内容,同时记下一些可以帮助我记住特定样本的注释。为了说明这一过程,下面是一个仅含四个样本的小型开发集的电子表格:
上表中图片 3 的"大猫"与“模糊”列都被勾选了,另外由于一个样本可能与多个类别都有关联,所以表格底部的百分比加起来可能不是 100 %.
虽然你可以事先规定了一些类别(狗,大猫,模糊)并进行了手动的分类,但在浏览图像时你可能会受到启发并发现一些新的类别。比如你在浏览一些图片时发现经过 Instagram 过滤器预处理的图片造成了许多误差,你就可以在电子表格中加入一个新的 “Instagram” 列。手动查看误分类样本,并思考人类如何/是否能正确地分类这些样本,这将启发你发现新的类别以及提出新的解决方案。
有想法去改进对应误差的类别是很有帮助的。举个例子,如果你能“撤销” Instagram 的过滤功能并恢复到原始图片,那么 Instagram 分类的添加就是最有用的。这不代表你只能局限于那些已有改进方法的类别;这个过程主要是为了帮助你建立对一些潜在前景领域的直觉。
误差分析是一个迭代的过程。不要担心开始的时候你在脑海里没有任何分类。通过查看图片,你可能会提出一些关于误差类别的想法。在查看并手动分类一些图片以后,可能会启发你想出一些新的误差类别,根据新的类别再返回重新检查这些图片,以此类推。
假设你已检查了 100 个开发集的误分类样本,并得到了下面的表格:
现在你可以判断出处理狗的误分类项目最多可以改进 8% 的误差,处理大猫和模糊类别则可以改进更多。因此你将更有可能挑选后两者之一进行处理。如果你的团队有足够的人力并行处理多个方向,则可以要求一部分成员处理大猫类别,另一部分成员处理模糊类别。
误差分析并不会产生一个明确的数学公式来告诉你什么任务的优先级最高。你还需要考虑在不同类别上的预期进展以及解决每个类别所需的工作量。