您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 工作范文 > 机器学习实验报告完整
基于AutoEncoder原理和L_BFGS优化算法实现手写数字识别目录1神经网络基本概念.....................................................................................................31.1概述.....................................................................................................................31.2神经网络模型....................................................................................................42AutoEncoder原理......................................................................................................52.1反向传播算法....................................................................................................52.2Softmax回归......................................................................................................72.3StackedAutoEncoder..........................................................................................82.4微调过程............................................................................................................92.5SparseAutoEncoder............................................................................................92.6DenoiseAutoEncoder........................................................................................103L_BFGS算法...........................................................................................................113.1基本原理...........................................................................................................113.2算法流程...........................................................................................................163.3算法收敛性分析:..........................................................................................194基于AutoEncoder的手写数字识别........................................................................194.1MNIST数据库.................................................................................................194.2模型训练..........................................................................................................204.3模型测试..........................................................................................................205实验结果及分析:...................................................................................................205.1AutoEncoder......................................................................................................215.2SparseAutoEncoder..........................................................................................215.3DenoiseAutoEncoder........................................................................................225.4实验结果汇总及分析......................................................................................236参考资料...................................................................................................................25AutoEncoder实现手写数字识别1神经网络基本概念1.1概述神经网络是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。神经网络由多个神经元构成,下图就是单个神经元的图1所示:图1神经元模型这个神经元是以123,,xxx以及截距1为输入值的运算单元,其输出为3,()()()TWbiiihxfWxfWxb,其中函数()f被称作“激活函数”。在本次试验中,我们选用sigmoid函数作为激活函数()f1()1exp()fzz(1)图2sigmoid函数图像1.2神经网络模型神经网络就是将许多个单一的神经元联结在一起,这样,一个神经元的输出就可以是另一个神经元的输入。例如,下图就是一个简单的神经网络:图3神经网络示意图我们用()lia第l层第i单元的激活值(输出值)。当1l时,()liiax,也就是第i个输入值。对于给定的参数集合,Wb,神经网络就可以按照函数,()Wbhx来计算输出结果。以上述模型为例,计算步骤如下:(2)(1)(1)(1)(1)11111221331(2)(1)(1)(1)(1)22112222332(2)(1)(1)(1)(1)33113223333(3)(2)(2)(2)(2)(2)(2)(2),11111221331()()()()()WbafWxWxWxbafWxWxWxbafWxWxWxbhxafWaWaWab(2)我们用()liz表示第第l层第i单元输入加权和(包括偏置),这样我们对上式就可以得到一种更加简洁的表示法:(2)(1)(1)(2)(2)(3)(2)(2)(2)(3)(3),()()()WbzWxbafzzWabhxafz(3)上述的计算步骤叫作前向传播。给定第l层的激活值()la后,第1l层的激活值(1)la就可以按照下面步骤计算得到:(1)()()()(1)(1)()llllllzWabafz(4)2AutoEncoder原理2.1反向传播算法自编码(AutoEncoder)神经网络是一种无监督的学习算法,它使用了反向传播算法,让目标值等于输入值,例如输入值为训练样本集合(1)(2)(3){,,}xxx,则我们的输出值()()iiyx。下图是一个自编码神经网络的示例:图4单隐层神经网络自编码神经网络的主要参数是连接权重W和偏置b,我们尝试利用自编码神经网络学习一个,()Wbhxx,也就是说我们尝试逼近一个恒等函数,从而使得输出ˆx接近于输入x。假设我们有一个固定样本集(1)(1)()(){(,),,(,)}mmxyxy,它包含m个样例。对于单个样例(,)xy,其代价函数为:2,1(,;,)()2WbJWbxyhxy(5)这是一个方差代价函数。给定一个包含m个样例的数据集,我们可以定义整体代价函数为:111()()()2111112()2,11111(,)(,;,)()211(())()22llllllnssmiiljiilijnssmlwbjiilijJWbJWbxywmhxywm(6)以上公式中的第一项(,)JWb是一个均方差项。第二项是一个规则化项(也叫权重衰减项),其目的是减小权重的幅度,防止过度拟合。我们的目标是针对参数W和b来求其函数(,)JWb的最小值。为了求解神经网络,我们将每一个参数()lijW和()lib初始化为一个很小的、接近于0的随机数,之后对目标函数求最优解。梯度下降法中每一次迭代都是按照如下公式对参数W和b进行更新:()()()()()()(,)(,)llijijlijlliiliWWJWbWbbJWbb(7)其中是学习速率。更新参数W和b的关键步骤是计算偏导数。而反向传播算法是计算偏导数的一种有效方法。整体代价函数(,)JWb的偏导数为:()()()()()1()()()()11(,)(,;,)1(,)(,;,)miilijlliijijmiilliiiJWbJWbxyWWmWJWbJWbxybmb(8)反向传播算法的思路是:给定一个样例(,)xy,我们首先进行前向传导算法,得到23,,LL的激活值,包括输出层lnL的输出值,()Wbhx。之后,针对第l层的每一个节点i,我们计算出其“残差”()li,该残差表明了该节点对最终输出值得误差产证了多少影响。残差的定义如下:2()()(),()()()'()lillnnniwbiiznihxyyafzz(9)对于1,2,3,,2llllnnn的各个层,第l层的第i个节点的残差计算方法如下:1()()(1)()1()lsllllijijijWfz(10)需要我们计算的偏导数就可以写成下面的形式:()(1)()(1)()(,;,)(,;,)lljilijliliJWbxyaWJWbxyb(11)总的来说,利用向量化的表示,反向传播算法可以表示成以下几个步骤:1.进行前馈传导计算,利用前向传导公式,得到23,,LL直至输出层lnL的激活值。2.对于第ln层(输出层),计算出残差:()()()()()ll
本文标题:机器学习实验报告完整
链接地址:https://www.777doc.com/doc-2325087 .html