分享

吴恩达《Machine_Learning_Yearning》中文版 第13-16章误差分析

howtodown 2018-5-28 14:24:07 发表于 连载型 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 0 4932
问题导读
1.什么是误差分析?
2.误差分析有哪些作用?
3.是否可以人工分析误差?



上一篇吴恩达《Machine_Learning_Yearning》中文版 第9、10、11、12章
http://www.aboutyun.com/forum.php?mod=viewthread&tid=24550



13 快速构建并迭代你的第一个系统


当你想要构建一个新的垃圾邮件过滤系统时,团队可能会有不同的想法:
  • 收集海量的垃圾邮件作为训练集。比如设置一个“蜜罐(honeypot)”,故意地向垃圾邮件系统发送一些虚假的邮件地址,以便于能够自动收集他们发送到这些地址的垃圾邮件。
  • 开发用于理解邮件文本内容的功能。
  • 开发用于理解邮件信封或邮件头部特征的功能,据此了解邮件经由了哪些网络服务器进行中转。
  • 更多的操作...

虽然我已经在反垃圾邮件领域有了一定经验,有时却依然难以在上面的方向中进行选择。如果你在此领域并不是一个专家,难度会变得更大。
试图在一开始就设计和构建出完美的系统会有些困难,不妨先花几天的时间构建并训练一个最基础的系统。
这个建议旨在帮助那些想要构建 AI 应用的读者,而不是那些想要发表研究论文的人,我将会在后面提到与研究有关的话题。

或许这个最基础的系统离我们所能构建的“最佳”系统相去甚远,但研究里面的基础功能也很有价值:你会很快地找到一些线索来帮助决定在什么方向投入时间。后面的一些章节会向你解释去如何解读这些线索。


14 误差分析:根据开发集样本评估想法
你在使用猫咪 app 时注意到它将一些狗误分类为猫了,因为有些狗的确很像猫的样子。
团队中有人建议加入第三方软件来帮助系统更好地处理狗的样本,这需要一个月的时间去完成。面对团队成员高涨的热情,你会允许他们这样做吗?
在执行这项计划前,我建议你预估一下该任务能提升多少的系统精度。这样你就能够更加理性地判断是否需要花一个月的时间做这件事,还是将这段时间用于其它任务。
具体而言,你可以这样:
  • 收集 100 个开发集中被误分类的样本,即造成系统误差的样本。
  • 人为查看这些样本,并计算其中狗的比例。

查看误分类样本的这一过程称为误差分析。在上面的例子中,如果只有 5% 误分类的图像是狗,那么无论你在狗的问题上做多少的算法改进,最终都不会消除超过原有的 5% 误差 . 也即是说 5% 是该计划项目所能起到帮助的“上限”(最大可能值)。所以如果整个系统的当前精度为 90%(对应误差为 10%),那么这种改进最多能将精度提升到 90.5% (对应误差下降到 9.5% , 改进了原有 10% 误差其中的 5%)。

相反,如果你发现 50% 的误分类图像是狗,那就可以自信地说这个项目将效果明显,它可以将精度从 90% 提升到 95% (相对误差减少 50%,整体误差由 10% 下降到 5%)。

这种简单的误差分析计算过程可以帮你快速评估,从而了解是否需要将处理狗样本的第三方软件进行整合。它为是否值得进行这项投入给出了一个量化的基准。

误差分析也可以帮助你发现在不同的想法中哪些更有前景。我见过许多工程师不愿意进行误差分析,他们更倾向于直接提出一个并实现一个想法,而不考虑该想法是否值得花时间去投入。这是一个普遍的误解:后果可能是你的团队在耗费一个月的时间后却发现收益甚少。
人为检查 100 个样本并不会占用太多的时间。即使你每分钟只检查一张图片,也可以在两小时内完成,而这两个小时可能帮你节省一个月的工作。
误差分析(Error Analysis) 指的是检查算法误分类的开发集样本的过程,以便你找到造成这些误差的原因。这将帮助你确定项目优先级(就像上面的例子提到的)并且获得关于新方向的灵感,我们会在后面讨论这些内容。接下来的几章会给出一些误差分析的最佳实践。


15 在误差分析时并行评估多个想法
你的团队有一些关于改进猫检测器的想法:
  • 修正算法将狗误分类为猫的问题。
  • 修正算法将大型猫科动物(比如狮子、黑豹等等,下面用大猫代指)误分类为家猫的问题。
  • 改善系统在模糊图像上的表现。
  • ...


上述的想法都可以并行地进行评估。通常我会创建一个电子表格,并在查看被误分类的 100 个开发集样本时完善其内容,同时我也会留下一些能够帮助我记住特定样本的备注。为了说明这一过程,下面是一个仅含四个样本的小型开发集的电子表格:


图像
大猫
模糊
备注
1

不常见的美国比特犬
2


3
狮子;雨天在动物园拍摄的图片
4

树木后的美洲豹
占全体比例25%50%50%

你会发现表格中图片 3 的"大猫"与“模糊”列都被勾选了,另外由于一个样本可能与多个类别都有关联,所以表格底部的百分比加起来可能不是 100 %.
虽然你可能事先规定了一些类别(狗,大猫,模糊)并进行了手动的分类,但在浏览图像时你可能会受到启发并发现一些新的类别。比如你在浏览一些图片时发现经过 Instagram 过滤器预处理的图片造成了许多误差,你就可以在电子表格中加入一个新的 “Instagram” 列。手动查看误分类样本,并思考人类如何/是否能正确地分类这些样本,这将启发你发现新的类别以及解决方案。

有途径去改进对应误差的类别是很有帮助的。举个例子,如果你能“撤销” Instagram 的过滤功能并恢复到原始图片,那么 Instagram 分类就能发挥作用。这不代表你只能局限于那些已有改进途径的类别;这个过程主要是为了帮助你建立对一些潜在有效改进的直觉。
假设你已检查了 100 个开发集的误分类样本,并得到了下面的表格:


图像
大猫
模糊
备注
1

不常见的美国比特犬
2


3
狮子;雨天在动物园拍摄的图片
4

树木后的美洲豹
............
占全体比例8%43%61%

现在你应该可以判断出处理狗的误分类项目最多可以改进 8% 的误差,处理大猫和模糊类则可以改进更多。因此你将更有可能挑选后两者之一进行处理。如果你的团队有足够的人力并行处理多个方向,则可以要求一部分成员处理大猫类别,另一部分成员处理模糊类别。

误差分析并不会产生一个明确的数学公式来告诉你什么任务的优先级最高。你还需要考虑在不同类别上的预期进展以及解决每个类别所需的工作量。



原文链接

没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条