模糊神经和模糊聚类及其MATLAB实现教程(PPT学习课件)_第1页
模糊神经和模糊聚类及其MATLAB实现教程(PPT学习课件)_第2页
模糊神经和模糊聚类及其MATLAB实现教程(PPT学习课件)_第3页
模糊神经和模糊聚类及其MATLAB实现教程(PPT学习课件)_第4页
模糊神经和模糊聚类及其MATLAB实现教程(PPT学习课件)_第5页
已阅读5页,还剩84页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1模糊神经和模糊聚类及其MATLAB实现

1基于标准模型的模糊神经网络2基于Takagi-Sugeno模型的模糊神经网络3自适应神经模糊系统及其MATLAB实现4模糊聚类及其MATLAB实现2

模糊神经网络控制在控制领域里目前已经成为一个研究热点,其原因在于两者之间的互补性质。神经网络和模糊系统均属于无模型的估计器和非线性动力学系统,也是一种处理不确定性、非线性和其它不确定问题(ill-posedproblem)的有力工具。但两者之间的特性却存在很大的差异。

3

模糊系统中知识的抽取和表达比较方便,它比较适合于表达那些模糊或定性的知识,其推理方式比较类似于人的思维模式。但是一般说来模糊系统缺乏自学习和自适应能力,要设计和实现模糊系统的自适应控制是比较困难的。而神经网络则可直接从样本中进行有效的学习,它具有并行计算、分布式信息存贮、容错能力强以及具备自适应学习功能等一系列优点。正是由于这些优点,神经网络的研究受到广泛的关注并吸引了许多研究工作者的兴趣。4

但一般说来,神经网络不适于表达基于规则的知识,因此在对神经网络进行训练时,由于不能很好地利用已有的经验知识,常常只能将初始权值取为零或随机数,从而增加了网络的训练时间或者陷入非要求的局部极值。总的来说,神经网络适合于处理非结构化信息,而模糊系统对处理结构化的知识更为有效。

5

基于上述讨论可以想见,若能将模糊逻辑与神经网络适当地结合起来,吸取两者的长处,则可组成比单独的神经网络系统或单独的模糊系统性能更好的系统。在MATLAB模糊逻辑工具箱中,提供了有关模糊逻辑推理的高级应用,包括自适应、模糊聚类、给定数据的模糊建模。下面首先介绍用神经网络来实现模糊系统的两种结构。

61基于标准模型的模糊神经网络

由前已知,在模糊系统中,模糊模型的表示主要有两种:一种是模糊规则的后件是输出量的某一模糊集合,称它为模糊系统的标准模型表示;另一种是模糊规则的后件是输入语言变量的函数,典型的情况是输入变量的线性组合,称它为模糊系统的Takagi—Sugeno模型。下面首先讨论基于标准模型的模糊神经网络。

71.1模糊系统的标准模型在前面已经介绍过,对于多输入多输出(MIMO)的模糊规则可以分解为多个多输入单输出(MISO)的模糊规则。因此不失一般性,下面只讨论MISO模糊系统。图6-1为一基于标准模型的MISO模糊系统的原理结构图。其中χRn,yR。如果该模糊系统的输出作用于一个控制对象,那么它的作用便是一个模糊逻辑控制器。否则,它可用于模糊逻辑决策系统、模糊逻辑诊断系统等其它方面。图6-1基于标准模型的模糊系统原理结构图

8

设输入向量X=[x1x2…xn]T,每个分量xi均为模糊语言变量,并设

T(xi)={Ai1,Ai2,…,Aimi}i=1,2,…,n其中,Aij(j=1,2,…,mi)是xi的第j个语言变量值,它是定义在论域Ui上的一个模糊集合。相应的隶属度函数为μAij(xi)(i=1,2,…,n;j=1,2,…,mi)。输出量y也为模糊语言变量且T(y)={B1,B2,…,Bmy}。其中Bj(j=1,2,…,my)是y的第j个语言变量值,它是定义在论域Uy上的模糊集合。相应的隶属度函数为μBj(y)。

9设描述输入输出关系的模糊规则为:Ri:如果x1是A1iandx2是A2i…andxn是Ani则y是Bi其中i=1,2,…,m,m表示规则总数,m<=m1m2…mn。若输入量采用单点模糊集合的模糊化方法,则对于给定的输入x,可以求得对于每条规则的适用度为

或通过模糊推理可得对于每一条模糊规则的输出量模糊集合Bi的隶属度函数为或10从而输出量总的模糊集合为

B=若采用加权平均的清晰化方法,则可求得输出的清晰化量为11由于计算上式的积分很麻烦,实际计算时通常用下面的近似公式其中是取最大值的点,它一般也就是隶属度函数的中心点。

显然==

从而输出量的表达式可变为其中121.2系统结构根据上面给出的模糊系统的模糊模型,可设计出如图6-2所示的模糊神经网络结构。图中所示为MIMO系统,它是上面所讨论的MISO情况的简单推广。

图6-2基于标准模型的模糊神经网络结构图

13第二层每个节点代表一个语言变量值,如NB,PS等。它的作用是计算各输入分量属于各语言变量值模糊集合的隶属度函数,其中i=1,2,…,n,j=1,2,…,mi。n是输入量的维数,mi是xi的模糊分割数。例如,若隶属函数采用高斯函数表示的铃形函数,则其中和分别表示隶属函数的中心和宽度。该层的节点总数。

图中第一层为输入层。该层的各个节点直接与输入向量的各分量xi连接,它起着将输入值x=[x1x2…xn]T传送到下一层的作用。该层的节点数N1=n。

14第三层的每个节点代表一条模糊规则,它的作用是用来匹配模糊规则的前件,计算出每条规则的适用度。即或其中该层的节点总数N3

=m。对于给定的输入,只有在输入点附近的那些语言变量值才有较大的隶属度值,远离输入点的语言变量值的隶属度或者很小(高斯隶属度函数)或者为0(三角形隶属度函数)。当隶属度函数很小(例如小于0.05)时近似取为0。因此在中只有少量节点输出非0,而多数节点的输出为0,这一点与前面介绍的局部逼近网络是类似的。

15第四层的节点数与第三层相同,即N4=N3=m,它所实现的是归一化计算,即,第五层是输出层,它所实现的是清晰化计算,即,i=1,2,…,r与前面所给出的标准模糊模型的清晰化计算相比较,这里的相当于yi的第j个语言值隶属函数的中心值,上式写成向量形式则为其中161.3学习算法

假设各输入分量的模糊分割数是预先确定的,那么需要学习的参数主要是最后一层的连接权,以及第二层的隶属度函数的中心值和宽度。上面所给出的模糊神经网络本质上也是一种多层前馈网络,所以可以仿照BP网络用误差反传的方法来设计调整参数的学习算法。为了导出误差反传的迭代算法,需要对每个神经元的输入输出关系加以形式化的描述。

17图6-3单个神经元节点的基本结构图

设图6-3表示模糊神经网络中第q层第j个节点。其中,节点的纯输入节点的输出。对于一般的神经元节点,通常有而对于图6-2所示的模糊神经网络,其神经元节点的输入输出函数则具有较为特殊的形式,下面具体给出它的每一层节点函数。

18第一层:

第二层:

第三层:或者

19第四层:

第五层:

设取误差代价函数为其中和分别表示期望输出和实际输出。下面给出误差反传算法来计算和,然后利用一阶梯度寻优算法来调节和。

20首先计算进而求得再计算21

当采用取小运算时,则当是第k个规则节点输入的最小值时

当采用相乘运算时,则当是第k个规则节点的一个输入时否则否则22

从而可得所求一阶梯度为

在求得所需的一阶梯度后,最后可给出参数调整的学习算法为其中>0为学习率。23

该模糊神经网络也和BP网络及RBF网络等一样,本质上也是实现从输入到输出的非线性映射。它和BP网络一样,结构上都是多层前馈网,学习算法都是通过误差反传的方法;它和RBF网络等一样,都属于局部逼近网络。

242基于Takagi—Sugeno模型的模糊神经系统在前面对模糊推理的讨论中,分别介绍了

Mamdani型模糊推理和

Takagi-Sugeno型模糊推理。MATLAB模糊逻辑工具箱同时提供对这两种模糊推理方法的支持。其中对Sugeno型模糊推理仅支持一阶规则,即规则的输出为输入变量的线性组合。

25Mamdani型模糊推理和Takagi-Sugeno型模糊推理各有优缺点。对Mamdani型模糊推理,由于其规则的形式符合人们思维和语言表达的习惯,因而能够方便地表达人类的知识,但存在计算复杂、不利于数学分析的缺点。而Takagi-Sugeno型模糊推理则具有计算简单,利于数学分析的优点,且易于和PID控制方法以及优化、自适应方法结合,从而实现具有优化与自适应能力的控制器或模糊建模工具。

26

根据Sugeno型模糊推理的特点,有关学者将其与神经网络结合,用于构造具有自适应学习能力的神经模糊系统。模糊逻辑与神经网络的结合,是近年来计算智能学科的一个重要研究方向。两者结合形成的模糊神经网络同时具有模糊逻辑易于表达人类知识和神经网络的分布式信息存储以及学习能力的优点,对于复杂系统的建模和控制提供了有效的工具。

272.1模糊系统的Takagi-Sugeno模型由于MIMO的模糊规则可分解为多个MISO模糊规则,因此下面也只讨论MISO模糊系统的模型。设输入向量x=[x1x2…xn]T,每个分量xi均为模糊语言变量。并设

T(xi)={Ai1,Ai2,…,Aimi}i=1,2,…,nTakagi和Sugeno所提出的模糊规则后件是输入变量的线性组合,即Rj:如果是and是是,则

其中。

28若输入量采用单点模糊集合的模糊化方法,则对于给定的输入x,可以求得对于每条规则的适应度为

或模糊系统的输出量为每条规则的输出量的加权平均,即其中

292.2系统结构根据上面给出的模糊模型,可以设计出如图6-4所示的模糊神经网络结构。图中所示为MIMO系统,它是上面讨论的MISO系统的简单推广。图6-430

由图可见,该网络由前件网络和后件网络两部分组成,前件网络用来匹配模糊规则的前件,后件网络用来产生模糊规则的后件。

(1)前件网络前件网络由4层组成。第一层为输入层。它的每个节点直接与输入向量的各分量连接,它起着将输入值x=[x1x2…xn]T传送到下一层的作用。该层的节点数N1=n。31

第二层每个节点代表一个语言变量值,如NM,PS等。它的作用是计算各输入分量属于各语言变量值模糊集合的隶属度后函数,其中。n是输入量的维数,是的模糊分割数。例如,若隶属函数采用高斯函数表示的铃形函数,则其中和分别表示隶属函数的中心和宽度。该层的节点总数。

32

第三层的每个节点代表一条模糊规则,它的作用是用来匹配模糊规则的前件,计算出每条规则的适应度,即或

该层的节点总数N3=m。对于给定的输入,只有在输入点附近的语言变量值才有较大的隶属度值,远离输入点的语言变量值的隶属度或者很小(高斯隶属度函数)或者为0(三角形隶属度函数)。当隶属度函数很小(例如小于0.05)时近似取为0。因此在中只有少量节点输出非0,而多数节点的输出为0,这一点类似于局部逼近网络。其中33

第四层的节点数与第三层相同,N4=N3=m,它所实现的是归一化计算,即

34(2)后件网络后件网络由r个结构相同的并列子网络所组成,每个子网络产生一个输出量。子网络的第一层是输入层,它将输入变量传送到第二层。输入层中第0个节点的输入值,它的作用是提供模糊规则后件中的常数项。子网络的第二层共有m各节点,每个节点代表一条规则,该层的作用是计算每一条规则的后件,即

35

子网络的第三层是计算系统的输出,即

可见,是各规则后件的加权和,加权系数为各模糊规则的经归一化的使用度,也即前件网络的输出用作后件网络第三层的连接权值。至此,图2-49所示的神经网络完全实现了Takagi-Sugeno的模糊系统模型。

362.3学习方法假设各输入分量的模糊分割数是预先确定的,那么需要学习的参数主要是后件网络的连接权()以及前件网络第二层各节点隶属函数的中心值及宽度。设取误差代价函数为

其中

和分别表示期望输出和实际输出。

37

下面首先给出参数的学习算法。其中。下面讨论及的学习问题,这时可将参数固定。从而图6-4可以简化为如图6-5所示。这时每条规则的后件在简化结构中变成了最后一层的连接权。

38图6-5基于Takagi-Sugeno模型的模糊神经网络简化结构图39比较图6-5与图6-2可以发现,该简化结构与基于标准模型的模糊神经网络具有完全相同的结构,这时只需令最后一层的连接权,则完全可以借用前面已得的结果,即

40其中当and采用取小运算时,则当是第k个规则节点输入的最小值时否则当and采用相乘运算时,则当是第k个规则节点的一个输入时否则41最后求得其中

为学习率,

42

对于上面介绍的两种模糊神经网络,当给定一个输入时网络(或前件网络)第三层的中只有少量元素非0,其余大部分元素均为0。因而,从x到的映射与RBF神经网络的非线性映射非常类似。所以该模糊神经网络也是局部逼近网络。其中第二层的隶属度函数类似于基函数。

43

模糊神经网络虽然也是局部逼近网络,但是它是按照模糊系统模型建立的,网络中的各个节点及所有参数均有明显的物理意义,因此这些参数的初值可以根据系统的模糊或定性的知识来加以确定,然后利用上述的学习算法可以很快收敛到要求的输入输出关系,这是模糊神经网络比前面单纯的神经网络的优点所在。同时由于它具有神经网络的结构,因而参数的学习和调整比较容易,这是它比单纯的模糊逻辑系统的优点所在。

44

基于Takagi-Sugeno模型的模糊神经网络可以从另一角度来认识它的输入输出映射关系,若各输入分量的分割是精确的,即相当于隶属度函数为互相拼接的超矩形函数,则网络的输出相当于是原光滑函数的分段线性近似,即相当于用许多块超平面来拟合一个光滑曲面。网络中的参数便是这些超平面方程的参数,这样只有当分割越精细时,拟合才能越准确。而实际上这里的模糊分割互相之间是有重叠的,因此即使模糊分割数不多,也能获得光滑和准确的曲面拟合。

453自适应神经模糊系统及其MATLAB实现

尽管模糊推理系统的设计(隶属度函数及模糊规则的建立)不主要依靠对象的模型,但是它却相当依靠专家或操作人员的经验和知识。若缺乏这样的经验,则很难期望它能获得满意的控制效果。神经网络系统的一大特点就是它的自学习功能,将这种自学习的方法应用于对模型特征的分析与建模上,产生了自适应的神经网络技术。这种自适应的神经网络技术对于模糊系统的模型建立(模糊规则库的建立)是非常有效的工具。而自适应神经模糊系统的就是基于数据的建模方法,该系统中的模糊隶属度函数及模糊规则是通过对大量已知数据的学习得到的,而不是基于经验或是直觉任意给定的,这对于那些特性还不被人们所完全了解或者特性非常复杂的系统尤为重要。46

在MATLAB模糊逻辑工具箱中,提供了有关对模糊神经系统建模和初始化模糊推理系统的函数,如表6-1所示。表6-1模糊神经系统函数

函数名功能anfis()自适应神经模糊系统的建模函数genfis1()采用网格分割方式生成模糊推理系统函数473.1采用网格分割方式生成模糊推理系统函数函数genfis1()可为训练自适应神经模糊系统(AdaptiveNeuro-FuzzyInferenceSystem,ANFIS)产生Takagi-Sugeno型模糊系统(FuzzyInferenceSystem,FIS)结构的初值(隶属度函数参数的初值),它采用网格分割的方式根据给定数据集生成一个模糊推理系统,一般与函数anfis()配合使用。由genfisl()生成的模糊推理系统的输入和属度函数的类型和数目可以在使用时指定,也可以采用缺省值。该函数的调用格式为:fisMat=genfisl(data)fisMat=genfisl(data,numMFs,inMFType,outMFType)48例6-1利用函数genfis1()产生一个两输入单输出的模糊推理系统。其中要求输入隶属度函数分别为型(pimf)和三角型(trimf),分割数分别为3和7。解根据以下MATLAB程序,可得由函数genfis1()生成的ANFIS系统训练前的初始隶属度函数曲线,如图6-6所示。

%ex6_1.m493.2自适应神经模糊系统的建模函数在MATLAB模糊逻辑工具箱中,提供了对基于Takagi-Sugeno型模型的自适应神经模糊推理系统ANFIS的建模方法,该模糊推理系统利用BP反向传播算法和最小二乘算法来完成对输入/输出数据对的建模。该系统为模糊建模的过程,提供了一种能够从数据集中提取相应信息(模糊规则)的学习方法。这种学习与神经网络的学习方法非常相似,通过学习能够有效地计算出隶属度函数的最佳参数,使得设计出来的Takagi-Sugeno型模糊推理系统能够最好地模拟出希望的或是实际的输入输出关系。50

相应的函数为anfis(),该函数的输出为一个三维或五维向量。当未指定检验数据时,输出向量为三维。anfis()支持采用输出加权平均的一阶或零阶Takagi-Sugeno型模糊推理,该函数的调用格式为:[Fis,error,stepsize]=anfis(trnData)[Fis,error,stepsize]=anfis(trnData,initFis)[Fis,error,stepsize]=anfis(trnData,initFis,trnOpt,dispOpt)[Fis,error,stepsize,chkFis,chkEr]=anfis(trnData,initFis,trnOpt,dispOpt,chkData)[Fis,error,stepsize,chkFis,chkEr]=anfis(trnData,initFis,trnOpt,dispOpt,chkData,optMethod)51

例6-2建立一个自适应神经模糊推理系统对下列非线性函数进行逼近。解根据以下MATLAB程序,可得如图6-7所示的函数实际输出和模糊推理系统输出的曲线。%ex6_2.m52

从图6-7所示的结果曲线,可以看出,经过训练以后的模糊系统基本能够模拟原函数。如果将隶属度函数改为3条,这时由于系统的结构不足以反映数据的复杂特性,因此结果要差些。利用模糊推理编辑器(fuzzy)或第5章介绍的一些命令,可查看训练后的模糊系统out_fisMat的组成。例如,在MATLAB工作窗口中利用命令:fuzzy(out_fisMat),便可发现该系统输入的隶属度函数是5条高斯函数,输出的是5条线性的函数。533.3自适应神经模糊推理系统在建模中的应用模糊建模是指利用模糊系统逼近未知的非线性动态,从而逼近于整个系统。神经在未知非线性的建模方面已显示出良好的性能,同样以模糊逻辑系统为基础的模糊模型也可用于非线性动态的建模,并显示出优良的性能。例6-3利用模糊推理系统对下列非线性函数进行逼近。解利用以下MATLAB程序,可得如下均方根误差和如图6-8所示的曲线。%ex6_3.m计算结果:trnRMSE1=0.0100trnRMSE2=0.010054图6-8信号逼近的ANFIS训练结果55

在这个例子中,不但提供了训练数据,而且提供了检验数据,两种数据在输入空间均匀采样,如图6-8(1)所示。图6-8(2)显示了由函数genfisl()根据训练数据生成的模糊推理系统的初始隶属度函数曲线。从曲线可以看出,函数genfisl()按照均匀覆盖输入空间的原则构造了训练前模糊推理系统的初始隶属度函数。系统训练后模糊推理系统的隶属度函数曲线,如图6-8(3)所示。从图中可以看出,经过学习后的模糊推理系统提取了训练数据的局部特征。图6-8(4)显示了原函数的输出与神经模糊推理系统的输出曲线。神经模糊推理系统训练数据和检验数据的均方根误差均为0.01,这是由于这两种数据在整个输入空间均匀分布的必然结果。另外如果在MATLAB工作窗口中再此利用以下命令,便可得到训练数据和检验数据的误差变化过程曲线,可以看出它们非常接近,几乎重合。>>figure;plot(error1);holdon;plot(error2,'r')56

例6-4非线性系统为其中,f(.)为未知非线性函数。利用模糊推理系统对非线性函数f(.)进行逼近。假设非线性函数f(.)为如例6-3所述的下列函数

解非线性函数的模糊建模可利用例6-3所建系统文件ex6_3.fis,在此基础上对整个系统进行仿真的MATLAB程序如下,函数和系统的实际输出与逼近输出曲线如图6-9所示。

%ex6_4.m57图6-9函数和系统的实际输出与逼近输出曲线从图6-9所示的函数和系统的实际输出与逼近输出曲线可以看出,模型输出非常逼近于实际输出。583.4自适应神经模糊推理系统的图形用户界面编辑器

为了进一步方便用户,在模糊逻辑工具箱中提供了建立自适应神经模糊推理系统的图形界面工具,该工具以交互式图形界面的形式集成了建立、训练和测试神经模糊推理系统等各种功能。要启动该工具,只需在MATLAB命令窗口中键入命令:anfisedit,即可得到如图6-14所示的图形窗口界面。59

自适应神经模糊推理系统图形界面中菜单项File、Edit和View的功能与模糊推理系统图形界面中的菜单项相同。另外,在该图形窗口界面中包括了以下几种主要功能:图6-10anfis的图形窗口界面601.加载数据通过界面上的检查框可以选择加载数据的类型,如训练数据、测试数据和演示数据等。为方便说明,这里选择加载演示数据。加载了演示数据的图形窗口显示如图6-11所示。在图6-11的上部显示了数据的变化情况。

图6-11加载演示数据的anfis的图形窗口界面

61

在图6-12的对话框中,要求输入的信息包括输入语言变量隶属度函数的数目、类型和输出隶属度函数的类型等。选择[OK]后自动生成一个以anfis命名的网络结构。

2.生成模糊推理系统在生成模糊推理系统时,也可通过检查枢选择模糊推理系统的生成方法,如网格分割法(Gridpartition)、减法聚类方法(Sub.clustering)等。当用鼠标单击生成模糊推理系统的功能按钮时,系统会弹出一个对话框,要求指定模糊推理系统的有关信息,如图6-12所示。图6-12模糊推理系统的对话框62图6-13anfis的训练后的图形界面3.训练神经模糊推理系统在进行神经模糊推理系统的训练前,可以指定优化的方法以及有关的优化控制参数。对于前面加载的演示数据,在进行anfis的训练后,窗口的上部显示了优化过程中误差的变化情况,如图6-13所示。

634.测试anfis

在anfis的图形界面中,利用右上角的[Structure]按钮可以方便地查看训练得到的anfis的网络结构。对应上述演示数据的神经网络结构如图6-14所示。

图6-14anfis的神经网络结构64图6-15anfis的测试结果

在完成对anfis的训练后,可以进一步对其进行测试,测试数据可以被指定为训练数据或另外提供的训练数据。测试完成后将在图形界面的上部显示测试的结果,即anfis输出数据与测试数据的比较,如图6-15所示。

65例6-5

利用自适应神经模糊推理系统的图形界面编辑器(AnfisEditor),对例6-3所述的下列非线性函数进行逼近。解①首先利用以下MATLAB程序,产生训练数据和检验数据。%ex6_5.mnumPts=51;x=linspace(-1,1,numPts);y=0.5*sin(pi*x)+0.3*sin(3*pi*x)+0.1*sin(5*pi*x);data=[x'y'];trnData=data(1:2:numPts,:);chkData=data(2:2:numPts,:);66②启动自适应神经模糊推理系统的图形界面编辑器,并加载数据在MATLAB工作空间,利用anfisedit命令启动自适应神经模糊推理系统编辑器,并分别加入训练数据trnData和检验数据chkData,如图6-17所示。674模糊聚类及其MATLAB实现

对给定的数据,聚类分析是许多分类和系统建模问题的基础。聚类的目的是从大量的数据中抽取固有的特征,从而获得系统行为的简洁表示。常见的聚类方法有均值聚类、分层聚类和模糊聚类方法等。

68

在MATLAB模糊逻辑工具箱中提供了对两种聚类方法的支持,一种是模糊C-均值聚类方法,另一种是减聚类方法。有关函数如表6-2所示。表6-2模糊聚类函数

函数名功能fcm()模糊C-均值聚类函数subclust()减法聚类函数genfis2()基于减法聚类的模糊推理系统建模函数694.1模糊C-均值聚类函数在模糊C-均值聚类方法中,每一个数据点按照一定的模糊隶属度隶属于某一聚类中心。这一聚类技术作为对传统聚类技术的改进,JimBezdek于1981年提出。该方法首先随机选取若干聚类中心,所有数据点都被赋予对聚类中心一定的模糊隶属度,然后通过迭代方法不断修正聚类中心,迭代过程以极小化所有数据点到各个聚类中心的距离与隶属度值的加权和为优化目标。

70

模糊C-均值聚类的输出不是一个模糊推理系统,而是聚类中心的列表以及每个数据点对各个聚类中心的隶属度值。该输出能够被进一步用来建立模糊推理系统。对应模糊C-均值聚类方法的函数为fcm(),该函数的调用格式为[center,U,obj_fcn]=fcm(data,cluster_n)[center,U,obj_fcn]=fcm(data,cluster_n,options)71

尽管函数fcm()的输出不是一个模糊推理系统,而是聚类中心的列表以及每个数据点对各个聚类中心的隶属度值,但该函数的输出能够进一步用来建立模糊推理系统。72

例6-6利用模糊C-均值聚类方法将一组随机给定的二维数据分为三类。

解利用以下MATLAB程序,可产生如图6-26所示的一组随机给定的二维数据,其模糊聚类结果,如图6-27所示。%ex6_m图6-26随机给定的二维数据图6-27模糊C-均值分类结果

734.2减法聚类函数减法聚类方法将每个数据点作为可能的聚类中心,并根据各个数据点周围的数据点密度来计算该点作为聚类中心的可能性。被选为聚类中心的数据点周围具有最高的数据点密度,同时该数据点附近的数据点被排除作为聚类中心的可能性;在选除第一个聚类中心后,从剩余的可能作为聚类中心的数据点中,继续采用类似的方法选择下一个聚类中心。这一过程一直持续到所有剩余的数据点作为聚类中心的可能性低于某一阀值时。在MATLAB模糊逻辑工具箱中,提供了函数subclust()来完成减法聚类的功能。该函数的调用格式为[C,S]=subclust(X,radii,XBounds,options)74例如:XBounds=[-10-5;105]指定了第一位数据在[-1010]之间的取值将被映射到[01]区间中;而第二维数据相应的区间范围为[-55]。如果Xbounds为空或者没有指定Xbounds,则缺省的映射范围为所有数据点的最小和最大取值构成的区间;参数向量options用于指定聚类算法的有关参数,其定义如下:options(1)=squshFactor为squshFactor用于与聚类中心的影响范围radii相乘来决定某一聚类中心邻近的哪些数据点被排除作为聚类中心的可能性,缺省值为1.25;options(2)=acceptRatio为acceptRatio用于指定在选出第一个聚类中心后,只有某个数据点作为聚类中心的可能性值高于第一个聚类中心可能性值的一定比例(由acceptRatio的大小决定)才能被作为新的聚类中心,缺省值为0.5;

75options(3)=rejectRatio为rejectRatio用于指定在选出第一个聚类中心后,只有某个数据点作为聚类中心的可能性值低于第一个聚类中心可能性值的一定比例(由rejectRatio的大小决定)才能被排除作为聚类中心的可能性,其缺省值为0.15;options(4)=verbose为如果verbose为非零值,则聚类过程的有关信息将显示到窗口中,其缺省值为0;函数的返回值C为聚类中心向量,向量S包含了数据点每一维聚类中心的影响范围。例:>>[C,S]=subclust(X,0.5)>>[C,S]=subclust(X,[0.50.250.3],[],[2.00.80.7])76

例6-7利用模糊减法聚类方法将一组随机给定的二维数据分为两类。

解利用以下MATLAB程序,得图6-28所示的模糊聚类结果。%ex6_7.m

在图6-28所示的模糊聚类结果中,模糊聚类的中心用圆圈表示。当radii=0.3时,产生了12个模糊聚类中心;当radii=0.5时,仅产生了6个模糊聚类中心。

图6-28模糊减法分类结果774.3基于减法聚类的模糊推理系统建模函数在减法聚类的基础上可以进行模糊推理系统的建模,模糊逻辑工具箱提供的函数genfis2()能够实现这一功能。函数genfis2()是一种快速的单次算法,不同于那些基于叠代过程的算法,它并不进行那些反复的优化过程。该函数的调用格式为:fisMat=genfis2(Xin,Xout,radii,Xbounds,options)78例如以下MATLAB命令>>fisMat=genfis2(Xin,Xout,0.5)或>>fisMat=genfis2(Xin,Xout,[0.50.250.3])>>fisMat=genfis2(Xin,Xout,0.5,[-10-50;10520])

例6-8利用MATLAB模糊逻辑工具箱中,提供的一个程序文件tripdata.m,对一个地区的汽车流量和当地的人口状况关系采用模糊减法聚类的方法,进行模糊系统的建模。

79

解程序tripdata.m中用来分析和建模的数据来源于NewCastleCounty和Delaware的100个选择地区的交通分析。数据考虑了五个人口统计学上的因素:人口数、住户数、总共拥有的车辆数、平均家庭的收入数目以及总共的就业职位数目。由于各个数据之间的量级不同,而且对交通流量影响的程度不同,为了减小计算时截断误差带来的影响,将各种初始的统计数据进行了一定比例的变换处理。该程序可以产生100个数据点的一组输入/输出数据,其中75个数据作为训练数据(输入数据和输出数据分别存放在矩阵datin和datout中)。另外的25个数据作为检验数据(输入数据和输出数据分别存放在矩阵chkdatin和chkdatout中),它与训练数据一起来确认模型的有效性。MATLAB程序如下%ex6_8.m80结果显示:trnRMSE=0.5276trnRMSE1=0.3277chkRMSE=0.6179chkRMSE1=0.5985minChkErr=0.5834n=52图6-29通过模糊聚类产生的模糊模型的结果

由以上结果知,训练后的模型对于用来训练的数据,均方根误差为0.3277,它明显小于神经模糊推理系统在训练前的均方根误差由0.5276。但训练前后的模型对于检验数据的均方根误差变化不大。81

以上程序执行后,还可得如图6-29所示的模糊聚类产生的模糊模型的结果和如图6-30所示的训练数据和检验数据在训练过程中的误差变化曲线。其中图6-29的上图为输入数据的分布曲线;下图为实际输出与神经模糊推理系统在训练后模型输出的数据分布曲线,由此可见模型输出与实际系统的输出比较逼近。图6-30训练数据和检验数据的误差变化曲线82

由图6-30所示的误差变化曲线可以看出,在训练到第50步左右的时候,检验数据的误差(0.5834)是最小的。继续训练时,该误差反而增加。而训练数据的误差在第50步以后减小的速度也明显变慢,这表明系统在第50步训练的结果可能是最符合实际情况的。一般在系统已经与实际比较符合的情况下,继续对系统采用训练数据进行训练优化,就可能出现过训练的情况。这样得到的系统往往失去了应有的一些概括性而单纯追求训练数据的误差减小,这样的系统在使用时效果和性能往往不如那些具有更广泛的适应性但相对部分数据误差稍大的系统。834.4模糊C-均值和减法聚类的图形用户界面GUIMATLAB的模糊工具箱也提供了聚类的图形用户界面工具来实现函数subclust()和fcm()以及它们的所有参数选项。在MATLAB命令窗口中输入命令:findcluster,便可打开如图6-31所示的模糊聚类图形窗口界面。图6-31模糊聚类图形用户界面84

在图6-31所示的窗口中,右上方的按钮[LoadData…]可以选择具有.dat后缀的数据文件进行装载数据操作;下拉Method选择框,可以选择使用模糊C-均值聚类(fcm)或减法聚类(subclustiv)算法;其它选择框的功能随着Method算法选择fcm或su

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论