[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 最佳实践 ...
随机推荐
- Split分割字符串
第一种方法:打开vs.net新建一个控制台项目.然后在Main()方法下输入下面的程序. string s="abcdeabcdeabcde"; string[] sArray=s ...
- maven详解之结构
maven 父子关系 父项目中打包方式必须是pom 如 <packaging>pom</packaging>,父项目中使用<modules><module& ...
- Distribute Candies
Given an integer array with even length, where different numbers in this array represent different k ...
- TargetType Mismatch
TargetType Mismatch 环境:windowsphone 8,silerlight toolkit, 页面报TargeType Mismatch错误或者 length 0,是因为Syst ...
- jQuery插件:Ajax将Json数据自动绑定到Form表单
jQuery注册方法的两种常用方式: //jQuery静态方法注册 //调用方法$.a1() $.extend({ a1: function () { console.log("a1&quo ...
- 利用jdbc简单封装一个小框架(类似DBUtils)
利用jdbc写的一个类似DBUtils的框架 package com.jdbc.orm.dbutils; import java.io.IOException; import java.io.Inpu ...
- 最近做的floyd的题目
基础: HDU1596 HDU2112 HDU1874 HDU1869 HDU2066 HDU2094 HDU2544 稍加复杂: HDU1217 ...
- Elasticsearch分片、副本与路由(shard replica routing)
本文讲述,如何理解Elasticsearch的分片.副本和路由策略. 1.预备知识 1)分片(shard) Elasticsearch集群允许系统存储的数据量超过单机容量,实现这一目标引入分片策略sh ...
- 使用Olami SDK 语音控制一个支持HomeKit的智能家居的iOS程序
前言 HomeKit是苹果发布的智能家居平台.通过HomeKit组件,用户可以通过iphone.iPad和ipod Touch来控制智能灯泡,风扇.空调等支持HomeKit的智能家居,尤其是可以通过S ...
- mysql单独可连接,php连接mysql失败之 Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
此种解决方案使用场景: 1,mysql单独可以启动而且远程工具也可以连接 2,php无法连接. 3,find / -name mysql.sock 可以找到文件路径 4,报错 Can't connec ...