未来智库 > 神经网络论文 > 三种RBF神经网络比较分析
    关键词:神经网络;径向基函数;Matlab
    中图分类号:TP301文献标识码:A文章编号:16727800(2013)004003403
    0引言
    人工神经网络是一种模仿生物神经网络的结构和功能的数学模型或计算模型。现代神经网络是一种非线性统计性数据建模工具,常用来对输入和输出间复杂的关系进行建模,或用来探索数据的模式。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。该方法通常随机地选择输入数据集合的子集,很难确定足够的中心是多少,才能达到输入空间的适当取样。一般的方法就是选择数目相对大的输入向量为中心,这样可以保证有适当的输入空间取样。在网络训练以后,一些中心可能根据系统化的方式去除而不引起网络映射性能的显著退化。一旦中心选定,训练数据集的输入向量对应的网络输出可以计算为[1]:
    y(q)=∑N[]k=1wik(x(q),ck),q=1,2,…,Q (3)
    1.2基于梯度的RBF神经网络原理
    基于聚类的RBF神经网络可调参数仅为输出层的权值,该方法产生一个非常简单的训练算法。然而,为了实现输入的恰当取样必须从输入数据集合中选择较大数目的中心,这产生相对大的网络。基于梯度方法允许调整所有的3组网络参数(权值、RBF中心的位置、RBF中心的宽度)。具有更新隐藏层处理单元的中心位置及扩展参数的能力极大地提高RBF神经网络的性能。对于给定大小的隐藏层,与随机梯度方法一起训练的RBF神经网络超过一个固定中心的网络。其代价是增加训练算法的复杂度,增加了训练网络需要的时间[2]。网络更新方程式为:
    w(n+1)=w(n)-μw[]wJ(n)|w=w(n)(4)
    1.3基于正交最小二乘的RBF神经网络原理
    RBF神经网络设计的主要挑战是中心的选择。按随机方式选择,甚至使用随机梯度算法修改,通常导致一个相对大的网络。正交最小二乘(OLS)方法提供了用于中心选择的系统方法,显著地压缩神经网络的大小[3]。正交最小二乘法基于格拉姆-斯密特正交化算法,格拉姆-斯密特正交化的过程为:
    (1)设置第一个基向量等于矩阵M的第一列:
    w\-1=m\-1(5)
    (2)抽取第k个基向量,以便它与前面k-1个向量正交:
    aik=mTkwi1≤i≤k-1(6)
    wk=mk-∑k-1[]i=1aikwi(7)
    重复步骤(2),直到k=m。
    2三种RBF神经网络仿真实验
    仿真实验在Pentium(R)D CPU2.8、2G内存、Windows XP环境下用Matlab2008b进行。为了对这3种RBF神经网络进行比较分析,分别应用这3种方法对f(x)=sin(x)函数进行逼近,网络训练样本随机取\[-3.14,3.14\]之间的200个数据作为3种RBF网络的训练样本,测试样本取:\[-π: π/100: π\],目标误差:0.9。
    2.1三种RBF神经网络训练步骤
    2.1.1基于聚类的RBF神经网络的训练步骤
    (1)初始化聚类中心,隐层节点数定义为10,选择足够数量的中心以确保输入向量空间的适当取样[4]。
    ClusterNum = 10;
    Centers = SamIn(:,1:ClusterNum);
    (2)计算欧几里德距离。
    AllDistance = dist(Centers',SamIn(:,i));
    \[MinDist,Pos\] = min(AllDistance);
    (3)保存旧的聚类中心,重新计算聚类中心,判断新旧聚类中心是否一致,是则结束聚类。
    (4)计算各隐节点的扩展常数,以隐节点间的最小距离作为扩展常数。
    Spreads = Overlap*min(AllDistances)';
         (5)计算隐节点输出阵,输出权值、偏移。
    HiddenUnitOut=radbas(Distance./SpreadsMat);
    W2=W2Ex(:,1:ClusterNum);
    B2=W2Ex(:,ClusterNum+1);
    (6)RBF神经网络测试。
    Test = W2*TestHiddenUnitOut+B2;
    (7)输出结果。
    plot(TestSamIn,TestNNOut,'rv','MarkerSize',2);
    2.1.2基于梯度的RBF神经网络的训练步骤
    (1)选择RBF函数中心,隐层节点数定义为10,从\[-4,4\]之间随机选择中心数值,最大训练次数定义为500,学习系数定义为0.001。
    Center = 8*rand(InDim,UnitNum)-4;
    (2)计算中心距离。
    AllDist = dist(Center',SamIn);
    (3)获取训练误差,达到目标误差就退出。
    Error = SamOut-NetOut;
    (4)没达到目标误差,调整隐节点数据中心、扩展常数及输出权值。权值的梯度:
    WGrad = Error*UnitOut(i,:)';
    (5)如果网络已经收敛则停止,否则继续循环计算。
    (6)RBF神经网络测试、结果输出。
    2.1.3基于正交最小二乘的RBF神经网络的训练步骤
    (1)计算样本输入维数和最大允许隐节点数。
    \[InDim,MaxUnitNum\] = size(SamIn);
    (2)计算隐节点输出阵。
    dd = sum((SamOut.*SamOut)')';
    (3)计算投影矢量,获取最大投影的矢量,构成相应的数据中心。
    Angle=((SamOut*VectorsSelectFrom).^ 2) ./ Denominator;
    (4)用广义逆求广义输出权值,求训练误差,达到目标误差就退出。
    W2Ex = SamOut*pinv(HiddenUnitOutEx);
    ( 5)没达到目标误差,作GramSchmidt 正交化,调整计算各隐节点输出矢量与目标输出矢量的夹角平方值,继续循环,直到收敛停止。
    ProjectionLen = NewVector' * VectorsSelectFrom / (NewVector'* NewVector);
    (6)RBF神经网络测试、结果输出。
    2.2仿真结果对比分析
    3种RBF神经网络在相同输入样本数据,对正弦函数进行逼近所得到的结果如图2-图7。从图2-图4可以看出,3种RBF神经网络都能较好地对正弦函数进行逼近。其中,图2与图3、图4相比数据边缘效果略差。图5-图7显示3种网络训练收敛情况,图7收敛速度最快,图6收敛速度最慢。
    从表1中可以看出,3种RBF神经网络中,基于正交最小二乘的网络训练速度最快,所需的训练时间只是最慢的基于梯度网络的36%,基于聚类的网络所需训练时间是基于梯度网络的64%。从表1中也可以看出,基于梯度的神经网络训练时间长是因为网络所需的训练次数要远远超过其它两种方式。
    3结语
    通过使用Matlab对3种RBF神经网络在相同输入样本数据,对正弦函数进行逼近的仿真实验。对比分析结果表明:相对基于聚类、梯度的神经网络,基于正交最小二乘的神经网络不需要预先定义隐层节点数,并且所需的训练时间最短,网络收敛速度最快。
    参考文献:
    \[1\]FREDRIC M,HAM IVICA KOSTANIC.神经计算原理\[M\].北京:机械工业出版社,2007.
    [2]葛哲学,孙志强.神经网络理论与MATLAB R2007\[M\].北京:电子工业出版社,2007.
    [3]朱大奇,史慧.人工神经网络原理及应用\[M\].北京:科学出版社,2006.
    [4]朱明星,张德龙.RBF网络基函数中心选取算法的研究\[J\].安徽大学学报:自然科学版,2002(1).
    (责任编辑:余晓)
转载请注明来源。原文地址:https://www.7428.cn/vipzj5330/
 与本篇相关的热门内容: