高性能算法-深度学习(DOC37页).doc
《高性能算法-深度学习(DOC37页).doc》由会员分享,可在线阅读,更多相关《高性能算法-深度学习(DOC37页).doc(38页珍藏版)》请在三一办公上搜索。
1、深度学习算法的研究与实现1 摘要深度学习近几年发展迅速,取得了突破性的进展。借助于深度学习算法,人类终于找到了如何处理“抽象概念”这个亘古难题的方法。本文首先介绍了深度学习的背景,然后对深度学习的研究过程以及发展现状进行了综述。接下来本文介绍了深度学习的基本原理,并在此基础上介绍了深度学习目前应用比较成功的几个领域的应用情况。在本文的最后,本文利用伯克利大学开发的Caffe深度学习平台进行了手写数字字符的识别的项目。数据来源于MNIST数据库,在经历生成符合Caffe的LMDB格式数据集、编写深度学习模型文件、本文编写网络求解文件后,通过调用Caffe可执行文件对深度网络进行训练及测试,并得到
2、最终的实验结果。在经历了1万次迭代后,实验结果显示卷积神经网络构成的深度学习网络可以达到99%以上的识别,显示出深度学习强大的识别能力。关键字:深度学习,Caffe,手写数字识别2 ABSTRACTDeep learning has developed rapidly in recent years, and has made breakthrough progress. With the help of the Deep Learning algorithm, human found a way how to deal with the abstract concept in our com
3、mon problem. This paper firstly introduces the background of the Deep Learning study, and then summarizes the research process and the development of the Deep Learning. Next, this paper introduces the basic principles of deep learning, and on the basis of that, the application of the deep learning w
4、as also introduced in some excellent area.Next, this paper uses the Caffe deep learning platform developed by Berkeley University to carry out the recognition of handwritten numeral characters. The data is from the MNIST database, through the process of generating LMDB format data set, writing deep
5、learning model file, writing solver file, finally by calling the Caffe executable file to training and testing of the deep learning network, we get the final experimental results.After 10 thousand iterations, the experimental results show that the deep learning network composed of convolutional neur
6、al networks can reach more than 99% of the right rate, showing the strong ability of deep learning.Keywords: Deep Learning, Caffe, Handwritten numeral character recognition目录1 摘要12 ABSTRACT23 背景介绍14 研究过程与发展现状24.1 研究过程24.1.1 浅层学习和深度学习24.1.2 深度学习与人工神经网络34.2 发展现状54.2.1 初始化方法、网络层数和激活函数的选择54.2.2 模型结构64.2
7、.3 学习算法65 深度学习基本原理85.1 深度学习的基本思想85.2 深度学习训练过程85.3 自动编码机105.4 卷积神经网络125.4.1 卷积神经网络的结构135.4.2 参数减少与权值共享145.4.3 卷积神经网络总结156 应用领域166.1 语音识别166.2 图像识别176.3 自然语言处理176.4 搜索广告CTR预估187 深度学习实战演练197.1 实验坏境的搭建197.1.1 深度学习平台197.1.2 安装依赖库197.1.3 安装Caffe197.2 实验概述207.3 实验过程217.3.1 生成指定的数据格式文件217.3.2 编写深度网络模型文件227.
8、3.3 编写网络求解文件237.4 实验结果248 总结259 参考文献2610 附录(源代码)27IV3 背景介绍人工智能很久以来就是人类最美好的梦想之一。虽然计算机技术已经取得了长足的进步,但是到目前为止,还没有一台电脑能产生“自我”的意识。图灵在 1950 年的论文里,提出图灵试验的设想,即,隔墙对话,你将不知道与你谈话的,是人还是电脑。这无疑给计算机,尤其是人工智能,预设了一个很高的期望值。但是半个世纪过去了,人工智能的进展,远远没有达到图灵试验的标准。这不仅让多年翘首以待的人们,心灰意冷,认为人工智能是忽悠,相关领域是“伪科学”。自 2006 年以来,在机器学习领域,取得了突破性的进
9、展。图灵试验,至少不是那么可望而不可及了。至于技术手段,不仅仅依赖于云计算对大数据的并行处理能力,而且依赖于算法。这个算法就是深度学习,借助于 Deep Learning 算法,人类终于找到了如何处理“抽象概念”这个亘古难题的方法,下面本文详细介绍一下机器学习的发展背景。图3-1 人工智能概念图机器学习是一门专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能的学科。机器能否像人类一样能具有学习能力呢?1959年美国的塞缪尔(Samuel)设计了一个下棋程序,这个程序具有学习能力,它可以在不断的对弈中改善自己的棋艺。4年后,这个程序战胜
10、了设计者本人。又过了3年,这个程序战胜了美国一个保持8年之久的常胜不败的冠军。这个程序向人们展示了机器学习的能力。机器学习虽然发展了几十年,但还是存在很多没有良好解决的问题,目前我们通过机器学习去解决问题的思路大致如下:a) 通过传感器(例如CMOS)来获得数据b) 预处理、特征提取、特征选择c) 推理、预测或者识别最后一个部分,也就是机器学习的部分,绝大部分的工作是在这方面做的,存在很多的和研究。而中间的三部分,概括起来就是特征表达。良好的特征表达,对最终算法的准确性起了非常关键的作用,而且系统主要的计算和测试工作都耗在这一大部分。但这块实际中一般都是人工完成的,靠人工提取特征。机器学习在发
11、展的过程中出现了不少强大的特征,具有大小、尺度和旋转等的不变性以及可区分性。例如SIFT是局部图像特征描述子研究领域一项里程碑式的工作。由于SIFT对尺度、旋转以及一定视角和光照变化等图像变化都具有不变性,并且SIFT具有很强的可区分性,的确让很多问题的解决变为可能,但它也不是万能的。然而,手工地选取特征是一件非常费力的方法,能不能选取好很大程度上靠经验和运气,而且它的调节需要大量的时间。既然手工选取特征不太好,那么能不能自动地学习一些特征呢?答案是能,深度学习就是用来干这个事情的,这也就是深度学习提出的背景。4 研究过程与发展现状4.1 研究过程4.1.1 浅层学习和深度学习浅层学习是机器学
12、习的第一次浪潮。20世纪80年代末期,用于人工神经网络的反向传播算法的发明,给机器学习带来了希望,掀起了基于统计模型的机器学习热潮。这个热潮一直持续到今天。人们发现,利用BP算法可以让一个人工神经网络模型从大量训练样本中学习统计规律,从而对未知事件做预测。这种基于统计的机器学习方法比起过去基于人工规则的系统,在很多方面显出优越性。这个时候的人工神经网络,虽也被称作多层感知机,但实际是种只含有一层隐含层节点的浅层模型。20世纪90年代,各种各样的浅层机器学习模型相继被提出,例如支撑向量机、 Boosting、最大熵方法等。这些模型的结构基本上可以看成带有一层隐层节点(如SVM、Boosting)
13、,或没有隐层节点。这些模型无论是在理论分析还是应用中都获得了巨大的成功。相比之下,由于理论分析的难度大,训练方法又需要很多经验和技巧,这个时期浅层人工神经网络反而相对沉寂。深度学习是机器学习的第二次浪潮。2006年,加拿大多伦多大学教授、机器学习领域的泰斗Geoffrey Hinton和他的学生在Science上发表了一篇文章,开启了深度学习在学术界和工业界的浪潮。这篇文章有两个主要观点:1)多隐层的人工神经网络具有优异的特征学习能力,学习得到的特征对数据有更本质的刻画,从而有利于可视化或分类;2)深度神经网络在训练上的难度,可以通过“逐层初始化”来有效克服,在这篇文章中,逐层初始化是通过无监
14、督学习实现的。当前多数分类、回归等学习方法为浅层结构算法,其局限性在于有限样本和计算单元情况下对复杂函数的表示能力有限,针对复杂分类问题其泛化能力受到一定制约。深度学习可通过学习一种深层非线性网络结构,实现复杂函数逼近,表征输入数据分布式表示,并展现了强大的从少数样本集中学习数据集本质特征的能力。深度学习的实质,是通过构建具有多隐层的机器学习模型和海量的训练数据,来学习更有用的特征,从而最终提升分类或预测的准确性。因此,“深度模型”是手段,“特征学习”是目的。区别于传统的浅层学习,深度学习的不同在于:1)强调了模型结构的深度,通常有5层、6层,甚至10多层的隐层节点;2)明确突出了特征学习的重
15、要性,也就是说,通过逐层特征变换,将样本在原空间的特征表示变换到一个新特征空间,从而使分类或预测更加容易。与人工规则构造特征的方法相比,利用大数据来学习特征,更能够刻画数据的丰富内在信息。4.1.2 深度学习与人工神经网络深度学习是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本。深度学习是无监督学习的一种。深度学习的概念源于人工神经网络的研究。含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。深度学习本身算是机器学习的一个分支,简单可
16、以理解为神经网络的发展。大约二三十年前,神经网络曾经是机器学习领域特别火热的一个方向,但是后来确慢慢淡出了,原因包括以下几个方面:1)比较容易过拟合,参数比较难调,而且需要不少技巧和经验;2)训练速度比较慢,在层次比较少(小于等于3)的情况下效果并不比其它方法更优;所以中间有大约20多年的时间,神经网络被关注很少,这段时间基本上是SVM和Boosting算法的天下。但是,一个痴心的老先生Hinton,他坚持了下来,并最终提成了一个实际可行的深度学习框架。深度学习与传统的神经网络之间有相同的地方也有很多不同。二者的相同在于深度学习采用了神经网络相似的分层结构,系统由包括输入层、隐层(多层)、输出
17、层组成的多层网络,只有相邻层节点之间有连接,同一层以及跨层节点之间相互无连接,每一层可以看作是一个Logistic 回归模型;这种分层结构,是比较接近人类大脑的结构的。而为了克服神经网络训练中的问题,深度学习采用了与神经网络很不同的训练机制。传统神经网络中,采用的是反向传播的方式进行,简单来讲就是采用迭代的算法来训练整个网络,随机设定初值,计算当前网络的输出,然后根据当前输出和标签之间的差去改变前面各层的参数,直到收敛(整体是一个梯度下降法)。而深度学习整体上是一个逐层的训练机制。这样做的原因是因为,如果采用反向传播的机制,对于一个深度网络(7层以上),残差传播到最前面的层已经变得太小,出现所
18、谓的梯度扩散。4.2 发展现状由于深度学习能够很好地解决一些复杂问题,近年来许多研究人员对其进行了深入研究,出现了许多有关深度学习研究的新进展。下面分别从初始化方法、网络层数和激活函数的选择、模型结构、学习算法和实际应用这四个方面对近几年深度学习研究的新进展进行介绍。4.2.1 初始化方法、网络层数和激活函数的选择研究人员试图搞清网络初始值的设定与学习结果之间的关系。Erhan等人在轨迹可视化研究中指出即使从相近的值开始训练深度结构神经网络,不同的初始值也会学习到不同的局部极值,同时发现用无监督预训练初始化模型的参数学习得到的极值与随机初始化学习得到的极值差异比较大,用无监督预训练初始化模型的
19、参数学习得到的模型具有更好的泛化误差。Bengio与Krueger等人指出用特定的方法设定训练样例的初始分布和排列顺序可以产生更好的训练结果,用特定的方法初始化参数,使其与均匀采样得到的参数不同,会对梯度下降算法训练的结果产生很大的影响。Glorot等人指出通过设定一组初始权值使得每一层深度结构神经网络的Ja-cobian矩阵的奇异值接近于1,在很大程度上减小了监督深度结构神经网络和有预训练过程设定初值的深度结构神经网络之间的学习结果差异。另外,用于深度学习的学习算法通常包含许多超参数,文献2给出了这些超参数的选择指导性意见,推荐一些常用的超参数,尤其适用于基于反向传播的学习算法和基于梯度的优
20、化算法中;并讨论了如何解决有许多可调超参数的问题,描述了实际用于有效训练常用的大型深度结构神经网络的超参数的影响因素,指出深度学习训练中存在的困难。选择不同的网络隐层数和不同的非线性激活函数会对学习结果产生不同的影响。Glorot研究了隐层非线性映射关系的选择和网络的深度相互影响的问题,讨论了随机初始化的标准梯度下降算法用于深度结构神经网络学习得到不好的学习性能的原因。Glorot观察不同非线性激活函数对学习结果的影响,得到Logistic S 型激活单元的均值会驱使顶层和隐层进入饱和,因而Logistic S 型激活单元不适合用随机初始化梯度算法学习深度结构神经网络;并据此提出了标准梯度下降
21、算法的一种新的初始化方案来得到更快的收敛速度,为理解深度结构神经网络使用和不使用无监督预训练的性能差异作出了新的贡献。Bengio 从理论上说明深度学习结构的表示能力随着神经网络深度的增加以指数的形式增加,但是这种增加的额外表示能力会引起相应局部极值数量的增加,使得在其中寻找最优值变得困难。4.2.2 模型结构l DBN的结构及其变种采用二值可见单元和隐单元RBM作为结构单元的DBN,在 MNIST 等数据集上表现出很好的性能。近几年,具有连续值单元的RBM,如 mcRBM、mPoT 模型和 spike-and-slab RBM等已经成功应用。Spike-and-slab RBM 中 Spik
22、e 表示以0为中心的离散概率分布,slab表示在连续域上的稠密均匀分布,可以用吉布斯采样对spike-and-slab RBM 进行有效推断,得到优越的学习性能。l 和积网络深度学习最主要的困难是配分函数的学习,如何选择深度结构神经网络的结构使得配分函数更容易计算是一个很困难的问题。Poon 等人提出一种新的深度模型结构,和积网络(SPN) ,引入多层隐单元表示配分函数,使得配分函数更容易计算。SPN 是有根节点的有向无环图,图中的叶节点为变量,中间节点执行和运算与积运算,连接节点的边带有权值,它们在 Caltech-101 和 Olivetti 两个数据集上进行实验证明了SPN的性能优于DB
23、N和最近邻方法。l 卷积神经网络文献4研究了用生成式子抽样单元组成的卷积神经网络,在 MNIST 数字识别任务和 Caltech-101目标分类基准任务上进行实验,显示出非常好的学习性能。Huang 等人提出一种新的卷积学习模型,即局部卷积RBM,利用对象类中的总体结构学习特征,不假定图像具有平稳特征,在实际人脸数据集上进行实验,得到性能很好的实验结果。4.2.3 学习算法l 深度费希尔映射方法Wong 等人提出一种新的特征提取方法,正则化深度费希尔映射(RDFM) 方法,学习从样本空间到特征空间的显式映射,根据 Fisher 准则用深度结构神经网络提高特征的区分度。深度结构神经网络具有深度非
24、局部学习结构,从更少的样本中学习变化很大的数据集中的特征,显示出比核方法更强的特征识别能力,同时RDFM 方法的学习过程由于引入正则化因子,解决了学习能力过强带来的过拟合问题。在各种类型的数据集上进行实验,得到的结果说明了在深度学习微调阶段运用无监督正则化的必要性。l 非线性变换方法该变换方法使得多层感知器(MLP)网络的每个隐神经元的输出具有零输出和平均值上的零斜率,使学习 MLP 变得更容易。将学习整个输入输出映射函数的线性部分和非线性部分尽可能分开,用 Shortcut 权值建立线性映射模型,令 Fisher 信息阵接近对角阵,使得标准梯度接近自然梯度。通过实验证明非线性变换方法的有效性
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 性能 算法 深度 学习 DOC37

链接地址:https://www.31ppt.com/p-1676872.html