设置开发和测试集
- 开发集和测试集的定义
- 开发集和测试集应该服从同一分布
- 开发集和测试集应该有多大?
- 使用单值评估指标进行优化
- 优化指标和满意度指标
- 通过开发集和度量指标加速迭代
- 何时修改开发集、测试集和指标
- 小结:建立开发集和测试集
基本误差分析
- 快速构建并迭代你的第一个系统
- 误差分析:根据开发集样本评估想法
- 在误差分析时并行评估多个想法
- 清洗误标注的开发集和测试集样本
- 将大型开发集拆分为两个子集,专注其一
- Eyeball 和 Blackbox 开发集该设置多大?
- 小结:基础误差分析
偏差和方差
学习曲线
与人类水平的表现相比
不同发行版的培训和测试
调试推理算法
端到端学习
按零件进行误差分析
总结
根据组件进行误差分析
假设你的系统由复杂的机器学习流水线所构建,并且你希望提高该系统的性能,那应该从流水线的哪一部分开始改进呢?你可以通过将误差归因于流水线的特定组件,来决定工作的优先级。
我们使用暹罗猫分类器的例子来进行说明:
在上图的流水线中,第一部分是猫检测器,它能够检测出猫,并将它们从图像裁剪出来;第二部分是猫的品种分类器,决定它是否是暹罗猫。 改进两个组件中的任何一个都有可能花费数年的时间。 你该决定关注哪个(些)组件呢?
通过按组件进行误差分析,你可以尝试将每一个算法造成的误差归因于流水线的某个(有时是两个)组件。例如,即使某张图片样本的正确标签为含有暹罗猫( $y=1$) ,算法依旧将其标签误分类为不含有暹罗猫($y=0$).
让我们人为地检查一下算法两个步骤的执行过程。假设暹罗猫检测器从下图中检测出一只猫:
这表示猫检测器给出了这样的图片:
接下来,猫品种分类器将此图像正确分类为不包含暹罗猫。 因此,猫品种分类器是正常工作的:给它一堆岩石并输出一个非常合理的标签($y=0$). 实际上,对上面裁剪的图像进行分类的人也会预测($y=0$). 因此,你可以清楚地将此误差归因于猫探测器组件。 另一方面,如果猫探测器输出了以下边界框:
你会得出如下结论,猫探测器已经完成了它的工作,并且它是有缺陷的猫品种分类器。
如果你对 100 个误分类的开发集图像遍历检查,并发现 90 个误差可归因于猫探测器,并只有 10 个误差可归因于猫品种分类器。 那么你可以有把握地得出结论,应该更加专注于改进猫探测器。
此外,你现在还可以方便地找到 90 个样本,其中猫探测器将输出不正确的边界框。 你可以使用这 90 个样本对猫探测器进行更深层次的误差分析,以了解该如何改进。
到目前为止,我们关于如何将误差归因于流水线的特定组件的描述是非正式的:查看每个组件的输出,并看看是否可以决定哪个部分出错了。 这种非正式的方法可能就是你所需要的。但在下一章中,你还将看到一种更正式的误差归因方式。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论