人工智能原理及MATLAB实现 课件 第4章 深度学习_第1页
人工智能原理及MATLAB实现 课件 第4章 深度学习_第2页
人工智能原理及MATLAB实现 课件 第4章 深度学习_第3页
人工智能原理及MATLAB实现 课件 第4章 深度学习_第4页
人工智能原理及MATLAB实现 课件 第4章 深度学习_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

第四章深度学习第四章深度学习4.1深度学习概述图4.1多层感知器神经网络深度学习是机器学习中一种基于对数据进行表征学习的方法,是一种能够模拟出人脑的神经结构的机器学习方法。它的概念起源于人工神经网络,本质上是指一类对具有深层结构的神经网络进行有效训练的结构和方法,其深度含义就是指不包括输入层的神经网络结构的层数。第四章深度学习4.1深度学习概述在训练神经网络方面,反向传播无疑是最常用、最著名的算法,这是一种有监督的学习算法。然而直到20世纪80年代末期,此算法似乎还只是对只具有1个隐含层的浅层网络有效,尽管理论上也应该对深层网络有效。第四章深度学习4.1深度学习概述1991年,霍克赖特(Hochreteir)指出典型的深层网络存在梯度消失或爆炸问题,从而确立了深度学习的一个里程碑。该问题是说累积反向传播误差信号在神经网络的层数增加时会出现指数衰减或增长的现象,从而使数值计算快速收缩或越界,这样导致深层网络很难用反向传播算法训练。第四章深度学习4.1深度学习概述普遍认为深度学习正式发端于2006年,以杰弗里·欣顿(GeoffreyHinton)及其合作者发表的两篇重要论文为标志:发表于《NeuralComputation》的“Afastlearningalgorithmfordeepbeliefnets”及发表于《Science》的“Reducingthedimensionalityofdatawithneuralnetworks”。第四章深度学习4.1深度学习概述深度学习的方法有很多,就具体研究内容而言,它主要涉及三类方法:(1)基于卷积运算的神经网络系统,即卷积神经网络(CNN);(2)基于多层神经元的自编码网络,包括自编码以及近年来受到广泛关注的稀疏编码两类;(3)以多层自编码神经网络的方式进行预训练,进而结合鉴别信息进一步优化神经网络权值的深度置信网络。4.2深度学习模型1.卷积神经网络(CNN)2.循环神经网络(RNN)3.深度信念网络模型(DBN)4.深度神经网络(DNN)第四章深度学习4.2深度学习模型4.2.1卷积神经网络(CNN)1.卷积神经网络(CNN)卷积神经网络是一种特殊的多层感知器或前馈神经网络,标准的卷积神经网络一般由输入层、交替的卷积层和池化层、全连接层和输出层构成,如图所示。它涉及卷积、池化、全连接和识别运算。第四章深度学习4.2深度学习模型1.卷积神经网络(CNN)(1)卷积层及其卷积运算:卷积层是CNN特有的,也称为“检测层”,可认为是特征的隐层,它的激活函数是ReLU=max(0,x)。主要作用是抽取特征,使网络具有一定转移不变性,也有一定降维的作用。第四章深度学习4.2深度学习模型1.卷积神经网络(CNN)(2)池化层与池化运算:池化层的主要作用是降维。随着模型网络不断加深,卷积核越来越多,要训练的参数还是很多,而且直接拿卷积核提取的特征直接训练容易出现过拟合的现象。第四章深度学习4.2深度学习模型1.卷积神经网络(CNN)(3)全连接层和全连接运算:全连接层即为DNN结构,只是输出层使用了Softmax激活函数。输入信号经过多次卷积核池化运算后,输出为多组信号,经过全连接运算(也称为平展操作),将多组信号依次组合为一组信号。第四章深度学习4.2深度学习模型1.卷积神经网络(CNN)(4)识别运算:上述的各个运算过程为特征学习运算,需在其基础上根据问题实际(分类或回归问题)增加一层网络用于分类或回归计算。第四章深度学习4.2深度学习模型4.2.2循环神经网络(RNN)循环神经网络(RecurrentNeuralNetwork,RNN)是一类具有短期记忆能力的神经网络,适合用于处理视频、语音、文本等与时序相关的问题。第四章深度学习4.2深度学习模型1.网络结构一个典型的RNN网络组成包含一个输入,一个输出和一个神经网络单元,如图所示。第四章深度学习4.2深度学习模型2.网络训练RNN可以按时间展开进行前向以及后向计算,从而可以将传统的BP算法应用于RNN模型的训练,由于是按照时间展开的BP算法,所以术语就叫作BPTT。第四章深度学习4.2深度学习模型4.2.3深度信念网络模型(DBN)2006年,杰弗里·欣顿提出深度信念网络DBN(Deepbeliefnetwork)及其高效的学习算法成为其后深度学习算法的主要框架。DBN是一种生成模型,通过训练其神经元间的权重,可以让整个神经网络按照最大概率来生成训练数据。第四章深度学习4.2深度学习模型1.网络结构DBN由若干层受限波尔兹曼机(RBM)堆叠而成,上一层RBM的隐层作为下一层RBM的可见层。第四章深度学习

4.2深度学习模型2.网络训练DBN的训练包括Pre-training和Finetuning两步,其中Pre-training过程相当于逐层训练每一个RBM,经过Pre-training训练的DBN已经可用于模拟训练数据,而为了进一步提高网络的判别性能,Finetuning过程利用标签数据通过BP算法对网络进行微调。第四章深度学习

4.2深度学习模型2.网络训练DBN的训练包括Pre-training和Finetuning两步,其中Pre-training过程相当于逐层训练每一个RBM,经过Pre-training训练的DBN已经可用于模拟训练数据,而为了进一步提高网络的判别性能,Finetuning过程利用标签数据通过BP算法对网络进行微调。第四章深度学习

4.2深度学习模型3.优缺点

DBN模型具有优点:①生成模型学习联合概率密度分布,所以就可以从统计的角度表示数据的颁布情况,能够反映同类数据本身的相似度;②生成模型可以还原出条件概率分布,此时相当于判别模型,而判别模型无法得到联合分布,所以不能当成生成模型使用。但也存在缺点:①生成模型不关心不同类别之间的最优分类面在哪,所以用于分类问题时,分类精度可能没有判别模型高;②由于生成模型学习的是数据的联合分布,因此在某种程度上学习问题的复杂性更高;③要求输入数据具有平移不变性。第四章深度学习

4.2深度学习模型4.2.4深度神经网络(DNN)神经网络是基于感知机的扩展,而DNN可以理解为有很多隐藏层的神经网络。第四章深度学习4.2深度学习模型1.网络结构深度神经网络DNN其实和多层神经网络是一样的。DNN有时也叫作多层感知机。从DNN不同层的位置划分,DNN内部的神经网络层可以分为三类,即输入层、隐藏层和输出层,如图4.6所示。一般来说第一层是输入层,最后一层是输出层,而中间的层数都是隐藏层。第四章深度学习4.2深度学习模型2.网络训练DNN的训练可以采用前向传播算法或后向传播算法。前向传播算法就是利用若干个权重系数矩阵w、偏倚向量b和输入值向量x进行一系列线性运算和激活运算,从输入层开始,一层层的向后计算,一直运算到输出层,得到输出结果为止。第四章深度学习4.3深度学习的学习与训练深度学习的学习即深度学习神经网络的训练,一般可采用前向传播或反向传播算法。但实验结果表明,对深度结构神经网络采用随机初始化的方法,由于采用基于梯度的优化易使训练结果陷入局部极值,而找不到全局最优值,并且随着网络结构层次的加深,更难以得到好的泛化性能,使得深度结构神经网络在随机初始化后得到的学习结果甚至不如只有一个或两个隐层的浅结构神经网络得到的学习结果好。第四章深度学习4.3深度学习的学习与训练4.3.1反向传播反向传播是一种计算函数偏导数(或梯度)的简单方法,它的形式是函数组合(如神经网络)。在使用基于梯度的方法求解最优化问题时,需要在每次迭代中计算函数梯度。第四章深度学习4.3深度学习的学习与训练4.3.2随机梯度下降

梯度下降又称为最速下降算法,是在无约束条件下计算连续可微函数极小值的基本方法,这种方法的核心是用负梯度方向作为下降方向。它的一个直观理解就是想象一条源自山顶的河流。这条河流会沿着山势的方向流向山麓的最低点,而这也正是梯度下降法的目标。最理想的情况就是河流在到达最终目的地(最低点)之前不会停下。第四章深度学习4.3深度学习的学习与训练4.3.3学习率衰减学习率是控制模型学习进度的参数。调整随机梯度下降优化算法的学习速率可以提升性能并减少训练时间。这被称作学习率退火或自适应学习率。训练中最简单也最常用的学习率自适应方法就是逐渐降低学习率。在训练初期使用较大的学习率,可以对学习率进行大幅调整;在训练后期,降低学习率,以一个较小的速率更新权重。这种方法在早期可以快速学习获得较好的权重,并在后期对权重进行微调。第四章深度学习4.3深度学习的学习与训练4.3.4节点丢弃(Dropout)

拥有大量参数的深度神经网络是非常强大的机器学习系统。然而,在这样的网络中,过拟合是一个很严重的问题。而且大型网络的运行速度很慢,这就使得在测试阶段通过结合多个不同的大型神经网络的预测来解决过拟合问题是很困难的。Dropout方法可以解决这个问题,其主要思想是:神经网络只训练那些随机挑选的节点,而不是全部节点。在训练过程中随机地从神经网络中删除单元(以及相应的连接),这样可以防止单元间的过度适应。第四章深度学习4.3深度学习的学习与训练4.3.5最大池

最大池是一种基于样本的离散化方法。目标是对输入表征(图像、隐藏层输出矩阵等)进行下采样,降低维度并且允许对子区域中的特征进行假设。通过提供表征的抽象形式,这种方法可以在某种程度上解决过拟合问题。同样,它也通过减少学习参数的数目以及提供基本的内部表征转换不变性来减少计算量。第四章深度学习4.3深度学习的学习与训练4.3.6批量标准化

包括深度网络在内的神经网络需要仔细调整权重初始值和学习参数。批量标准化能够使这个过程更加简单。第四章深度学习4.3深度学习的学习与训练4.3.7Skip-gramSkip-gram是一种学习词嵌入算法的模型,常用于自然语言的处理,它的基本理念是构造一个假的学习任务,但并不关注这个任务的输出结果如何,而是关注它的中间产物。例如打乒乓球,并不关注谁输谁赢(假的学习目标)而是通过这个过程进行身体锻炼(实际目标)。第四章深度学习4.3深度学习的学习与训练4.3.8连续词袋模型

在自然语言处理中,希望将文档中的每一个单词表示为一个数值向量,使得出现在相似上下文中的单词具有相似或相近的向量表示。在连续词袋模型中,其目标是利用一个特定单词的上下文,预测该词。第四章深度学习4.3深度学习的学习与训练4.3.9迁移学习迁移学习是指采用一个已经学会如何很好地完成一项任务的模型,并将部分知识迁移到相关任务。第四章深度学习4.4深度学习框架随着深度学习技术在学术界和工业界得到广泛认可,越来越多的人开始参与到深度学习的相关研究和实践中来。然而,由于存在一定的技术门槛,快速入手深度学习的研究并不是一件容易的事情。其中的一个重要原因是,深度学习中的许多问题非常依赖于实践。然而长期以来,学术界和工业界缺少一款专门为深度学习而设计的,兼具性能、灵活性和扩展性等诸多优势于一身的开源框架。这使得无论是快速实现算法,还是复现他人的结论,都存在着实践上的困难。研究人员和工程师们迫切需要一套通用而高效的深度学习开源框架。为了在解决各种实际问题中有效地利用深度学习模型,现已有很多开发平台和工具可以选择。比较常用的有Theano、TensorFlow、Caff、Deeplearning4J和Keras等。第四章深度学习4.4深度学习框架第四章深度学习4.4.1CaffeCaffe创建于2013年年底,可能是第一个主流的行业级深度学习工具包,由领导FacebookAI平台工程的贾扬清负责设计和实现,在BSD2-Clause开源许可后发布。Caffe框架以“Layer层”为单位对深度神经网络的结构进行了高度的抽象,通过一些精巧的设计显著优化了执行效率,并且在保持高效实现的基础上不失灵活性。4.4深度学习框架第四章深度学习4.4.2TensorFlowTensorFlow来自早期的Google库和DistBeliefV2,是作为GoogleBrain项目的一部分开发的专有深度网络库。由于TensorFlow支持广泛的功能,如图像识别、手写字符识别、语音识别、预测以及自然语言处理,所以在2015年以Apache2.0许可开源后,Google立即获得了大量的关注,有些人评价TensorFlow是对Theano的重新设计。4.4深度学习框架第四章深度学习4.4.3DeepLearning4JDeepLearning4J简称DL4J,是用Java和Scala编写的、由Apache2.0授权的开放源码,支持常用的机器学习向量化工具,以及丰富的深度学习模型,包括受限波尔兹曼机、深信度神经网络、卷积神经网络、循环神经网络、RNN和长短期记忆网络等。4.4深度学习框架第四章深度学习4.4.4KerasKeras是一个高层神经网络的应用程序编程接口,由纯Python语言编写,并且使用TensorFlow、The

温馨提示

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

评论

0/150

提交评论