Andrew NG是计算机科学家,执行官,投资人,企业家,也是人工智能领域的领先专家之一。 他是百度的前任副总裁兼首席科学家,是斯坦福大学的兼职教授,是最受欢迎的机器学习在线课程的创建者之一,Coursera.com的联合创始人以及Google Brain的前负责人。 在百度,他的积极参与将人工智能团队扩展到数千人。
这本书从这样一个小故事开始:想象一下,你想建立一个一家公司,它拥有前沿的猫检测系统。目前你已经构建了一个原型系统,但不幸的是,系统性能并不是那么好。 你的团队提出了一些如何改进系统的想法,但你对改良方法的选取感到困惑。 现在,你可以构建世界领先的猫检测器平台,或者在错误的改良方向上浪费几个月的时间。
这本书是告诉你如何在这种情况下决定和优先排序的。 吴恩达曾说过,大多数机器学习问题都会留下许多线索,这些线索会提示你最有用的后续步骤以及你应该避免做什么。吴恩达还接着解释道,在机器学习领域,学习“阅读”这些线索是一项重要的技能。
简而言之,ML Yearning旨在让您深入了解一些改进机器学习项目的技巧性方向。
由于您的团队成员在当你提出新的做事想法时可能会持怀疑态度,因此吴恩达将本章节(简介)进行了缩短(只有1-2页),以便您的团队成员可以在几分钟内阅读它以理解概念背后的想法。如果您有兴趣阅读这本书,请注意它其实并不适合初学者,因为它要求读者对监督的学习和深度学习有基本的了解。
在这篇短文中,根据我的理解,我将用我自己的表达方式来分享这本书的六个概念。
NG(吴恩达)在整本书中都在强调,快速迭代是至关重要的,因为机器学习是一个迭代过程。您应该尽可能快地为您的问题构建构建一个简单的原型,而不是考虑如何打造更加完美的ML(机器学习)系统。如果您不是机器学习问题领域的专家,则更应该这样做,因为要正确地猜测最有希望的方向是非常困难的。
您应该在短短几天内构建第一个原型,然后线索将会浮现出来,向您展示改善原型性能的最有希望的方向。在下一次系统的迭代中,您将基于这些线索之一改进系统并构建其新的版本。你会一次又一次地这样来更新机器学习系统。
他继续解释说,迭代地越快,你将取得的进展越多。本书的其他概念建立在这一原则之上。请注意,这适用于那些只想构建基于AI的应用程序而不在该领域进行研究的人员。
这个概念建立在前一个概念的基础上,并且要解释为什么您应该选择一种评价标准非常简单:它让您能够快速评估算法,因此您可以更快地迭代。使用多个评估指标只会使算法的比较变得更加困难。
想象一下,你有两种算法。第一个的精度为94%,召回率为89%。第二个的精度为88%,召回率为95%。
如果你没有选择单一的评价标准,那么就没有分类器有明显的优越性,所以你可能不得不花一些时间来弄明白哪个分类器更好。问题是,你在每次版本迭代时都会浪费很多时间完成这项任务,并且从长远来看这种时间会增加。您将尝试很多关于体系结构,参数,特征等的想法。如果您使用单一评价标准(例如精度或f1分数),则可以根据其模型性能对所有模型进行排序,并迅速决定哪一个最佳。改进评估过程的另一种方法是将多个评价标准组合成单个评价标准,例如,通过平均多个误差评价标准。
然而,将存在需要满足多个 评价标准的ML(机器学习)问题,例如:有些问题需要考虑运行时间。 NG(吴恩达)解释说,您应该定义一个“可接受的”运行时间,这使您能够快速过滤掉出太慢的算法,并根据您的单一评价标准将令人满意的算法相互比较。
简而言之,单一评价标准使您能够快速评估算法,从而更快地进行版本迭代。
错误分析是查看算法哪里输出不正确的过程。 例如,假设当你的猫分类器会错误的将鸟类分类为猫,你可能已经有若干个改进想法。
通过正确的错误分析,你可以评估改进想法是否会真的提高系统的性能,而不需要在花费几个月的时间实现这个想法后却意识到它对系统并不重要。这能够决定将资源花在哪个想法上达到好的效果。如果你发现错误分类的图像中只有9%是鸟类,那么无论如何改进算法对鸟类图像的性能都没有影响,因为它不会提高超过9%的错误。
此外,它能够帮助你同时快速评估判断若干改进的想法的性能。只需要创建并填写一个电子表格,同时检查100个错误分类的验证集图像。在电子表格中,为每一个分类错误的图像创建一行,为每一个需要改进的想法创建列。然后你仔细检查每一个错误分类的图像,并标记出正确分类的图像。
之后,你就会知道准确的评估结果. 例如,使用想法1,系统可以正确地对40%的未分类图像进行分类,想法2为12%,想法3仅为9%。然后你就会知道,对你的团队来说想法1最有价值。 此外,一旦你开始查看这些示例,你也许会对如何改进算法产生新想法。
最优错误率有助于指导您进行后续的学习。在统计中,它通常也称为贝叶斯错误率。 想象一下,您正在将构建一个语音-文本系统,并且发现您希望用户提交音频文件的19%都具有如此显着的背景噪音,即使是人类也无法识别那里所说的内容。如果是这种情况,您就会知道——即使是最好的系统也可能会出现大约19%的误差。相反,如果您处理的问题的最佳错误率接近0%,您就可以希望您的系统也能做到这一点。
最优错误率还可以帮助您检测算法是否存在高偏差或方差,这有助于您在后续步骤中改进算法。
然而,我们如何知道最佳错误率是多少?对于人类擅长的任务,您可以将系统的性能与人类的性能进行比较,从而估算出最佳错误率。在其他情况下,通常很难确定,这就是你应该可以解决人类能够做得好的某些问题的原因,而这些原因我们将在下一个概念中讨论。
在整本书中,吴恩达多次解释为什么他建议人们去研究那些人类自己可以做的足够好的机器学习类问题,如语音识别,图像分类,物体检测等。原因如下:
首先,获取或创建有标注的数据集更容易,因为如果人们可以自己解决问题的话,他们可以直接为学习算法提供高精度标签。
其次,您可以将人类表现作为您希望自己编写的算法所能达到的最佳错误率。吴恩达解释说,定义合理且可实现的最佳错误有助于加快团队的研究进度。它还可以帮助您检测您的算法是否存在高偏差或方差。
第三,它使您能够根据您的人类直觉进行错误分析。例如,如果您正在构建语音识别系统,且您的模型对其输入进行了错误分类,您就可以尝试了解人类将使用哪些信息来获取正确的转录,并使用此信息相应地修改学习算法。虽然在越来越多人类自己无法做好的任务中,算法在不断地超越人类,但你应该尽量避免这些问题。
总而言之,您应该避免这些任务,因为它使得获取数据的标签变得更加困难,您也不能总依赖于人类的直觉。并且,我们也很难知道最佳错误率是多少。