1 《机器学习训练秘籍》中的六个概念-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

《机器学习训练秘籍》中的六个概念

电子工程师 来源:lp 2019-03-05 13:44 次阅读

机器学习训练秘籍》(Machine Learning Yearning)这本书讲的是如何构建机器学习项目的开发流程。该书包括了许多在别处难得一见的实用见解,讲述的形式又非常适合分享给团队中的其他成员以及合作者。大多数人工智能方面的课程会向你阐释不同机器学习算法工作原理,而这本书教授的是如何实际使用它们。中文书地址:https://accepteddoge.com/machine-learning-yearning-cn/

如果你想要成为人工智能行业的技术主管,这本书会助你一臂之力。过去,要想学习如何在人工智能项目中做决策,唯一的方法是去攻读研究生课程、或者在公司积累经验。现在,《机器学习训练秘籍》这本书可以助你快速获得这项技能,从而变得更加擅长构造复杂的人工智能系统。

目录

前言

概念 1: 迭代,迭代,迭代

概念 2: 使用单一评估指标

概念 3: 错误分析很关键

概念 4: 定义一个最优错误率

概念 5: 研究人类能做好的问题

概念 6: 如何划分数据集

总结

前言

该书从一个小故事讲起。想象一下,你的公司想要建造一个先进的猫咪检测系统。你已经做了一个原型,可惜的是,这个系统的性能不太行。你的团队提出了多个改进系统的想法,但你有点搞不清楚接下来该走哪条路。或许你会造出世界领先的猫咪检测平台,又或许,你会因走错路而浪费掉几个月的时间。

这本书则能告诉你,在这样的情形下如何做抉择、如何排定优先级。吴恩达指出,大多数机器学习问题都会为下一步最应该做什么或者避免什么留下线索,学习「读懂」这些线索是机器学习领域的关键技能。

简而言之,《机器学习训练秘籍》的主旨是让你深入理解如何确定机器学习项目的技术方向。

由于你的团队成员们可能会对你提出的新想法产生质疑,吴恩达把书本章节写得非常精简(1-2 页)。这样你的成员们就能在几分钟内读完,并理解这些概念背后的思想。此外,这本书并不适合完全的初学者,因为它需要对有监督学习和深度学习有一些基本的了解。

在本文中,我会用我自己的语言和理解来分享这本书中的六个概念。

概念 1:迭代,迭代,迭代……

吴恩达在该书中从头到尾一直强调:由于机器学习是一个迭代的过程,快速迭代至关重要。比起去思考如何为你的问题建造一个完美的机器学习系统,不如先尽快造出一个简单的原型系统。若你不是这个问题所属领域的专家,就更应如此,因为要正确找出最佳方向,不靠实验实在是太难了。

你应该在几天内造出第一个原型,然后就会有线索帮你找到改进原型的最佳方向。在下一个迭代中,你可以基于其中一个线索改进这个系统,并生成下一个版本,然后周而复始。

接着他阐释道,你迭代得越快,进步就越多。这本书中的其它概念也都基于这个原则。要注意的是,这一点适用于那些只想做一个基于人工智能的应用,而不是在这个领域做研究的人。

概念 2:使用单一评估指标

这个概念是建立在不停迭代的基础上。为何要选择一个单值评估指标,道理也很简单:它使你能够快速评估算法,从而更加快速地迭代。使用多种评估指标会使算法之间的比较变得更为困难。

想象你有两个算法。第一个准确率 94%,召回率 89%。第二个准确率 88%,召回率 95%。

这种情况下,如果你不选择一个单一评估指标,就很难显而易见地指出哪个分类器更好,于是你就需要花费更多的时间搞定它。而问题在于,每一次迭代都需要损失一些时间,积累到最后就非常可观了。因为你会尝试很多不同的想法,调整架构、参数、特征等等,如果你用的是一个单值评估指标(比如准确率或者 f1-值),你就能把你所有的模型按照他们的性能排序,快速决定哪个最好。另外,还有一个方法可以改善评估的过程,就是把多个指标合并成一个,比如给多个错误度量求平均。

当然,有一些机器学习问题需要满足不止一个指标,比如要考虑运行时间。吴恩达这样说:你应该定义一个「可接受」的运行时间,从而快速排除那些太慢的算法,然后用你的单值评估指标比较那些符合条件的算法。

简单而言,一个单值评估指标使你能够快速评估算法,从而更快地迭代。

概念 3: 误差分析至关重要

误差分析指的是检查算法结果中错误样例的过程。比如,假设你的猫咪检测系统把鸟误认为是猫,那么你就需要对这个问题有一些解决方案。

在恰当的误差分析后,你可以估计出某个改进方案实际能为这个系统提供多少性能增益。因此我们不用花费好几个月先去实现某个方案,然后才发现它对你的系统没多大影响。这样你就能判断,把资源投到哪个方案上效果会最好。如果你发现误识别的图片中只有 9% 是鸟,那无论在鸟的图片上把算法性能提高到多少都没什么用,因为它最多也就能改善你 9% 的错误。

另外,通过误差分析,你还能快速判断多个改进方案的好坏。如果验证集里有 100 张分类错误的图片,只需要新建一个表单,一边检查一边填写。在表单里,每个分类错误的图片为一行,每个改进方案为一列。然后你遍历所有分类错误的图片,记录哪些改进方案能正确分类这张图。

然后你就会清楚,比方说,方案 1 能使系统把 40% 的误分类图片分对、方案 2 为 12%、方案 3 仅仅为 9%。所以,可知你的团队最应该进行的是改进是方案 1。

同时,一旦开始仔细查看这些误分类样本,你还可能找到更多新的灵感来改善算法。

概念 4: 定义一个最优错误率

最优错误率可以指导你接下来该怎么做。在统计学中,我们也常称之为贝叶斯错误率。

想象这样一个场景,你在做一个语音转文字的系统。你发现用户们上传的音频文件中,预计会有 19% 的音频背景噪音太大,连人都无法识别到底说了啥。如果是这种情况,那么即便是最优秀的系统大概也会有接近 19% 的错误率。与之相反,如果你要研究的问题最优错误率几乎能到达 0%,那就可以指望你的系统也能做得差不多好。

它也可以帮你检测算法是否存在高偏差或者高方差的问题,从而帮你判断接下来如何改进算法。

但怎么才能知道最优错误率是多少呢?对于那些人类擅长的任务,你可以把你的系统的性能和人相比,差不多就是最优错误率了。如果是人类不擅长的任务,要定义最优错误率往往很难。正因为此,你应该去研究人类本身也能做好的问题,这一点我们会在下一个概念中进行讨论。

概念 5:研究人类能做好的问题

在这本书中,吴恩达多次探讨了为什么建议大家去研究人类本身也能做好的问题,比如语音识别、图像分类、物体检测等等。原因有以下几点。

首先,更容易获取或创建一个带标签的数据集。因为如果人们自己可以解决这个问题,那对他们来说,给你的机器学习算法准备些标签也不是什么难事。

其次,你可以把人的水准作为最优错误率,即你的算法想要达到的目标。吴恩达表示,定义好一个合理可行的最优错误率,有助于加速团队的开发进程,也可以帮你检测算法是否有高偏差或者高方差的问题。

再者,这样你就可以用你的人类直觉来做误差分析。比如,如果你在做一个语音识别系统,而你的模型给了错误的答案,那你可以试着去思考:一个人想要正确转录这个音频会需要什么信息,由此去改进算法。虽然算法在越来越多人类不太擅长的任务上已经超过了人类,你还是应该尽量避免去研究这些问题。

总而言之,你应该避免这些任务,因为:获取数据的标签更难、你不再能依赖人类直觉、很难确定最优错误率。

概念 6:如何划分数据集

吴恩达也提出了划分数据集的方法,建议如下:

训练集:你只用它来训练算法,不做别的。

验证集:用于调试超参、选择并创建合适的特征、做误差分析,基本上我们需要根据它来为算法做决策。

测试集:测试集用于评估你系统的性能,不能用于做决策。只在评估时使用,不做别的。

验证集和测试集使你的团队得以快速评估算法的性能,它们的目的是提供引导,让你为系统做出最正确的改进。

选择验证集和测试集时,吴恩达建议你考虑系统部署后你想要搞定的真实场景,使这两个集合能如实反映该场景中的数据。如果你预期实际数据会和你当下的训练数据有所不同,这一点就更为重要。比如,你训练时用的是普通的相机图片,而以后你的系统作为一个手机应用的一部分,只会收到手机图片。如果你没有足够的手机图片来训练系统,你就会面临这个问题。所以,你应该选择能反映未来真实目标数据的样例作为测试集,而不是你用来训练的数据。

同时,你应该根据同一分布选取验证集和测试集。否则,有可能你的团队造出的东西在验证集上效果很好,但在测试集上效果极差,而后者才是你最关注的的。

总结:在本文中,你学到了《机器学习训练秘籍》中的六个概念。现在你知道为什么快速迭代很重要,为什么该用一个单值评估指标,误差分析是干什么的,以及它为什么重要。同时,你也认识了最优错误率,明白了为什么应该研究人类也能做好的问题。另外,你还了解了应该使验证集和测试集与实际场景数据相一致,以及这两个集合应该近似同一分布。希望本文让你对这本书的概念有了初步的理解,这绝对是一本值得一读的书。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 人工智能
    +关注

    关注

    1791

    文章

    47183

    浏览量

    238207
  • 机器学习
    +关注

    关注

    66

    文章

    8406

    浏览量

    132557
  • 数据集
    +关注

    关注

    4

    文章

    1208

    浏览量

    24688

原文标题:六大概念总结吴恩达新书:教你如何做好工程实践?

文章出处:【微信号:aicapital,微信公众号:全球人工智能】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【阿里云大学免费精品课】机器学习入门:概念原理及常用算法

    是实现人工智能的一途径,即以机器学习为手段解决人工智能的问题。1.在维基百科机器
    发表于 06-23 13:51

    吴恩达的7条机器学习训练秘籍

    过程节省宝贵的时间。对这个数据集进行性能测试可以让你快速了解事情是否朝着正确方向发展。 4. 快速构建第一系统,然后迭代正如第三点所述,构建机器学习算法是一
    发表于 09-20 11:41

    机器学习训练秘籍——吴恩达

    书的内容对你而言则不难理解。本书假设你熟悉​ 监 督学 习( (supervised learning) )​​概念,即使用标注(labeled)的训练样本(x,y) 来学习从 x
    发表于 11-30 16:45

    sd可以实现六个面对应六个不同文件夹sd音乐吗?

    想做一感应正方体音乐盒,通过三轴加速度计去感应六个面的变化,从而去读取sd不同文件夹的音乐,六个面对应六个不同文件夹sd音乐,而且文件夹里面的音乐是可以换的,我知道单独设置一
    发表于 08-12 22:09

    人工智能基本概念机器学习算法

    目录人工智能基本概念机器学习算法1. 决策树2. KNN3. KMEANS4. SVM5. 线性回归深度学习算法1. BP2. GANs3. CNN4. LSTM应用人工智能基本
    发表于 09-06 08:21

    六个电视游戏电路

    六个电视游戏电路
    发表于 01-17 22:52 775次阅读
    <b class='flag-5'>六个</b>电视游戏电路

    六个有关RoHS的检测方法标准

    国家质量监督检验检疫总局最近颁布了六个有关RoHS的检测方法标准,这六个标准是: 1. 《电子电气产品
    发表于 08-12 09:04 1312次阅读

    六个数码管轮流显示数字

    六个数码管轮流显示数字。
    发表于 05-11 14:33 4次下载

    学习PLC编程技巧的六个方面的经验分享

    力不从心,要想在PLC应用方面得心应手,学习者除了要建立正确的学习方法,深入学习plc编程技巧,最重要的是相关知识的学习。下面从六个方面谈谈
    的头像 发表于 08-26 11:23 1.3w次阅读
    <b class='flag-5'>学习</b>PLC编程技巧的<b class='flag-5'>六个</b>方面的经验分享

    PCB设计的六个检查阶段

    为了保证PCB设计的准确性,整个PCB设计过程需要进行多次检查,接下来为大家介绍PCB设计的六个检查阶段。
    的头像 发表于 05-15 15:51 3679次阅读

    深度学习机器学习六个本质区别你知道几个?

    深度学习机器学习已经变得无处不在,那它们之间到底有什么区别呢?本文我们为大家总结了深度学习VS机器学习
    的头像 发表于 11-30 11:17 1.5w次阅读

    算法:计算Fibonacci number的六个方法

    算法:计算Fibonacci number的六个方法
    的头像 发表于 06-22 17:27 2634次阅读
    算法:计算Fibonacci number的<b class='flag-5'>六个</b>方法

    六个构建机器学习模型需避免的错误

    为中心,基于对业务问题的理解,并且数据和机器学习算法必须应用于解决问题,从而构建一能够满足项目需求的机器学习模型。
    发表于 05-05 16:39 1418次阅读

    如何理解机器学习训练集、验证集和测试集

    理解机器学习训练集、验证集和测试集,是掌握机器学习核心
    的头像 发表于 07-10 15:45 3792次阅读

    焊接机器六个轴分别是什么作用

    焊接机器人是现代工业自动化的重要工具,其灵活性和高效性极大地提升了焊接质量和生产效率。在焊接机器人中,“轴”是一常见的结构设计,这
    的头像 发表于 11-21 17:45 173次阅读
    焊接<b class='flag-5'>机器</b>人<b class='flag-5'>六个</b>轴分别是什么作用