2020-7-14 吴恩达DL学习-C3结构化ML项目-w2 ML策略2(2.3 快速搭建你的第一个系统,并进行迭代)

274 篇文章 24 订阅
233 篇文章 0 订阅

1.视频网站:mooc慕课https://mooc.study.163.com/university/deeplearning_ai#/c
2.详细笔记网站(中文):http://www.ai-start.com/dl2017/
3.github课件+作业+答案:https://github.com/stormstone/deeplearning.ai

2.3 快速搭建你的第一个系统,并进行迭代 Build your first system quickly, then iterate

如果你正在开发全新的ML应用,我通常会给你这样的建议,你应该尽快建立你的第一个系统原型,然后快速迭代。

假设你正在考虑建立一个新的语音识别系统,其实你可以走很多方向,可以优先考虑很多事情。
在这里插入图片描述

如上图。比如

  • 有一些特定的技术,可以让语音识别系统对嘈杂的背景(Noisy backgroud)更加健壮,嘈杂的背景可能是说咖啡店的噪音,背景里有很多人在聊天,或者车辆的噪音,高速上汽车的噪音或者其他类型的噪音。
  • 有一些方法可以让语音识别系统在处理带口音(Accented speech)时更健壮
  • 还有特定的问题和麦克风与说话人距离(far from microphone)很远有关,就是所谓的远场语音识别
  • 儿童的语音识别带来特殊的挑战,挑战来自单词发音方面,还有他们选择的词汇,他们倾向于使用的词汇
  • 还有比如说,说话人口吃,或者说了很多无意义的短语,比如“哦”,“啊”之类的。

你可以选择很多不同的技术,让你听写下来的文本可读性更强,你可以做很多事情来改进语音识别系统。

一般来说,对于几乎所有的ML程序可能会有50个不同的方向可以前进,并且每个方向都是相对合理的可以改善你的系统。但挑战在于,你如何选择一个方向集中精力处理。即使我已经在语音识别领域工作多年了,如果我要为一个新应用程序域构建新系统,我还是觉得很难不花时间去思考这个问题就直接选择方向。所以我建议你们,如果你想搭建全新的ML程序,就是快速搭好你的第一个系统,然后开始迭代

意思是建议你

  • Set up dev/test set and metric 快速设立开发集和测试集还有指标,这样就决定了你的目标所在,如果你的目标定错了,之后改也是可以的,但一定要设立某个目标。
  • Build initial system quickly 然后我建议你马上搭好一个ML系统原型,然后找到训练集,训练一下,看看效果,开始理解你的算法表现如何,在开发集测试集,你的评估指标上表现如何。
  • Use Bias/Variance analysis & Error analysis to prioritize next steps. 当你建立第一个系统后,你就可以马上用到之前说的偏差方差分析,还有之前几节课讨论的错误分析,来确定下一步优先做什么。特别是如果错误分析让你了解到大部分的错误的来源是说话人远离麦克风,这对语音识别构成特殊挑战,那么你就有很好的理由去集中精力研究这些技术。

所谓远场语音识别的技术,这基本上就是处理说话人离麦克风很远的情况。

建立这个初始系统的所有意义在于,它可以是一个快速和粗糙的实现(quick and dirty implementation),你知道的,别想太多。初始系统的全部意义在于,有一个学习过的系统,有一个训练过的系统,让你确定偏差方差的范围,就可以知道下一步应该优先做什么,让你能够进行错误分析,可以观察一些错误,然后想出所有能走的方向,哪些是实际上最有希望的方向。

回顾一下,我建议你们快速建立你的第一个系统,然后迭代。

  • 不过如果你在这个应用程序领域有很多经验,这个建议适用程度要低一些。
  • 还有一种情况适应程度更低,当这个领域有很多可以借鉴的学术文献,处理的问题和你要解决的几乎完全相同,比如说,人脸识别就有很多学术文献,如果你尝试搭建一个人脸识别设备,那么可以从现有大量学术文献为基础出发,一开始就搭建比较复杂的系统。

但如果你第一次处理某个新问题,那我真的不鼓励你想太多,或者把第一个系统弄得太复杂。我建议你们构建一些快速而粗糙的实现,然后用来帮你找到改善系统要优先处理的方向。

我见过很多ML项目,我觉得有些团队的解决方案想太多了,他们造出了过于复杂的系统。我也见过有限团队想的不够,然后造出过于简单的系统。平均来说,我见到更多的团队想太多,构建太复杂的系统。

希望这些策略有帮助,如果你将ML算法应用到新的应用程序里,你的主要目标是弄出能用的系统,你的主要目标并不是发明全新的ML算法,这是完全不同的目标,那时你的目标应该是想出某种效果非常好的算法。

所以我鼓励你们搭建快速而粗糙的实现,然后用它做偏差/方差分析,用它做错误分析,然后用分析结果确定下一步优先要做的方向。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值