吴恩达深度学习03-2.910 端到端的学习

什么是端到端学习(end-to-end learning)

概念

  • 简单来说,就是一项有很多中间步骤的任务摆在你面前,它需要对输入x做很多步的中间处理,然后得到目标y。而端到端学习则只学习x对于y的映射,即学习输入x,对应标签输出y,而不考虑中间的过程处理,仅仅通过学习映射的方式来将此任务解决。这样的好处就是省去了中间处理的繁琐步骤,但并不是所有的任务都适合端到端学习,通常来说,数据量很多的时候端到端学习相比分步学习要好,但是如果你的数据量并不大,还是分步骤的学习效果更好。这只是从数据量来看,其实还有很多情况制约着端到端学习的使用,需要具体情况具体分析。
  • 下面举个栗子来具体看一下
    在这里插入图片描述
    假如,你需要做一个语音听写系统,输入x是一段语音内容,而输出y则是对应这段语音的文本内容。
    从分步骤的学习来看,我们首先需要提取输入x的一组特定的人工设计的特征,可以使用上面说的MFCC算法来完成这一步;而后可以使用机器学习算法从音频片段中找到音位,音位是声音的基本特征,比如cat,对应Cu-Ah-Tu,算法就会把这三个音位提取出来;然后将因为串联起来得到特定的词(words);然后将词串联起来构成音频的听写文本。
    而端到端学习则是,你训练的就是一个巨大的神经网络,输入就是x,输出直接就是听写文本。
    如上图中绿色所示,如果你的数据量不足以支持直接的端到端学习的话,你也可以设置中间结点,少分几步来完成任务。

举例

  • 也不是所有问题都适合端到端学习,以人脸识别为例。
    在这里插入图片描述
    首先人脸识别的分步步骤如下:输入门禁处图像x,使用算法锁定人脸位置,放大锁定位置使人脸处于图像中间,与数据库中的人脸比较输出是否为公司员工(是否有通过门禁的权利)。
    而端到端学习的步骤如下:输入门禁处图像x,直接输出是否为公司员工(是否有通过门禁的权利)。
  • 给你5mins考虑一下是否可以使用端到端学习来解决这个问题。

思考ing
思考ing
思考ing
思考ing
思考ing
思考ing
思考ing
思考ing
思考ing
思考ing

  • 5mins到了,答案是不可以,除非你有相当大的数据量能够把一个人在门禁处的所有可能图像都找到(显然这是不可能的,鬼知道一个人在门禁处的图像有多少种)。看到这里你应该明白了吧,端到端学习无法囊括所有的输入x的情形(不是人脸不同的情形,而是图像的姿态不同的情形,比如人到门禁处可能歪着头,可能距离很远头很小,可能距离很近头很大,等等等等,如果你不采用分步学习的步骤2和3把人脸位置锁定然后放大使其居于中间的话,是无法应对这种门禁处图像的)。
  • 看来分步学习有时候的一些步骤是不能缺少的,这里的人脸识别例子就很典型,为了将所有的输入规范化,不至于出现有的人脸小、有的人脸大、每个人脸出现在图像的位置也不同等等诸多情况,就得分步,先锁定人脸位置,再放大并使其处于中间,这种规范化的操作是解决这种不规范情况的好办法。
  • 再看一个机器翻译的例子,比如英语机翻。
    在这里插入图片描述
    分步骤的学习要先得到文本x,然后做文本分析,然后从文本中提取特征等等,经过很多步骤后最终得到法文。
    而端到端学习则是拿到英文,直接训练得到法语。
  • 在这个例子中,其实端到端学习是更好用的,因为当下你可以拿到大量的英文对应法语的这种xy对数据,正好可以用于端到端学习。可见数据的形式以及数据的多少是制约端到端学习是否可用的重要因素。
  • 再来一个根据骨骼图像判断年龄的例子。
    在这里插入图片描述
    这个与门禁的区别在于,你去医院照这个x光的时候手的位置以及形状都是按医生要求的摆放的,而门禁处可没人约束你,你拍出来的图像也千奇百怪的,所以这个例子与门禁还是有区别的。
    首先分步骤学习要将图像中的一节节骨头识别出来,然后根据骨头判断年龄。
    端到端学习则是直接根据图像输出年龄。
  • 这个问题端到端学习不太可行,原因是图像数据量不够,不足以支持端到端学习。

是否要使用到端到端学习

  • 我们先来看一下端到端学习的优缺点
    在这里插入图片描述
  • 优点:
    1.让数据说话。这句话的意思是这样的,设想一下之前提到的语音识别的例子,它有一个步骤是把音频单词用音位来表示,比如cat,对应Cu-Ah-Tu。但是这其实是人们没有办法的办法,让你想恐怕也想不出来更好的代替音频中单词的办法了吧,但是这对于音频其实是一种破坏,忽略了很多其他的特征。而端到端学习则不会对输入的音频数据进行这种修改,而是用最原生的音频数据x直接输入到巨大的神经网络中,对应标签y去训练,保留了很多数据的原始特征。
    2.省去了很多人工设计组件,这是显而易见的,你采用了端到端学习,中间步骤需要的组件你自然不需要使用了。
  • 缺点
    1.首先需要大量的训练数据。
    2.其实排除了精心设计的人工组件有时候也不见得是一个优点,有时候这些组件确实是有用的,但有时候也确实会影响你的算法的表现,例如刚才的音位表示。所以其实人工组件有时候也是一把双刃剑。
  • 那么究竟何时才能应用端到端学习呢?
    在这里插入图片描述
    最主要的问题就是,如果你面临的问题是一个复杂的xy映射问题的话,那你必须有足够足够的数据才行。比如这个根据x光图像中骨骼来判断年龄的问题,这个问题其实是有些复杂的,它不像人脸识别一样,输入图像找到人脸就好了,它不仅要识别骨头,还要根据骨头来识别年龄,就像是门禁系统不仅要识别人脸,还要提取出来判断是否拥有进入权利。这种问题如果要用端到端学习的话,需要的数据量可能大得惊人。
    上图下面是无人驾驶技术的例子,无人驾驶技术你要根据图像来判断车辆、行人、交通信号灯等等,然后还要规划路线才能控制方向盘等等,是一个相当复杂的场景。而端到端学习直接根据图像就能得出方向盘应当转动的角度,听上去很方便很简单,但是仔细想一下,这样的话需要的数据量是无穷无尽的,这种情况下自然还不如分步来做更加靠谱一些。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CtrlZ1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值