1、模糊神经网络模糊神经网络 “当系统的复杂性增加时,我们使它精确化的能力将减小。直到达到一个阈值,一旦超越它,复杂性和精确性将互相排斥。” 模糊数学创始人L.A.Zadeh教授互克性原理雨的大小风的强弱人的胖瘦年龄大小个子高低天气冷热 客观世界的模糊性反映在人脑中,便产生了概念上的模糊性;人巧妙地利用自已建立的模糊概念来进行判断、推理和控制,完成那些现代先进设备所不能完成的工作: 人们几乎可以同样地辨认胖子和瘦子,美丽和丑陋; 人们无须测量车速便可明智地躲过川流不息的车队; 一行草书虽然大异于整齐的印刷字体,却照样可以被人看懂。n在科学发展的今天,尤其在工程研究设计领域,模糊问题无法回避,要求对
2、数据进行定量分析。模糊概念定量分析1 1、模糊理论、模糊理论 1965年,Zadeh教授发表论文“模糊集合”(Fuzzy set),标志模糊数学的诞生。模糊集合的基本思想是把经典集合中的绝对隶属关系灵活化,即元素对“集合”的隶属度不再是局限于取0或1,而是可以取从0到1间的任一数值。用隶属函数(Membership Function)来刻画处于中间过渡的事物对差异双方所具有的倾向性。隶属度(Membership Degree)就表示元素隶属于集合的程度。n设X是论域,映射A(x):X0,1确定了一个X上的模糊子集A,A(x)称为A的隶属函数。的隶属度属于称为AxxAXx 1 , 0)(,Axx
3、A完全属于 1)(AxxA完全不属于 0)(AxxA部分属于 1)(0Xx)(xAA1例1,100 , 0XO年老,规定为: 1 , 0:XO1005055015000)(12xxxxO增大增加,随着)(xOx18 . 050 6090985. 0)90(O , 0)50(O8 . 0)60( O例2年轻,Y规定为: 1 , 0:XY100255251251)(12xxxxY减小增加,随着)(xYx102. 0)60(Y , 1)25(Y5 . 0)30( Y25 305 . 060隶属函数是模糊理论中的重要概念,实际应用中经常用到以下三类隶属函数:(1)S函数(偏大型隶属函数)注:(a、b为
4、待定参数)(2)Z函数(偏小型隶属函数)这种隶属函数可用于表示像年轻、冷、矮、淡等偏向小的一方的模糊现象。(3)函数(中间型隶属函数) 这种隶属函数可用于表示像中年、适中、平均等趋于中间的模糊现象。图a、b、c分别表示偏大型、偏小型和中间型n常用的模糊分布有矩形分布或半矩形分别、梯形或半梯形分布、抛物线型分布、正态分布、高斯分布、钟型函数等等。 (1)矩形或半矩形分布 (2)梯形或半梯形分布 (3)抛物线形分布 (4)正态分布 (5)高斯分布钟型函数三角形隶属函数三角形隶属函数梯形隶属函数梯形隶属函数高斯形隶属函数高斯形隶属函数钟型隶属函数钟型隶属函数xccxbbxaaxcbaxtrigbcx
5、cabax 0 0),;(xddxccxbbxaaxdcbaxTrapcdxdabax 0 1 0),(的宽度。决定的中心;代表MFMFcecxgcx ),;(2)(21bacxcbaxbell211),;(2 2、模糊系统(、模糊系统(Fussy SystemFussy System,简称,简称FSFS) 许多实际的应用系统很难用准确的术语来描述。如化学过程中的“温度很高”、“反应骤然加快”等。 模糊系统(也称模糊逻辑系统)就是以模糊规则为基础而具有模糊信息处理能力的动态模型。2.1 2.1 模糊系统的构成模糊系统的构成 模糊系统(也称模糊逻辑系统)就是以模糊规则为基础而具有模糊信息处理能力
6、的动态模型。它由四部分构成,如下图:(1 1)模糊化接口()模糊化接口(FuzzificationFuzzification)n模糊化接口主要将检测输入变量的精确值根据其模糊度划分和隶属度函数转换成合适的模糊值。 n为了尽量减少模糊规则数,可对于检测和控制精度要求高的变量划分多(一般5一7个)的模糊度,反之则划分少(一般3个)的模糊度。n当完成变量的模糊度划分后,需定义变量各模糊集的隶属函数。(2)知识库()知识库(knowledge base)u知识库中存贮着有关模糊控制器的一切知识,包含了具体应用领域中的知识和要求的控制目标,它们决定着模糊控制器的性能,是模糊控制器的核心。 u如专家经验等
7、。比如:If浑浊度 清,变化率 零,then洗涤时间 短 If浑浊度 较浊,变化率 小,then洗涤时间 标准(3)模糊推理机()模糊推理机( Fuzzy Inference Engine)n根据模糊逻辑法则把模糊规则库中的模糊“if-then”规则转换成某种映射。n模糊推理,这是模糊控制器的核心,模拟人基于模糊概念的推理能力。(4)反模糊化器()反模糊化器(Defuzzification) 把输出的模糊量转化为实际用于控制的清晰量。把输出的模糊量转化为实际用于控制的清晰量。 按照常见的形式,模糊推理系统可分为按照常见的形式,模糊推理系统可分为: : 纯模糊逻辑系统 高木-关野(Takagi-
8、Sugeno)模糊逻辑系统 其他模糊逻辑系统2.2 2.2 模糊系统的分类模糊系统的分类2.2.1 纯模糊逻辑系统n纯模糊逻辑系统仅由知识库和模糊推理机组成。其输入输出均是模糊集合。纯模糊逻辑系统结构图纯模糊逻辑系统结构图n纯模糊逻辑系统的纯模糊逻辑系统的优点优点:提供了一种量化专辑语言信息和在模糊逻辑原则下系统地利用这类语言信息的一般化模式;n缺点缺点:输入输出均为模糊集合,不易为绝大数工程系统所应用。2.2.2 高木-关野模糊系统n该系统是由日本学者Takagi和Sugeno提出的,系统输出为精确值,也称为T-S模糊系统或Sugeno系统。n举例:n典型的一阶Sugeno型模糊规则形式如下
9、: 其中:其中: x x和和y y为输入语言变量;为输入语言变量;A A和和B B为推理前件的模为推理前件的模糊集合;糊集合;z z为输出语言变量;为输出语言变量;p p、q q、k k为常数。为常数。 .x rqypzthenBisyandAisxIf2.3 2.3 自适应模糊系统自适应模糊系统 自适应模糊系统是指具有学习算法的模糊逻辑系统,其中模糊逻辑系统模糊逻辑系统是由服从模糊逻辑规则的一系列“If-then”规则构造的;学习算法学习算法则依靠数据信息来调整模糊逻辑系统的参数。 自适应模糊系统被认为是通过学习能自动产生被认为是通过学习能自动产生其模糊规则的模糊逻辑系统。其模糊规则的模糊逻
10、辑系统。 (1)从知识的表达方式来看模糊系统可以表达人的经验性知识,便于理解,而神经网络只能描述大量数据之间的复杂函数关系,难于理解。(2)从知识的存储方式来看模糊系统将知识存在规则集中,神经网络将知识存在权系数中,都具有分布存储的特点。2.4 2.4 模糊系统与神经网络的区别与联系模糊系统与神经网络的区别与联系(3)从知识的运用方式来看模糊系统和神经网络都具有并行处理的特点,模糊系统同时激活的规则不多,计算量小,而神经网络涉及的神经元很多,计算量大。(4)从知识的获取方式来看模糊系统的规则靠专家提供或设计,难于自动获取而神经网络的权系数可由输入输出样本中学习,无需人来设置。 将两者结合起来,
11、在处理大规模的模糊应用问题将两者结合起来,在处理大规模的模糊应用问题方面将表现出优良的效果。方面将表现出优良的效果。 3 3、模糊神经网络(、模糊神经网络(FNNFNN) 模糊神经网络模糊神经网络(Fuzzy Neural NetworkFuzzy Neural Network,简称,简称FNNFNN)将)将模糊系统和神经网络模糊系统和神经网络相结合,充分考虑了相结合,充分考虑了二者的互补性,集逻辑推理、语言计算、非线性动二者的互补性,集逻辑推理、语言计算、非线性动力学于一体,具有学习、联想、识别、自适应和模力学于一体,具有学习、联想、识别、自适应和模糊信息处理能力等功能。糊信息处理能力等功能
12、。 其本质就是其本质就是将常规的神经网络输入模糊输入信将常规的神经网络输入模糊输入信号和模糊权值。号和模糊权值。 l在模糊神经网络中,在模糊神经网络中,神经网络的输入、输出节点神经网络的输入、输出节点用来表示模糊系统的输入、输出信号,用来表示模糊系统的输入、输出信号,神经网络神经网络的隐含节点的隐含节点用来表示隶属函数和模糊规则,利用用来表示隶属函数和模糊规则,利用神经网络的并行处理能力使得模糊系统的推理能神经网络的并行处理能力使得模糊系统的推理能力大大提高。力大大提高。 模糊神经网络的三种形式:模糊神经网络的三种形式:逻辑模糊神经网络算术模糊神经网络(常规模糊神经网络)混合模糊神经网络3.1
13、 典型模糊神经网络的结构典型模糊神经网络的结构n由于模糊系统的规则集和隶属度函数等设计参数只能靠设计经验来选择,所以用神经网络的学习方法,根据输入输出的学习样本自动设计和调整模糊系统的设计参数,实现模糊系统的自学习和自适应功能。n结构上像神经网络,功能上是模糊系统,这是目前研究和应用最多的一类模糊神经网络。 该网络共分该网络共分5 5层,是根据模糊系统的工层,是根据模糊系统的工作过程来设计的,是神经网络实现的模糊作过程来设计的,是神经网络实现的模糊推理系统。第二层的隶属函数参数和三、推理系统。第二层的隶属函数参数和三、四层间及四、五层间的连接权是可以调整四层间及四、五层间的连接权是可以调整的。
14、的。典型的模糊神经网络结构第一层为输入层,为精确值。节点个数为输入变量的个数。典型的模糊神经网络结构第二层为输入变量的隶属函数层,实现输入变量的模糊化。21() 1,2,.,iiAOxim22() 1,2,.,iiBOximmmn典型的模糊神经网络结构第三层也称“与”层,该层节点个数为模糊规则数。该层每个节点只与第二层中前m个节点中的一个和后n个节点中的一个相连,共有m n个节点,也就是有m n条规则。典型的模糊神经网络结构第四层为“或”层,节点数为输出变量模糊度划分的个数q。该层与第三层的连接为全互连,连接权值为Wkj,其中k=1,2,q; j=1,2,mn.(权值代表了每条规则的置信度,训
15、练中可调。)典型的模糊神经网络结构第五层为清晰化层,节点数为输出变量的个数。该层与第四层的连接为全互连,该层将第四层各个节点的输出,转换为输出变量的精确值。3.2 模糊神经网络的学习算法模糊神经网络的学习算法n模糊神经网络无论作为逼近器,还是模式存储器,都是需要学习和优化权系数的。学习算法是模糊神经网络优化权系数的关键。模糊神经网络的学习算法,大多来自神经网络,如BP算法、RBF算法等。Matlab实现实现n自适应模糊神经推理系统,也称为基于神经网络的自适应模糊推理系统(Adaptive Network-based Fuzzy Inference System),简称ANFIS,1993年由学
16、者Jang Roger提出。n融合了神经网络的学习机制和模糊系统的语言推理能力等优点,弥补各自不足。同其他模糊神经系统相比,ANFIS具有便捷高效的特点。nANFIS使用一个给定的输入输出数据集,从而构造出一个模糊推理系统(支持T-S型系统),并用一个单独的反向传播算法或该算法与最小二乘法相结合的方法来完成对系统隶属函数参数的调节。这使得模糊系统可以从其建模数据中学习信息。 ANFISANFIS建模方法建模方法 首先假定一个参数化的模型结构,然后采集输入输出的数据,最后使用ANFIS训练FIS(fuzzy inference system)模型,根据选定的误差准则修正隶属函数参数,仿真给定的训
17、练数据。具体步骤:具体步骤:(1)将选取的训练样本和评价样本分别写入两个.dat文件。如trainData.dat和checkData,dat作为ANFIS的数据源,在ANFIS编辑器中载入这两个样本数据。 load trainData.dat load checkData.dat(2)初始化模糊推理系统FIS的参数,包括选择输入的隶属度函数,利用规则编辑器生成规则等等,作为训练初始的FIS。 fismat= genfis1(trainData)fismat = genfis1(data) fismat = genfis1(data,numMFs,inmftype, outmftype) Th
18、e default number of membership functions, numMFs, is 2; the default input membership function type is gbellmf; and the default output membership function type is linear. (3)根据载入ANFIS编辑器中的训练样本和评价样本数据,利用anfis函数对已初始化的FIS结构进行训练。 fismat,error,stepsize = anfis(trnData,fismat,n) 注:fismat是已初始化的FIS结构,n为训练次数。
19、(4)利用evalfis、plot等函数,对训练好的模糊神经 推理系统进行验证。 如 evalfis(x1,x2,,format); plot(error)例例1 1:设某水泥厂煤粉制备系统煤磨的输入输出特征数据设某水泥厂煤粉制备系统煤磨的输入输出特征数据见下表。利用表中样本建立一个模糊神经推理系统见下表。利用表中样本建立一个模糊神经推理系统。表:输入输出样本表:输入输出样本X1-X5X1-X5为煤磨机的特征参数,为煤磨机的特征参数,Y Y为煤磨机的状态(正常或异常)为煤磨机的状态(正常或异常)(1)将1-9作为训练样本,10-11作为评价样本。(2)将表中的训练样本写入trainData.d
20、at,作为ANFIS的数据源,并在ANFIS编辑器中载入样本数据:load trainData.dat(3)利用ANFIS自动生成一个FIS结构作为初始FIS。 in_format=genfis1(trainData)(4)对初始FIS(in_format)进行训练。对样本数据训练200次后得到一个训练好的ANFIS系统。 format1,error1,stepsize=anfis(trainData,in_format,200)(5)运用评价数据对训练好的模糊神经系统进行验证,观察仿真结果。 如input=58 16 11 793 3302;33 10 11 783 3114, evalfi
21、s(input,format1)例例2 2:anfisanfis函数逼近函数逼近n函数 分别在区间: 进行函数逼近。)2sin()(21221xxy 1 , 1,1 , 15 . 0 , 5 . 0,1 , 15 . 0 , 0,1 , 0212121xxxxxxx1,x2=meshgrid(-1:0.1:1,-1:0.05:1); % %将输入空间划分为将输入空间划分为4141* *2121个网格点个网格点y=0.5*(pi*(x1.2).*sin(2*pi*x2); % %求得函数输出值求得函数输出值x11=reshape(x1,861,1); % %将输入变量变为列向量将输入变量变为列向
22、量x12=reshape(x2,861,1); % %将输入变量变为列向量将输入变量变为列向量y1=reshape(y,861,1); % %将输出变量变为列向量将输出变量变为列向量trnData=x11(1:2:861) x12(1:2:861) y1(1:2:861); % %构造训练数据构造训练数据chkData=x11 x12 y1; % %构造检验数据构造检验数据numMFs=5; %定义隶属函数个数定义隶属函数个数mfType=gbellmf;epoch_n=20; % %定义隶属函数类型及训练次数定义隶属函数类型及训练次数in_fisMat=genfis1(trnData,num
23、MFs,mfType); % %采用采用genfis1genfis1函数由训练数据直接生成模糊推理系统函数由训练数据直接生成模糊推理系统参考代码参考代码out_fisMat=anfis(trnData,in_fisMat, epoch_n); % %训练模糊系统训练模糊系统y11=evalfis(chkData(:,1:2),out_fisMat); % %对训练好的模糊神经推理系统进行验证对训练好的模糊神经推理系统进行验证x111=reshape(x11,41,21);x112=reshape(x12,41,21);y111=reshape(y11,41,21); % %构造构造4141*
24、*2121向量矩阵向量矩阵subplot(221),mesh(x1,x2,y);title(期望输出);subplot(222),mesh(x111,x112,y111);title(实际输出);subplot(223),mesh(x1,x2,(y-y111);title(误差);x,mf=plotmf(in_fisMat,input,1);x,mf1=plotmf(out_fisMat,input,1);subplot(224),plot(x,mf,r-,x,mf1,k-);title(隶属度函数变化);训练后的模糊神经网络结构图训练后的模糊神经网络结构图 运行结果运行结果也可以:n运用运用
25、ANFISANFIS构建模型构建模型, ,首先在打开首先在打开MATLAB,MATLAB,并在命令行中键并在命令行中键入入“anfiseditanfisedit”, ,从而打开从而打开ANFISANFIS编辑器操作界面。编辑器操作界面。编辑FIS属性可以修改输入变量、输出变量的个数等。下一步根据实际要求定义各个量的属性。n“Edit”“Membership functions”进行输入输出变量隶属函数的定义。设置模糊控制规则库:“Edit”“rules”例3:洗衣机的模糊控制n洗衣机的主要被控参量为洗涤时间和水流强度,而影响这一输出参量的主要因子是被洗物的浑浊程度和浑浊性质,后者可用浑浊度的变
26、化率来描述。例如,在洗涤过程中,油污的浑浊度变化率小,泥污的浑浊度变化率大。n浑浊度及其变化率作为控制系统的输入参量,洗涤时间和水流强度作为系统的输出。n洗衣过程中输入和输出很难用一定的数学模型进行描述,很大程度上依赖操作者的经验。利用专家知识进行控制决策,往往容易实现优化控制。模糊控制器浑浊度浑浊度变化率洗涤时间确定洗涤时间的模糊推理框图输入量为水的浑浊度及其变化率,输出量为洗涤时间。浑浊度语言值取很清、清、较清、中、较浊、浊、很浊浑浊度变化率语言值取很小、小、较小、零、较大、大、很大洗涤时间描述输入、输出变量都具有模糊性,转换为模糊集合的隶属函数问题。n建立隶属函数,确定模糊集合。n根据专家经验,针对洗涤时间得到16条模糊规则,根据模糊规则,构建网络训练样本,进行网络训练。 比如:浑浊度 清,变化率 零,洗涤时间 短 浑浊度 较浊,变化率 小,洗涤时间 标准 训练结果