设置开发和测试集
- 开发集和测试集的定义
- 开发集和测试集应该服从同一分布
- 开发集和测试集应该有多大?
- 使用单值评估指标进行优化
- 优化指标和满意度指标
- 通过开发集和度量指标加速迭代
- 何时修改开发集、测试集和指标
- 小结:建立开发集和测试集
基本误差分析
- 快速构建并迭代你的第一个系统
- 误差分析:根据开发集样本评估想法
- 在误差分析时并行评估多个想法
- 清洗误标注的开发集和测试集样本
- 将大型开发集拆分为两个子集,专注其一
- Eyeball 和 Blackbox 开发集该设置多大?
- 小结:基础误差分析
偏差和方差
学习曲线
与人类水平的表现相比
不同发行版的培训和测试
调试推理算法
端到端学习
按零件进行误差分析
总结
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
误差归因的一般情况
以下是误差归因的一般步骤。 假设在流水线中有三个步骤 A,B 和 C,其中 A 直接输出到 B,B直接输出到 C.
对于系统在开发集上存在的每个错误样本:
- 尝试人为修改 A 的输出为 “完美” 输出(例如,猫的 “完美” 边界框),并在此输出上运行流水线其余的 B,C 部分。 如果算法现在给出了正确的输出,那么这表明,只要 A 给出了更好的输出,那么整个算法的输出就是正确的;因此,你可以将此误差归因于组件 A. 否则,请继续执行步骤 2.
- 尝试人为修改 B 的输出为 “完美” 输出。如果算法现在给出正确的输出,则将误差归因于组件 B. 否则,继续执行步骤 3.
- 将误差归因于组件 C.
让我们来看一个复杂一点的例子:
你的自动驾驶汽车将使用上面的流水线技术。如何根据组件进行误差分析来决定专注于哪个(些)组件呢?
你可以将三个组件映射到 A, B, C,如下所示:
A:检测汽车 B:检测行人 C:规划汽车路径
按照上述程序,假设你在封闭的轨道上对你的汽车进行测试,发现汽车选择了一个比熟练司机更刺耳的转向方向。在自动驾驶领域,这种情况通常被称为场景(scenario)。接着你需要:
- 尝试人为修改 A (检测汽车)的输出,使之成为 “完美” 输出(例如,手动进入并告诉它其他汽车在哪里)。像之前一样运行流水线其余的 B,C 部分,但是允许 C (规划路径)使用 A 现在的完美输出。如果算法现在为汽车规划出一条更好的路径,那么这表明,如果 A 给出更好的输出,整个算法的输出会更好;因此,你可以将此误差归因于组件 A. 否则,继续执行步骤 2.
- 尝试人为修改 B (检测行人)的输出,使之成为 “完美” 输出。如果算法现在给出了正确的输出,那么将误差归因为组件 B.
- 将误差归因于组件 C.
ML 流水线的组件应该按照有向无环图(DAG)排序,这意味着你应该能够以某种固定的从左到右的顺序来计算它们,并且后面的组件应该只依赖于早期组件的输出。只要组件到 A->B->C 顺序的映射遵循 DAG 顺序,那么误差分析就没问题。但如果你交换 A 和 B,可能会得到略微不同的结果:
A:检测行人(以前是检测汽车)
B:检测汽车(以前是检测行人)
C:规划汽车路径
但是这个分析的结果仍然是有效的,并且可以很好地指导你把注意力集中在哪里。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论