ImageVerifierCode 换一换
格式:DOCX , 页数:43 ,大小:600.89KB ,
资源ID:10741267      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10741267.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(深度学习算法实验平台的研究与实现毕业论文.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

深度学习算法实验平台的研究与实现毕业论文.docx

1、深度学习算法实验平台的研究与实现 毕业论文武汉理工大学毕业设计(论文)深度学习算法实验平台的研究与实现学院(系): 自动化学院 专业班级: 自动化专业1104班 姓名: 指导教师: 摘要 深度学习是基于人工神经网络的机器学习,机器学习方法也有监督学习与无监督学习之分。不同的学习框架下建立的学习模型很不同例如,卷积神经网络就是一种监督学习下的机器学习模型,而深度置信网就是一种无监督学习下的机器学习模型。 MATLAB作为一款功能强大的科学计算软件,广泛应用于机器学习、图像绘制等许多方面。MATLAB常常作为研究神经网络的入门平台,利用其方便快捷的MATLAB编程语言,能够更好的实现神经网络的构建

2、。作为另一款常用的深度学习平台,python则以其免费的特性受到亲睐,众多开源的科学计算库都提供了Python的调用接口。用户可以在任何计算机上免费安装Python及其绝大多数扩展库。以MATLAB和Python作为研究平台,实现深度学习算法。比较它们的优缺点,在此基础上完成毕业论文的撰写和完善。关键词:深度学习;MATLAB;Python;机器学习Abstract Depth learning is based on artificial neural network machine study, machine learning methods have supervised learni

3、ng and unsupervised learning points. Learning models at different learning framework established very different. For example, convolution neural network is a supervised learning machine learning models under, and the depth of belief network is a non-supervised machine learning models under study. MA

4、TLAB as a powerful scientific computing software, widely used in machine learning, image rendering, and many other aspects. MATLAB neural network is often used as entry platform, using its convenient MATLAB programming language, can better achieve build neural networks. Another commonly used as a de

5、ep learning platform, python is its features for free by pro-gaze, many open source scientific computing libraries provide Python call interface. Users are free to install Python and the vast majority of extensions on any computer.With MATLAB and Python as a research platform, deep learning algorith

6、ms. Compare their advantages and disadvantages, on the basis of complete and perfect thesis writing.Key Word:Deep learning;MATLAB;Python;unsupervised learning目录第1章 绪论 11.1课题研究意义 11.2深度学习的基本思想 11.3国内外研究现状 2第2章 深度学习模型 32.1 自动编码神经网络 32.2 限制波尔兹曼机(RBM) 62.3 卷积神经网络 72.4 Sparse Coding稀疏编码 82.5 深信度网络 9第3章 B

7、P神经网络及实现平台 113.1 BP神经网络 113.2 matlab平台实现BP算法 133.2.1 数据预处理 133.2.2 使用Matlab实现神经网络 143.3 python平台实现BP算法 183.3.1 举例 193.3.2 验证结果图 203.4 平台比较分析 213.4.1 平台本身优缺点比较 213.2.2 两种编程语言之间的差异 21第4章 总结与展望 234.1 课题总结 234.2 课题展望 23参考文献 25附录 Python实现程序 27致谢 34 第1章 绪论1.1课题研究意义深度学习作为机器学习研究中的一个新的领域,其目的在于建立模拟人脑进行分析学习的神经

8、网络,进而模仿人脑的机制来解释数据。深度学习的概念源于人工神经网络的研究。含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。把学习结构看做一个网络,其核心思路如下:无监督学习用于每一层网络; 每次用无监督学习只训练一层,将其训练结果作为其高一层的输入; 用监督学习去调整所有层。 当前绝多数分类、回归等学习方法均为浅层结构算法,其局限性在于有限样本和计算单元情况下对复杂函数的表示能力有限,针对复杂分类问题其泛化能力受到一定制约。深度学习可通过学习一种深层非线性网络结构,实现复杂函数逼近,表征输入数据分布式表示,并展

9、现了强大的从少数样本集中学习数据集本质特征的能力。多层的好处是能够用相当少的参数就能表示复杂的函数。1.2深度学习的基本思想深度学习的实质是通过构建具有很多隐层的机器学习模型和海量的训练数据来学习更有用的特征,从而最终提升分类或预测的准确性。因此,“深度模型”是手段,“特征学习”是目的。有别于传统的浅层学习,深度学习的不同在于:1)强调了模型结构的深度,通常有5层、6层,甚至10多层的隐层节点;2)明确突出了特征学习的重要性,也就是说,通过逐层特征变换,将样本在原空间的特征表示变换到一个新特征空间,从而使分类或预测更加容易。与人工规则构造特征的方法相比,利用大数据来学习特征,更能够刻画数据的丰

10、富内在信息。 对于深度学习来说,其核心思想就是堆叠多个层,将上一层的输出作为下一层的输入。通过这种方式,实现对输入信息的分级表达。 另外,前面是假设输出严格地等于输入,这个限制太严格,我们可以略微地放松这个限制,例如我们只要使得输入与输出的差别尽可能地小即可,这个放松会导致另外一类不同的深度学习方法。这些就是深度学习的基本思想。1.3国内外研究现状早在 1950 年图灵就提出过隔墙对话的概念,用电脑模拟人脑和人进行对话,人们不清楚到底是和人还是电脑在交谈。这种设想将计算机完全智能化,期望值太高,在以后的几十年里,人工智能的发展远远没有达到人们所预想的效果。绝大多数科学家开始怀疑人工智能的可达到

11、性,相关的研究领域也被指为是伪科学。20 世纪 80 年代,人工神经网络反向传播算法诞生,这种方法无需人工制定规则,而是让机器在大量训练样本中寻找统计规律,相比以前的方法,神经网络在很多方面优势明显。神经网络实际上只含有一个隐含层,是一种浅层学习模型。90 年代后期, 最大熵方法、支持向量机等一些模型在理论和实践方面的优越性,使得人工神经网络领域的研究变得缓慢。到了2006年,深度学习领域宗师级人物Hinton阐述了两个重要思想:第一,增加隐含层的层数能够让网络学习能力增强,迭代出来的特征更贴近物体本身;第二,由于多层神经网络系统训练时间长、训练难度大,但是如果让每一层单独训练,训练的难度和时

12、间都能够得以改善。Hinton的这些思想如今被广泛的应用到学术界和工业界,欧美相继成立了研究院,2010年美国国防部联合斯坦福大学、纽约大学深入研究深度学习,2011 年,微软将深度学习应用到语音识别中,识别率达到了70-80%,2012 年深度学习研究和应用大爆发:世界著名生物制药公司默克公司用深度学习算法预测各类分子中哪些分子能够成为药物,这一方法在实践中远优于其他方法,在生物制药领域掀起轩然大波。当然,当前深度学习的发展还是受到了人脑机制复杂程度的制约,更进一步研究认识人脑神经元传递信息和神经中枢处理信息的原理,将有助于设计者设计出更加完善的算法。深度学习在科技领域引发了一场革命,它的影

13、响不仅仅局限在计算机领域;在最直接的图像、语音处理方面精确度会有很大程度的提升,与此同时以互联网为核心的信息服务产业也将产生根本性的变化,深度学习带来的数据智能化,在搜索引擎将占据至关重要的地位。第2章 深度学习模型2.1 自动编码神经网络自编码神经网络尝试通过学习一个的函数,来试着接近一个恒等函数,这样就能够让输出的x接近于输入x。恒等函数即使不被看好有良好的学习能力,但是当给这样一个网络加入某些限制时,例如对网络中的隐藏神经元的数量进行限制,输入数据中我们就能发现一些有趣的结构。假设有这样一个自编码神经网络,它的输入是一张10*10图像的像素灰度值,这样n=100,其隐藏层中有50个隐藏神

14、经元。注意,输出也是100维的。因为网络中只含有50个隐藏神经元,这就不等不迫使自编码神经网络去学习输入数据的压缩表示,这样的意义在于,它必须从50维的隐藏神经元激活度向量中重构出100维的像素灰度值输入x。假设网络完全随机的输入了一组数据,例如每一个输入都是一个跟其它特征完全无关的独立同分布高斯随机变量,那这样的压缩将很难被我们学习到。但是如果输入一些特定的结构的数据,那这个算法就能够发现输入特征的相关性。 具体过程简单的说明如下:1)给定无标签数据,用非监督学习学习特征: 图2.1 有标签与无标签 对于我们先前接触的神经网络,如图2-1中的第一幅图,我们输入了一个有标签的样本,即(inpu

15、t, target),这样我们根据当前输出和target之间的差去改变前面各层的参数,直到收敛。但是在右边的图中,我们输入了一个无标签的数据。那么这个误差怎么得到呢?图2.2 加入编码器和解码器 如图2-2,我们将input输入一个encoder编码器,就能够获得一个code,这个code也就是输入的一个表示。当加一入个decoder解码器之后,decoder就会输出一个信息,那么如果输出的这个信息和一开始的输入信号input是相似的,我们就能够相信这个code是正确的。这样的话,我们就通过调整encoder和decoder的参数,使得重构误差得以最小,这时候我们就得到了输入input信号的第

16、一个表示,也就是编码code。图2.3 第一步流程图2)通过编码器产生特征,之后训练下一层。逐层训练下去:在之前我们得到了第一层的code,这样我们的重构误差最小让我们相信这个code既是原输入信号的最好表达了,更进一步的说,它和原信号是完全相同的。这样的话第二层和第一层的训练方式就没有任何差异,第一层输出的code此时就会变成第二层的输入信号,再进行最小化重构误差,就会得到第二层的参数,并且得到第二层输入的code,其他层也就可以用相同的方法进行。图2.4 逐层流程图3)有监督微调: 经过上面的方法,我们将构建一个很多层的网络。至于需要多少层能够得到我们所希望的,则需要慢慢验证。每一层都会得

17、到原始输入的不同的表达。这些表达,越是抽象则越好,如同人的视觉系统一样。 然而到这里,AutoEncoder依然还不能够用来分类数据,因为它还没有学习如何去连结一个输入和一个类。仅仅是能够去重构或者复现它的输入而已。换句话说,它仅仅是获得了一个可以良好代表输入的特征,这个特征可以最大程度上代表原输入信号。这样,为了实现分类,我们必须在AutoEncoder的最顶的编码层添加一个分类器,然后通过标准的多层神经网络的监督训练方法去训练。图2.5 调整分类器流程图另一种:通过有标签样本,微调整个系统:图2.6 微调系统流程图监督训练一旦完成,构建的网络就能够用来分类了。神经网络的最顶层被当做一个线性

18、分类器,我们也可以用更好的分类器来替代。在研究中可以发现,如果在原有的特征中加入这些自动学习得到的特征可以大大提高精确度,甚至在分类问题中比目前最好的分类算法效果还要好!2.2 限制波尔兹曼机(RBM) 假设有这样一个二部图,它的每一层的节点之间没有链接,一层是可视层,即输入数据层(v),一层是隐藏层(h),并且所有的节点都是随机二值变量节点(只能取0或者1值),同时假设全概率分布p(v,h)满足Boltzmann 分布,这就是所谓的限制波尔茨曼机图2.7 波尔茨曼机模型那么它为什么能够被当做是Deep Learning方法呢?首先,这个模型因为是二部图,所以在已知v的情况下,所有的隐藏节点之

19、间是条件独立的(因为节点之间不存在连接),即p(h|v)=p(|v)p(|v)。在已知隐藏层h的情况下,通过调整参数,我们就能够使得从隐藏层得到的可视层v1与原来的可视层v一样,那么得到的隐藏层就是可视层另外一种表达,因此隐藏层可以作为可视层输入数据的特征,所以它就是一种Deep Learning方法。限制玻尔兹曼机的参数包含三部分,第一部分是可视层和隐含层之间的权重矩阵,第二部分是可视层节点的偏移量(bias)b=(),第三部分则是隐含层节点的偏移量(bias)c=()。这些参数决定了限制玻尔兹曼机将一个m维的输入数据编码为怎样的 n维的输出数据。限制玻尔兹曼机的训练过程是这样的。首先假设可

20、视层和隐含层的每个节点取值在0,1之中,即, ,。输入数据为x=(),通过 RBM 网络可以得到编码后的输出数据y=()。这个 n 维的输出数据是按以下的规则生成的:对于给定的输入x=(),隐含层第 i 个节点取值为 1 的概率为 (2.2.1) (2.2.2) (2.2.3)2.3 卷积神经网络 卷积神经网络作为人工神经网络的一种,是当今世界语音分析和图像识别领域的研究热点,它的权值共享网络结构使类似于生物神经网络。该优点在网络的输入是大型图像时表现的更为明显,使图像可以直接作为网络的输入,避免了传统识别算法中复杂的特征提取和数据重建过程。卷积网络是为识别二维形状而特殊设计的一个多层感知器,

21、这种网络结构对平移、比例缩放、倾斜或者其他形式的变形具有高度不变性。 CNNs是受早期的延时神经网络(TDNN)的影响。延时神经网络通过在时间维度上共享权值降低学习复杂度,适用于语音和时间序列信号的处理。 CNNs是第一个真正成功训练多层网络结构的学习算法。它利用空间关系减少需要学习的参数数目以提高一般前向BP算法的训练性能。CNNs作为一个深度学习架构被提出是为了最小化数据的预处理要求。在CNN中,图像的一小部分(局部感受区域)作为层级结构的最低层的输入,信息再依次传输到不同的层,每层通过一个数字滤波器去获得观测数据的最显著的特征。这个方法能够获取对平移、缩放和旋转不变的观测数据的显著特征,

22、因为图像的局部感受区域允许神经元或者处理单元可以访问到最基础的特征,例如定向边缘或者角点。图2.8 卷积神经网络如图2-8,输入图像通过和三个可训练的滤波器和可加偏置进行卷积,,一,卷积后在C1层产生三个特征映射图,然后特征映射图中每组的四个像素再进行求和,加权值,加偏置,通过一个Sigmoid函数得到三个S2层的特征映射图。这些映射图再进过滤波得到C3层。这个层级结构再和S2一样产生S4。最终,这些像素值被光栅化,并被连接成一个向量输入到传统的神经网络,得到输出。2.4 Sparse Coding稀疏编码稀疏编码算法是一种无监督学习方法,它用来寻找一组“超完备”基向量来更高效地表示样本数据。

23、虽然形如PCA能使我们方便地找到一组“完备”基向量,但是这里我们想要做的是找到一组“超完备”基向量来表示输入向量(也就是说,基向量的个数比输入向量的维数要大)。超完备基的好处是它们能更有效地找出隐含在输入数据内部的结构与模式。然而,对于超完备基来说,系数ai不再由输入向量唯一确定。因此,在稀疏编码算法中,我们另加了一个评判标准“稀疏性”来解决因超完备而导致的退化(degeneracy)问题。图2.9 系数编码图像识别稀疏性可以被简单地解释如下。如果当神经元的输出接近于1的时候我们认为它被激活,而输出接近于0的时候认为它被抑制,那么使得神经元大部分的时间都是被抑制的限制则被称作稀疏性限制。这里我

24、们假设的神经元的激活函数是sigmoid函数。如果你使用tanh作为激活函数的话,当神经元输出为-1的时候,我们认为神经元是被抑制的。注意到表示隐藏神经元j的激活度,但是这一表示方法中并未明确指出哪一个输入x带来了这一激活度。所以我们将使用来表示在给定输入为x情况下,自编码神经网络隐藏神经元j的激活度。 进一步,让 (2.4.1)表示隐藏神经元的平均活跃度(在训练集上取平均)。我们可以近似的加入一条限制 (2.4.2) 是稀疏性参数,通常是一个接近于0的较小的值(比如= 0.05 )。换句话说,我们想要让隐藏神经元 j 的平均活跃度接近0.05。为了满足这一条件,隐藏神经元的活跃度必须接近于0

25、。稀疏编码是k-means算法的变体,其训练过程也差不多(EM算法的思想:如果要优化的目标函数包含两个变量,如L(W, B),那么我们可以先固定W,调整B使得L最小,然后再固定B,调整W使L最小,这样迭代交替,不断将L推向最小值。2.5 深信度网络 DBNs(深信度网络)是一个概率生成模型。与传统的判别模型的神经网络相比,生成模型是建立一个观察数据和标签之间的联合分布,对P(Observation|Label)和 P(Label|Observation)都做了评估,而判别模型仅仅评估了后者,也就是P(Label|Observation)。对深度神经网络应用传统的BP算法的时候,DBNs遇到了以

26、下问题:(1)需要为训练提供一个有标签的样本集;(2)学习过程较慢;(3)不适当的参数选择会导致学习收敛于局部最优解多个限制玻尔兹曼机层组成一个DBNs,一个典型的神经网络类型如图2-10所示。这个些网络被限制为一个可视层和一个隐层,层与层之间有连接,但是每个层内部之间却没有连接。隐层单元被训练去捕捉在可视层表现出来的高阶数据的相关性。图2.10 深信度神经网络DBNs 采用的训练方式也和传统神经网络有很大差别:BP 算法对 3 层网络而言,它的优点在于训练效率很高,但是相较于一个多隐含层的网络,首先是它的训练时间过长;其次因为它的权重调整过程是从输出层到输入层的反向传播,当残差传播到第一层时

27、,就会出现了很大的误差,因此权重调整也不够精确,算法效率不高,训练方法不理想。正是因为传统神经网络训练模型存在诸多缺点,深度学习使用全新的训练方法,即在非监督数据上建立多层神经网络,训练时分两步走,第一步是分层次训练网络,每次训练一个层次;第二步是参数调优,即有监督微调的过程。DBNs 的训练过程采用逐层训练的方法,每次只训练一层 RBM,这个过程和 RBM 的训练是完全一样的,参数也是单独调整;训练完一层后,将该层的训练结果作为下一层 RBM 的输入;如此直至每一层 RBM 都训练完成,这个过程也称之为预训练。RBM 训练完成后,再根据样本的标签值,采用 BP 算法向后微调。具体可以分为预训

28、练以及微调。DBNs 算法无论是在时间还是算法效率上都有很好的效果,尤其是在大数据方面;它可以看作是深度学习的里程碑,目前被广泛应用于包括图像,语音,文档等诸多方面,越来越多的人开始了对其理论和模型的研究。第3章 BP神经网络及实现平台3.1 BP神经网络 BP(Back Propagation)网络是1986年由Rinehart和McClelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,到目前为止是世界上使用最为广泛的神经网络。自编码神经网络也是它的一种形式,它以输入-输出模式映射的关系进行学习和存储,并不需事前给出描述这种映射关系的数学方程式。梯度下降法是它进行运

29、算所需要的数学方法,它通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结 构包括输入层(input)、隐层(hide layer)和输出层(output layer)。 BP算法的数学计算由正向传播的前向计算和误差信号的反向传播两个过程构成。正向传播时,传播方向为输入层至隐层再到输出层,上一层神经元的状态只会对下一层神经元产生影响。当输出层得不到所期望的输出时,就会出现误差信号的反向传播流程。通过这两个过程的交替进行,在权向量空间执行误差函数梯度下降策略,动态迭代搜索一组权向量,使网络误差函数达到最小值,从而完成信息提取和记忆过程。 假定用, , , 表示第

30、k个神经元对应的参数,那么BP神经网络前向编码过程就是按照从前向后的顺序执行每一层编码步骤: (3.1.1) (3.1.2) (3.1.3) (3.1.4)其中, 是最深层隐藏单元的激活值,它包含了我们所需要了解的信息,也是对输入值更高阶的表示。图4.1 BP神经网络通过观察图4-1可知,BP神经网络是一个三层网络结构:输入层(input layer):顾名思义,输入层各神经元负责接收来自外界的各种输入信息,并将或得到的有用信息传递给中间层各神经元;隐藏层(Hidden Layer):中间层是内部信息处理层,负责信息变换,根据信息变化能力的需求,中间层可以设计为单隐层或者多隐层结构;最后一个隐

31、层传递到输出层各神经元的信息,经进一步处理后,完成一次学习的正向传播处理过程;输出层(Output Layer):输出层向外界输出信息处理结果;当实际输出与期望输出不符时,此时整个网络就会进入误差的反向传播阶段。误差通过输出层,按误差梯度下降的方 式修正各层权值,向隐层、输入层逐层反传。周而复始的进行正向传播和误差反向传播过程,是各层权值不断调整的过程,也是神经网络学习训练的过程,此过程一直进行到网络输出的误差减少到可以接受的程度,或者预先设定的学习次数为止。BP神经网络向量形式的反向传播算法分为下面几个步骤:(1)以前向传播的方式,从第二层开始直至输出层,采用以下关系式迭代计算各层神经元的激活值 (3.1.5) (3.1.6)(2)对于输出层(第层),计算= (3.1.7)(3)对于第L层,反向计算残差 (3.1.8)(4)计算偏导

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1