分享

吴恩达《Machine_Learning_Yearning》中文版第33-35章 人类表现水平

howtodown 2018-6-20 11:55:19 发表于 连载型 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 1 5524

问题导读
1.为何与人类表现水平进行对比?
2.如何定义人类表现水平?
3.在哪些机器学习应用程序中,机器已经超越了人类的水平?






上一篇
吴恩达《Machine_Learning_Yearning》中文版第28-32章 学习曲线
http://www.aboutyun.com/forum.php?mod=viewthread&tid=24688

33 为何与人类表现水平进行对比
许多机器学习系统的设计目的是想要自动化一些人类可以处理得很好的事情,可举的例子有图像识别、语音识别以及垃圾邮件分类等等。学习算法进步如此之快,有许多类似任务的处理已经超过了人类的表现水平。

此外,有许多理由表明在处理人类擅长的任务时,构建机器一个学习系统会更加简单:

易于从人为标签中获取数据。举个例子,由于人类可以很好地识别图片中的猫,因此让人们为你的学习算法提供高精度的带标签数据也很方便。

基于人类直觉进行误差分析。假设某个语音识别系统的表现要低于人类的表现水平。比如错误地将音频片段 “This recipe calls for a pear of apples” 中的 “pair” 认为是 “pear”. 此时你可以利用人类的直觉来尝试理解,普通人会利用何种信息来获取正确的转录内容,并且试着修改你的学习算法,使它在相同的知识点上有着更好的表现。

使用人类表现水平来估计最优错误率,并设置可达到的“期望错误率”。 假设你的算法在某个任务上达到了 10% 的误差,但普通人所能达到的误差是 2% . 由此我们就可以知道最优错误率是 2% 或更低,这也表明可避免偏差至少是 8% . 所以你应当尝试一下降低偏差的技术。更一般地说,有一个合理可实现的“期望错误率”可以帮助你去估计学习算法的可避免偏差。这反过来也帮你决定是否使用误差降低技术。

尽管项目3可能听起来不太重要,但我发现有一个合理且可实现的目标错误率有助于加快团队的进度。知道你的算法有很高的可避免偏差是非常有价值的,它将展开一个据有多个选项的菜单供你去尝试。

连人类都不擅长的任务也是存在的。比如向你推荐一本书,或者在某个网站上选择向用户展示的广告,或者对股票市场进行预测。如今计算机在此类任务上的表现已经远超过人类。对于这些应用,我们主要面临着下面的问题:

获取标签数据很难。 比如很难去获取用户数据库,并要求人工标记者使用“最优”的书籍标签对数据库进行注释,从而向用户推荐书籍。如果你正在负责一个书籍销售网站或者是 APP 的运营,你可以通过向用户展示书籍并查看他们的购买记录来获取数据。可当你没有这样一个网站时,就需要去找到一些更具创意的方法来获取数据了。

人类的直觉难以依靠。例如,几乎没有人能准确地预测股票市场。因此当我们的股票预测算法比随机猜测的表现还要差时,很难弄清楚要如何去改进它。

最优错误率和合理的期望错误率难以确定。假设你已经有了一个很好的图书推荐系统。如果没有人类水平作为参考,你怎么知道它还能改善多少呢?

34 如何定义人类表现水平
假设你正在做一个医学成像应用程序,它可以自动依据X射线图像进行诊断。 除了一些基础的训练外,一个没有任何医学背景的人在该任务上的错误率为 15% .  一名新手医生的错误率为 10% ,而经验丰富的医生可以达到 5% . 如果由小型的医生团队对每一幅图像进行单独的讨论,错误率将降低至 2% . 上述的哪一种错误率可以定义为“人类表现水平”呢?

在该情景下,我将使用 2% 作为人类表现水平的代表来获得最优错误率。 你还可以将 2% 设置为期望的性能水平,因为与人类表现水平相比,前一章的所有三个理由都适用:

易于从人为标签中获取数据。你可以让一组医生为你提供错误率为 2% 的标签。

基于人类直觉进行误差分析。通过与医生讨论图像内容,你可以利用他们的直觉。

使用人类表现水平来估计最优错误率,并设置可达到的“期望错误率”。 使用 2% 的误差作为我们对最优错误率的估计是合理的。最优错误率甚至可能低于 2%,但它不可能更高,因为一个医生团队就已经有可能达到 2% 的误差水平。相比之下,使用 5% 或 10% 作为最优错误率的估计就显得不合理了,因为我们知道这些估算值必然过高了。

当需要获得标签数据时,你可能不希望与整个团队讨论每一张图片,因为他们的时间很宝贵。或许你可以让新手医生给绝大多数的病例贴上标签,而把那些较难分析的病例交给更有经验的医生或医生团队。

如果你的系统目前的误差为 40%,那么不论是让初级医生(10% 误差)还是有经验的医生(5% 误差误)来给你的数据贴上标签,那都没有关系。是如果你的系统误差已经是 10%,那么将人类表现水平定义为 2% 将为你提供更好的途径来改进你的系统。

35 超越人类表现水平
现在你在做一个语音识别项目,并且有一个音频片段数据集。假设数据集里有许多的噪声,导致即使是人类来识别也会有 10% 的误差。同时假设你的算法已经达到了 8% 的误差,你能够使用第 33 章中提到的三种技术来继续取得快速的进展吗?

如果你能找到人类表现水平远超现有系统的数据子集,使用那些技术来驱动进则仍然可行。举个例子,假设你的系统在处理识别含有噪音的音频任务时表现已经优于人类,然而在转录语速很快的语音时人类仍然占有优势。

对于语速很快的语音数据子集:

你仍可以从输出质量比你的算法高的人那儿获取转录数据。

你可以利用人类的直觉来理解,为什么你的系统没能够识别这些数据,而人类做到了。

你可以使用该子集上的人类表现水平作为期望表现目标。

更常见的做法是,只要在开发集上存在着一些人类能正确处理而算法不能的样本,前面提到的技术就能够被应用。即使你的算法在整个开发集或是测试集上的表现已经超过了人类,这样做也是正确的。

在许多重要的机器学习应用程序中,机器已经超越了人类的水平。例如,机器可以更好地预测电影分级,一辆送货车到某个地方需要多长时间,或者是否批准贷款申请。只有当人类很难识别出算法明显出错的样本时,一小部分技术才可以被应用。因此在机器已经超越人类水平的问题上,进展通常比较慢,而当机器仍在试图赶上人类水平时,进展速度反而更快。



原文链接

本帖被以下淘专辑推荐:

已有(1)人评论

跳转到指定楼层
jiangzi 发表于 2018-6-20 12:28:17
吴恩达《Machine_Learning_Yearning》中文版~~
回复

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条