0%

14. 错误分析:查看开发集样本来评估ideas

当你使用猫咪APP的时候,注意到一些被错误,识别成猫咪的狗样本。一些狗长的像猫!
于是一个团队成员建议和第三方软件进行合作,使系统可以更好的处理狗样本。这些改变需要花一个月的时间,并且团队成员热衷于这一方案,你会让他们这样做吗?
在为这个任务投资一个月前,我建议你首先评估一下它实际上会提高多少系统 的准确率。然后你才能理性的选择是否值得花费这一个月的开发时间。

具体来说,你可以做这些事情:

  1. 获取100个系统分类错误的样本
  2. 手动查看这些样本,计算其中有多少比例是狗的图片

查看错误分类样例的这一过程称为:错误分析(error analysis)。在该案例中,如果你发现只有5%的错误分类图像是狗,那么无论你在狗的问题上做多少改进,可能你都无法消除这5%的错误。换句话说,这5%是上述建议能够达到的改进上限。因此,整个系统当前的准确率是90%(误差10%),这一改进可能得到最多90.5%的准确率(或9.5%的错误率,比原来的错误率少5%)。
相反,如果你发现50%的错误图像都是狗,那么你最好找一个第三方进行合作。它可以将准确率从90%提升到95%(误差相对减少50%,从10%降到5%)。
这种简单的错误分析的计算过程可以给你一个快速的方法来评估为“狗”的问题加入第三方软件是否值得。它为你决定是否做出这笔投资提供了一个定量的基准。
错误分析通常可以帮你找出不同想法有哪些前景。我看到很多工程师不愿意进行错误分析。相比于质疑这个想法是否值得花时间投入,直接实现一个然后查看效果可能会更好,这是一个常见的错误:可能会导致你的团队花费一个月的时间只能带来很少的收益。
手动检查100个样本不会花费太长的时间。即使你每分钟只看一张图,不到两小时你就可以完成,这不到两小时的时间可以为你节约一个月的白白努力时间,值得花费。
错误分析(error analysis)是指检测开发集中算法错误分类样本的过程,以便了解错误的深层原因。它不仅可以帮你重点发展你的项目,正如这个例子所述,还可以给你一些新的启发。下节将讨论该内容。接下来几个章节还将介绍一些错误分析的最佳实践。