机器学习实验报告_第1页
机器学习实验报告_第2页
机器学习实验报告_第3页
机器学习实验报告_第4页
机器学习实验报告_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

基于AutoEncoderL_BFGS优化算法实现手写数字识别名目\l“_TOC_250022“神经网络根本概念 3\l“_TOC_250021“概述 3\l“_TOC_250020“神经网络模型 4\l“_TOC_250019“AutoEncoder原理 5\l“_TOC_250018“反向传播算法 5\l“_TOC_250017“Softmax回归 7\l“_TOC_250016“StackedAutoEncoder 8\l“_TOC_250015“微调过程 9\l“_TOC_250014“SparseAutoEncoder 9\l“_TOC_250013“DenoiseAutoEncoder 10\l“_TOC_250012“L_BFGS算法 11\l“_TOC_250011“根本原理 11\l“_TOC_250010“算法流程 16\l“_TOC_250009“算法收敛性分析: 19\l“_TOC_250008“基于AutoEncoder的手写数字识别 19\l“_TOC_250007“MNIST数据库 19\l“_TOC_250006“模型训练 20\l“_TOC_250005“模型测试 20\l“_TOC_250004“试验结果及分析: 20\l“_TOC_250003“AutoEncoder 21\l“_TOC_250002“SparseAutoEncoder 21\l“_TOC_250001“DenoiseAutoEncoder 22\l“_TOC_250000“试验结果汇总及分析 23参考资料 25AutoEncoder神经网络根本概念概述接的关系,从而达处处理信息的目的。神经网络由多个神经元构成,以下图就是单个神经元的图接的关系,从而达处处理信息的目的。神经网络由多个神经元构成,以下图就是单个神经元的图1所示:1神经元模型这个神经元是以x这个神经元是以xxx以及截距1为输入值的运算单元,其输出为1 2 3h (x)f(WTxf( 3Wxbf(W,biiif()f(z)11exp(z)(1)2sigmoid函数图像神经网络模型就可以是另一个神经元的输入。例如,以下图就是一个简洁的神经网络:3神经网络示意图a(l)第l层第i单元的激活值〔输出值。当l1a(l)x

,也就是i i i第i个输入值。对于给定的参数集合W,b,神经网络就可以依据函数hW,b

(x)来计算输出结果。以上述模型为例,计算步骤如下:aa(2)1a(2)2a(2)3hW,bf(W(1)xW(1)xW(1)xb(1))11 1 12 2 13 3 1f(W(1)xW(1)xW(1)xb(1))21 1 22 2 23 3 2f(W(1)xW(1)xW(1)xb(1))(2)31 1 32 2 33 3 3(x)a(3)f(W(2)a(2)W(2)a(2)W(2)a(2)b(2))1 11 1 12 2 13 3 1z(l)l层第i单元输入加权和〔包括偏置i就可以得到一种更加简洁的表示法:aa(2)z(2)W(1)xb(1)f(z(2))z(3)W(2)a(2)b(2)h (x)a(3)f(z(3))W,b(3)上述的计算步骤叫作前向传播。给定第l层的激活值a(l)后,第l1层的激活值a(l1)就可以依据下面步骤计算得到:zz(l1)W(l)a(l)b(l)a(l1)f(z(l1))(4)AutoEncoder原理反向传播算法},自编码〔AutoEncoder〕神经网络是一种无监视的学习算法,它使用了反向{x(1),x(2)x},y(i)x(i)。以下图是一个自编码神经网络的例如:4单隐层神经网络自编码神经网络的主要参数是连接权重W和偏置b经网络学习一个hW,b

(x)x,也就是说我们尝试靠近一个恒等函数,从而使得输出接近于输入x。假设我们有一个固定样本集{(x(1),y(1)), ,(x(m),y(m))},它包含m个样例。对于单个样例(xy),其代价函数为:JJ(W,b;x,y)1h2W,b(x)y2(5)m个样例的数据集,我们可以定义整体代价函数为:JJW,b)1mm(i) (i),y) 1mm(1h2w,b(x)y ) 222nl l l11ss(w )(l)2jii1l1i1j1(6)nl l l11s s(w(l)2)jii1l1i1j1J(W,b是一个均方差项。其次项是一个规章化项〔也叫权重衰减项,其目的是减小权重的幅度,防止过度拟合。W和bJ(W,b的最小值。为了求解神经网络,我们将每一个参数W(l)和b(l)0的随机数,ij i之后对目标函数求最优解。W(l)W(l)W(l)ijW(l)ijJ(W,b)ij(7)b b(l)(l)iibJ(W,b)(l)i其中W和bJ(W,b的偏导数为:1mJ(W,b)mJ(W,b;x(i) (i),y) W (l)(l)W(l)ijijiji1(8)bW,b)1mJ(W,b;x(i) (i),y)(l)mb(l)ii1i(,y)L2

L, 的激活值,包括输出层L

的输出值hW,b

。之后,针对第l层的每i(l),该残差说明白该节点对最终输出值得i误差产证了多少影响。残差的定义如下:(n)l h (x)y (ya2(n))f”(z)(9)iz(n)w,biii(n)lzli对于lnl

1,nl

2,nl

2l层的第i个节点的残差计算方法如下:()lsl1W()l (l1)f(z(l))(10)iji jij1需要我们计算的偏导数就可以写成下面的形式:W(l)J(W,b;x,y)a(l)(l1)j iij(11)(l)J(W,b;x,y)(l1)ii总的来说,利用向量化的表示,反向传播算法可以表示成以下几个步骤:L2

3

直至输出层L 的nl激活值。对于第nl

层〔输出层,计算出残差:(n)l(ya(n)l)f(z(n)l)(12)对于ln(l)(W(l))T(l1)f(z(l))(13)

1,nl

2,nl

3, 2的各个层 J J(W,b;x,y)(l1)(a(l))T J(W,b;x,y)(l1)b(l)W(l)(14)依据公式〔7〕更权重参数:WW(l)W(l)1mW(l)W(l)b(l)b(l)1b(l)(16)mW(l)W(l)J(W,b;x,y)W(l)b(l)b(l) J(W,b;x,y)b(l)(15)Softmax回归logistic回 归中,训练集由m个已标记的样本构成:

(x(1),y(1)), x(my(m)) ,其中输入特x(i)n1logisticy(i)0,1。假设函数如下:hh(x)11exp(Tx)(17)我们的目的就是训练模型参数,使其能够最小化代价函数:JJ)1my(i)logh(x(i))(y(i))log(1h(x(i))) (18)mi1而在Softmax回归中,类标签yk个不同的值。因此对于训练集(x(1),y(1)),

y(i)1,2,

k,所以假设函数h

(x形式如下:p(y(i)1|x(i);)h(x(i))p(y(i)2|x(i);)1Tx(i)1(19)p(yk|x ;)KeT(i)jxexT(i)(i)(i)K 其中,,1 2

n1是模型参数。m1 mk1y(i)j logeTjx(i)i1j1k(20)eT(i)lxl1,k其中是示性函数。减项k

2来修改代价函数,则整个代价函数变为:2 i1

j0 ij1mm K1{y(i)j}logeTjx(i)i1j1KKn2ij(21)eTlx(i)2l1i1j1经过这个权重衰减后(0)HessianJ(是凸函数,FGS等算法可以保证收敛到全局最优解。StackedAutoEncoder是一个由多层自编码神经网络nW(k,1),W(k,2)b(k,1)b(k,2)表a(l)f(z(l))z(l1)a(l)f(z(l))z(l1)W(l,1)a(l)b(l,1)(22)一种比较好的猎取栈式自编码神经网络参数的方法是承受逐层贪欲训练法W(1,1),W(1,2)b(1,1)b(1,2)成的向量A,接着把A作为其次层的输入,连续训练得到其次层的参数W(2,1),W(2,2)b(2,1)b(2,2),最终对后面的各层承受同样的策略训练参数。微调过程微调〔fine-tuning〕是深度学习中的常用策略,可以大幅提神一个展现自编层视为一个模型,网络中全部的权重只都可以被优化。在栈式的自编码神经网络中,微调的实现主要分为以下几个步骤:〔n((n)lJ f(z(n)l)(23)anl

Softmax其中JT(IP)IP为条件概率向量。lnl

1,nl

2,nl

,2的各个层,利用公式〔13〔14〔15,〔16〕计算残差,更参数。SparseAutoEncoderj稀疏自编码神经网络〔SparseAutoEncoder〕的稀疏性可以被解释如下。假设0的时jmmj

1a(2)(x(i))j的平均活泼度。我们可以参加j

0节点的平均活泼度是0相差较大的的状况,从而使得隐层神经元的平均活泼度保持在较小的范围之内。在本次j试验中,我们选择相对熵来做我们惩罚函数,惩罚因子可以表示为:s2j1KL( ˆ)s2log()log1jj11(24)jj这一惩罚因子具有如下的性质,当j。KL5所示:j

时,KL(

=0,并且随着和j5KL惩罚因子参加惩罚因子后,总体的代价函数就可以表示为:JJW,b)JW,b)2KL()j(25)sparseDenoiseAutoEncoder〔即数据的输入层Denoise的模型如下:6denoiseAutoencoder原理由上图可知,样本xqD分布参加随机噪声后变为x,在本试验中,我有点2.多模态信息输入人体时〔比方声音,图像等中某些模态的信息有时影响也不大。3.autoencoder的本质是学习一个相面的处理有所进步。L_BFGS算法根本原理SparseFiltering算法,其主件包做支撑,其中最常用的一个算法是L-BFGS。L_BFGSxk1xk(2f(xk))1f(xk)。拟牛顿法是在牛顿法的根底上进展来的。牛顿法的根本思想是在现有微小值点估量值的四周对目标函数进展二阶泰勒展包括对海森矩阵求逆的过程。随后,拟牛顿算法应运而生,拟牛顿法属于梯度法的一种,具有下面形式:xk1xkkdkdkDkf(xk)Dk是正定矩阵。该方法在迭代过程中通dk的调整,使其接近牛顿下降方向。它的特点是:收敛速度快,向dk的矩阵向量乘法中,需要存储矩阵Dk。并被证明在解决有约束、无约束以〔或海森矩阵的逆矩阵〕的对称正定矩阵,在“拟牛矩阵的方式。拟牛顿条件:kfxk

处进展近似,为求导操作:1m(p)f fTpk k k 2

pTBk

p (26)这里表示求导,mk

(0)和mk

(0)fk

和fk

。Bn*n对称正定矩k对上式求极值点可得:p Bk k

1fk

(27)pk

则视为下一步迭代的搜寻方向,在该方向上进展一维线搜寻得到步长 之后,将会确定下一步迭代的x 取值:k k1x x p (28)k1 k k k紧接着,使用相像的方法,在x 处对该目标函数使用二次模型进展近似,可以k1得到:m

(p)f

Tp1k1 2

pTB

p (29)接下来将建立x点处和x 点处的关系,即上式在x处和x 处的梯度值应k k1 k k1该和目标函数f全都。因此,可以得到以下的关系:m (p)f

B p f

(30)k1 k k

k1

k1 k k k整理可得:f f B p (31)k1 k k1 k k令f f y, p s x xk1 k k k k k k1 k将得到以下关系式:y B sk k1k

(32)这就是割线方程,描述了目标函数自变量偏移量和梯度变化量之间的关系,Bk1

是对目标函数相应的海森矩阵的近似,假定对海森矩阵的逆矩阵进展近似,则可以得到另一等价的割线方程:s D yk k1k

(33)BFGSBk1

是对称正定矩阵。接下Bk1

的构造方法。BFGS算法:Bk1

的更方式:B =B+B;B

=I (34)k1 k k 0Bk

矩阵的对称正定特性,对Bk

按以下方式进展定义:B=uuTvvT (35)k将上式和割线方程联立可得:y=Bs+uuTsk kk

vvTsk

(36)Bs+(uTskk k

)u(vTs)vk括号中表示数值结果,并非向量结果。在这里,假定括号中数值分别是1和-1;之后,确定和的数值,可得:uTsk

1

1uTskvTs 1k

1vTsBs+uuTskk k

kvvTsk

(37)Bs+uvkkykBskk

v,uyk

,并进一步得到和的数值: 1yTsk k 1sTBs

(38)k kkBk

的更方程:yyT BssTBB =B+ k k kkk

k (39)

k yTsk

sTBsk kk公式将得到该方程的另一表示:B 1(Is

yT)B

1(I

ysT)

ssTk1 1

kk k

k kk

kkkk yTsk

(40)B 1Dk1D

k1(Iskk

yT)Dk

(Ik

ysT)kk

ssTkkBFGS算法的海森矩阵〔或其逆矩阵〕的估量值的更方程。L_BFGS算法:L-BFGSBFGS算法的根底上得到的,由于原始的BFGS算法需要n*nnL_BFGS算法应运而生。L_BFGSBFGSn*nm个最近nyk

s,这样存储量就由O(n2降低至O(m*n)。与此同时,算法性kBFGS算法〔m值,依问题而定。BFGSDk1

的更方程,可以依据公式开放得到D 与Dk1

的关系,如下:D (VTV

V)k1

k

0 0 0 (VTV T)

ssT(V...V V)k k1

1 000 1 (VTV

...V V)k...

2 111

2 (VTV T)

s s (V V)

(41)k k1

k2k2k2 (VT)

s s T(V)k k1ssT

k1k1 kkkk 1k yTs

,VIk

ysTkkk kL_BFGSk<=m-1Dk1

的公式成k>m-1〔k>=m〕mymksk

Dk1

的公式变为:D (VTV

T)D(V

...V V)k1

k

0 km1 k(VTV

T)

s s

...V V)k k1

km2

km1km1 km2

k(VTV

T)

s s

...V V)k...

km3

km2

km2

km2

km3

(42)(VTV T)

s s V)k k1

k2k2k2 (VT)

s s T(V)k k1ssT

k1k1 kkkkxmin{m1,k},则有:D (VTV

T)D(V

...V V)k1

k

0 kx k(VTV

T)

s s

...V V)k k1

kx1

kxkx kx1

k(VTV

T)

s s

...V V)k...

kx2

kx1

kx1

kx1

kx2

k

(43)(VTV T)

s s V)k k1

k2k2k2 k(VT)

s s T(V)k k1ssT

k1k1 kkkkDk

xk

处建立相应的二次模型,依据极值点条件:p Dfk k k

(44)pxk k

StephenJ.Wright法:

Optimization》书中的介绍,这里给出一个计算D fk1 k

的高效的算Algorithm L_BFGS twolooprecursionqfkfor ik1,...kmsTqi iiqqyi iendforrDq0for ikm,...k1yTri irrs()i iendforreturn 算法流程以上给出了L_BFGS算法的原理和算法流程,这局部将给出在具体优化过L_BFGS算法和线搜寻方向协作起来使用,以到达不错的效果,其收敛性也能得到肯定的保证。L-BFGS可以被用来求解大型的无约束优化问题〔MachineLearning中的很多问题都可以用其求解,如LogisticRegress等。这里首先给出一种广泛使用的非准确一维线搜寻算法---Wolfe非准确线搜寻。x点处沿着下降方向d的步长值,xdx搜寻〕Wolfe条件的一维非准确线搜寻算法。Wolfe条件的可承受步长区间的图:7Wolfe条件的可承受步长区间的图〔1〕f(xk

pk

)f(xk

)c1

fTpk k

(45)〔2〕f(x p)Tp cfTp (46)k k k k 2 k k强e条件〔2abs(f(x p)Tp)cfTp 0 (47)k k k k 2 k k这里条件1用来使xpk k k

处的函数值有肯定的下降值,条件2用来限定xp处的斜率应大于x处斜率的cWolfe条件〔2〕的进一步限定k k k k 2了xpk k k

处斜率值,使可承受步长落在某个波谷中。固然,在该算法具体的实现中,仅仅有这些是不够的,当每次迭代步长落在够到达满足的结果。非准确一维线搜寻算法的流程:Algorithm Wolfe_searchinitialize:x,d,c1

1.0E4,c2

0.9old_gtd0g(x)Td,old_f0f(x)aL0,aU1.0E8,stepk0calculate:ff(xstep*d),gtdg(xstep*d)TdWolfe1f(xstep*d)old_f0c1

*old_gtd0*stepWolfe2c2

*old_gtd0g(xstep*d)Td(or Wolfe2c2

*old_gtd0abs(g(xstep*d)Td))judge:if(Wolfe10)if(Wolfe20)break;elseendif

aLstepaUaUinsert

for stepaLaLaUstepinsertendifgoto calculate:return step

for step程,用来实现实际的最优化问题。initialize:x,f(x),k00loop:while(kk_max)if(g(x)epsilon)kbreak;if(k0)else

d g(x)k kendget

getk

dkvia

via

AlgorithmAlgorithm

L_BFGSWolfe_searchx xk

*dk kkk1endwhilereturn xk算法收敛性分析:依据割线方程,D 和B 应为对称正定矩阵,这在yTs 0时成立。当目k1 k1 k kyTsk k

0成立;然而对非凸函数来说,该不等式不肯定成立,WolfeWolfeyTsk k搜寻算法中初始步长的选择也尤为重要。基于AutoEncoder的手写数字识别MNIST数据库

0将成立。此外,线Cortes和纽约大学柯朗争论所YannLeCun建有一个手写数字数据库,训练库有60,000张手写数字图像,测10,000张。每一个手写数字大小为2828像素。局部手写数字如以下图所示:8局部样本模型训练2828像素的手写数字变换成1784的列数据作为我们模型的输入x。训练数据个数为60000组。训练目标为得到第一层自编码神经网络的W,bWb

Softmax回归的参数。1 1 2 2具体操作步骤见其次章。模型测试组数据对我们训练的模型进展准确度测试。=〔分对样本数〕/〔总样本数。试验结果及分析:5.15.3所示。总的试验结果和参数详见表1.AutoEncoder这是最原始的Autoencoder,在训练时没有引入稀疏项和白噪声。这个9196个。1.准确度:0.915W可视化:9Autoencoder权值可视化结果分析:09Autoencoder的第一层。Autoencoder虽然是神经网络。但是可以看成是线性的模型,又由于这是第一层的权值〔总共也就一层,所以对数据的抽象程度不高,所以从权值中根本上能Autoencoder中表现的更加明显。SparseAutoEncoder高低一步分类的准确度。准确度:0.9276W可视化:10SparseAu

温馨提示

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

评论

0/150

提交评论