資源簡介
是實現BP神經網絡和混沌神經網絡的matlab程序,但是沒有調用神經網絡工具箱。

代碼片段和文件信息
%------------初始化---------------------%
clear?all;close?all;
innode=1;hiddennode=15;outnode=1;
w12=0.01*rand(hiddennodeinnode);????????????????%設置輸入層和隱層權值
theta1=0.01*rand(hiddennode1);?????????????????????%閾值
w23=0.01*rand(outnodehiddennode);??????????????%設置隱層和輸出層間權值
theta2=0.01*rand(outnode1);????????????????????????????%閾值
delta1=zeros(hiddennodeinnode);?????????????%權值修正值
delta2=zeros(outnodehiddennode);
u0=0.0335;?????????????????????????????????????????????????????%學習率
Epx=0;??????????????????????????????????????????????????????
in2=zeros(hiddennode1);out2=zeros(hiddennode1);in3=zeros(outnode1);out3=zeros(outnode1);
output=zeros(outnode80);%存儲實際輸出數據
%----------------讀取訓練樣本---------------------%
format?long?
fi=fopen(‘C:\Users\Administrator\Documents\MATLAB\BP\MDT.txt‘);
[tecount]=fscanf(fi‘%f?%f?%f?%f?%f‘[5?inf]);
fclose(fi);
iteration=count/(innode+outnode);
f=fopen(‘C:\Users\Administrator\Documents\MATLAB\BP\MDT.txt‘);
[tempcount1]=fscanf(f‘%f?‘[(innode+outnode)iteration]);
data=temp‘;
%------------輸入輸出數據歸一化-----------------------%
for?i=1:(outnode+innode)
????maxi=data(1i);mini=data(1i);
???for?j=2:iteration
???????if?maxi>data(ji)
???????????ma(i)=maxi;
???????else
???????????ma(i)=data(ji);
???????end
???????maxi=ma(i);
???????if?mini???????????mi(i)=mini;
???????else
???????????mi(i)=data(ji);
???????end
???????mini=mi(i);
???end
end
for?i=1:(outnode+innode)
????for?j=1:iteration
????????da(ji)=(data(ji)-mi(i))/(ma(i)-mi(i));
????end
end
for?i=1:innode
????x(i:)=da(:i)‘;
end
%x1=da(:1)‘;
%x2=da(:2)‘;
%x3=da(:3)‘;
%x=[x1;x2;x3];
y=da(:innode+1)‘;
%-------------------------主程序開始---------------------%
for?s=1:1000???????????
???Epx=0;
???for?i=1:iteration
????????in2=?w12*x(:i)-theta1?;?%計算隱藏層的輸入
?????????
?????????for?j=1:hiddennode
?????????????out2(j1)=1/(1+exp(-1*in2(j1)));?%隱含層輸出
?????????end
?????????
?????????in3=w23*out2-theta2???;??????%輸出層的輸入?
?????????
????????for?j=1:outnode
????????????out3(j1)=in3(j1);????%輸出層的輸出
????????end
????????
?????????output(:i)=out3;??????????????????????%output儲存輸出結果
?????????epoc(i)=i;
?????????error=0.5*(y(:i)-out3)‘*(y(:i)-out3);%計算E
?????????Epx=Epx+error;?%誤差輸出
?????????e=y(:i)-out3;
?????????epoch(s)=s;
%---------------修正隱含層到輸出層的權值-------------------
?????????for?t=1:outnode
????????????????det2(t1)=out3(t1)*(1-out3(t1))*e(t1);???%輸出層小delta的值
????????????????for?k=1:hiddennode
????????????????????????delta2=u0*det2(t1)*out2(k1);
????????????????????????w23(tk)=w23(tk)+delta2;
????????????????end
?????????end
?????????theta2=theta2-u0*det2;?????????%修正閾值
?%----------------------修正輸入層到隱含層的權值-----------------------
???????????for?m=1:hiddennode
????????????????det1(m1)=det2‘*w23(:m)*out2(m1)*(1-out2(m1));%隱含層小delta的值
???????????
????????????????for?n=1:innode
????????????????????delta1(mn)=u0*det1(m1)*x(ni);
????????????????????w12
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????41984??2011-06-09?15:19??程序\BP算法程序-混沌系統.doc
?????文件??????46592??2011-06-09?15:04??程序\BP算法程序.doc
?????文件???????6386??2011-05-24?19:59??程序\dtest-0.m
?????文件???????6545??2011-05-25?21:09??程序\dtest4.m
?????文件???????6395??2011-05-23?23:20??程序\test0.m
?????文件???????6403??2011-05-25?22:17??程序\test4.m
?????文件??????46080??2011-06-09?15:40??程序\混沌網絡程序-混沌系統.doc
?????文件??????46592??2011-06-09?15:29??程序\混沌網絡程序.doc
?????目錄??????????0??2011-06-09?15:47??程序
-----------?---------??----------?-----??----
???????????????206977????????????????????9
評論
共有 條評論