第一章、简介

  • 本文基于吴恩达人工智能课程做学习笔记、并融入自己的见解(若打不开请复制到浏览器中打开)https://study.163.com/courses-search?keyword=吴恩达
  • 本文第二章将介绍 多任务学习的定义、多任务学习的举例、多任务学习的意义等等。
  • 对本文的总结:

第二章、什么是端到端的深度学习

2.1、

  • 深度学习中,最令人振奋的最新动态之一,就是端到端深度学习的兴起。
  • 那么端到端学习到底是什么呢?简而言之,以前有一些数据处理系统,或者学习系统,它们需要对多个阶段的处理,从而达到理想效果。
  • 那么端到端深度学习,就是忽略所有这些不同的阶段,用单个神经网络代替它。我们来看一些例子,以语音识别为例,你的目标是输入\large {\color{Blue}\textbf{x}}是一段音频,然后把它映射到一个输出\large {\color{Blue} \mathbf{y}}\large {\color{Blue} \mathbf{y}}就是这段音频的听写文本(即话音转文字)。
  • 传统上,语音识别需要很多阶段的处理。首先,你会提取一些音频特征(features),一些手工设计的音频特征——也许你听过MFCC,这种算法是用来从音频中提取一组特定的人工设计的特征。
  • 如图2-1所示,在提取出一些低层次特征之后,你可以应用机器学习算法(MC algoritm),在音频片段中找到音位(phonemes)。其中,音位是声音的基本单位,比如说 Cat 这个词是由Cu-Ah-和Tu-这三个音节构成的,算法就把这三个音位提取出来。然后你将音位串在一起构成独立的单词(words),然后你将词串起来构成音频片段的听写文本(transcript)。

 

                                                         图2-1

  • 所以,和这种有很多阶段的流水线相比(把需要进行多个阶段的学习系统比作了流水线),端到端深度学习做的是——你训练一个巨大的神经网络,输入就是一段音频,输出直接是听写文本。
  • AI中一个有趣的社会学效应是,随着端到端深度学习系统表现出逐渐变好的趋势,有一些花了大量时间或者整个事业生涯,引领出了可以设计流水线各个步骤的研究员,还有其他领域的研究员,不只是语言识别领域的,也许是计算机视觉,还有其他领域。
  • 这些研究员花了大量的时间,写了很多论文,有些甚至整个职业生涯的一大部分都投入到开发这个流水线的功能或者其他构件上去了。
  • 端到端深度学习意义就只需要把训练集拿过来,直接学到了\large {\color{Blue}\textbf{x}}\large {\color{Blue} \mathbf{y}}之间的函数映射,直接绕过了其中很多步骤。对一些学科里的人来说,这点相当难以接受,他们无法接受这样构建AI系统,因为有些情况端到端方法完全取代了旧系统,某些投入了多年研究的中间件也许已经过时了。
  • 事实证明,端到端深度学习的挑战之一是,你可能需要大量数据才能让系统表现良好,比如 你只有3000小时的数据,去训练你的语音识别系统,那么传统的流水线训练出来的效果真的很好。
  • 但当你拥有非常大的数据集时,比如10000小时的数据,或者100000小时的数据,这样端到端方法突然开始很厉害了。所以当你的数据集较小的时候,传统流水线方法其实效果也不错,通常做得更好。
  • 但是针对端到端学习,你需要大数据集才能让端到端方法真正发出耀眼光芒,如果你的数据量适中,那么也可以用中间件方法。你可能的输入还是音频,然后绕过特征提取,直接尝试从神经网络输出音位,所以这是往端到端学习迈出的一小步。
  • 如图2-2所示,该图上是一个研究员做的人脸识别门禁,是百度的林元庆研究员做的,这是一个相机,它会拍下接近门禁的人,如果它认出了那个人,门禁系统就自动打开 让他通过,所以你不需要刷一个RFID工卡就能进入这个设施。
  • 人脸识别系统部署在越来越多的中国办公室,希望在其他国家也可以部署更多。你可以接近门禁,如果它认出你的脸,它就直接让你通过,你不需要带 RFID工卡。
  • 那么,怎么搭建这样的系统呢? 你可以做的第一件事是,看看相机拍到的照片,对吧? 我想我画的不太好,但也许这是相机照片,你知道有人接近门禁了,所以这可能是相机拍到的图像x,有件事你可以做的就是尝试直接学习图像 x 到人物 y 身份的函数映射,事实证明这不是最好的方法。
  • 其中一个问题是,人可以从很多不同的角度接近门禁,他们可能在绿色位置,可能在蓝色位置,有时他们更靠近相机,所以他们看起来更大,有时候他们非常接近相机,那照片中脸就很大了,在实际研制这些门禁系统时,他不是直接将原始照片喂到一个神经网络去试图找出一个人的身份的。
  • 相反,迄今为止最好的方法,似乎是一个多步方法(multi-step approach)去识别人脸。首先,你运行一个软件来检测人脸,所以第一个检测器找的是人脸位置,检测到人脸然后放大图像的那部分,并裁剪图像使人脸居中显示。然后就是这里红线框起来的照片(如图2-2所示),再喂到神经网络里,让网络去学习或估计那人的身份。
  • 研究人员发现,比起一步到位,逐步学习把这个问题分解成两个更简单的步骤,首先是弄清楚脸在哪里,第二步是看着脸弄清楚这是谁,这第二种方法让学习算法或者说两个学习算法,分别解决两个更简单的任务,并在整体上得到更好的表现。

  • 顺便说一下,如果你想知道第二步实际怎么工作的,我其实省略了很多细节,训练第二步的方式训练网络的方式(即把人脸放大后喂给训练网络的方式)就是输入两张图片,然后你的网络做的就是将输入的两张图比较一下,判断是否是同一个人,比如你记录了10000个员工ID,你可以把红色框起来的图像,快速比较全部10,000个员工记录在案的ID看看这张红线内的照片 是不是那10000个员工之一,是的话应该允许进入这个设施或者进入这个办公楼,这是一个门禁系统,允许员工进入工作场所的门禁。
  • 为什么两步法更好呢?实际上有两个原因,一是你解决的两个问题,每个问题实际上要简单得多;第二原因是两个子任务的训练数据都很多。
  • 具体来说,有很多数据可以用于人脸识别训练,对于这里的任务1来说就是观察一张图找出人脸所在的位置,把人脸图像框出来,所以有很多数据,有很多标签数据 (\large {\color{Blue}\textbf{x}}\large {\color{Blue} \mathbf{y}}) ,其中 x 是图片,y是表示人脸的位置。
  • 你可以建立一个神经网络可以很好地处理任务1,然后任务2也有很多数据可用。现如今,业界领先的公司拥有比如说数百万张人脸照片,所以输入一张裁剪得很紧凑的照片,比如图2-2红色照片这个,今天业界领先的人脸识别团队有至少数亿的图像,他们可以用来观察两张图片,并试图判断照片里人的身份,确定是否同一个人,所以任务2还有很多数据。任务1的目的就是为了获取人脸图像,任务2的目的就是为了识别人脸图像
  • 相比之下,如果你想一步到位,这样 的(\large {\color{Blue}\textbf{x}}\large {\color{Blue} \mathbf{y}})数据对就少得多,其中x是门禁系统拍摄的图像,y是那人的身份,因为你没有足够多的数据去解决这个端到端学习问题,但你却有足够多的数据来解决子问题1和子问题2。此时分步处理更好,任务1和任务2都可以有足够的数据去训练
  • 实际上,把这个分成两个子问题,比纯粹的端到端深度学习方法那达到更好的表现,不过如果你有足够多的数据来做端到端学习,也许端到端方法效果更好,但在今天的实践中并不是最好的方法。
  • 我们再来看几个例子,比如机器翻译,传统上机器翻译系统也有一个很复杂的流水线,比如英语机翻得到文本,然后做文本分析,基本上要从文本中提取一些特征之类的,经过很多步骤 你最后会将英文文本翻译成法文。
  • 因为,对于机器翻译来说,的确有很多(英文,法文)的数据对,端到端深度学习在机器翻译领域非常好用,那是因为在今天,可以收集 x-y 对的大数据集,就是英文句子和对应的法语翻译,所以在这个例子中,端到端深度学习效果很好,最后一个例子 比如说你希望,观察一个孩子手部的x光照片,并估计一个孩子的年龄,你知道 当我第一次听到这个问题的时候,我以为这是一个非常酷的犯罪现场调查任务,你可能悲剧的发现了一个孩子的骨架,你想弄清楚孩子在生时是怎么样的,事实证明 这个问题的典型应用,从x射线图估计孩子的年龄,是我想太多了 没有我想象的犯罪现场调查脑洞那么大,结果这是儿科医生用来,判断一个孩子的发育是否正常,处理这个例子的一个非端到端方法,就是照一张图 然后分割出每一块骨头,所以就是分辨出那段骨头应该在哪里,那段骨头在哪里,那段骨头在哪里? 等等 然后,知道不同骨骼的长度,你可以去查表,查到儿童手中骨头的平均长度,然后用它来估计孩子的年龄,所以这种方法实际上很好,相比之下 如果你直接从图像去判断孩子的年龄,那么你需要大量的数据去直接训练 据我所知,这种做法今天还是不行的,因为没有足够的数据来用端到端的方式来训练这个任务,相比之下 你可以想象一下如何将这个问题分解成两个步骤,第一步是一个比较简单的问题,也许你不需要那么多数据,也许你不需要许多x射线图像来切分骨骼,而任务二 收集儿童手部的骨头长度的统计数据,你不需要太多数据也能做出相当准确的估计,所以这个多步方法看起来很有希望,也许比端对端方法更有希望,至少直到你能获得更多端到端学习的数据之前。
     

 

 ​​​​​​​​​​

2.2、

2.3、

2.4、

2.5

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐