基于 BP神经网络曲线曲面函数逼近方法
- 格式:pdf
- 大小:429.00 KB
- 文档页数:6
http://www.paper.edu.cn
- 1 - 基于BP神经网络曲线曲面函数逼近方法
周丰,闫光荣
北京航空航天大学机械工程及自动化学院,北京(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神经网络
实现对曲线形状函数的逼近,并通过软件成功实现。这对目前曲线曲面的构造方法是一个很
好的补充,在一般对曲线曲面形状要求不是十分严格的情况下,使用这种人工神经网络的逼http://www.paper.edu.cn
- 2 - 近方法可以充分节约操作者的时间,并且去最终逼近精度通过迭代精度的设定也得到保证。
最终证明,通过神经网络实现的曲线曲面逼近方法,有着很广泛的实际应用前景。
2. 神经网络概论
2.1 神经网络原理
人工神经网络是由大量简单的基本元件-神经元(neuron)相互连接而成的自适应非线
性动态网络,它是在现代神经网络研究基础上提出来的,反映了人脑功能的若干基本特征[3]
。
但是它不是人脑的真实描写,而是它的简化、抽象与模拟。网络的信息处理由神经元之间相
互作用来实现。知识与信息的存储表现为网络元件相互之间分布式的物理联系,网络的学习
和识别决定于各神经元连接的动态演化过程。
神经网络的智能化特征与能力使其应用领域日益扩大,潜力日趋明显。
神经元是神经网络的基本处理单元,它是多输入多输出的非线性器件,其结构如图2.1
所示。其中x
i为需要传输的输入信号,θ
i为阈值, W
ij为权值,s
i为外部信号,也即偏置信号,
y
i为该神经元节点输出信号,σ
i为神经元节点的输入信号,f称为神经元的作用函数,也常称
为传输函数。该神经元模型的表达式为:
iijjii
jWxsσθ
=+−∑
()
iiyfσ
=
图2.1 神经元结构模型
一般说来,有多个输入的单一神经元并不能满足实际应用的要求,在实际应用中需要有
多个并行操作的神经元,这里将那些可以并行操作的神经元组成的集合称为层。并在此基础
上将网络结构上用于输入的最外层叫着输入层,用着最终输出的层称为输出层。介于这两者
之间的层称为中间层或者隐含层[4]
。
2.2人工神经网络模型
人工神经网络的模型很多,可以按照不同的方法进行分类。其中,按网络连接的拓扑
结构可分为层次型结构和互连型网络结构;按网络内部的信息流向可分为前馈型网络和反馈
型网络。下面介绍一下单纯层次型网络结构和前馈型网络结构。
单纯层次型结构的神经网络将神经元按功能分成若干层,如输入层、中间层(也称为隐
层)和输出层,各层顺序相连,各层之间的神经元互不相连,如图2.2所示。输入层各神经
元负责接受来自外界的输入信息,并传递给中间各隐层神经元;隐层是神经网络的内部信息
处理层,负责信息变换,根据信息变换能力的需要,隐层可设计为一层或多层;最后一个隐
层传递到输出层各神经元的信息经进一步处理后即完成一次从输入到输出的信息处理,由输
出层向外界(如执行机构或显示设备)输出信息后处理结果。 http://www.paper.edu.cn
- 3 - 前馈型网络的结构特点与分层网络完全相同,前馈是因网络信息处理的方向是从输入层
到各隐层再到输出层逐层进行而得名。从信息处理能力看,网络中的节点可分为两种:一种
是输入节点,只负责从外界引入信息后向前传递给第一隐层;另一种是具有处理能力的节点,
包括各隐层和输出层节点。前馈型网络中一层的输出是下一层的输入,信息的处理具有逐层
传递进行的方向性,一般不存在反馈环路,如图2.2所示。
图2.1 单纯层次型网络结构
人工神经网络是一个多维非线性的自适应并行分布处理信息系统,其信息处理由神经
元之间的相互作用来实现。信息存储表现为神经元之间的物理连接。网络的学习取决于神经
元之间的连接权值的动态变化。神经网络具有如下的特点:
(1) 高度的并行性
(2) 高度的非线性全局作用
(3) 良好的容错性与联想记忆功能
(4) 极强的自适应、自学习功能
人工神经网络可以通过训练和学习来获得网络的权值与结构,呈现出很强的自学习能
力和对环境的自适应能力[5]
。
3. BP神经网络用于函数逼近问题实例分析
下面将结合一实例详细阐述BP神经网络函数逼近过程及其MATLAB软件实现的方法。
假设要逼近的函数为y=sin(K*pi*x),其中(K=1,-1
络隐层神经元数目,来观察训练时间以及训练误差的变化。
3.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; ” 语句实现,其他参数默认。 http://www.paper.edu.cn
- 4 - 3.3 网络的仿真测试
使用“y2=sim(net,p) ;”语句仿真训练前后的BP神经网络。如下程序是该例程的源代码。
由程序可知,采用功能强大的MATLAB语言编程, 可直接调用MATLAB软件包中的BP 神
经网络工具箱函数。由图3.1 可知,用工具箱函数 newff 建立网络时, 对权值和阈值的初
始化是随机的,所以未训练网络的仿真输出效果很差, 并且每次运行的结果也不相同[7]
。
图3.2为原函数与网络训练前后的仿真结果比较图训练网络的仿真输出曲线和原始曲线非常
接近, 这说明训练后的网络对非线性函数的逼近效果很好。网络训练过程中误差随训练时
间的变化迅速减少,在经过3个单位时间以后, 网络的误差就达到了逼近要求
图3.1 原函数及未训练仿真图象
图3.2 训练迭代时间