神经网络BRF.docx

上传人:b****5 文档编号:29720287 上传时间:2023-07-26 格式:DOCX 页数:12 大小:169.97KB
下载 相关 举报
神经网络BRF.docx_第1页
第1页 / 共12页
神经网络BRF.docx_第2页
第2页 / 共12页
神经网络BRF.docx_第3页
第3页 / 共12页
神经网络BRF.docx_第4页
第4页 / 共12页
神经网络BRF.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

神经网络BRF.docx

《神经网络BRF.docx》由会员分享,可在线阅读,更多相关《神经网络BRF.docx(12页珍藏版)》请在冰豆网上搜索。

神经网络BRF.docx

神经网络BRF

中北大学

神经网络及应用论文

 

研究方向:

深孔加工

姓名:

江敏

指导老师:

孟江

 

2012年6月1日

基于RBF网络的非线性函数回归的实现

江敏

(中北大学机械工程与自动化学院,山西太原030051)

摘要:

RBF网络由输入到输出的映射是非线性的,而网络输出对可调参数而言却又是线性的。

本文利用径向基RBF神经网络的非线性回归特性对已知函数进行模拟仿真,通过原函数输出结果与经过径向基RBF神经网络非线性回归模型仿真的函数结果进行比较,得出设计模型可靠良好的性能。

关键词:

RBF神经网络;非线性回归;MATLAB仿真

TheRealizationofTheReturnofTheNonlinearFunctionBasedonRBFNetwork

JiangMin

(MechanicalEngineeringandAutomationSchool,NorthUniversityofChina,Taiyuan,Shanxi030051,China)

Abstract:

theRBFnetworkfromtheinputtotheoutputmappingisnonlinear,andnetworkoutputonadjustableparameterislinear.ThispaperusingthenonlinearregressioncharacteristicofradialbasisRBFneuralnetworktosimulationtheknownfunction,Thedesignmodelhasareliablegoodperformancetocomparedtotheanti-derivativeoutputresultsbetweentheresultafterradialbasisRBFneuralnetworknonlinearregressionmodelsimulation.

Keyword:

Neuralnetwork;Nonlinearregression;MATLABemulation

前言

RBF网络的基本思想是:

用RBF作为隐单元的“基”构成隐含层空间,这样就可以将输入矢量直接(即不需要通过权连接)映射到隐空间。

基于神经网络的非线性回归系统,就是应用神经网络能逼近任意非线性函数这一特性而设计的。

用于非线性函数逼近的前向神经网络主要有两种:

BP网络和RBF网络。

基于BP网络的非线性函数逼近虽然在理论上是可行的,但是其学习效率低、收敛速度慢、易陷于局部极小状态;网络的泛化及适应能力较差等缺点,限制了其在实际中的应用效果[2]。

而RBF网络既有生物背景又符合逼近理论,当中心值选择适当时,很少的神经元就可获得很好的逼近效果,它还具有唯一最佳逼近点的优点;其网络的隐层与输出层的连接权与输出成线性关系,可以采用保证全局收敛的线性优化算法[3]。

由于RBF网络在逼近能力、学习速度等方面均优于BP网络,因此,本文提出了基于RBF神经网络的非线性回归的实现方法。

1RBF神经网络原理

RBF神经网络即径向基函数神经网络(RadicalBasisFunction)。

径向基函数神经网络是一种高效的前馈式神经网络,它具有其他前向网络所不具有的最佳逼近性能和全局最优特性,并且结构简单,训练速度快。

同时,它也是一种可以广泛应用于模式识别、非线性函数逼近等领域的神经网络模型。

径向基函数(RBF)神经网络是一种局部逼近的神经网络,它模拟了人脑中局部调整,相互覆盖接受域的神经网络结构。

现已证明它能以任意精度逼近任意连续函数。

最基本的RBF神经网络如图1所示,是具有单隐层的3层前馈网络,其中每1层都有着完全不同的作用。

输入层由感知单元组成,它将网络与外界环境连接起来;第2层神经网络的作用是完成输入空间到隐层之间的非线性变换,大多数情况下隐层空间有较高的维数;第3层为输出层,它为作用于输入层的激活模式提供响应。

当RBF的中心点确定以后,这种映射的关系也就确定了。

而隐含层空间到输出空间的映射是线性的,即网络的输出是隐单元输出的线性加权和。

此处的权即为网络可调参数。

由此可见,从总体上看,网络由输入到输出的映射也是非线性的,而网络输出对可调参数而言又是线性的。

这样的网络的权就可以由线性方程直接解出,从而大大加快学习速度并避免局部极小问题。

RBF神经网络学习算法需要求解的参数有3个:

基函数的中心,方差以及隐含层到输出层的权值。

根据径向基函数中心选取方法的不同,RBF网络有多种学习方法,如随机选取中心法,自组织选取法,有监督选取中心法和正交最小二乘法等。

2RBF神经网络的非线性回归模型

回归分析法,是在掌握大量观察数据的基础上,利用数理统计方法建立因变量与自变量之间的回归关系函数表达式(称回归方程式)。

回归分析中,当研究的因果关系只涉及因变量和一个自变量时,叫做一元回归分析;当研究的因果关系涉及因变量和两个或两个以上自变量时,叫做多元回归分析。

此外,回归分析中,又依据描述自变量与因变量之间因果关系的函数表达式是线性的还是非线性的,分为线性回归分析和非线性回归分析。

通常线性回归分析法是最基本的分析方法,遇到非线性回归问题可以借助数学手段化为线性回归问题处理。

处理非线性回归的基本方法是,通过变量变换,将非线性回归化为线性回归,然后用线性回归方法处理。

假定根据理论或经验,已获得输出变量与输入变量之间的非线性表达式,但表达式的系数是未知的,要根据输入输出的n次观察结果来确定系数的值。

按最小二乘法原理来求出系数值,所得到的模型为非线性回归模型(nonlinearregressionmodel)。

其函数形式为

模型:

也可表示为:

其非线性坐标模式表示如下

RBF网络的实质:

就是把输入的数据转换到另外的空间,表示如下图所示:

图2RBF网络的空间转换模式

3MATLAB实现RBF神经网络实例设计

首先建立学习数据,在0-1区间取400阶随机数,在-1.5到1.5数组区间内以函数F=20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2)为原始函数建立一个径向基RBF神经网络。

同时,在数组区间内生成三维图形,返回数组每一维的大小,生成测试数据。

对以上数据进行测试,建立一个sim仿真动态系统,返回sim的元素到新建矩阵中,创建三维显示图形。

最后将原始函数图形和建立的非线性回归模型,以及原始图形与非线性回归模型的误差比较图形输出在图2上。

经过Matlab计算输出得到图2中的第一幅图,就是原函数的输出结果图,经过建立的径向基RBF神经网络非线性回归模型输出得到图2中的第二幅图,此图为模型训练的仿真结果,再对原函数和经过径向基RBF神经网络非线性回归模型训练的结果进行比对,得到图2中第三幅图的比较结果,从中可以清楚的看出本次非线性回归模型的输出结果与原始函数的比较误差很小,符合设计要求,非线性回归模型的精确程度高并且模型模拟的运算速度很快。

实验结果图如图3所示。

真正的函数图像RBF神经网络结果误差图像

图3RBF神经网络非线性回归模型结果

下面用approximateRBF网络对其进行拟合的分析过程

1、内容:

清空环境变量

产生训练样本(训练输入,训练输出)

建立RBF神经网络

建立测试样本

使用建立的RBF网络进行模拟,得出网络输出

使用图像,画出3维图

2、主程序:

清空环境变量

clc

clear

产生训练样本(训练输入,训练输出)

ld为样本例数

ld=400;

%产生2*ld的矩阵

x=rand(2,ld);

%将x转换到[-1.51.5]之间

x=(x-0.5)*1.5*2;

%x的第一列为x1,第二列为x2.

x1=x(1,:

);

x2=x(2,:

);

%计算网络输出F值

F=20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2);

建立RBF神经网络

采用approximateRBF神经网络。

spread为默认值

net=newrb(x,F);

建立测试样本

%generatethetestingdata

interval=0.1;

[i,j]=meshgrid(-1.5:

interval:

1.5);

row=size(i);

tx1=i(:

);

tx1=tx1';

tx2=j(:

);

tx2=tx2';

tx=[tx1;tx2];

使用建立的RBF网络进行模拟,得出网络输出

ty=sim(net,tx);

使用图像,画出3维图

%真正的函数图像

interval=0.1;

[x1,x2]=meshgrid(-1.5:

interval:

1.5);

F=20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2);

subplot(1,3,1)

mesh(x1,x2,F);

zlim([0,60])

title('真正的函数图像')

%网络得出的函数图像

v=reshape(ty,row);

subplot(1,3,2)

mesh(i,j,v);

zlim([0,60])

title('RBF神经网络结果')

%误差图像

subplot(1,3,3)

mesh(x1,x2,F-v);

zlim([0,60])

title('误差图像')

set(gcf,'position',[300,250,900,400])

结果分析

代码运行后的结果如图3和图4所示

图4RBF网络训练结果

在命令窗口输出结果如下(一共400个,中间部分省略):

NEWRB,neurons=0,MSE=108.563

NEWRB,neurons=2,MSE=106.612

NEWRB,neurons=400,MSE=6.41196e-008

4结论

本文主要利用径向基RBF神经网络的理论知识初步研究非线性回归模型的建立,对已有函数的仿真结果进行实验研究。

采用Matlab软件进行径向基RBF神经网络的设计实现对非线性回归模型的建立。

测试结果显示,径向基RBF神经网络可以根据输入函数与非线性回归模型仿真函数输出结果的比对,实现对原函数功能的仿真,且仿真精度高,速度快,误差小。

由此可见,利用径向基RBF神经网络建立的非线性回归模型能够有效的解决非线性的处理问题。

参考文献

[1]施彦,韩力群,廉小亲.神经网络设计方法与实例分析[M].北京:

北京邮电大学出版

社,2009.

[2]FredicM.HamIvicaKostanic.神经计算原理[M].北京:

机械工业出版社.2007.

[3]张良均,曹晶,蒋世忠.神经网络实用教程[M].北京:

机械工业出版社,2008.

[4]陈静,葛超,安光晨.RBF神经网络在非线性系统辨识中的应用[J].陶瓷研究与职业教育,2007(4)

[5]王钰,郭其一.基于改进BP神经网络的预测模型及其应用[J].计算机测量与控制,2005

(1):

39~42.

[6]柴杰,江青茵,曹志凯.RBF神经网络的函数逼近能力及其算法[J].长江科学院院报,2002(3):

310~316.

[7]石修松,王路君,程展林.基于RBF神经网络的加筋粘土本构模型[J].模式识别与人工智能,2010(7).

[8]DouglasM.Bates,DonaldG.Watts.NonlinearRegressionAnalysisandItsApplications[M].Wiley,1997

附:

源代码

clc;

clear;

closeall;

%generatethelearingdata

ld=400;%学习数据的个数

x=rand(2,ld);%在0-1之间随机产生2*ld的数据在矩阵中

x=(x-0.5)*1.5*2;%-1.5,1.5为了画图把它转变到【-1.51.5】之间

x1=x(1,:

);

x2=x(2,:

);

F=20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2);

%为了试验,自己产生的数据

%RBF开始了!

%生成网络

net=newrb(x,F);%x为输入,F为输出,这个函数会自己训练!

%下面是怎么应用网络的问题!

%generatethetestingdata

interval=0.1;

[i,j]=meshgrid(-1.5:

interval:

1.5);%meshgird产生的是方框数据

row=size(i);

tx1=i(:

);

tx1=tx1';

tx2=j(:

);

tx2=tx2';

tx=[tx1;tx2];

%以上为产生测试数据tx

%画图对比神经网络的结果和实际输出结果的差异

%testing实践测试ty为神经网络的结果

ty=sim(net,tx);

v=reshape(ty,row);

figure

subplot(1,3,2)

mesh(i,j,v);

zlim([0,60])

%plottheoriginalfunction

interval=0.1;

[x1,x2]=meshgrid(-1.5:

interval:

1.5);

F=20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2);%F为实际计算的结果

subplot(1,3,1)

mesh(x1,x2,F);

zlim([0,60])

%plottheerror看他们之间的差异

subplot(1,3,3)

mesh(x1,x2,F-v);

zlim([0,60])

%怎么提高结果

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 兵器核科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1