深度学习学习笔记_第1页
深度学习学习笔记_第2页
深度学习学习笔记_第3页
深度学习学习笔记_第4页
深度学习学习笔记_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、深度学习 ”学习笔记摘要: 人工智能的飞跃发展得益于深度学习理论的突破以及移动互联网创造的大数据。本文梳理了人工智能、机器学习、深度学习的概念以及发展历程;介绍了深度学习基本理论、训练方法、常用模型、应用领域。关键词:机器学习、人工神经网路、深度学习、语音识别、计算机视觉. 概述2017年5月 27 日 , 围棋世界冠军柯洁与 Google 围 棋人工智能AlphaGo 的第三场对弈落下帷幕。在这场人机大战中,世界围棋第一人0:3完败于围棋人工智能。人工智能以气势如虹的姿态出现在我们人类的面前。人工智能 AI( Artificial Intelligence )从此前的学术研究领域全面进入大众

2、视野。整个业界普遍认为,它很可能带来下一次科技革命,并且,在未来可预见的 10 多年里,深刻得改变我们的生活。人工智能、机器学习、深度学习什么是人工智能?人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科。该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。上世纪50年代人工智能的理念首次提出,科学家们不断在探索、研究,但是 人工智能的发展就磕磕碰碰。人工智能的发展经历了若干阶段,从早期 的逻辑推理,到中期的专家系统,直到上世纪80年代机器学习诞生以后,人工智能研究终于找对了方向。机器学习是一种能够赋予机器学习的能力以此让它完成直接编程

3、无 法完成的功能的方法。但从实践的意义上来说,机器学习是一种通过利 用数据,训练出模型,然后使用模型对真实世界中的事件作出决策与预 测的一种方法。基于机器学习的图像识别和语音识别得到重大发展。人 工神经网络(Artificial Neural Networks)成为机器学习中的一个重要的 算法,其中反向传播算法(Back Propagation )是最常用的ANN学习技 术。基于BP算法的人工神经网路,主要问题是训练困难、需要大量计 算,而神经网络算法的运算需求难以得到满足。进入 90年代,神经网络 的发展进入了一个瓶颈期。其主要原因是尽管有BP算法的加速,神经网络的训练过程仍然很困难。因此

4、90年代后期支持向量机(SVM)算法取代了 神经网络的地位。【SVM是个分类器,通过 核函数”将低维的空间映射 到高维的空间,将样本从原始空间映射到一个更高维的特质空间中,使 得样本在这个新的高维空间中可以被线性划分为两类,再将分割的超凭 你们映射回低维空间。】2006年,加拿大多伦多大学教授、机器学习领域的泰斗GeoffreyHinton在科学上发表了一篇文章,开启了深度学习在学术界和工业 界的浪潮。这篇文章有两个主要观点:1、多隐层的人工神经网络具有优异的特征学习能力,学习得到的特征对数据有更本质的刻画,从而有利于可视化或分类;2、深度神经网络在训练上的难度,可以通过逐层初始化(layer

5、-wise pre-training )来有效克服,在这篇文章中,逐层初始 化是通过无监督学习实现的。深度学习使得机器学习能够实现众多的应 用,弁拓展了人工智能的领域范围。深度学习在语音识别和图像识别等 领域获得了巨大的成功因此极有可能是真正实现人工智能梦想的关键技 术。人工智能、机器学习(Machine Learning)和深度学习(Deep Learning)之间的关系,如图1所示。人工智能是机器学习的父类。深度 学习则是机器学习的子类。I960,1”。,1*801 imk 2000 k 2OWt图1人工智能、机器学习、深度学习关系.人工神经网络人工神经网络(ANN )受到生物学的启发是生

6、物神经网络的一种模拟和近似,它从结构、实现机理和功能上模拟生物神经网络。从系统观 点看,人工神经元网络是由大量神经元通过极其丰富和完善的连接而构成的自适应非线性动态系统。图2单个神经元X|n2X。输入层 隐层 输出层图3人工神经网路BP算法BP (Back Propagation)神经网络,即 误差反传误差反向传播算法的学习过程,由信息的正向传播和误差的反向传播两个过程组成。输入层 各神经元负责接收来自外界的输入信息,弁传递给中间层各神经元;中 间层是内部信息处理层,负责信息变换,根据信息变化能力的需求,中 间层可以设计为单隐层或者多隐层结构;最后一个隐层传递到输出层各 神经元的信息,经进一步

7、处理后,完成一次学习的正向传播处理过程,由输出层向外界输出信息处理结果。当实际输出与期望输出不符时,进入 误差的反向传播阶段。 误差通过输出层,按误差梯度下降【求取偏导数】的方式修正各层权值,向隐层、输入层逐层反传。周而复始的信息正向传播和 误差反向传播过程,是各层权值不断调整的过程,也是神经网络学习训练的过程,此过程一直进行到网络输出的误差减少到可以接受的程度,或者预先设定的学习次数为止BP算法存在的问题(1)、收敛速度慢,梯度越来越稀疏【梯度扩散】:从顶层越往下,误差校正信号越来越小。(2)、收敛到局部最小值,可能导致训练失败:尤其是从远离最优区域开始的时候(随机值初始化会导致这种情况的发

8、生)。(3)、一般我们只能用有标签的数据来训练:但大部分的数据是没标签的,而大脑可以从没有标签的数据中学习。在实际应用中,BP人工神经网路通常是只含有一个隐层的浅层模型。浅 层学习是机器学习的第一次浪潮。.深度学习(Deep Learning )1、基本思想深度学习是机器学习的第二次浪潮。深度学习的实质,是通过构建 具有很多隐层的机器学习模型和海量的训练数据,来学习更有用的特 征,从而最终提升分类或预测的准确性。因此,深度模型”是手段,特征学习”是目的。区别于传统的浅层学习,深度学习的不同在于:1)强调了模型结构的深度,通常有 5层、6层,甚至10层以上的隐层节点;2) 明确突出了特征学习的重

9、要性,也就是说,通过逐层特征变换,将样本在原空间的特征表示变换到一个新特征空间,从而使分类或预测更加容 易。假设我们有一个系统 S,它有n层(S1-Sn它的车&入是I,输出 是O,形象地表示为:I =S1=S2=Sn = O ,如果输出。等于 输入I,这意味着输入I经过每一层Si都没有任何的信息损失,即在任何 一层Si,它都是原有信息(即输入 I)的另外一种表示。深度学习需要自 动地学习特征,假设我们有一堆输入I (如一堆图像或者文本),假设我们设计了一个系统 S (有n层),我们通过调整系统中参数,使得它的输 出仍然是输入I,那么我们就可以自动地获取得到输入I的一系列层次特征,即S1,,Sn

10、通过这种方式,就可以实现对输入信息进行分级表达 了。图4浅层模型与深度学习模型深度学习模型采用了与神经网络相似的分层结构,系统由包括输入层、隐层(多层)、输出层组成的多层网络,只有相邻层节点之间有连接,同一层以及跨层节点之间相互无连接。为了克服神经网络训练中的问题,DL采用了与神经网络很不同的训练机制。传统神经网络中,采用的是 BP算法进行训练,简单来讲就是采用迭代的算法来训练整个网络,随机设定初值,计算当前网络的输出,然后根据当前输出和期望输出之间的差去改变前面各层的参数,直到收敛(整体是一个梯度下降法)。而深度学习整体上是一个 layer-wise的训 练机制。. 2、训练方法第一步:无监

11、督学习,逐层构建单层神经元,逐层训练一个单层网络深度神经网络在训练上的难度,可以通过逐层初始化(Layer-wisePre-training )来有效克服,文中给出了无监督的逐层初始化方法。图5单层训练给定原始输入后,先要训练模型的第一层,即图中左侧的黑色框。黑 色框可以看作是一个编码器,将原始输入编码为第一层的初级特征,可 以将编码器看作模型的一种认知”。为了验证这些特征确实是输入的一种抽象表示,且没有丢失太多信息,需要引入一个对应的解码器,即图 中左侧的灰色框,可以看作模型的生成”。为了让认知和生成达成一致,就要求原始输入通过编码再解码,可以大致还原为原始输入。因此 将原始输入与其编码再解

12、码之后的误差定义为代价函数,同时训练编码 器和解码器。Wake-Sleep算法:(1)、Wake 阶段 【Input-Code-Reconstruction, 调整 Decoder 权 重】认知过程,自上而下,通过下层的输入特征( Input)和向上的认知(Encoder)权重产生每一层的抽象表示( Code),再通过当前的生成(Decoder)权重产生一个重建信息( Reconstruction ),计算输入特征和重建信息残差,使用梯度下降修改层间的下行生成( Decoder)权重。也就是如果现实(Code)跟我想象(Reconstruction )的不一样,改变我的生成权重(Decoder

13、权重在 Wake阶段调整使得我想象(Code),的东西变得接近现实(2)、Sleep 阶段【Code-Reconstruction-Code ,调整 Encoder 权生成过程,自下而上,通过上层概念( Wake阶段产生的Code)和 向下的生成权重(Decoder权重在 Wake阶段调整&v),生成下层的状态 (Sleep阶段产生的Input),再利用认知(Encoder)权重产生一个抽象 景象(Sleep阶段产生的Code)。利用初始上层概念(Wake阶段产生的 Code)和新建抽象景象(Sleep阶段产生的Code)的残差,利用梯度下 降修改层间向上的认知权重(Encoder权重在Sle

14、ep阶段调整/)。也就是 如果梦中的景象(Sleep阶段产生的 Code)不是我脑中的相应概念(Wake阶段产生的Code),改变我的认知权重使(Encoder权 重在Sleep阶段调整细)得这种景象在我看来接近这个概念工【多次训练重复 Wake-Sleep算法,不断调整 Encode和Decode的 权重,最终使得让认知和生成达成一致Input = Reconstruction图5逐层初始化(即特征学习Feature Learning过程)Wake:自 下而上 一Encoder -RecognitionSleep:自上而下一Decoder -Generativelayer图6逐层初始化的方法

15、(双向神经网络)第二步:自顶向下的有监督学习训练收敛后,编码器就是我们要的第一层模型,而解码器则不再需 要了。这时我们得到了原始数据的第一层抽象。固定第一层模型,原始 输入就映射成第一层抽象,将其当作输入,如法炮制,可以继续训练出 第二层模型,再根据前两层模型训练出第三层模型,以此类推,直至训 练出最高层模型。由于深层模型具有很多局部最优解,模型初始化的位 置将很大程度上决定最终模型的质量。逐层初始化”的步骤就是让模型处于一个较为接近全局最优的位置,从而获得更好的效果。逐层初始化完成后,深度学习模型只是学习获得了一个可以良好代 表输入的特征,这个特征可以最大程度上代表原输入信号,还没有学习 如

16、何去连结一个输入和一个分类。为了实现分类,在编码层添加一个分 类器(例如罗杰斯特回归、支持向量机 -SVM等),然后通过标准的多层神经网络的监督训练方法(梯度下降法)去训练。将最后层的特征code输入到最后的分类器,通过有标签样本,通过监督学习进行微调,这也分两种,一种是只调整分类器(黑色部分):label另一种:通过有标签样本,微调整个系统:(如果有足够多的数据,这个是最好的。 end-to-end learning 端对端学习)inputlabel.深度学习常用模型1、自动编码器 Auto Encoder3.2节训练方法中,呈现的是深度学习模型属于自动编码器模型AutoEncoder,此外

17、常用的模型还有:稀疏自动编码器、卷积神经网络等。4. 2、稀疏自动编码器 Sparse Auto Encoder在Auto Encoder的基础上力口上 L1的Regularity限制(L1主要是约束 每一层中的节点中大部分都要为 0,只有少数不为0,这就是Sparse名字 的来源),我们就可以得到 Sparse Auto Encoder法。其实就是限制每次 得到的表达code尽量稀疏。因为稀疏的表达往往比其他的表达要有效(人脑好像也是这样的,某个输入只是刺激某些神经元,其他的大部分的神经元是受到抑制的)。图7稀疏自动编码器稀疏编码是一种无监督学习方法,用来寻找一组超完备”基向量来更有效的表示

18、样本数据。稀疏编码算法的目的就是找到一组基向量曲使得我们能将输入向量 x表示为这些基向量的线性组合:x= 曲=1那么可以得到有个最优化问题:乂冽|1-0|,其中,1为输入,0为输出通过求解这个最优化式子,可以求得 内与系数ai;如果加上稀疏规则限 制,得到:MIN | -0| + A (|al| + a2| + + |ai |)图8稀疏自动编码器示意举例4. 3、卷积神经网络CNN卷积神经网络是一种特殊的深层的神经网络模型,它的特殊性体现 在两个方面,一方面它的神经元间的连接是非全连接的,另一方面同一层中某些神经元之间的连接的权重是共享的(即相同的)。它的非全连接和权值共享的网络结构使之更类似

19、于生物神经网络,降低了网络模型的复杂度(对于很难学习的深层结构来说,这是非常重要的),减少了权值的数量。BP网络每一层节点是一个线性的一维排列状态,层与层的网络节点之间是全连接的。这样设想一下,如果BP网络中层与层之间的节点连接不再是全连接,而是局部连接的。这样,就是一种最简单的一维卷积网 络。把上述这个思路扩展到二维,这就是我们在大多数参考资料上看到的卷积神经网络。具体参看下图:-Spatial corrlafifli i$ ligcgl-Better 十口 put resources elsewhere1FULLY CONNECTED NEURAL NETExcmple: 1000 x10

20、0C iFnae IM hidden unTj 1012 partunctcrs*LOCALLY CONNECTED NEURAL NET1000 x1000 师 IM hidden units Frlter file: 10 x1-0100M paEigelT;ftOAlOi图9全连接网络与非全连接网络非全连接:上图左:全连接网络。如果我们有 1000 x1000像素的图像,有1百万 个隐层神经元,每个隐层神经元都连接图像的每一个像素点,就有 1000 x1000 x1000000=10八12 个连接,也就是10人12个权值参数。上图右:局部连接网络,每一个节点与上层节点同位置附近10 x1

21、0的窗口相连接,则1百万个隐层神经元就只有 100w乘以100,即10八8个 参数。其权值连接个数比原来减少了四个数量级对于上图中被标注为红色节点的净输入,就等于所有与红线相连接 的上一层神经元节点值与红色线表示的权值之积的累加。这样的计算过 程,很多书上称其为卷积Source pixel(4 MO) (0*0) (0 x0) (0 x0) (Ox 1)(Ox 1) (0,0)(Ox 1)火工2) 8图10卷积神经网络神经元计算(3 x3卷积核)权值共享:卷积神经网络另外一个特性是权值共享。隐层的参数个数和隐层的神经元个数无关,只和卷积核(又称滤波器)的大小和卷积核的种类多少有关。每一个卷积核

22、对应一种特征,对于10 x10的卷积核,具有100个可调参数作为权重。注:卷积神经网络模型与深度学习模型是两个不同概念。深度学习的概 念要更为宽泛一些。深度学习采用的模型为深层神经网络( Deep Neural Networks, DNN)模型,即包含多个隐藏层(Hidden Layer,也称隐含 层)的神经网络。经典的深度学习理论可分为自动编码器,稀疏自动编 码器,卷积神经网络、深度置信网络。卷积神经网络可以说是目前深度 学习体系中研究最多、应用最为成功的一个模型。5.应用领域深度学习在语音识别、图像处理等领域已经取得突破性发展。下面是基于深度学习开发出来的一些应用程序:?盲人看照片Face

23、book开发的一个移动应用,可以让盲人或者视力障碍者像正常人一样浏览照片。?实时语音翻译微软的Skype能够将语音实时翻译成不同的语言。?自动回复电子邮件Google的Mail可以代替您自动回复电子邮件。?目标识别Moodstocks (已经被Google收购)推出的智能手机图像识别应用程序Moodstocks Notes ,可通过照片识别书籍、CD、海报、传单和酒标等对象。?照片定位Google能够根据照片进行拍摄场景定位。?照片整理Google相册可以自动整理分类到常见的主题下面。?分类照片Yelp可以根据业务分支对照片进行分类。?自动驾驶自动驾驶技术应该是深度学习领域最为大家所知的应用了。?脸部识别这个就无需解释了。?文本图

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论