你的团队有提高猫检测器的几个点子:
- 解决狗被分类为猫的问题
- 解决“大猫”(狮子,豹等)被认为是家猫(宠物)的问题
- 提高系统在模糊图像上的性能
- ……
你可以并行地评估所有这些点子。我通常创建一个电子表格,并在查看这100张误分类开发集图片时填写这张表格,并记下有助于我记起具体是哪个例子的评论。下面用四个图片来演示我是怎么做的:
image | dog | great cat | blurry | comments |
---|---|---|---|---|
1 | √ | 不平常的斗牛犬颜色 | ||
2 | √ | |||
3 | √ | √ | 狮子;雨天在动物园拍摄的照片 | |
4 | √ | 树后面的豹 | ||
% of total | 25% | 50% | 50% |
上面的图片3既是大猫又是模糊图片:一个例子可以属于多种类别。这就是为什么表格底部的百分数加起来不等于100%的原因。
虽然在上述描述过程中,我首先确定类别(狗,大猫,模糊图片),然后将误分类图片分到每个类别中,在实际中,一旦你开始查看那些抽取的误分类图片,你可能会被启发从而提出新的类别。例如,你在查看了十几个图片后,意识到很多误分类图片是被Instagram过滤器预处理过后的图片。此时,你就可以在电子表格上加上Instagram一栏了。人工查看误分类图片,并在查看时问问自己如何/是否能够给出这些图片的正确标签,将能启发你提出新的错误类别和解决方案。
最有用的错误类别是针对它你已有了提升方案的类别。例如,Instagram类别将是最有用的,如果你有了一个“撤销”Instagram过滤器从而将图片恢复到原始图片的方法。但你不必纠结于已经有了改进想法的错误类别;错误分析阶段的目标是建立你关于“哪个领域是最有前途的、最值得关注的”的直觉。
错误分析是一个迭代过程。你可以从没有任何类别开始。通过查看图像,你可能会想出一些关于错误类别的ideas。然后,在对一些图片手工分类后,你可能会受到启发并提出新的类别,然后返回按照新类别重新检查图片,重复此循环。
假设你完成了100个误分类开发集图片的错误分析,并得到:
image | dog | great cat | blurry | comments |
---|---|---|---|---|
1 | √ | 不平常的斗牛犬颜色 | ||
2 | √ | |||
3 | √ | &radic | 狮子;雨天在动物园拍摄的图片 | |
4 | √ | 树后面的豹 | ||
… | … | … | … | … |
% of total | 8% | 43% | 61% |
你现在知道了强调消除狗狗错误的项目最多只能消除8%的错误,致力于消除大猫和模糊图片的错误能够提高更多。你可以致力于后两个类别之一。如果你的团队有足够的人,可同时追求多个方向,你可以要求一些工程师致力于大猫和模糊图片两个类别。
错误分析不会产生一个刚性(rigid)的数学公式,告诉你哪个任务应该是优先级最高的。你还必须考虑你希望在不同类别上取得多少进展,以及处理每个类别所需的工作量。