13. 错误分析:查看开发集样例评估想法(machine learning yearning)

当你使用猫app的时候,你发现有将狗识别为猫的错误。一些狗长得像猫!


一个成员建议引入第三方软件,从而让系统在狗上面处理得更好。这个改变将花费一个月的时间,团队的成员也很热衷这个方案。你应该让他们这么做吗?

在投入一个月于这项工作之前,我建议你首先评估一下它实际会提升这个系统多少的准确率。然后你可以理性地决定是否值得一个月的开发时间,或可值得用这个时间去做别的工作。

具体的,你可以:

  • 获取100个系统错误分类的开发集样例;
  • 人工看一下这些样例,数一下是狗的比例;

查看错误分类样例的过程被成为“错误分析”。在这个例子下,如果你发现这里面只有5%是狗,那么无论你对狗问题做多少改进,都不会规避超过5%的错误。换句话说,5%是引入的工程能达到的最大提升效果。因此,如果整个系统现在是90%的准确率(10%的错误),这个提升可能会导致最多90.5%的准确率(或9.5%的错误,比之前10%的错误减少5%)。

相反,如果你发现50%的错误都是狗,那么你会更有信息引入的工程会有大的影响。它可能会将准确率从90%提高到95%(错误率相对降低50%,从10%降低到5%)。

这个错误分析的简单的计算过程会帮助你快速地评估引入第三方软件在解决狗问题上的可能收益。它为是否做这个投资提供了数据基础。

错误分析经常帮助你找出不同方向有多少希望。我见过很多工程师不愿意做错误分析。相比于判断是否想法值得时间投入,实现想法看上去更令人兴奋。这是一个错误:它可能会导致你的团队花费一个月的时间最后意识到只带来很小的收益。

手动地检查100个样本并不会花费很长时间。即使你一分钟处理一个图片,你也会在2个小时内完成。这两个小时会帮忙节省一个月的浪费,应该花费这2个小时。

“错误分析”值得是检查你的算法错误分类的开发样本的过程,这样会理解错误发生的潜在原因。这会帮助你为项目排优先级别(就像例子里那样)以及启发一些新的方向(下面会讨论)。下面的内容将介绍错误分析的最佳实践。

你可能感兴趣的:(13. 错误分析:查看开发集样例评估想法(machine learning yearning))