资源简介
是实现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
评论
共有 条评论