
周丰,闫光荣
北京航空航天大学机械工程及自动化学院,北京(1000191)
E-mail:zhoua188a@163.com
摘要:人工神经网络是近年来智能控制与智能自动化领域的热点,其结构简单,可操作性强,具有很强的自适应、自学习等优点,因而在函数逼近、模式识别、故障诊断、智能控制、信号处理等领域都有广泛的应用。BP神经网络由于它的学习能力和非线性特性,使其能够对非线性函数进行很好的逼近。本文通对BP神经网络结构和MATLAB软件及其BP神经网络工具箱的应用研究,利用BP神经网络工具箱设计BP神经网络,用于对非线性函数的逼近,通过网络的训练、测试达到了预期的效果,并对逼近函数曲线进行误差分析,从而为进一步建立更好的神经网络模型,以及对进一步曲线曲面方面神经网络应用研究提出了方向。
关键词:曲线曲面;BP神经网络;函数逼近;MATLAB软件
1.引言
人工神经网络是一种宏观意义下的仿生算法,它模仿的机制是一切生命与智能的产生与进化过程[1]。作为仿生结构算法的人工神经网络,是一类由结点相互联接所组成的计算模型,每一个结点通过简单的运算完成从输入到输出的计算,然后这一输出结果通过连接传到其他结点(理论上亦可传到自身)。本文运用了这种学习算法原理的方法完成了曲线函数逼近的训练过程。
在数值分析领域,用一个简单的函数y(x)近似替代某个复杂的函数f(x)被称作函数逼近,其中被称作被逼近函数,被成为逼近函数,所谓简单函数,在数值计算中主要指可以用四则运算进行的函数,一般为有理函数,最常用的是多项式或分段多项式,数值计算中通常由经典的数值计算方法来实现,本文尝试通过BP神经网络仿真来实现函数的逼近,通过输入矢量和相应的输出矢量训练一个网络以逼近一个函数。
函数逼近在曲线曲面基函数未知的情况下对函数形状的逼近有很大的实际应用价值,一般情况下对曲线曲面的构建都是采用函数插值和逼近两种方法,要求构造一条曲线顺序通过这些数据点,称为对这些数据点进行插值(interpolation),所构造的曲线称为插值曲线。构造一条曲线使之在某种意义下最为接近给定的数据点,称之为对这些数据点进行逼近(approximation),所构造的曲线称为逼近曲线,类似的,可以将曲线逼近推广到曲面[2]。插值与逼近统称为拟合(fitting)很明显可以发现,在某些情况下,测量所得的或者设计人员给出的数据点本身就很粗糙,要求构造一条曲线严格通过给定的数据点就没有什么意义,所以曲线的逼近构造方法就显得更为合理,应用更加广泛。
在目前的计算机辅助几何设计方法中,比较常用曲线逼近的的方法是通过构造曲线的基函数,对曲线节点进行参数化得到曲线比如贝齐尔曲线曲面的构造就是通过伯恩斯坦基函数来,以及目前应用最为广泛的非均匀有理B样条曲线曲面,都需要构造函数的基函数来得到,应用这种方法所构造曲线的优点就是曲线拟合及曲线连接处切矢均匀,光顺性较好。其缺点也很明显,需要作者根据所需要的曲线形状条件计算函数的基函数,这个过程的计算量较大,需要经过专业学习过程才能掌握,且需要经过计算机编程得以最终实现。
通过学习神经网络的优势及实现方法,本文作者设想运用目前最为广泛的BP神经网络实现对曲线形状函数的逼近,并通过软件成功实现。这对目前曲线曲面的构造方法是一个很好的补充,在一般对曲线曲面形状要求不是十分严格的情况下,使用这种人工神经网络的逼
近方法可以充分节约操作者的时间,并且去最终逼近精度通过迭代精度的设定也得到保证。最终证明,通过神经网络实现的曲线曲面逼近方法,有着很广泛的实际应用前景。
2. 神经网络概论
2.1 神经网络原理
人工神经网络是由大量简单的基本元件-神经元(neuron )相互连接而成的自适应非线性动态网络,它是在现代神经网络研究基础上提出来的,反映了人脑功能的若干基本特征[3]
。但是它不是人脑的真实描写,而是它的简化、抽象与模拟。网络的信息处理由神经元之间相互作用来实现。知识与信息的存储表现为网络元件相互之间分布式的物理联系,网络的学习和识别决定于各神经元连接的动态演化过程。
神经网络的智能化特征与能力使其应用领域日益扩大,潜力日趋明显。
神经元是神经网络的基本处理单元,它是多输入多输出的非线性器件,其结构如图2.1所示。其中x i 为需要传输的输入信号,θi 为阈值, W ij 为权值,s i 为外部信号,也即偏置信号,y i 为该神经元节点输出信号,σi 为神经元节点的输入信号,f 称为神经元的作用函数,也常称为传输函数。该神经元模型的表达式为: i ij j i i j
W x s σθ=+−∑ ()i i y f σ=
图2.1 神经元结构模型
一般说来,有多个输入的单一神经元并不能满足实际应用的要求,在实际应用中需要有多个并行操作的神经元,这里将那些可以并行操作的神经元组成的集合称为层。并在此基础上将网络结构上用于输入的最外层叫着输入层,用着最终输出的层称为输出层。介于这两者之间的层称为中间层或者隐含层[4]。
2.2人工神经网络模型
人工神经网络的模型很多,可以按照不同的方法进行分类。其中,按网络连接的拓扑结构可分为层次型结构和互连型网络结构;按网络内部的信息流向可分为前馈型网络和反馈型网络。下面介绍一下单纯层次型网络结构和前馈型网络结构。
单纯层次型结构的神经网络将神经元按功能分成若干层,如输入层、中间层(也称为隐层)和输出层,各层顺序相连,各层之间的神经元互不相连,如图2.2所示。输入层各神经元负责接受来自外界的输入信息,并传递给中间各隐层神经元;隐层是神经网络的内部信息处理层,负责信息变换,根据信息变换能力的需要,隐层可设计为一层或多层;最后一个隐层传递到输出层各神经元的信息经进一步处理后即完成一次从输入到输出的信息处理,由输出层向外界(如执行机构或显示设备)输出信息后处理结果。
图2.1 单纯层次型网络结构
人工神经网络是一个非线性的自适应并行分布处理信息系统,其信息处理由神经元之间的相互作用来实现。信息存储表现为神经元之间的物理连接。网络的学习取决于神经元之间的连接权值的动态变化。神经网络具有如下的特点:
(1) 高度的并行性
(2) 高度的非线性全局作用
(3) 良好的容错性与联想记忆功能
(4) 极强的自适应、自学习功能
人工神经网络可以通过训练和学习来获得网络的权值与结构,呈现出很强的自学习能力和对环境的自适应能力[5]。
3. BP神经网络用于函数逼近问题实例分析
下面将结合一实例详细阐述BP神经网络函数逼近过程及其MATLAB软件实现的方法。假设要逼近的函数为y=sin(K*pi*x),其中(K=1,-1 神经网络使用“net=newff(minmax(p),[n,1],{'tansig' 'purelin'},'trainlm');语句建立一个前馈型BP神经网络,该BP神经网络只有一个隐含层,神经元的个数为10,隐层和输出层神经元传递函数分别为tansig和purelin 函数算法为 trainlm 算法。 3.2 网络的训练 使用“net=train(net,p,t);” 语句训练建立好的神经网络。当然在网络训练之前必须设置好训练的参数[6]。在本文中设定的训练时间为50个时间单位,训练目标精度为0.01,用“net.trainParam.epochs=50;net.trainParam.goal=0.01; ” 语句实现,其他参数默认。 3.3 网络的仿真测试 使用“y2=sim(net,p) ;”语句仿真训练前后的BP神经网络。如下程序是该例程的源代码。由程序可知,采用功能强大的MATLAB语言编程,可直接调用MATLAB软件包中的BP 神经网络工具箱函数。由图3.1 可知,用工具箱函数 newff 建立网络时,对权值和阈值的初始化是随机的,所以未训练网络的仿真输出效果很差,并且每次运行的结果也不相同[7]。图3.2为原函数与网络训练前后的仿真结果比较图训练网络的仿真输出曲线和原始曲线非常接近,这说明训练后的网络对非线性函数的逼近效果很好。网络训练过程中误差随训练时间的变化迅速减少,在经过3个单位时间以后,网络的误差就达到了逼近要求 图3.1 原函数及未训练仿真图象 图3.2 训练迭代时间 图3.3 源程序及训练迭代图 4 结论 BP神经网络最强大的应用之一就是函数逼近,即从训练样本出发,对未知函数进行非线性逼近。研究表明,通过BP人工神经网络所进行的曲线曲面的逼近,其精度,逼近时间,迭代次数都达到了令人满意的结果,推而广之,将这种方法应用于更为复杂,更为实际CAD/CAM曲线曲面逼近中有着广阔的前景,这有待于我们的进一步研究。 通过研究发现,网络的拓扑结构直接影响网络对函数的逼近能力和效果。因此,在实际应用中,应根据具体问题,选择一个合适的网络结构,合理的设置网络的频率以及隐函数层数。应用BP 神经网络进行函数逼近,不仅在纯数学和应用数学,曲线构造领域有意义,而且在工程和物理学领域也非常有用,这种逼近方式已被广泛地应用于系统辨识与建模、信号处理及模式识别等多个方面。 本文仅仅是利用BP神经网络方法,对非线性函数逼近的研究进行了一个初步的探索,有关这一方面还有许多工作要做,需要进一步的完善和探讨。 (1)BP神经网络技术是一种具有较好的局部搜索能力的算法,而全局搜索能力相对较差。新类型的改进的神经网络在函数逼近中展现何种性态将是今后的研究热点。 (2)由于时间原因,本文所进行的研究仅仅局限于简单曲线函数逼近的研究,接下来的工作中可进一步进行曲面函数逼近的研究,相信可以取得令人满意的结果。 (3)本文仅是对于简单非线性函数逼近进行研究,而现实生活中对三维曲线曲面并且有各种各样的噪声干扰的复杂函数逼近问题。因此,以简单曲线函数逼近问题为基础来对三维曲面函数逼近进行研究是非常重要的。 参考文献 [1] 韩力群,人工神经网络理论、设计及应用,北京,化学工业出版社,2002:23~25 [2] 闻新,周露,力等,MA TLAB神经网络应用设计,北京,科学出版社,2000:135~176 [3] 邬再新,王凯等,基于神经网络曲线插补研究机械 2007 .4 [4] 冯蓉,杨建华,基于BP神经网络函数逼近的MA TLAB实现榆林学校学报 2007. 3 [5] 李凯,翟振华神经网络在函数逼近问题中的应用研究计算机工程 2001.5 [6]王霞等基于人工神经网络的函数逼近法计量精度的提高上饶师范学院学报 2003.12 [7]施法中计算机辅助几何设计与非均匀有理B样条高等教育出版社 2001 .12 :45~47Realization of Curve graph function approximation based on neural network Zhou Feng,Yan Guangrong Institute of mechanical engineering and automatization Beihang University (1000191) Abstract Manual neural network is a hotspot in the domain of intelligent control and Intelligent autoimmunization research, because of it’s simple structure , better maneuverability and self-adaptation ability, so be widely used in function approximation ,mode identify ,hitch diagnose ,intelligent control and signal dispose domain and so on. Owing to its learning ability and nonlinear characteristics, BP neural network has the strong ability to approximate functions. Based on the research on the structure of BP neural network and the application of Matlab software and BP neural network toolbox, this paper uses BP neural network toolbox to design BP neural network to approximate nonlinear functions. Desired effect is achieved through the training and testing of network. So this paper set a good foundation for a future study of setting a better neural network mode , and provide the way to neural network application research. Key words: curve graph; BP neural network; Function approximation; MATLAB software
