返回介绍

设置开发和测试集

基本误差分析

偏差和方差

学习曲线

与人类水平的表现相比

不同发行版的培训和测试

调试推理算法

端到端学习

按零件进行误差分析

总结

误差归因的一般情况

发布于 2024-08-16 12:42:34 字数 7035 浏览 0 评论 0 收藏 0

以下是误差归因的一般步骤。 假设在流水线中有三个步骤 A,B 和 C,其中 A 直接输出到 B,B直接输出到 C.

对于系统在开发集上存在的每个错误样本:

  1. 尝试人为修改 A 的输出为 “完美” 输出(例如,猫的 “完美” 边界框),并在此输出上运行流水线其余的 B,C 部分。 如果算法现在给出了正确的输出,那么这表明,只要 A 给出了更好的输出,那么整个算法的输出就是正确的;因此,你可以将此误差归因于组件 A. 否则,请继续执行步骤 2.
  2. 尝试人为修改 B 的输出为 “完美” 输出。如果算法现在给出正确的输出,则将误差归因于组件 B. 否则,继续执行步骤 3.
  3. 将误差归因于组件 C.

让我们来看一个复杂一点的例子:

你的自动驾驶汽车将使用上面的流水线技术。如何根据组件进行误差分析来决定专注于哪个(些)组件呢?

你可以将三个组件映射到 A, B, C,如下所示:

A:检测汽车 B:检测行人 C:规划汽车路径

按照上述程序,假设你在封闭的轨道上对你的汽车进行测试,发现汽车选择了一个比熟练司机更刺耳的转向方向。在自动驾驶领域,这种情况通常被称为场景(scenario)。接着你需要:

  1. 尝试人为修改 A (检测汽车)的输出,使之成为 “完美” 输出(例如,手动进入并告诉它其他汽车在哪里)。像之前一样运行流水线其余的 B,C 部分,但是允许 C (规划路径)使用 A 现在的完美输出。如果算法现在为汽车规划出一条更好的路径,那么这表明,如果 A 给出更好的输出,整个算法的输出会更好;因此,你可以将此误差归因于组件 A. 否则,继续执行步骤 2.
  2. 尝试人为修改 B (检测行人)的输出,使之成为 “完美” 输出。如果算法现在给出了正确的输出,那么将误差归因为组件 B.
  3. 将误差归因于组件 C.

ML 流水线的组件应该按照有向无环图(DAG)排序,这意味着你应该能够以某种固定的从左到右的顺序来计算它们,并且后面的组件应该只依赖于早期组件的输出。只要组件到 A->B->C 顺序的映射遵循 DAG 顺序,那么误差分析就没问题。但如果你交换 A 和 B,可能会得到略微不同的结果:

A:检测行人(以前是检测汽车)

B:检测汽车(以前是检测行人)

C:规划汽车路径

但是这个分析的结果仍然是有效的,并且可以很好地指导你把注意力集中在哪里。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文