56. 组件误差分析与人类效率的比较

对学习算法进行误差分析就像使用数据科学来分析机器学习系统的误差,目的是作出有关下一步该做什么的决策。从最基本的角度来看,组件的误差分析最重要的是告诉了我们哪些组件的是最值得努力改进的。

假设你有一个关于客户在网上购物的数据集。数据科学家可能有许多不同的方法来分析数据,并可能会得出许多不同的结论:关于网站是否应该提高价格?关于是否应该通过不同营销活动获得的客户的终身价值等等。在这里,分析数据集的方法没有所谓的正确与否,不同的方法都有可能得出有用的决策。同样,也没有一种绝对「正确」的方法来进行误差分析。通过这些章节,你已经学习了许多最常见的设计模式,可以用于分析机器学习系统并得出有利于优化系统的决策,当然你也可以自由地尝试其他分析误差的方法。

让我们回到自动驾驶的应用程序中来,其中汽车检测算法输出附近汽车的位置(可能是速度),行人检测算法输出附近行人的位置,这两个输出最终被用于为这辆车规划行驶路线。

56. 组件误差分析与人类效率的比较 - 图1

如果想要调试该机器学习管道,却不希望严格遵循上一章中提到的过程,你可以非正式地询问:

  1. 在检测汽车时,汽车检测组件与人类水平表现相差多少?
  2. 在检测行人时,行人检测组件与人类水平表现相差多少?
  3. 整个系统的性能与人类表现相差多少?在这里,人类水平的表现假定:人类必须仅根据前两个组件的输出(而不是根据摄像机图像)来规划汽车的路径。换句话说,当人类只得到相同的输入时,路径规划组件的性能与人类的性能相较如何?

如果你发现其中一个组件的性能表现远低于人类水平表现,那么应该专注于提高该组件的性能。

许多的误差分析过程在我们去尝试自动化人类所做的工作的时候效果最好,因此可以针对人类水平表现进行基准测试。我们前面的大多数例子都有这个隐式假设。如果你正在构建一个机器学习系统,其中的最终输出或一些中间组件正在做一些连人类都做不到的事情,那么上述一些过程将不适用。

总而言之,这是处理人类可以解决的问题的另一个优势——你有更强大的误差分析工具,因此你可以更有效地为团队的工作标定优先级。