本文主要是介绍Andrew NG的书“Machine Learning Yearning”中的6个重要的概念,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
点击上方“AI公园”,关注公众号,选择加“星标“或“置顶”
前戏作者:Niklas Donges
编译:ronghuaiyang
吴恩达的新书“Machine Learning Yearning”,大家看过了吗?没看过也没关系,给大家介绍一下书中的6个重要概念!
Machine Learning Yearning是关于机器学习项目发展的结构化书。这本书以一种易于与队友和合作者分享的形式,包含了在别处很难找到的实用见解。大多数人工智能课程会向你解释不同的ML算法是如何工作的,但这本书教你如何实际使用它们。如果你希望成为人工智能领域的技术领导者,这本书会在你的道路上帮助你。从历史上看,学习如何对人工智能项目做出战略决策的唯一途径是参加研究生项目或获得在公司工作的经验。Machine Learning Yearning帮助你快速获得这项技能,这使你能够更好地构建复杂的人工智能系统。
关于作者
Andrew NG是一名计算机科学家、高管、投资者、企业家,也是人工智能领域的顶尖专家之一。他是百度的前副总裁兼首席科学家,斯坦福大学(Stanford University)兼职教授,最受欢迎的机器学习在线课程之一的创造者,Coursera.com的联合创始人,谷歌Brain的前负责人。在百度,他积极参与将他们的人工智能团队扩大到数千人。
介绍
这本书以一个小故事开头。想象一下,你想建立一家领先的cat检测系统公司。你已经构建了一个原型,但不幸的是,你的系统的性能不是很好。你的团队提出了一些关于如何改进系统的想法,但是你不知道应该遵循哪个方向。你可能会构建世界领先的cat检测器平台,也可能在错误的方向上浪费几个月的时间。
这本书告诉你如何在这样的情况下做出决定并分清轻重缓急。根据Andrew NG的说法,大多数机器学习的问题都会给你留下一些线索,告诉你下一步应该做什么,以及你应该避免做什么。他继续解释说,学习“阅读”这些线索是我们这个领域的一项关键技能。
简而言之,ML Yearning会让你对机器学习项目的技术方向设置有一个深刻的理解
由于你的团队成员在你提出新想法时可能会持怀疑态度,所以他将章节做得非常短(1-2页),以便你的团队成员能够在几分钟内阅读它,以理解概念背后的思想。如果你对这本书感兴趣,请注意它不适合完全的初学者,因为它要求你对监督学习和深度学习有基本的了解。
在这篇文章中,我将用我自己的语言来分享这本书的六个概念。
概念1:迭代,迭代,迭代...
NG在整本书中强调,快速迭代非常重要,因为机器学习是一个迭代过程。不要考虑如何为你的问题构建完美的ML系统,你应该尽快构建一个简单的原型。如果你不是该问题领域的专家,这一点尤其正确,因为很难正确猜测最有希望的方向。
你应该在几天内构建第一个原型,然后就会出现一些线索,向你展示改进原型性能的最有希望的方向。在下一个迭代中,你将基于这些线索之一改进系统并构建它的下一个版本。你会一次又一次地这样做。
他继续解释说,迭代越快,取得的进展就越大。这本书的其他概念,建立在这个原则之上。请注意,这是为那些只想构建基于人工智能的应用而不是在该领域进行研究的人设计的。
概念2:使用单个评估指标
这个概念建立在前一个概念的基础上,关于为什么应该选择单个评估指标的解释非常简单:它使你能够快速评估算法,因此能够更快地迭代。使用多个评估指标只会增加比较算法的难度。
假设有两种算法。前者的准确率为94%,召回率为89%。第二种方法的准确率为88%,召回率为95%。
在这里,如果你没有选择一个单独的评估指标,那么没有一个分类器是明显优于它的,因此你可能需要花费一些时间来计算它。问题是,你在每次迭代中都会为这个任务损失大量的时间,而且从长期来看,这些时间会累积起来。你将尝试很多关于架构、参数、特性等的想法。如果你使用的是单数字评估指标(如精度或f1评分),那么它使你能够根据模型的性能对其进行排序,并快速决定哪个模型工作得最好。改进评估过程的另一种方法是将多个指标组合成单个指标,例如,平均多个错误指标。
然而,ML问题需要满足多个指标,例如:考虑运行时间。NG解释说,你应该定义一个“可接受的”运行时间,这使你能够快速地对太慢的算法进行排序,并基于你的单个评估指标来比较令人满意的算法。
简而言之,单个评估指标使你能够快速评估算法,从而更快地迭代。
概念3:错误分析非常重要
错误分析是查看算法输出不正确的样本的过程。例如,假设你的猫检测器将鸟类误认为猫,你已经对如何解决这个问题有了一些想法。
通过适当的错误分析,你可以估计一个改进的想法实际上会增加系统的性能多少,而不需要花费几个月的时间来实现这个想法,然后意识到它对你的系统并不重要。这使你能够决定在哪些想法上最好地使用你的资源。如果你发现错误分类的图像中只有9%是鸟类,那么你的算法对鸟类图像的性能提高了多少并不重要,因为它不会提高超过9%的错误。
此外,它使你能够快速判断并行改进的几个想法。你只需要创建一个电子表格,并在检查的时候填写一下。比如说,有100个错误分类的图像,在电子表格上,为每一个分类错误的图像创建一行,为每一个需要改进的想法创建一列。然后你仔细检查每一张分类错误的图片,然后看看哪个想法可以对这张图片正确分类,并做上标记。
此外,一旦你开始查看这些样本,你可能会发现如何改进算法的新思路。
概念4:定义一个最优的错误率
最佳错误率有助于指导你的下一步工作。在统计学中,它也常被称为贝叶斯错误率。
想象一下,你正在构建一个语音到文本的系统,你发现19%的音频文件,你希望用户提交的,都有占主导地位的背景噪音,甚至人类都无法识别里面说了什么。如果是这样的话,你知道即使是最好的系统也可能会有大约19%的错误。相反,如果你处理的问题的最佳错误率接近0%,那么你可以希望你的系统也能做到这一点。
它还可以帮助你检测你的算法是否受到高偏差或方差的影响,从而帮助你定义改进算法的下一步步骤。
但我们怎么知道最佳错误率是多少呢?对于人类擅长的任务,你可以将系统的性能与人类的性能进行比较,从而获得最佳错误率的估计值。在其他情况下,通常很难定义最佳错误率,这就是为什么你应该研究人类能够很好地解决问题的原因,我们将在下一个概念中讨论这些问题。
概念5:做那些人类可以做好的事情
在整本书中,他多次解释了为什么建议研究人类可以自己解决的机器学习问题。例如语音识别、图像分类、目标检测等。这有几个原因。
首先,它更容易获得或创建一个带标签的数据集,因为如果人们能够自己解决问题,那么为你的学习算法提供高精度的标签是非常简单的。
其次,你可以使用人工性能作为你希望通过算法达到的最佳错误率。NG解释说,定义了合理且可实现的最佳错误率有助于加快团队的进度。它还可以帮助你检测算法是否存在高偏差或方差。
第三,它可以让你根据自己的直觉进行错误分析。例如,如果你正在构建一个语音识别系统,而你的模型对其输入进行了错误分类,那么你可以尝试了解人类将使用哪些信息来获得正确的转换,并使用这些信息来相应地修改学习算法。虽然算法在越来越多的人类无法完成的任务上超越了人类,但是你应该尽量避免这些问题。
总而言之,你应该避免这些任务,因为它使你更难获得数据的标签,你不能再依靠人类的直觉,而且很难知道最佳错误率是多少。
概念6:如何划分你的数据集
NG还提出了一种拆分数据集的方法。他建议如下:
Train Set:用它训练你的算法,没别的用。
Dev Set:该集合用于进行超参数调优、选择和创建适当的特征以及进行错误分析。它基本上是用来决定你的算法的。
Test Set:测试集用于评估系统的性能,但不用于决策。它只是用来评估的,没有别的。
开发集和测试集允许你的团队快速评估算法的执行情况。它们的目的是指导你对系统进行最重要的更改。
他建议选择开发和测试集,它们可以反映出你需要做好的数据是什么样的,这些数据就是未来你的系统部署的时候用的。如果你希望数据与你现在正在训练的数据有所不同,那么这一点尤其正确。例如,你正在使用普通相机图像进行训练,但稍后你的系统将只接收手机拍摄的照片,因为它是移动应用程序的一部分。如果你无法访问足够的手机照片来训练你的系统,可能会出现这种情况。因此,你应该选择能够反映你希望在以后的实际工作中表现良好的测试集样本,而不是你用于训练的数据。
另外,你应该选择来自相同发行版的开发集和测试集。否则,你的团队可能会构建在开发集上做得很好的东西,却发现在你最关心的测试数据上执行得非常差。
总结
在这篇文章中,你已经了解了Machine Learning Yearning的6个概念。现在你知道了为什么快速迭代很重要,为什么应该使用单个评估指标,错误分析是什么,以及为什么它很重要。此外,你还了解了最佳错误率、为什么应该处理人类能够很好解决的问题以及应该如何分割数据。此外,你还了解到应该选择开发和测试数据集,以便它们能够反映你希望在将来很好地处理的数据,并且开发和测试集应该来自相同的分布。我希望这篇文章给你介绍了这本书的一些概念,我可以肯定地说它值得一读。
— END—英文原文:https://towardsdatascience.com/6-concepts-of-andrew-ngs-book-machine-learning-yearning-abaf510579d4
请长按或扫描二维码关注本公众号
喜欢的话,请给我个好看吧!
这篇关于Andrew NG的书“Machine Learning Yearning”中的6个重要的概念的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!