深度学习:What is End To End Learning(端到端学习) ?


Introduction

深度学习中最令人振奋的最新动态之一就是端到端深度学习的兴起,那么端到端学习到底是什么呢?简而言之,以前有一些数据处理系统或者学习系统,它们需要多个阶段的处理。过去解决一个人工智能问题(以图像识别为例)往往通过分治法将其分解为预处理、特征提取与选择、分类器设计等若干步骤。分治法的动机是将图像识别的母问题分解为简单、可控且清晰的若干小的子问题。不过分步解决子问题时,尽管可在子问题上得到最优解,但子问题上的最优并不意味着就能得到全局问题的最后解。比如在一个典型的自然语言处理(Natural Language Processing)问题中,包括分词、词性标注、句法分析、语义分析等多个独立步骤,每个步骤是一个独立的任务,其结果的好坏会影响到下一步骤,从而影响整个训练的结果,这是非端到端的。
对此,深度学习则为我们提供了另一种范式(Paradigm)即“端到端”学习方式,整个学习流程并不进行人为的子问题划分,而是完全交给深度学习模型直接学习从原始输入到期望输出的映射。相比分治策略,“端到端”的学习方式具有协同增效的优势,有更大可能获得全局最优解。而端到端深度学习就是忽略所有这些不同的阶段,用单个神经网络代替它,输入为未经任何人为加工的原始样本形式,经过神经网络,输出结果(“就是输入一头猪,输出的是香肠”————来自知乎)。

具体举个栗子:

  • 非端到端学习(传统的语音识别系统)
    传统的语音识别需要把语音转换成语音特征向量,然后把这组向量通过机器学习,分类到各种音节上(根据语言模型),然后通过音节,还原出最大概率的语音原本要表达的单词,一般包括以下模块:

    • 特征提取模块 (Feature Extraction):该模块的主要任务是从输入信号中提取特征,供声学模型处理。一般也包括了一些信号处理技术,尽可能降低环境噪声、说话人等因素对特征造成的影响,把语音变成向量。
    • 声学模型 (Acoustic Model): 用于识别语音向量
    • 发音词典 (Pronnuciation Dictionary):发音词典包含系统所能处理的词汇集及其发音。发音词典提供了声学模型与语言模型间的联系。
    • 语言模型 (Language Model):语言模型对系统所针对的语言进行建模。
    • 解码器 (Decoder):任务是对输入的信号,根据声学、语言模型及词典,寻找能够以最大概率输出该信号的词串。

    传统的语音识别中的语音模型和语言模型是分别训练的,缺点是不一定能够总体上提高识别率。

  • 端到端学习(端到端的语音识别系统)

image_1f389cr091q5bfkferl16rr1ht29.png-109.9kB

Andrew NG NIPS 2016演讲

端到端学习的思路则非常简单:音频→学习算法→转录结果;而现在,我们可以直接通过深度学习将语音直接对标到我们最终显示出来的文本。通过深度学习自己的特征学习功能来完成从特征提取到音节表达的整个过程。在给定了足够的有标注的训练数据时(语音数据以及对应的文本数据),端到端的语音识别方法的效果会很好。

【Tips】在训练样本很少的情况下,End to End的效果可能不如传统方法,但当训练样本数量足够多,End to End的优势越发明显。

Whether to use End to End Learning ?

假设你正在搭建一个机器学习系统,你要决定是否使用端对端方法,通过比较端到端深度学习的一些优缺点,这样你就可以根据一些准则,判断你的应用程序是否有希望使用端到端方法。

Advantages

  • Let the data speak
    就优点而言,首先端到端学习真的只是让数据说话。

如果你有足够多的 ( x , y ) (x,y) (x,y)数据,不管从 x x x y y y最适合的函数映射是什么,如果你训练一个足够大的神经网络,希望这个神经网络能自己搞清楚,而使用纯机器学习方法,直接从 x x x y y y入去训练的神经网络,可能更能够捕获数据中的任何统计信息,而不是被迫引入人类的成见。

  • Less hand-designing of components needed
    第二个好处就是,所需手工设计的组件更少,所以这也许能够简化你的设计工作流程,你不需要花太多时间去手工设计功能,手工设计这些中间表示方式。

Disadvantages

  • May need large amount of data
    就缺点而言,首先它可能需要大量的数据。要直接学到这个 x x x y y y的映射,你可能需要大量 ( x , y ) (x,y) (x,y)的数据.

比如人脸识别,我们可以收集很多数据用来分辨图像中的人脸,当你找到一张脸后,也可以找得到很多人脸识别数据。但是对于整个端到端任务,可能只有更少的数据可用。所以x这是端到端学习的输入端,y是输出端,所以你需要很多这样的(x,y)数据,在输入端和输出端都有数据,这样可以训练这些系统。这就是为什么我们称之为端到端学习,因为你直接学习出从系统的一端到系统的另一端。

  • Excludes potentially useful hand-designed components
    另一个缺点是,它排除了可能有用的手工设计组件。

机器学习研究人员一般都很鄙视手工设计的东西,但如果你没有很多数据,你的学习算法就没办法从很小的训练集数据中获得洞察力。所以手工设计组件在这种情况,可能是把人类知识直接注入算法的途径,这总不是一件坏事。学习算法有两个主要的知识来源,一个是数据,另一个是你手工设计的任何东西,可能是组件,功能,或者其他东西。所以当你有大量数据时,手工设计的东西就不太重要了,但是当你没有太多的数据时,构造一个精心设计的系统,实际上可以将人类对这个问题的很多认识直接注入到问题里,进入算法里应该挺有帮助的。所以端到端深度学习的弊端之一是它把可能有用的人工设计的组件排除在外了,精心设计的人工组件可能非常有用,但它们也有可能真的伤害到你的算法表现。

Key Point

如果你在构建一个新的机器学习系统,而你在尝试决定是否使用端到端深度学习,我认为关键的问题是,你有足够的数据能够直接学到从 x x x映射到 y y y足够复杂的函数吗?


参考:

  1. 知乎:https://www.zhihu.com/question/50454339/answer/257372299
  2. deeplearning.ai
  • 15
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值