基于径向基函数神经网络的函数逼近
三种RBF神经网络比较分析

三种RBF神经网络比较分析摘要:径向基函数(RBF)神经网络广泛应用于模式识别、非线性函数逼近等领域。
通过对聚类、梯度、正交最小二乘三种RBF神经网络进行正弦函数逼近的仿真实验,从中比较分析这三种RBF神经网络。
得到的对比分析结果表明:正交最小二乘的方式所需的训练时间最短,网络收敛速度最快,并且不需要预先定义隐层节点数。
关键词:神经网络;径向基函数;Matlab0引言人工神经网络是一种模仿生物神经网络的结构和功能的数学模型或计算模型。
现代神经网络是一种非线性统计性数据建模工具,常用来对输入和输出间复杂的关系进行建模,或用来探索数据的模式。
RBF神经网络即径向基函数神经网络(Radical Basis Function),是由J. Moody和C. Darken于上世纪80年代末提出的一种神经网络模型。
径向基函数神经网络是一种高效的前馈式神经网络,它具有其他前向网络所不具有的最佳逼近性能和全局最优特性,并且结构简单,训练速度快。
同时,它也是一种可以广泛应用于模式识别、非线性函数逼近等领域的神经网络模型。
1RBF神经网络原理由输入层、一个隐含层(径向基层)和一个线性输出层组成的前向RBF神经网络结构如图1。
隐含层神经元是将该层权值向量w与输入向量c之间的矢量距离与偏差b相乘后作为该神经元激活函数的输入,即:Ini=(‖w-c‖·bi)2=∑n[]j=1(wji-cj)2·bi(1)若取径向基函数为高斯函数,则神经元的输出为:Outi=e-In2i=e-(‖w-c‖·bi)2=e-(∑n[]j=1(wji-cj)2·bi)2(2)由式(1)可以看出,随着和之间距离的减少,径向基函数输出值增加,且在其输入为0时,即w和c之间的距离为0时,输出为最大值1。
1.1基于聚类的RBF神经网络原理基于聚类的RBF神经网络方法最早由Broomhead and Lowe提出。
最简单形式是有固定的中心,映射属性的参数有两组:输出层权值w,和径向基函数中心c。
MATLAB在RBF神经网络模型中的应用

MATLAB 在RBF 神经网络模型中的应用高宁1,张建中2(1.安徽农业大学信息与计算机学院,安徽合肥230036;2.安徽建筑工业学院电子与信息工程学院,安徽合肥230022)摘要:本文介绍了RBF 神经网络的基本原理及主要特点,并举例说明了基于MATLAB 神经网络工具箱建立RBF 神经网络模型及实现仿真的方法。
关键词:仿真;MATLAB 神经网络工具箱;RBF 神经网络中图分类号:TP399文献标识码:A文章编码:1672-6251(2009)02-0110-02Application of RBF neural network model based on MATLABGAO Ning 1,ZHANG Jan-zhong 2(1.College of Information and computer,Anhui Agriculture University,Hefei 230036,China;2.College of Electronics and Information Enginner,Anhui Architecture University,Hefei 230022,China)Abstract:In this paper,the principle and characteristic of RBF neural network are explained,and the method of building and simulating RBF neural network model is introduced.Key words:Simulation;MATLAB neural network toolbox;RBF neural network人工神经网络具有大规模并行处理能力、分布式存储能力、自适应(学习)能力等特征,神经网络特有的非线性适应性信息处理能力,克服了传统人工智能方法的缺陷,已广泛应用于模式识别、信号处理等各种应用领域。
径向基函数神经网络课件

小批量梯度下降算法
01
总结词
小批量梯度下降算法是一种折中的方法,每次使用一小批 样本来更新模型参数,既保持了计算量小的优点,又提高 了模型的稳定性。
02 03
详细描述
小批量梯度下降算法的核心思想是在每次迭代时,随机选 择一小批样本来计算损失函数,并使用梯度下降法或其他 优化方法来更新模型参数。这种方法可以平衡计算量和训 练时间的关系,同时提高模型的稳定性。
径向基函数神经网络课件
目 录
• 径向基函数神经网络概述 • 径向基函数神经网络的基本结构 • 径向基函数神经网络的学习算法 • 径向基函数神经网络的优化策略 • 径向基函数神经网络的实现细节 • 径向基函数神经网络的实例展示 • 总结与展望
01
径向基函数神经网络概述
神经网络简介
神经网络的定义
神经网络是一种模拟人脑神经元网络结构的计算模型,通过学习样 本数据来自动提取特征和规律,并完成分类、回归等任务。
02 03
详细描述
随机梯度下降算法的核心思想是在每次迭代时,随机选择一个样本来计 算损失函数,并使用梯度下降法或其他优化方法来更新模型参数。这种 方法可以大大减少计算量和训练时间。
优缺点
随机梯度下降算法的优点是计算量小,训练时间短,适用于大规模数据 集。但是,由于只使用一个样本进行更新,可能会造成模型训练的不稳 定,有时会出现训练效果不佳的情况。
2
输出层的节点数通常与输出数据的维度相等。
3
输出层的激活函数通常采用线性函数或softmax 函数。
训练过程
01
神经网络的训练过程是通过反向 传播算法实现的。
02
通过计算损失函数对网络权重的 梯度,更新权重以减小损失函数
基于径向基函数汽车销量预测研究

基于径向基函数的汽车销量预测研究摘要:径向基函数具有良好的逼近任意非线性函数和表达系统内在的难以解析的规律性的能力,并且具有极快的学习收敛速度。
基于径向基函数网络的在预测非线性数据上的优点,我们可以将其用于汽车销量的预测。
关键词:径向基函数;销量预测。
中图分类号:f713.3 文献标识码:a 文章编号:1001-828x(2012)02-0-02一、引言新世纪的第一个十年,我国汽车产销量不断创造新高。
面对旺盛的汽车消费市场,在汽车销售企业中,有关汽车销量预测的研究和分析越来越成为企业决策的重要支撑。
所谓销量预测,只要是预估未来一段时间内消费者对某型车辆的需求数量以及消费者需求的发展趋势。
通过销量预测,可以为产品营销和提升客户满意度提供数据保障。
通过某型汽车销量需求预测,可以将不确定需求问题转化为确定需求问题。
目前,实现不确定数量预测的方法很多,但是基于径向基函数的神经网络法,因为其广泛的适应能力,在非线性系统的预测方面得到了大量的运用。
径向基函数神经网络(rbf网络)是一种高效的前馈式神经网络,它具有其他前向网络所不具有的最佳逼近性能和全局最优特性,并且结构简单,训练速度快。
同时,它也是一种可以广泛应用于模式识别、非线性函数逼近等领域的神经网络模型。
径向基函数神经网络是通过非线性基函数的线性组合实现从输入到输出的非线性转换。
在车辆实际销售过程中,其销售量数据正是一组非线性较强的时间序列。
对汽车销量的预测,实际是就是采用径向基函数神经网络,从前期若干个销售数据中预测出未来的销售数据。
二、基于径向基函数的汽车销量预测径向基函数神经网络是一种三层前向网络:第一层为输入层;第二层为隐含层,隐单元的变换函数是一种局部分布的非线性函数,隐含层的单元数由所描述问题的需要确定;第三层为输出层,网络的输出是隐单元输出的线性加权。
径向基函数神经网络的输入空间到隐含层控件的变换是非线性的,而从隐含层空间到输出层控件的变换是线性的。
RBF(径向基)神经网络

RBF(径向基)神经⽹络 只要模型是⼀层⼀层的,并使⽤AD/BP算法,就能称作 BP神经⽹络。
RBF 神经⽹络是其中⼀个特例。
本⽂主要包括以下内容:什么是径向基函数RBF神经⽹络RBF神经⽹络的学习问题RBF神经⽹络与BP神经⽹络的区别RBF神经⽹络与SVM的区别为什么⾼斯核函数就是映射到⾼维区间前馈⽹络、递归⽹络和反馈⽹络完全内插法⼀、什么是径向基函数 1985年,Powell提出了多变量插值的径向基函数(RBF)⽅法。
径向基函数是⼀个取值仅仅依赖于离原点距离的实值函数,也就是Φ(x)=Φ(‖x‖),或者还可以是到任意⼀点c的距离,c点称为中⼼点,也就是Φ(x,c)=Φ(‖x-c‖)。
任意⼀个满⾜Φ(x)=Φ(‖x‖)特性的函数Φ都叫做径向基函数,标准的⼀般使⽤欧⽒距离(也叫做欧式径向基函数),尽管其他距离函数也是可以的。
最常⽤的径向基函数是⾼斯核函数 ,形式为 k(||x-xc||)=exp{- ||x-xc||^2/(2*σ)^2) } 其中x_c为核函数中⼼,σ为函数的宽度参数 , 控制了函数的径向作⽤范围。
⼆、RBF神经⽹络 RBF神将⽹络是⼀种三层神经⽹络,其包括输⼊层、隐层、输出层。
从输⼊空间到隐层空间的变换是⾮线性的,⽽从隐层空间到输出层空间变换是线性的。
流图如下: RBF⽹络的基本思想是:⽤RBF作为隐单元的“基”构成隐含层空间,这样就可以将输⼊⽮量直接映射到隐空间,⽽不需要通过权连接。
当RBF的中⼼点确定以后,这种映射关系也就确定了。
⽽隐含层空间到输出空间的映射是线性的,即⽹络的输出是隐单元输出的线性加权和,此处的权即为⽹络可调参数。
其中,隐含层的作⽤是把向量从低维度的p映射到⾼维度的h,这样低维度线性不可分的情况到⾼维度就可以变得线性可分了,主要就是核函数的思想。
这样,⽹络由输⼊到输出的映射是⾮线性的,⽽⽹络输出对可调参数⽽⾔却⼜是线性的。
⽹络的权就可由线性⽅程组直接解出,从⽽⼤⼤加快学习速度并避免局部极⼩问题。
BP函数逼近

BP网络实现分类问题一,问题的提出根据感知器的的相关理论易知感知器善于解决线性可分问题,而不能解决XOR问题,所以引进了BP网络,并通过相关知识来解决分类问题。
反向传播网络(Back-Propagation Network,简称BP网络)是将W-H学习规则一般化,对非线性可微分函数进行权值训练的多层网络。
BP网络主要用于函数逼近,模式识别,分类,数据压缩。
在人工神经网络的实际应用中,80%~90%的人工神经网络模型是采用BP网络或它的变化形式,也是前行网络的核心部分,体现了人工神经网络最精华的部分。
一个具有r个输入和一个隐含层的神经网络模型结构如图所示下图所示是S型激活函数的图型,可以看到f ()是一个连续可微的函数,一阶导数存在。
对于多层网络,这种激活函数所划分的区域不再是线性划分,而是有一个非线性的超平面组成的区域。
它还可以严格利用梯度算法进行推算,他的权值修正的解析式十分明确,其算法被称为误差反向传播法,简称SP算法。
BP算法是有两部分组成:信息的正向传递与误差的反向传播。
在正向传播过程中,输入信息从输入经隐含层逐层计算传向输出层,每一层神经元的状态值影响下一层神经元的状态。
如果在输出层没有得到期望的输出,则计算输出层的误差变化值,然后转向反向传播,通过网络将误差信号沿原来的连接通路反传回来修改各层神经元的权值直至达到期望的目标。
BP网络分类问题原程序:function main()InDim=2; % 样本输入维数OutDim=3; % 样本输出维数% figure% colordef(gcf,'white')% echo off% clc% axis([-2,2,-2,2])% axis on% grid% xlabel('Input x');% ylabel('Input y');%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% line([-1 1],[1 1])% line([1 -1],[1 0])% line([-1 -1],[0 1])% line([-1 1],[-0.5 -0.5])% line([-1 1],[-1.5 -1.5])% line([1 1],[-0.5 -1.5])% line([-1 -1],[-0.5 -1.5]) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% hold on% sj=plot([-1 1],[1 1],[1 -1],[1 0],[-1 -1],[0 1]);% hold on% set(sj,'Color','r','LineWidth',4);% js=plot([-1 1],[-0.5 -0.5],'b',[-1 1],[-1.5 -1.5],'b',[1 1],... % [-0.5 -1.5],'b',[-1 -1],[-0.5 -1.5],'b');% hold on% set(js,'Color','b','LineWidth',4);%hold offfigurecolordef(gcf,'white')echo offclcaxis([-2,2,-2,2])axis ongridxlabel('Input x');ylabel('Input y');hold onsj=plot([-1 1],[1 1],[1 -1],[1 0],[-1 -1],[0 1]);hold onjs=plot([-1 1],[-0.5 -0.5],'b',[-1 1],[-1.5 -1.5],'b',[1 1],... [-0.5 -1.5],'b',[-1 -1],[-0.5 -1.5],'b');hold onset(sj,'Color','r','LineWidth',4);set(js,'Color','b','LineWidth',4);hold onSamNum=400; % 训练样本数rand('state', sum(100*clock))SamIn=(rand(2,SamNum)-0.5)*4; % 产生随机样本输入% 根据目标函数获得训练样本输入输出,并绘制样本SamOut=[];for i=1:SamNumSam=SamIn(:,i);x=Sam(1,1);y=Sam(2,1);if((x>-1)&(x<1))==1if((y>x/2+1/2)&(y<1))==1plot(x,y,'k+')class=[0 1 0]';elseif((y<-0.5)&(y>-1.5))==1plot(x,y,'ks')class=[0 0 1]';elseplot(x,y,'ko')class=[1 0 0]';endelseplot(x,y,'ko')class=[1 0 0]';endSamOut=[SamOut class];endHiddenUnitNum=10; % 隐节点数MaxEpochs=10000; % 最大训练次数lr=0.1; % 学习率E0=0.1; % 目标误差W1=0.2*rand(HiddenUnitNum,InDim)-0.1; % 输入层到隐层的初始权值B1=0.2*rand(HiddenUnitNum,1)-0.1; % 隐节点初始偏移W2=0.2*rand(OutDim,HiddenUnitNum)-0.1; % 隐层到输出层的初始权值B2=0.2*rand(OutDim,1)-0.1; % 输出层初始偏移W1Ex=[W1 B1]; % 输入层到隐层的初始权值扩展, 10*3W2Ex=[W2 B2]; % 隐层到输出层的初始权值, 3*11SamInEx=[SamIn' ones(SamNum,1)]'; % 样本输入扩展, 3*200 ErrHistory=[]; % 用于记录每次权值调整后的训练误差for i=1:MaxEpochs% 正向传播计算网络输出HiddenOut=logsig(W1Ex*SamInEx);HiddenOutEx=[HiddenOut' ones(SamNum, 1)]';NetworkOut=logsig(W2Ex*HiddenOutEx);% 停止学习判断Error=SamOut-NetworkOut;SSE=sumsqr(Error);fprintf('Times: %7.0f',i);fprintf(' SSE: %12.4f\n\n',SSE);% 记录每次权值调整后的训练误差ErrHistory=[ErrHistory SSE];if SSE<E0, break, end% 计算反向传播误差Delta2=Error.*NetworkOut.*(1-NetworkOut);Delta1=W2'*Delta2.*HiddenOut.*(1-HiddenOut);% 计算权值调节量dW2Ex=Delta2*HiddenOutEx';dW1Ex=Delta1*SamInEx';% 权值调节W1Ex=W1Ex+lr*dW1Ex;W2Ex=W2Ex+lr*dW2Ex;% 分离隐层到输出层的权值,以便后面使用(见 % 计算反向传播误差之第二行132)W2=W2Ex(:,1:HiddenUnitNum);endW1=W1Ex(:,1:InDim);B1=W1Ex(:,InDim+1);% W2=W2Ex(:,1:HiddenUnitNum);B2=W2Ex(:,1+HiddenUnitNum);% 绘制学习误差曲线figurehold ongrid[xx,Num]=size(ErrHistory);er111=plot(1:Num,ErrHistory,'k-');set(er111,'Color','b','LineWidth',1.5);% 根据目标函数获得训练样本输入输出,并绘制样本TestSamNum=10000; % 测试样本数%rand('state', sum(100*clock));TestSamIn=(rand(2,TestSamNum)-0.3)*4; % 产生随机样本输入TestHiddenOut=logsig(W1*TestSamIn+repmat(B1,1,TestSamNum)); TestNetworkOut=logsig(W2*TestHiddenOut+repmat(B2,1,TestSamNum));[Val,NNClass]=max(TestNetworkOut);TestTargetOut=[];for i=1:TestSamNumSam=TestSamIn(:,i);x=Sam(1,1);y=Sam(2,1);if((x>-1)&(x<1))==1if((y>x/2+1/2)&(y<1))==1TestTargetOut=[TestTargetOut 2];elseif((y<-0.5)&(y>-1.5))==1TestTargetOut=[TestTargetOut 3]; elseTestTargetOut=[TestTargetOut 1]; endelseTestTargetOut=[TestTargetOut 1]; endend%显示计算结果NNC1Flag=abs(NNClass-1)<0.1;NNC2Flag=abs(NNClass-2)<0.1;NNC3Flag=abs(NNClass-3)<0.1;TargetC1Flag=abs(TestTargetOut-1)<0.1; TargetC2Flag=abs(TestTargetOut-2)<0.1; TargetC3Flag=abs(TestTargetOut-3)<0.1;Target_C1_num=sum(TargetC1Flag); Target_C2_num=sum(TargetC2Flag); Target_C3_num=sum(TargetC3Flag);Test_C1_num=sum(NNC1Flag);Test_C2_num=sum(NNC2Flag);Test_C3_num=sum(NNC3Flag);Test_C1_C1=1.0*NNC1Flag*TargetC1Flag'; Test_C1_C2=1.0*NNC1Flag*TargetC2Flag'; Test_C1_C3=1.0*NNC1Flag*TargetC3Flag';Test_C2_C1=1.0*NNC2Flag*TargetC1Flag'; Test_C2_C2=1.0*NNC2Flag*TargetC2Flag'; Test_C2_C3=1.0*NNC2Flag*TargetC3Flag';Test_C3_C1=1.0*NNC3Flag*TargetC1Flag'; Test_C3_C2=1.0*NNC3Flag*TargetC2Flag'; Test_C3_C3=1.0*NNC3Flag*TargetC3Flag';Test_Correct=(Test_C1_C1+Test_C2_C2+Test_C3_C3)/TestSamNum;% 输出格式设计disp('///////////////////////////////////////////////////////////');fprintf('\n');disp(' 测试报告');fprintf('\n');fprintf('测试样本总数: %7.0f\n\n',TestSamNum);fprintf('第一类样本数: %7.0f\n',Target_C1_num);fprintf('第二类样本数: %7.0f\n',Target_C2_num);fprintf('第三类样本数: %7.0f\n\n',Target_C3_num);disp('= = = = = = = = = = = = = = = = = = = = = = = = = = = ');fprintf('\n');fprintf('第一类样本分布(C1=%4.0f)\n',Test_C1_num);fprintf(' C11=%4.0f',Test_C1_C1);fprintf(' C12=%4.0f',Test_C1_C2);fprintf(' C13=%4.0f\n\n',Test_C1_C3);fprintf('第二类样本分布(C2=%3.0f)\n',Test_C2_num);fprintf(' C21=%4.0f',Test_C2_C1);fprintf(' C22=%4.0f',Test_C2_C2);fprintf(' C23=%4.0f\n\n',Test_C2_C3);fprintf('第三类样本分布(C3=%3.0f)\n',Test_C3_num);fprintf(' C31=%4.0f',Test_C3_C1);fprintf(' C32=%4.0f',Test_C3_C2);fprintf(' C33=%4.0f\n\n',Test_C3_C3);fprintf('正确率:%6.4f\n\n',Test_Correct);disp('///////////////////////////////////////////////////////////');fprintf('\n\n');RBF网络对非线性函数的逼近问题Powell于1985年提出了多变量差值的径向基函数(Radial Basis Fuction,RBF)方法。
基于径向基函数神经网络的红外步态识别

f ) e( (= n 1 x p
1', I…N 2
( 7 )
向基 函数 的 中心 。/ 分 布 宽 度 。 a是 通 过 以 1为 基 准 归 一 化 处 理 傅 立 叶 描 述 子 得 到 )
厂( )选择其前3 阶频谱分量作为人体 轮廓特 征。 , n 0
22 下肢 关 节 角 度特 征 .
数神经 网络 由输入层 、 含层 和输 出层构成 , 图 1 隐 如 所
步态是一种具有 非侵犯性 、 以隐藏性 、 难 远距离识 别、 对系统分辨率要求低 等特 性的生物特征 。 步态识别 就是根 据人走路 的姿势进行 身份识别 .包括 步态轮廓 提取 、 态特征提取和分类 器设计等三个 部分 , 步 在视频
作 者 简介 : 建 辉 (9 3 , , 东 阳江 人 , 士研 究 生 , 教 授 , 究 方 向 为 模 式 识 别 谭 17 一) 男 广 博 副 研
现 计 机 21. o 代 算 013 0
输入层节点将矢量 信号 输入 到网络中 .
=
Hi( = ( () 1
) (f c ) 2 y_ ) + - y
响 了后续 的图像分割 、 特征提 取和识 别 。因此 , 为提高 红外步态识别 的效果 .提 出了基 于多分类器融合 的算
法 在分别基 于傅立叶描述 子和下肢关节角 度特征识 别 的基 础上 . 应用 径 向基 函数神 经 网络 ( r  ̄) 行 m3 N 进
输入 层 隐 含层 输 出层
多分类器融合 识别 .获得 了比单 分类器更加精 确的分
类效果
★ 金 项 目 : 家 自然科 学基 金 ( .0 7 1 2 基 国 No 6 3 3 ) 6
收 稿 日期 : 0 1 2 0 2 1 -0 - 9 修 稿 日期 :0 1 2 9 2 1 -0 -1
径向基神经网络学习算法(RBF)

Mezer chen 2018.5.9
RBF简介
1989年,Moody和Darken提出了一种由两个阶段组成的混 合学习过程的思路。
①无监督的自组织学习阶段 ②有监督学习阶段
其任务是用自组织聚类方法为隐 层节点的径向基函数确定合适的 数据中心,并根据各中心之间的 距离确定隐节点的扩展常数。 一般采用Duda和Hart1973年提 出的k-means聚类算法。
其任务是用有监督 学习算法训练输出 层权值,一般采用 梯度法进行训练。
RBF网络的工作原理
RBF网络特点
只有一个隐含层,且隐层神经元与输出层神经元的模型不同。 隐层节点激活函数为径向基函数,输出层节点激活函数为线 性函数。 隐层节点激活函数的净输入是输入向量与节点中心的距离 (范数)而非向量内积,且节点中心不可调。 隐层节点参数确定后,输出权值可通过解线性方程组得到。 隐层节点的非线性变换把线性不可分问题转化为线性可分问 题。 局部逼近网络(MLP是全局逼近网络),这意味着逼近一个输 入输出映射时,在相同逼近精度要求下,RBF所需的时间要 比MLP少。 具有唯一最佳逼近的特性,无局部极小。 合适的隐层节点数、节点中心和宽度不易确定。
RBF神经网络中心选取
① 从样本输入中选取中心
一般来说,样本密集的地方中心点可以适当多些,样本 稀疏的地方中心点可以少些;若数据本身是均匀分布的,
中心点也可以均匀分布。总之,选出的数据中心应具有代
表性。径向基函数的扩展常数是根据数据中心的散布而确 定的,为了避免每个径向基函数太尖或太平,一种选择方 法是将所有径向基函数的扩展常数设为
d max 2I
② 自组织选取中心法
常采用各种动态聚类算法对数据中心进行自组织选择,在
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
- 39 - 基于径向基函数神经网络的函数逼近 刘君尧1,邱 岚2 (1.深圳信息职业技术学院,广东 深圳 518029;2.中国移动广西公司,广西 南宁 530022)
【摘 要】在介绍了径向基函数神经网络原理的基础上,应用该网络进行函数逼近的实现,并探讨散步常数的选取对逼近效果的影响。 【关键词】径向基函数;神经网络;散布常数;函数逼近 【中图分类号】TP183 【文献标识码】A 【文章编号】1008-1151(2009)09-0039-01
(一)引言 径向基函数(Radial Basis Function)神经网络是由J.Moody和C.Darken于20世纪 80年代末提出的一种神经网络,径向基函数方法在某种程度上利用了多维空间中传统的严格插值法的研究成果。在神经网络的背景下,隐藏单元提供一个“函数”集,该函数集在输入模式向量扩展至隐层空间时为其构建一个任意的“基”,这个函数集中的函数就被称为径向基函数。目前,径向基函数多用于函数逼近和分类问题的研究。 (二)RBF神经网络模型 最基本的径向基函数神经网络包含三层,由一些感知单元组成的输入层、包含一个具有径向基函数神经元的隐层和一个具有线性神经原的输出层。 1.RBF径向基神经元模型 径向基函数神经元的传递函数有多种形式,最常用的形式是高斯函数(radbas)。采用高斯基函数,具备如下优点:①表示形式简单,即使对于多变量输入也不增加太多的复杂性;②径向对称;③光滑性好,任意阶导数存在;④由于该基函数表示简单且解析性好,因而便于进行理论分析。 -3-2-1012300.10.20.30.40.50.60.70.80.91径向基传递函数输入向量p 图1 径向基传递函数 径向基网络的神经元模型结构如图2所示。由该图可见,radbas的输入为输入矢量p和权值向量W之间的距离乘以阈值b。 图2 径向基函数神经元模型 2.RBF神经网络的结构 径向基函数网络包括输入层、隐层和输出层,如图3所示。输入信号传递到隐层,隐层有S1个神经元,节点函数为高斯函数;输出层有S2个神经元,节点函数一般采用简单的
线性函数。
图3 径向基函数网络基本结构图 (三)RBF神经网络应用于函数逼近 RBF神经网络在进行函数逼近的实现时,往往在网络设计之初并不指定隐层神经元的个数,而是在每一次针对样本集的训练中产生一个径向基神经元,并尽可能最大程度地降低误差,如果未达到精度要求,则继续增加神经元,直到满足精度要求或者达到最大神经元数目。这样避免了设计之初存在隐层神经元过少或者过多的问题。训练过程中,散布常数的选取非常重要。 1.函数逼近的RBF神经网络 已知输入向量P和输出向量T,通过构建径向基函数神经网络来进行曲线拟合,从而找到一个函数能够满足这21个数据点的输入/输出关系,绘制训练样本如图所示。 输入向量P:-1:0.1:1; 输出向量T:0.9500 0.5700 0.0300 -0.2800 -0.5800 -0.6200 -0.4800 -0.1400 0.2100 0.4700 0.5000 0.3800 0.1700 -0.1200 -0.3200 -0.4200 0.3500 -0.1300 0.2120 0.4200 0.5100; 应用MATLAB神经网络工具箱中的newrb()函数快速构建一个径向基函数网络,并且网络根据输入向量和期望值自动进行调整,从而实现函数逼近,预先设定均方差精度为0.0001,散布常数为1。实验结果如图4所示。可见,应用径向基函数进行函数逼近非常有效。
图4 网络输出与目标值比较 (下转第19页)
2009年第9期 大 众 科 技 No.9,2009(总第121期) DA ZHONG KE JI (Cumulatively No.121)
【收稿日期】2009-06-02 【作者简介】刘君尧(1979-),女,湖南汨罗人,深圳信息职业技术学院讲师,硕士研究生,研究方向为神经网络。 - 19 -
便,但价格要比前一种贵得多。对于嵌入式系统来说,采用后面一种模式的比较多,在软件方面只要注意取得笔迹,并在屏幕对应位置描点就好了,为了增加可视效果可以用彩色线条连接笔迹。
图3 输入法线程流程 2.写完一字的结束控制 由于汉字笔画多寡不同,写完一个字得把写字的信息通知识别系统。早期的识别系统在书写板上定义了一个“写完”键,书写者每写完一个字要用笔点一下这个键,现在个别系统仍用这种方法。它的缺点是给书写者增加了额外的操作负担,且与平时写字的习惯不一致。目前,大部分系统采用以下两种方法控制: 时钟控制:规定笔抬起后在多长时间内(例如0.5秒)不落笔就认为该字已写完。为了适应不同用户的书写速度,有的系统允许用户调整时钟参数。这种方法的优点是减少了用户的操作,但常常容易发生一个字的书写过程中由于某两个笔画之间停顿时间稍长而被强行肢解成两个字,造成误识。 笔的位置控制:在书写板上划分出几个方格书写区域,每格写一个字,几个格交替轮换使用。一个字写完后只要把笔移到另一格,即使不落笔也表明上一字已写完。这样,书写者可以快慢不受限制地在各个方格内轮流写字,这更接近于平常在方格稿纸上写字的习惯。也有的系统把以上两种方法结合起来进行控制。对于嵌入式系统来说,屏幕的面积是
非常有限的,手写识别软件一般都采用全屏幕手写的方式,这就是说嵌入式系统没有采用笔的位置控制写入完成的先天条件。 因此本文利用定时器,采用时钟控制方式。在处理鼠标消息的时候要特别注意细节问题。第一,鼠标按下以后的移动才记录到鼠标轨迹数组里面,在实现过程中本论文引入中间变量c来记录鼠标当前按下或松开状态;第二,定时器的控制也有讲究,汉字是分很多笔画的,每次抬起笔来与再次下笔都有一个时间间隔,每两个字之间这个间隔时间稍微长一些,可以通过这个长的时间间隔判断一个字是否写完,然后决定什么时候将笔迹送入识别核心进行识别。 程序将笔迹放到全局变量wTrace数组里面,当定时器消息到来的时候开始调用HWRecognize();识别核心进行手写识别,并将结果发消息到编辑框,完成手写笔迹的识别。 (五)结束语
本文介绍了将Microwindows移植到嵌入式平台实现界面,然后编写Microwindows程序实现手写输入法的整个过程,将手写识别的技术与免费的Microwindows结合,用最简单的方法实现了良好的人机界面。
【参考文献】 [1] 吴升艳,胡冰,岳春.Micro Windows 体系结构及应用程序接口[M].北京:清华大学出版社,2002:57-61. [2] 杨光友.嵌入式微处理器ARM7202触摸屏接口设计[J].微计算机信息,2004(4):75-76. [3] 王洪,易锡年,李仲阳.ARM HMS30C7202与触摸屏接口电路的设计[J].微计算机信息,2007(1):166-167. [4] 容观澳.计算机图像处理[M].北京:清华大学出版社, 2000:377-412. [5] M. Hamanaka, K. Yamada, and J. Tsukumo. On-Line Japanese Character Recognition Experiments by an Off-Line Method Based on Normalization-Cooperated Feature Extraction. In 2nd Int. Conference on Document Analysis and Recognition (ICDAR), Tsukuba, Japan,1993:204-207.
(上接第39页) 2.散布常数对RBF神经网络设计的影响 径向基函数神经网络设计过程径向基函数的散布常数选择极为重要。如果径向基函数神经元的散布常数过小,将会导致网络设计中需要产生更多的神经元数目,从而造成函数逼近的过适性,如图5所示。反之,如果径向基函数神经元的散布常数太大,使得网络设计中产生较少的神经元数目,将造成函数逼近的不适性,如图6所示。一般情况下,散布常数的选取取决于输入向量间的距离,要求是大于最小距离,小于最大距离。
图5 过适性:网络输出与目标 图6 不适性:网络输出与目标 值比较 散布常数为0.01 值比较 散布常数为100
(四)结论 作为目前应用最广泛最成功的神经网络之一,径向基函数神经网络主要应用于函数逼近和分类。本文使用该网络进行了非线性函数的逼近,并探讨散布常数对逼近效果的影响。RBF网络具有较好的布局逼近能力,在逼近能力和分类能力等方面均优于BP网络。目前使用RBF网络的主要困难在于网络隐节点的中心和标准参数的选择,以及如何选择合适的径向基函数并确定隐节点数,这些方面都有待我们进一步的探讨和研究。
【参考文献】 [1] Moody J,Darken C. Fast learning in networks of locally-tuned processing units[J].Neural Computation,1989,1(2):281-294. [2] 朱大奇,史慧.人工神经网络原理及应用[M].北京:科学出版社,2006. [3] 董长虹.Matlab神经网络与应用[M].北京:国防工业出版社,2005.