自适应模糊神经网络算法,matlab模糊神经网络实例

本文探讨了使用MATLAB进行模糊神经网络的实现,包括代码示例、参数调整和误差反向传播过程。作者遇到的问题是训练后的网络预测误差较大,询问是否需要对输入数据进行归一化,并探讨了多输入多输出模糊神经网络的修改方法。同时,文章还提供了人口预测的MATLAB代码示例,展示了如何应用模糊神经网络进行预测。
摘要由CSDN通过智能技术生成

用MATLAB做的模糊神经网络代码

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

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

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

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

x(1) K个,x(2) K个for i=1:p1;for j=1:k;u(i,j)=gaussmf(x(i,q),[m(i,j),b(i,j)]);endend% 模糊推理计算:a21,a22.几个隶属度函数,得出几个值,此处已知输入为2%%%%----由以前的取小做法改为相乘—prod(x,1) or prod(x,2)———v=[];for i=1:kfor j=1:k v=[v,u(1,i)*u(2,j)];endend% 归一化计算模糊推理的值;相当于已经除去了经典去模糊输出的分母值for i=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)lr=0.3; % c2=zeros(2,2);%%%%----------------------------------------误差反传后的参数修正过程-------------------r=1; %p=1;s=1000; %% e(r)=y(r)-out(r);while p0.05%%%%%%%%%%%%%_____隶属度参数 M. B 输出层权值参数 W 的修正过程_____%%%%%%%%%%%%%%1.--Wwc=zeros(1,k*k);for i=1:k*k;wc(i)=-lr*e(r)*v1(i);end%%2.--Mmc=zeros(p1,k);for i=1:p1;for j=1:k;mc(i,j)=2*lr*e(r) * w(j) * (v(j)/u(i,j)) * exp(-((x(i,r)-m(i,j)).^2)/(b(i,j).^2))* (x(i,r)-m(i,j))/(b(i,j).^2);endend%%3.--Bbc=zeros(p1,k);for i=1:p1;for j=1:k;bc(i,j)=2*lr*e(r)* w(j) * (v(j)/u(i,j)) * exp(-((x(i,r)-m(i,j)).^2)/(b(i,j).^2)) * ((x(i,r)-m(i,j)).^2)/(b(i,j).^3);endend% 4.参数修正 m b wm=m-mc;b=b-bc;w=w-wc;%%%%%%%%%%%_______利用修正后的参数重新计算_____________%%%%%%%%%%%%%%%%%%%%%% 5.利用修正过的参数重新计算输出for q=1:p2; for i=1:p1;for j=1:k;u(i,j)=gaussmf(x(i,q),[m(i,j),b(i,j)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值