自适应模糊神经网络MATLAB代码.doc_第1页
自适应模糊神经网络MATLAB代码.doc_第2页
自适应模糊神经网络MATLAB代码.doc_第3页
自适应模糊神经网络MATLAB代码.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

function c, sigma , W_output = SOFNN( X, d, Kd )%SOFNN Self-Organizing Fuzzy Neural Networks%Input Parameters% X(r,n) - rth traning data from nth observation% d(n) - the desired output of the network (must be a row vector)% Kd(r) - predefined distance threshold for the rth input%Output Parameters% c(IndexInputVariable,IndexNeuron)% sigma(IndexInputVariable,IndexNeuron)% W_output is a vector%Setting up Parameters for SOFNNSigmaZero=4;delta=0.12;threshold=0.1354;k_sigma=1.12;%For more accurate results uncomment the following%format long;%Implementation of a SOFNN modelsize_R,size_N=size(X);%size_R - the number of input variablesc=;sigma=;W_output=;u=0; % the number of neurons in the structureQ=;O=;Psi=;for n=1:size_N x=X(:,n); if u=0 % No neuron in the structure? c=x; sigma=SigmaZero*ones(size_R,1); u=1; Psi=GetMePsi(X,c,sigma); Q,O = UpdateStructure(X,Psi,d); pT_n=GetMeGreatPsi(x,Psi(n,:); else Q,O,pT_n = UpdateStructureRecursively(X,Psi,Q,O,d,n); end; KeepSpinning=true; while KeepSpinning %Calculate the error and if-part criteria ae=abs(d(n)-pT_n*O); %approximation error phi,=GetMePhi(x,c,sigma); maxphi,maxindex=max(phi); % maxindex refers to the neurons index if aedelta if maxphithreshold %enlarge width minsigma,minindex=min(sigma(:,maxindex); sigma(minindex,maxindex)=k_sigma*minsigma; Psi=GetMePsi(X,c,sigma); Q,O = UpdateStructure(X,Psi,d); pT_n=GetMeGreatPsi(x,Psi(n,:); else %Add a new neuron and update structure ctemp=; sigmatemp=; dist=0; for r=1:size_R dist=abs(x(r)-c(r,1); distIndex=1; for j=2:u if abs(x(r)-c(r,j)dist distIndex=j; dist=abs(x(r)-c(r,j); end; end; if dist=Kd(r) ctemp=ctemp; c(r,distIndex); sigmatemp=sigmatemp ; sigma(r,distIndex); else ctemp=ctemp; x(r); sigmatemp=sigmatemp ; dist; end; end; c=c ctemp; sigma=sigma sigmatemp; Psi=GetMePsi(X,c,sigma); Q,O = UpdateStructure(X,Psi,d); KeepSpinning=false; u=u+1; end; else if maxphi=ae L=Q*p_n*(temp)(-1); Q_next=(eye(length(Q)-L*pT_n)*Q; O_next=O + L*ee;else Q_next=eye(length(Q)*Q; O_next=O;end;endfunction Q , O = UpdateStructure(X,Psi,d)GreatPsiBig = GetMeGreatPsi(X,Psi);%M=u*(r+1)%n - the number of observationsM,=size(GreatPsiBig);%Others Ways of getting Q=PT(t)*P(t)-1%*%opts.SYM = true;%Q = linsolve(GreatPsiBig*GreatPsiBig,eye(M),opts);%Q = inv(GreatPsiBig*GreatPsiBig);%Q = pinv(GreatPsiBig*GreatPsiBig);%*Y=GreatPsiBigeye(M);Q=GreatPsiBigY;O=Q*GreatPsiBig*d;end%This function works too with x% (X=X and Psi is a Matrix) - Gets you the whole GreatPsi% (X=x and Psi is the row related to x) - Gets you just the column related with the observationfunction GreatPsi = GetMeGreatPsi(X,Psi)%Psi - In a row you go through the neurons and in a column you go through number of%observations * Psi(#obs,IndexNeuron) *GreatPsi=;N,U=size(Psi);for n=1:N x=X(:,n); GreatPsiCol=; for u=1:U GreatPsiCol= GreatPsiCol ; Psi(n,u)*1; x ; end; GreatPsi=GreatPsi GreatPsiCol;end;endfunction phi, SumPhi=GetMePhi(x,c,sigma)r,u=size(c);%u - the number of neurons in the structure%r - the number of input variablesphi=;SumPhi=0;for j=1:u % moving through the neurons S=0; for i=1:r % moving through the input variables S = S + (x(i) - c(i,j)2) / (2*sigma(i,j)2); end; phi = phi exp(-S); SumPhi = SumPhi + phi(j); %phi(u)=exp(-S)end;end%This function works too with x, it will give you the row related to xfunction Psi = GetMePsi(X,c,sigma),u=size(c);,size_N=size(X);%u - the number of neurons in the structure%size_N - the number of observationsPsi=;for n=1:size_N phi, SumPhi=GetMePhi(X(:,n),c,sigma); PsiTemp=; for j=1:u %PsiTemp is a row vector ex: 1 2 3 PsiTemp(j)=phi(j)/SumPhi; en

温馨提示

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

评论

0/150

提交评论