前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Macheine Learning Yearning学习笔记(十)

Macheine Learning Yearning学习笔记(十)

作者头像
yuquanle
发布2019-07-23 10:09:11
3880
发布2019-07-23 10:09:11
举报
文章被收录于专栏:AI小白入门AI小白入门

Macheine Learning Yearning最后一篇,激动~ Chapter 53~Chapter 57介绍了组件错误分析

Chapter 53

Error analysis by parts

组件错误分析

如果系统是使用复杂的机器学习流水线构建的,此时为了提高系统的性能,通过将错误归因于流水线的特定组件,可以确定工作的优先级,大大提高工作效率。以暹罗猫分类器为例:

  • 第一个组件,猫检测器,从图片中检测出猫并裁剪出来。
  • 第二个组件,猫种类分类器,决定它是否是暹罗猫。

通过执行组件错误分析,你可以尝试将算法犯的每个错误归因于流水线中的两个组件中的一个(有时候是两个)。例如,尽管正确的label是y=1,但算法却错误的将这张照片分类为不包含暹罗猫(y=0)。

假设暹罗猫检测器检测出的猫如下:

这意味着提供给猫种类分类器的是如下图片:

然后猫种类分类器将该图片正确地分类为不包含暹罗猫。因此,猫种类分类器是无可指责的:提供一堆石头的照片并输出非常合理的label y=0。确实,人对上面的裁剪图片进行分类也会预测y=0。因此,你可以清楚地将该错误归因于猫检测器

Chapter 54

Attributing error to one part

将错误归因于某个组件

继续这个例子:

假设猫检测器输出如下边界框:

因此猫种类分类器被给予如下裁剪图片,于是其错误地输出y=0,即图片里没有猫。

猫检测器做的很差。然而,技术娴熟的人仍可以从如此差的裁剪图片中识别出暹罗猫。所以我们应该将该错误归因于猫检测器,还是猫种类分类器,还是归因于两者?答案是模棱两可的。

如果像这些模棱两可的样例数量较小,你可以做任何想你想做的决定并得到类似的结果。但这里有一个更正式的测试,它可以让你更明确地将错误归因于某个组件。

  • 用手工标注的边界框替代猫检测器的输出。
  • 用相应的裁剪图片去跑猫种类分类器。如果猫种类分类器仍将其错误分类,那么将错误归因于猫种类分类器。否则,将错误归因于猫检测器。

换句话说,进行一项试验,实验中给猫种类分类器提供一个“完美的”输入。有两种情况:case 1: 即使提供了“完美的”边界框,猫种类分类器仍错误地输出y=0。这种情况下,很明显猫种类分类器是错的。case 2: 提供一个“完美的”边界框,猫种类分类器现在可以正确输出y=1。这表明如果只有猫检测器提供一个更完美的边界框,那么整个系统的输出才是正确的。因此,将错误归因于猫检测器。

通过在错误分类的开发集图片上执行该分析,你现在可以明确地将每一个错误归因于一个组件。这允许你评估由于流水线中每个组件引起的错误分数,因此决定在哪儿集中注意力。

Chapter 55

General case of error attribution

错误归因的一般情况

以下是错误归因的一般步骤。假设流水线有三个步骤A、B和C,A直接输入给B,B直接输入给C。

对每个系统在开发集上所犯的错误:

  1. 尝试人为修改A的输出为“完美”输出,然后在此输出上运行流水线B和C。如果算法现在给出正确的输出,那表明如果只有A提供更好的输出,整体的算法输出才是正确的;因此,你可以将错误归因于组件A。否者,进行第二步。
  2. 尝试人为修改B的输出为“完美”输出,如果算法现在给出正确的输出,那么将错误归因于组件B。否者,进行第三步。
  3. 将错误归因于组件C。

Chapter 56

Error analysis by parts and comparison to human-level performance

组件错误分析和与人类水平的对比

对学习算法进行错误分析就像使用数据科学来分析ML系统的错误,以获得有关下一步该做什么的见解。 从最基本的角度来看,零件的错误分析告诉我们哪些组件的性能是最值得努力改进的。

我们可以看人类对任务的性能进行基准测试。 我们前面的大多数例子都有这个隐含的假设。 如果您正在构建ML系统,其中最终输出或某些中间组件正在做甚至人类无法做好的事情,那么这些程序中的一些将不适用。

这是解决人类可解决问题的另一个优势——你有更强大的错误分析工具,因此你可以更有效地优先考虑团队的工作。

Chapter 57

Spotting a flawed ML pipeline

发现有瑕疵的ML流水线

假如你的ML流水线的每个独立组件表现在人类水平或接近人类水平,但是整体流水线却远远低于人类水平,这通常意味着流水线有瑕疵,需要重新设计。错误分析也可以帮助你理解你是否需要重新设计管道。最终,如果你不认为流水线整体将会达到人类水平的表现,即使每个独立组件具备人类水平表现(记住你正在和被给予组件相同输入的人类进行比较),那么流水线是有瑕疵的并应该被重新设计。

恭喜完成本书的阅读!

唯一比成为一个超级英雄更好的事是成为超级英雄团队的一员。希望你可以将本书分享给你的朋友和队友,并帮助创造其他的超级英雄。那我的本书学习之旅也到此结束,看完觉得不过瘾的童鞋可以下载原版观看哟~~

参考:

1.http://www.mlyearning.org/

2.https://github.com/xiaqunfeng/machine-learning-yearning

The End

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-01-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI小白入门 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Macheine Learning Yearning最后一篇,激动~ Chapter 53~Chapter 57介绍了组件错误分析
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档