误差归因至某个组件

让我们继续使用这个例子:

误差归因至某个组件 - 图1

假设猫检测器输出了这样的边界框:

误差归因至某个组件 - 图2

被裁剪的图片将会送给猫品种分类器,因此它给出了错误的分类结果

误差归因至某个组件 - 图3 , 即图片中没有猫。

误差归因至某个组件 - 图4

猫检测器的效果很糟糕。 然而,一个技术娴熟的人类仍然可以从这种糟糕的裁剪图像中识别出暹罗猫。 那么我们是否可以将此误差归因于猫检测器或猫品种分类器两者之一(或两者兼有)呢? 答案是模棱两可的。

如果像这样模糊情况的数量很少,你可以做出你想要的任何决定并获得类似的结果。 但这里有一个更正式的测试方法,可以让你更明确地将误差归因于某一个组件:

  • 用手动标记的边界框替换猫检测器的输出。
  • 通过猫品种分类器处理相应的裁剪图像。 如果猫品种分类器仍将其错误地分类,则将误差归因于猫品种分类器。 否则,将此误差归因于猫检测器。换而言之,进行一个实验,在其中为猫品种分类器提供 “完美” 输入。 有两种情况:

情况1:即使给出了一个 “完美” 的边界框,猫品种分类器仍然错误地输出

误差归因至某个组件 - 图5. 在这种情况下,猫品种分类器很明显存在着问题。情况2:给定一个 “完美” 的边界框,品种分类器现在正确输出误差归因至某个组件 - 图6. 这表明只要猫检测器给出了一个更完美的边界框,那么整个系统的输出就是正确的。 因此,将误差归因于猫检测器。

通过对开发集误分类的图像执行此分析,你现在可以将每个误差明确地归因于一个组件。 这允许你对流水线不同组件所造成的误差程度进行估计,从而决定将注意力集中在哪儿。