牛顿法的MATLAB实现

上传人:s9****2 文档编号:432864457 上传时间:2022-12-09 格式:DOC 页数:4 大小:436.04KB
返回 下载 相关 举报
牛顿法的MATLAB实现_第1页
第1页 / 共4页
牛顿法的MATLAB实现_第2页
第2页 / 共4页
牛顿法的MATLAB实现_第3页
第3页 / 共4页
牛顿法的MATLAB实现_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《牛顿法的MATLAB实现》由会员分享,可在线阅读,更多相关《牛顿法的MATLAB实现(4页珍藏版)》请在金锄头文库上搜索。

1、牛顿法的MATLAB实现牛顿法的MATLAB实现摘要:性能学习是神经网络中的一类很重要的学习规则,其旨在找到一个最优点来提高网络的性能。牛顿法是一种基于二阶泰勒级数的算法,逐步迭代来实现进一步的极小化,最后找到最优点.本文采用MATLAB编程来实现牛顿法,并通过具体的例子进行分析计算。关键字:牛顿法;MATLAB Realise Newtons Method by using MatlabAbstract: Performance learning is one of important learning rules in neural network ,which aims to find

2、an optimal point to improve the performance of neural network.Newtons method is a kind of algorithm which based on secondorder Taylor series, the iteration step by step to achieve further minimization, and finally find the most advantage。In this paper,by using the matlab, Newtons method is easily to

3、 realize and it also gives a demonstration to analyse and calculation. Key words: Newtons method; MATLAB0 引言神经网络作为一门新兴的学科,在短短的数十年内已经被运用于多种学科领域,大量的有关神经网络机理、模型以及算法分析等方面的文章如雨后春笋般涌现.MATLAB是一种强大的工程计算和仿真软件,其基本上可以实现神经网络的各种设计方法和算法。牛顿法是求解优化问题最早使用的经典算法之一,其基本思想是用迭代点处的一阶导数和二阶导数对目标函数进行二次函数近似,然后把模型的极小点作为新的迭代点,并不断

4、的重复这个过程,直至求得满足精度的近似极小点。1 神经网络的性能优化在学习神经网络的过程中,性能学习是一种非常重要的学习规则,其目的在于调整网络参数以优化网络性能。优化过程可以分为两步,第一步是定义“性能的标准,即找到一个衡量网络性能的定量标准,也就是性能指数;第二步是搜索减小性能指数的参数空间。假设最小化的性能指数是一个解析函数F(x),它的各级导数均存在。那么F(x)可表示某些指定点上的泰勒级数展开,如下式所示 神经网络的性能指数并不仅仅是一个纯量x的函数,它是所有网络参数(各个权值和偏置值)的函数,参数的数量也不是确定的。因此,需要将泰勒级数展开式扩展为多变量形式。假设有下列n元函数。

5、(2)把这个函数在点的泰勒级数展开,可以得到如下式子: (3)将这个表达式表示成矩阵的形式: (4)其中 为梯度,定义为 (5) 为赫森矩阵,定义为 (6)通过限定泰勒级数展开式的数量,可以用泰勒级数近似估计性能指数。2 牛顿法牛顿法是基于如下的二阶泰勒级数: (7)牛顿法的原理是求F(x)的二次近似的驻点。用下式求这个二次函数对的梯度并设它为零, (8)则有 (9)求解得 (10)于是将牛顿法定义为 (11)其中为在的赫森矩阵 (12)因为牛顿法总是用一个二次函数逼近F(x),然后求其驻点。如果原函数为二次函数(有强极小点),它就能实现一步极小化.牛顿法最突出的有点是收敛速度快,具有局部二阶

6、收敛性。初始点要足够的“靠近”极小点。由于实际问题中的精确极小点一般不是知道的,因此初始点的选取要适当。3 牛顿法的MATLAB实现牛顿法的步骤如下:、给定终止误差值epson=1e-12,初始点,令k=0。、计算若,停止运算,输出、计算、令.k=k+1,转。举一个例子,一个函数,以为初始点,用牛顿法对其进行一次迭代。首先求梯度和赫森矩阵。梯度为 (13)赫森矩阵为 (14)在初始点,有 (15)和 (16)所以牛顿法的第一次迭代为 (17)F(x)的极小点即指数部分的极小点,即 (18)用MATLAB实现,源代码如下:syms x1 x2f=exp(x12x1+2*x22+4);v=x1,x

7、2; df=jacobian(f,v); df=df.; G=jacobian(df,v); epson=1e12;xm=0,0;g1=subs(df,x1,x2,xm(1,1),xm(2,1);G1=subs(G,x1,x2,xm(1,1),xm(2,1);k=0;while(norm(g1)epson) p=G1g1; xm=xm+p; g1=subs(df,x1,x2,xm(1,1),xm(2,1); G1=subs(G,x1,x2,xm(1,1),xm(2,1); k=k+1; endk xm 运行结果为:k =4 通过运行可以知道,经过4次迭代。找到了该函数的绩效点。 牛顿法的收敛速

8、度比较快,一次迭代过后基本上接近极小值,经过数次迭代之后,就可以进一步实现极小化。4 结束语神经网络是一门很活跃的,应用范围特别广的学科.性能学习是最重要的神经网络学习规则之一。通过性能学习,网络参数能得到调节从而优化网络性能。牛顿法是一种基于二阶泰勒级数展开而导出的优化算法。对于二次函数,牛顿法能够一次迭代收敛到一个驻点。而对于复杂的函数,可以经过多次迭代,最后使其收敛到真正的极小点。神经网络的机理、算法及模型可以应用到各个科学领域中去,众多的神经生理学家、心理学家、数理学家、计算机与信息工程学家及企业家等对其的进一步研究和应用,使神经网络日益成为当代高科技领域中方兴未艾的竞争热点.参考文献1马昌凤.最优化方法及其MATLAB程序设计.福建:福建师范大学,2009。2傅荟璇.赵红。MATLAB神经网络应用设计。北京:机械工业出版社,2010。3飞思科技产品研发中心。神经网络理论与MATLAB 7实现。北京:电子工业出版社,2005。5戴葵译.神经网络设计.北京:机械工业出版社,2002.6云磊。牛顿迭代法的MATLAB实现。湖北:襄樊学院,2011。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号