你的团队对于提升猫检测有好几个想法:
- 修复狗被识别为猫的问题;
- 修复“大猫(great cats)”(狮子,美洲豹等)被识别为家猫(宠物)的问题;
- 提高系统在模糊图片上的性能;
- 。。。
你可以有效地并行评估所有的这些想法。我通常创建一个电子表格,查看100个错误分类的开发集样本并填充在表格里,同时也会写下帮助我记住特定样本的评论。用一个有4个样本的开发集举例这个过程,你的电子表格可能看上去如下:
上面的第3幅图片既是大猫又是模糊:它可能是与多个类别相关的例子。这就是为什么下面的百分比的和不必要是100%的原因。
虽然我描述这个过程是首先指定分类(狗,大猫,模糊),然后查看样本对它们进行分类,实际上,一旦你开始查看样本,你可能会发现新的错误类别。比如,可能在查看几十张图片后,你意识到很多错误都发生在Instagram过滤器处理后的图片上。你可能返回表格,增加“Instagram”一列。人工地查看算法认识错的样本,并且思考作为人类是否会获得正确的标签,通常会启发你处理新类别错误,提出解决方案。
最有用的错误分类是你有办法提升的那些。比如,如果你有办法“撤销(undoing)”Instagram过滤器以恢复原始图像,Instagram列就是最有用的。但是你不应该将自己局限在已经有提升的办法的错误类别上;这个过程的目的是建立你关于什么方向是最应该关注的直觉。
错误分析是一个迭代的过程。你甚至可以从没有任何分类想法开始。查看图片,你可能会有错误分配的一些想法。在查看图片后,手动分类一些图片,你可能会被启发创建一些新的分类,再返回添加新类别并重新查看图片,循环往复。
假设你完成了100个开发集样本的错误分析,获得:
你现在知道一个解决狗分类错误的项目可以消除最多8%的错误。解决大猫或模糊图片的错误可能会打来更多的收益。你可能会挑选后面两类之一进行工作。如果你的团队有足够的人力并行追踪多个方向,你可以让一些工程师进行大猫方向的工作,另一些进行模糊图片方面的工作。
错误分析不会有一个严格的数据公式告诉你什么任务优先级最高。你需要考虑你希望在不同的错误类别上取得多少进展,以及处理每个类别所需要的工作量。
网友评论