模糊神经网络matlab定义,模糊神经网络matlab仿真

模糊神经网络matlab

您好,是这样的:经过训练后的参数比较差,用原数据输入训练好的网络,得出结果和要的结果误差很大,不明白是怎么回事?还有要是多输入多输出这段程序该怎么改?模糊神经网络可以用matlab工具箱实现吗?

还有输入数据差别比较大(就是大小差异大)是不是要进行归一化再学习训练呢?求解,求解答!对于你的帮助不胜感激!

clearallclcclosealltic,%[x,y]=data;x=[12345678;-1-2-3-4-5-6-7-8];y=[23456789];%%%%%--数据显示,输入为-两输入,输出为-单输出。

--------样本为p2组[p1,p2]=size(x);%隶属度函数个数k=7;%初始化四个隶属度函数的参数A,B及输出层初始权值Wfori=1:p1;forj=1:k;m(i,j)=1+0.6*rand(1);b(i,j)=1+0.6*rand(1);endendforj=1:k*k;w(j)=1+rand(1);end%%%---推理计算输出值forq=1:p2;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%-----用同一隶属度参数对输入样本X累计计算%选用高斯函数作为隶属度,求隶属度,共size(x,2)+k个。

x(1)K个,x(2)K个fori=1:p1;forj=1:k;u(i,j)=gaussmf(x(i,q),[m(i,j),b(i,j)]);endend%模糊推理计算:a21,a22.几个隶属度函数,得出几个值,此处已知输入为2%%%%----由以前的取小做法改为相乘—prod(x,1)orprod(x,2)———v=[];fori=1:kforj=1:kv=[v,u(1,i)*u(2,j)];endend%归一化计算模糊推理的值;相当于已经除去了经典去模糊输出的分母值fori=1:length(v);v1(i)=v(i)/sum(v);end%系统输出%out1(q)=w*v';%e(q)=(y(q)-out1(q));%end%out=out1out1(q)=w*v1';e(q)=y(q)-out1(q);endout=out1;%-三。

参数修正过程。

增加方式,非批处理方式迭代%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%-----------------------------误差反向传播过程--------------------------------------------%取误差函数:E=(1/2)*sumsqr(t-y)E=(1/2)*sumsqr(y-out);EE=E;%e=sum(y-out)

你可能感兴趣的:(matlab,神经网络,深度学习)