欢迎来到天天文库
浏览记录
ID:44205702
大小:24.59 KB
页数:4页
时间:2019-10-19
《牛顿法的MATLAB实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、牛顿法的MATLAB实现摘要:性能学习是神经网络中的一类很重要的学习规则,其旨在找到一个最优点来提高网络的性能。牛顿法是一种基于二阶泰勒级数的算法,逐步迭代来实现进一步的极小化,最后找到最优点。本文采用MATLAB编程来实现牛顿法,并通过具体的例子进行分析计算。关键字:牛顿法;MATLABRealiseNewton’sMethodbyusingMatlabAbstract:Performancelearningisoneofimportantlearningrulesinneuralnetwork,w
2、hichaimstofindanoptimalpointtoimprovetheperformanceofneuralnetwork.Newton'smethodisakindofalgorithmwhichbasedonsecond-orderTaylorseries,theiterationstepbysteptoachievefurtherminimization,andfinallyfindthemostadvantage.Inthispaper,byusingthematlab,Newton
3、'smethodiseasilytorealizeanditalsogivesademonstrationtoanalyseandcalculation.Keywords:Newton’smethod;MATLAB0引言神经网络作为一门新兴的学科,在短短的数十年内已经被运用于多种学科领域,大量的有关神经网络机理、模型以及算法分析等方面的文章如雨后春笋般涌现。MATLAB是一种强大的工程计算和仿真软件,其基本上可以实现神经网络的各种设计方法和算法。牛顿法是求解优化问题最早使用的经典算法之一,其基本思想是
4、用迭代点处的一阶导数和二阶导数对目标函数进行二次函数近似,然后把模型的极小点作为新的迭代点,并不断的重复这个过程,直至求得满足精度的近似极小点。1神经网络的性能优化在学习神经网络的过程中,性能学习是一种非常重要的学习规则,其目的在于调整网络参数以优化网络性能。优化过程可以分为两步,第一步是定义“性能”的标准,即找到一个衡量网络性能的定量标准,也就是性能指数;第二步是搜索减小性能指数的参数空间。假设最小化的性能指数是一个解析函数F(x),它的各级导数均存在。那么F(x)可表示某些指定点x*上的泰勒级数展
5、开,如下式所示Fx=Fx*+ddxFx
6、x=x*x-x*+12d2dx2Fx
7、x=x*x-x*2+⋯+1n!dndxnFx
8、x=x*x-x*n+⋯(1)神经网络的性能指数并不仅仅是一个纯量x的函数,它是所有网络参数(各个权值和偏置值)的函数,参数的数量也不是确定的。因此,需要将泰勒级数展开式扩展为多变量形式。假设有下列n元函数。Fx=F(x1,x2,⋯,xn)(2)把这个函数在点x*的泰勒级数展开,可以得到如下式子:Fx=Fx*+∂∂x1Fx
9、x=x*x1-x1*+∂∂x2Fx
10、x=x*x2-x2*+
11、⋯+∂∂xnFx
12、x=x*xn-xn*+12∂2∂x2Fx
13、x=x*x1-x1*2+12∂2∂x1∂x2Fx
14、x=x*x1-x1*(x2-x2*)+⋯(3)将这个表达式表示成矩阵的形式:Fx=Fx*+∇Fx
15、x=x*x-x*+12x-x*T∇2Fx
16、x=x*x-x*2+⋯(4)其中∇Fx为梯度,定义为∇Fx=∂∂x1Fx∂∂x2Fx⋯∂∂xnFxT(5)∇2Fx为赫森矩阵,定义为∇2Fx=∂2∂x12Fx∂2∂x1∂x2Fx⋯∂2∂x1∂xnFx∂2∂x2∂x1Fx∂2∂x22Fx⋯∂2∂x2∂xnF
17、x⋮∂2∂xn∂x1Fx⋮∂2∂xn∂x2Fx⋮⋯∂2∂xn2Fx(6)通过限定泰勒级数展开式的数量,可以用泰勒级数近似估计性能指数。2牛顿法牛顿法是基于如下的二阶泰勒级数:Fxk+1=Fxk+∆xk≈F(xk)+gkT∆xk+12∆xkTAk∆xk(7)牛顿法的原理是求F(x)的二次近似的驻点。用下式求这个二次函数对∆xk的梯度并设它为零,∇Fx=Ax+d(8)则有gk+Ak∆xk=0(9)求解∆xk得∆xk=-Ak-1gk(10)于是将牛顿法定义为∆xk+1=∆xk-Ak-1gk(11)其中Ak为
18、在xk的赫森矩阵Ak=∇2Fx
19、x=x*(12)因为牛顿法总是用一个二次函数逼近F(x),然后求其驻点。如果原函数为二次函数(有强极小点),它就能实现一步极小化。牛顿法最突出的有点是收敛速度快,具有局部二阶收敛性。初始点要足够的“靠近”极小点。由于实际问题中的精确极小点一般不是知道的,因此初始点的选取要适当。3牛顿法的MATLAB实现牛顿法的步骤如下:①、给定终止误差值epson=1e-12,初始点x0,令k=0。②、计算gk=∇F(xk),若gk≤ep
此文档下载收益归作者所有