57. 发现有缺陷的机器学习管道

如果机器学习管道的每个单独组件的性能都达到了人的水平或接近人的水平,但是管道的整体性能却远远低于人的水平,这通常意味着管道有缺陷,需要重新设计。误差分析还可以帮助你了解是否需要重新设计管道。

57. 发现有缺陷的机器学习管道 - 图1

在前一章中,我们有讨论到这三个部分组件的表现是否达到人类水平的问题。假设所有三个问题的答案都是肯定的,也即是系统满足:

  1. 汽车检测部件在用于从摄像机图像中检测汽车中(大概)达到人类级别的性能;
  2. 行人检测组件在用于从摄像机图像中检测汽车中(大概)达到人类级别的性能;
  3. 路线规划组件能达到和利用前两个组件的输出(而不是根据摄像机图像)来规划汽车的路径的专业人士相当的性能表现。

然而,你的自动驾驶汽车系统的整体性能远远低于人类水平。换句话说,能够访问摄像机图像的人可以为汽车规划出明显更好的路径。据此你能得出什么结论?

唯一可能的结论是机器学习管道结构存在缺陷。在这种情况下,规划路径组件在给定其输入的情况下运行得很好,但是输入并没有包含足够的信息。此时应该问问自己,除了前面两个管道组件的输出之外,还需要什么其他信息才能很好地规划汽车行驶的路径。换句话说,一个熟练的驾驶员还需要什么其他信息?

例如,假设你意识到人类驾驶员还需要知道车道标记的位置,这建议你应该重新设计管道如下【1】:

【1】:在上面的自动驾驶案例中,理论上,我们可以通过将原始相机图像直接输入规划组件来解决这个问题。但是,这违反了第 51 节中描述的「任务简单性」的设计原则,因为路径规划模块现在需要输入原始图像,并且有一个非常复杂的任务需要解决。这就是为什么添加一个检测车道标记组件是一个更好的选择的原因——它有助于将重要的和以前缺少的有关车道标记的信息提供给路径规划模块,同时可以避免使任何特定模块过于复杂而变得无法构建/训练。

57. 发现有缺陷的机器学习管道 - 图2

最后,如果你认为,即使在每个组件都具有人类级别的性能的情况下(请记住,你是在和与管道组件具有相同输入的人进行比较),管道整体上也不会达到人类水平的性能,则表明管道有缺陷,应该重新设计。

本书结语

恭喜你完成这本书的阅读!

在第 2 章中,我们讨论了本书如何帮助你成为团队的超级英雄。

唯一比成为超级英雄更好的事情就是成为超级英雄团队的一员。我希望你能把这本书的分享给你的朋友和队友,并帮助他们成为超级英雄!