[DeeplearningAI笔记]ML strategy_2_4端到端学习
机器学习策略-端到端学习
End-to-end deeplearning
觉得有用的话,欢迎一起讨论相互学习~Follow Me
2.9 什么是端到端学习-What is End-to-end deeplearning
以前有一些数据处理系统或者学习系统,它们需要多个阶段的处理. 端到端学习就是忽略中间的过程用单个神经网络代替它.
Speech recognition example
- 你的目标是输入X,比如说一段音频,目标是将其映射到Y,就是这段音频的听写文本.
- 传统阶段上,语音识别需要很多阶段的处理,首先你要提取一些特征,一些手工设计的音频特征.
- 例如使用MFCC-用来从音频提取一组特定的人工设计的特征.
- 在提取一些低层次的特征之后,你可以使用 机器学习算法 在音频片段中找到音位,音位是声音的基本单元.例如Cat这个词由三个音位构成,算法将Cu-Ah-Tu三个音位提取出来,然后将音位串在一起构成独立的词.然后你将词串起来构成音频片段的听写文本.

- 相比于传统的流水线形式的算法,端到端的深度学习即是你训练一个巨大的神经网络, 输入就是一段音频,输出直接是听写文本 .其直接绕过了传统流水线机器学习系统的很多步骤.
- 但是需要注意的是,你可能需要大量数据才能让系统表现得更好. 例如当你只有3000h的语音数据时,原先的机器学习系统会表现得更好,但是当你有10000h的语音数据或者是1000000h的语音数据时,端到端方法就开始体现出优势了. 即小规模数据时流水线方式表现更好,但是当大数据集时,端到端的学习效果会更好.
- 倘若是中等数量级别的数据,我们也可以取中间的方法,绕过特征提取的环节直接输出特征提取得到的音位.
Face recognition example
- 人脸识别门禁

- 当仔细观察人脸识别系统中的相机所得相片会发现, 人可以从各种角度靠近门禁系统,所以相机得到的照片人所在的位置不固定,而且面部出现的位置和大小也各有差别 ,例如当人比较靠近相机时,脸会比较大,人脸比较远离相机时,脸会比较小.
- 所以系统识别时,不是直接将相机所得图片喂到神经网络中,而是 一个多部方法,先检测出相片中的人脸,找到人脸位置.然后放大图片并裁剪图片使人脸居中显示,将此图片放到网络中,让网络去学习或者估计人脸的身份
- 研究人员发现,这个问题还可以分解为两个更简单的步骤:
- 弄清人脸在哪里.
- 看着脸,弄清楚这是谁.
- 对于辨认人脸的步骤,系统已经储存了公司每个员工的照片信息, 我们要做的是将检测到的人脸与数据库中的人脸进行比较 .
- 这个例子告诉我们,即使你没有足够的数据来进行端到端学习,但是有足够的数据来进行子任务1和子任务2.将其拆分为两个步骤更好~.
More example
Machine translation
- 传统上,机器翻译系统也有一个很复杂的流水线:英文--得到文本--文本分析--提取特征-...-中文
现在英文到中文的翻译已经有很多数据对,所以目前端到端的深度学习在机器翻译领域非常好用.
Estimating child's age
- 通过观察一个孩子手部的x光照片,估计一个孩子的年龄.
- 传统上,拍摄x光--分割出每一块骨头--分辨出骨头所在部位--查表看儿童对应段骨头的平均长度--估计儿童的年龄.
但是这个例子还不能使用端到端的方式去训练这个任务,因为我们没法获得足够多的数据去训练这个任务.
2.10 Whether to use end-to-end learning是否要使用端到端学习
pros and cons 优点和缺点
Pros
- 让数据自己说话.
- 如果你有足够多的(x,y)数据,不管从x到y最合适的函数映射是什么,如果你训练一个足够大的神经网络,希望这个神经网络能够自己搞清楚.相比于传统的机器学习方法,更能够捕获数据中的任何统计信息,而不是引入人类的成见.
- 例如举个例子:在语音识别领域,早期的识别系统有音位的概念--就是基本的声音识别单元.NG认为音位是人类语言学家生造出来的,NG认为音位实际是语音学家的幻想.用音位描述也许可行,但是 不要强迫你的学习算法以音位为单位进行思考,如果你让你的学习算法学习它想学习的任意的表示方式而不是使用你的学习算法使用音位作为表示方式,那么整体表现可能会更好.
- 所需手工设计的组件更少
能简化你的设计工作流程,你不需要花太多时间去手工设计功能,手工设计这些中间表示方式.
Cons
- 需要大量的数据
- 它排除了可能有用的手工设计组件
- 机器学习研究人员一般都比较鄙视手工设计的东西,但是如果你的数据量不够的话.你的学习算法没办法从很小的训练集数据中获得洞察力,所以手工设计的组件在这种情况下是把人类知识直接注入算法的途径.这有时候并不是一件坏事,有时候非常有效.
- NG认为机器学习系统有两个重要的知识获取来源,一个是数据另一个是人工设计的东西,可能是组件,功能或者其他的东西.
当你有成吨的数据时,手工设计的东西就不太重要了,但是你没有太多的数据时,构造一个精心设计的系统实际上可以将人类对这个问题的很多认识直接注入到问题里.
Key question
是否使用端到端的算法取决于问题:你是否有大量的的数据能够使系统直接学到从x到y足够复杂的函数.
[DeeplearningAI笔记]ML strategy_2_4端到端学习的更多相关文章
- [DeeplearningAI笔记]ML strategy_2_3迁移学习/多任务学习
机器学习策略-多任务学习 Learninig from multiple tasks 觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.7 迁移学习 Transfer Learninig 神 ...
- [DeeplearningAI笔记]ML strategy_1_3可避免误差与改善模型方法
机器学习策略 ML strategy 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.8 为什么是人的表现 今天,机器学习算法可以与人类水平的表现性能竞争,因为它们在很多应用程序中更有生产 ...
- [DeeplearningAI笔记]ML strategy_1_2开发测试集评价指标
机器学习策略 ML strategy 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.4 满足和优化指标 Stisficing and optimizing metrics 有时候把你要考 ...
- [DeeplearningAI笔记]ML strategy_1_1正交化/单一数字评估指标
机器学习策略 ML strategy 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.1 什么是ML策略 机器学习策略简介 情景模拟 假设你正在训练一个分类器,你的系统已经达到了90%准确 ...
- [DeeplearningAI笔记]ML strategy_2_2训练和开发/测试数据集不匹配问题
机器学习策略-不匹配的训练和开发/测试数据 觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.4在不同分布上训练和测试数据 在深度学习时代,越来越多的团队使用和开发集/测试集不同分布的数据来 ...
- [DeeplearningAI笔记]ML strategy_2_1误差分析
机器学习策略-误差分析 觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.1 误差分析 训练出来的模型往往没有达到人类水平的效果,为了得到人类水平的结果,我们对原因进行分析,这个过程称为误差 ...
- [DeeplearningAI笔记]改善深层神经网络_深度学习的实用层面1.10_1.12/梯度消失/梯度爆炸/权重初始化
觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.10 梯度消失和梯度爆炸 当训练神经网络,尤其是深度神经网络时,经常会出现的问题是梯度消失或者梯度爆炸,也就是说当你训练深度网络时,导数或坡 ...
- [DeeplearningAI笔记]改善深层神经网络_深度学习的实用层面1.9_归一化normalization
觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.9 归一化Normaliation 训练神经网络,其中一个加速训练的方法就是归一化输入(normalize inputs). 假设我们有一个 ...
- 【前端】移动端Web开发学习笔记【2】 & flex布局
上一篇:移动端Web开发学习笔记[1] meta标签 width设置的是layout viewport 的宽度 initial-scale=1.0 自带 width=device-width 最佳实践 ...
随机推荐
- Kia's Calculation hdu4726
Kia's Calculation Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- 微软的一篇ctr预估的论文:Web-Scale Bayesian Click-Through Rate Prediction for Sponsored Search Advertising in Microsoft’s Bing Search Engine。
周末看了一下这篇论文,觉得挺难的,后来想想是ICML的论文,也就明白为什么了. 先简单记录下来,以后会继续添加内容. 主要参考了论文Web-Scale Bayesian Click-Through R ...
- Apache shiro的简单介绍与使用(与spring整合使用)
apache shiro框架简介 Apache Shiro是一个强大而灵活的开源安全框架,它能够干净利落地处理身份认证,授权,企业会话管理和加密.现在,使用Apache Shiro的人越来越多,因为它 ...
- java数据库编程之高级查询
第三章:高级查询(-) 3.1:修改表 3.1.1:修改表 语法: Alter table <旧表名> rename [ TO] <新表名>; 例子:Alter table ` ...
- Elixir游戏服设计四
上章说到我们要引入syn https://github.com/ostinelli/syn/ 看过文档,它并没有直接提供{via, Module, Name} 相关的方法.我们需要封装一下. Name ...
- ZOJ1654 Place the Robots
Zoj1654 标准解法:二分匈牙利. 写法各异嘛,看不懂或者懒得看也正常,如果想了解我思路的可以和我讨论的. 在练习sap,所以还是写了一遍: #include<cstdio> #inc ...
- zoj3204 connect them 最小生成树 暴力
Connect them Time Limit: 1 Second Memory Limit:32768 KB You have n computers numbered from 1 to ...
- spring中WebApplicationContextUtils类说明
WebApplicationContextUtils是一个抽象类,其提供了一个很便利的方法来获取spring应用的上下文即WebApplicationContext. 其中的静态方法getWebApp ...
- ajax上传图片的本质
1.图片上传到服务器. 2.后台将图片地址传到html页面,以图片形式展现. 3.后天将图片地址加入到input表单中,表单处于隐藏状态. 4.前端删除图片,通过js操作,移除图片与表单数据. 5.图 ...
- LINUX 笔记-ls命令
常用参数: -l :列出长数据串,包含文件的属性与权限数据等 -a :列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来(常用) -d :仅列出目录本身,而不是列出目录的文件数据 -h :将文件 ...