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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

机器学习实验报告完整.docx

1、基于AutoEncoder原理和L_BFGS优化算法实现手写数字识别目录1 神经网络基本概念31.1概述31.2 神经网络模型42 AutoEncoder原理52.1 反向传播算法52.2 Softmax回归72.3 Stacked AutoEncoder82.4 微调过程92.5 Sparse AutoEncoder92.6 Denoise AutoEncoder103 L_BFGS算法113.1基本原理113.2算法流程153.3算法收敛性分析:184 基于AutoEncoder的手写数字识别184.1 MNIST数据库184.2 模型训练194.3 模型测试195 实验结果及分析:195

2、.1 AutoEncoder205.2 Sparse AutoEncoder205.3 Denoise AutoEncoder215.4 实验结果汇总及分析226 参考资料24AutoEncoder实现手写数字识别1 神经网络基本概念1.1概述神经网络是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。神经网络由多个神经元构成,下图就是单个神经元的图1所示:图1 神经元模型这个神经元是以以及截距为输入值的运算单元,其输出为,其中函数被称作“激活函数”。在本次试验中,我们选用sigmoi

3、d函数作为激活函数(1)图2 sigmoid函数图像1.2 神经网络模型神经网络就是将许多个单一的神经元联结在一起,这样,一个神经元的输出就可以是另一个神经元的输入。例如,下图就是一个简单的神经网络:图3 神经网络示意图我们用第层第单元的激活值(输出值)。当时,也就是第个输入值。对于给定的参数集合,神经网络就可以按照函数来计算输出结果。以上述模型为例,计算步骤如下:(2)我们用表示第第层第单元输入加权和(包括偏置),这样我们对上式就可以得到一种更加简洁的表示法:(3)上述的计算步骤叫作前向传播。给定第层的激活值后,第层的激活值就可以按照下面步骤计算得到:(4)2 AutoEncoder原理2.

4、1 反向传播算法自编码(AutoEncoder)神经网络是一种无监督的学习算法,它使用了反向传播算法,让目标值等于输入值,例如输入值为训练样本集合,则我们的输出值。下图是一个自编码神经网络的示例:图4 单隐层神经网络自编码神经网络的主要参数是连接权重和偏置,我们尝试利用自编码神经网络学习一个,也就是说我们尝试逼近一个恒等函数,从而使得输出接近于输入。假设我们有一个固定样本集,它包含个样例。对于单个样例,其代价函数为:(5)这是一个方差代价函数。给定一个包含个样例的数据集,我们可以定义整体代价函数为:(6)以上公式中的第一项是一个均方差项。第二项是一个规则化项(也叫权重衰减项),其目的是减小权重

5、的幅度,防止过度拟合。我们的目标是针对参数和来求其函数的最小值。为了求解神经网络,我们将每一个参数和初始化为一个很小的、接近于0的随机数,之后对目标函数求最优解。梯度下降法中每一次迭代都是按照如下公式对参数和进行更新:(7)其中是学习速率。更新参数和的关键步骤是计算偏导数。而反向传播算法是计算偏导数的一种有效方法。整体代价函数的偏导数为:(8)反向传播算法的思路是:给定一个样例,我们首先进行前向传导算法,得到的激活值,包括输出层的输出值。之后,针对第层的每一个节点,我们计算出其“残差”,该残差表明了该节点对最终输出值得误差产证了多少影响。残差的定义如下:(9)对于的各个层,第层的第个节点的残差

6、计算方法如下:(10)需要我们计算的偏导数就可以写成下面的形式:(11)总的来说,利用向量化的表示,反向传播算法可以表示成以下几个步骤:1. 进行前馈传导计算,利用前向传导公式,得到直至输出层的激活值。2. 对于第层(输出层),计算出残差:(12)3. 对于的各个层(13)4. 计算最终需要的偏导数值:(14)5. 根据公式(7)更新权重参数:(15)(16)2.2 Softmax回归Softmax回归模型是logistic回归模型在多分类问题上的推广。在logistic回归中,训练集由个已标记的样本构成:,其中输入特征。由于logistic回归是针对二分类问题的,因此类标记。假设函数如下:(

7、17)我们的目的就是训练模型参数,使其能够最小化代价函数:(18)而在Softmax回归中,类标签可以取个不同的值。因此对于训练集,我们有,所以假设函数形式如下:(19)其中是模型参数。Softmax回归算法的代价函数如下:(20)其中是示性函数。为了限制Softmax回归在描述对象时候出现过拟合现象,我们加入了权重衰减项来修改代价函数,则整个代价函数变为:(21)经过这个权重衰减后,代价函数就变成了严格的凸函数,这样就可以保证得到唯一解。此时的Hessian矩阵变为可逆矩阵,并且因为是凸函数,L-BFGS等算法可以保证收敛到全局最优解。2.3 Stacked AutoEncoder栈式自编码

8、神经网络(Stacked AutoEncoder)是一个由多层自编码神经网络组成的神经网络,其前一层的自编码神经网络的输出作为厚一层自编码神经网络的输入。对于一个层的栈式自编码神经网络,假定用表示第个自编码神经网络的参数,那么该栈式自编码神经网络的编码过程就是,按照从前向后的顺序徐行每一层自编码神经网络的编码步骤:(22)一种比较好的获取栈式自编码神经网络参数的方法是采用逐层贪婪训练法进行训练。即利用原始输入来训练网络的第一层,得到其参数;然后网络的第一层将原始输入转化为由隐层单元激活值组成的向量A,接着把A作为第二层的输入,继续训练得到第二层的参数,最后对后面的各层采用同样的策略训练参数。2

9、.4 微调过程微调(fine-tuning)是深度学习中的常用策略,可以大幅提神一个展示自编码神经网络的性能表现。从更高的视角来讲,微调将栈式自编码神经网络的所有层视为一个模型,网络中所有的权重只都可以被优化。在栈式的自编码神经网络中,微调的实现主要分为以下几个步骤:1. 对于输出层(层),我们使用的是Softmax回归分类器,该层的残差为:(23)其中,其中为输入数据对应的类别标签,为条件概率向量。2. 对于的各个层,利用公式(13),(14),(15),(16)计算残差,更新参数。2.5 Sparse AutoEncoder稀疏自编码神经网络(Sparse AutoEncoder)的稀疏性

10、可以被解释如下。如果当神经元的输出接近于1的时候我们认为它是被激活的,而输出接近于0的时候认为它是被抑制的,那么是的神经元大部分的时候都是被抑制的限制被称作稀疏性限制。令表示隐层神经元的平均活跃度。我们可以加入一条限制,其中是一个接近于0的稀疏性参数,也就是说该层的所有隐节点的平均活跃度是,接近于0的。为了实现这一限制,我们在我们的优化目标函数中加入一个额外的惩罚因子,而这一惩罚因子将惩罚那些与相差较大的的情况,从而使得隐层神经元的平均活跃度保持在较小的范围之内。在本次实验中,我们选择相对熵来做我们惩罚函数,惩罚因子可以表示为:(24)这一惩罚因子具有如下的性质,当时,=0,并且随着和 。KL

11、惩罚因子的函数图5所示:图5 KL惩罚因子加入惩罚因子后,总体的代价函数就可以表示为:(25)2.6 Denoise AutoEncoder当采用无监督的方法分层预训练深度网络的权值时,为了学习到较鲁棒的特征,可以在网络的可视层(即数据的输入层)引入随机噪声,这种方法称为Denoise AutoEncoder(简称dAE模型)。Denoise AutoEncoder的模型如下:图6 denoise Autoencoder 原理由上图可知,样本按照分布加入随机噪声后变为,在本实验中,我们加入的噪音是对原始数据随机部分清0。dAE可以直观的解释为:1.dAE有点类似人体的感官系统,比如人眼看物体时

12、,如果物体某一小部分被遮住了,人依然能够将其识别出来,2.多模态信息输入人体时(比如声音,图像等),少了其中某些模态的信息有时影响也不大。3.普通的autoencoder的本质是学习一个相等函数,即输入和重构后的输出相等,这种相等函数的表示有个缺点就是当测试样本和训练样本不符合同一分布,即相差较大时,效果不好,明显,dAE在这方面的处理有所进步。3 L_BFGS算法3.1基本原理机器学习算法中经常碰到非线性优化问题,如 Sparse Filtering 算法,其主要工作在于求解一个非线性极小化问题。在具体实现中,大多调用的是成熟的软件包做支撑,其中最常用的一个算法是 L-BFGS。L_BFGS

13、算法是拟牛顿算法中广泛使用的一种优化算法。牛顿算法具有标准形式:。拟牛顿法是在牛顿法的基础上发展来的。牛顿法的基本思想是在现有极小值点估计值的附近对目标函数进行二阶泰勒展开,进而找到极小点的下一个估计值。因而,牛顿法具有二次收敛性;然而,牛顿法要求海森矩阵为正定阵,同时对海森矩阵的计算也意味着很大的计算代价,包括对海森矩阵求逆的过程。随后,拟牛顿算法应运而生,拟牛顿法属于梯度法的一种,具有下面形式:,其中是正定矩阵。该方法在迭代过程中通过对迭代方向的调整,使其接近牛顿下降方向。它的特点是:收敛速度快,避免牛顿法的二次微分计算。相对于共轭梯度法,它的不足在于,在计算迭代方向的矩阵向量乘法中,需要

14、存储矩阵。并被证明在解决有约束、无约束以及大规模优化问题上比牛顿法更有效。拟牛顿算法的基本思想是不通过求偏导而直接构造出可近似海森矩阵(或海森矩阵的逆矩阵)的对称正定矩阵,在“拟牛顿条件”下优化目标函数。不同的拟牛顿算法则对应不同的构造海森矩阵或其逆矩阵的方式。拟牛顿条件:假定在第k次迭代后,使用二次模型对目标函数在处进行近似,为求导操作: (26)这里表示求导,和分别对应和。为n*n对称正定矩阵,并且在每次迭代中会进行更新。对上式求极值点可得: (27)那么则视为下一步迭代的搜索方向,在该方向上进行一维线搜索得到步长之后,将会确定下一步迭代的取值: (28)紧接着,使用相似的方法,在处对该目标函数使用二次模型进行近似,可以得到: (29)接下来将建立点处和点处的关系,即上式在处和处的梯度值应该和目标函数一致。因此,可以得到以下的关系: (30)整理可得: (31)令, 将得到以下关系式: (32)这就是割线方程,描述了目标函数自变量偏移量和梯度变化量之间的关系,也

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

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