資源簡介
自己編的非工具箱BP神經網絡程序 對大家理解BP網絡權值和閾值的具體怎么修改有很大的幫助

代碼片段和文件信息
clear?all?
clc
%原函數
i=1;
for?t1=2000*pi:0.1:2004*pi;
????x(i)=3000+100*sin(t1)+10*rand(1);
????i=i+1;
end
i=1;
for?t2=2000*pi:0.15:2004*pi;
????x2(i)=3000+100*sin(t2)+10*rand(1);
????i=i+1;
end
t1=2000*pi:0.1:2004*pi;
[pnminpmaxptnmintmaxt]?=?premnmx(t1x);
t1=pn;x=tn;%歸一化
%[pnminpmaxp]?=?premnmx(t1);
%t1=pn;%歸一化
max_epoch=1000;
emax=0.00001;
delta=0.1;
[m1n]=size(t1);
[mn]=size(x);
h=20?%隱含層有20個節點
V=rand(hm1);
B1=rand(h1);
W=rand(mh);
B2=rand(m1);%權值和閾值初始化
?????????????%VB1是輸入層到隱層的權值和閾值;W,B2是隱層到輸出層的權值和閾值
tic
for?k=1:max_epoch
???????q=randperm(n);?%產生隨機1-n的數列,為后面的打亂順序輸入做準備
???????for?p=1:n
???????????q1=q(p);??
????????%計算從輸入層到隱層
????????net1=V*t1(:q1)+B1;
????????y1=1./(1+exp(-net1));?%S型
????????%計算從隱層到輸出層
????????net2=W*y1+B2;
????????y2=net2;?%線性
???????
????????e=x(q1)-y2;%計算誤差??????
????????%調整W、V、B1、B2
????????V=V+delta*(y1.*(1-y1).*(e‘*W)‘)*t1(:q1)‘;
????????B1=B1+delta*y1.*(1-y1).*(e‘*W)‘;
????????W=W+delta*e*y1‘;
????????B2=B2+delta*e;
???????end
???????%計算總體誤差,判斷迭代是否停止
????????net3=V*t1+B1*ones(1n);
????????y3=1./(1+exp(-net3));
????????y4=W*y3+B2*ones(1n);
????????ee(k)=0.5*(x-y4)*(x-y4)‘;?
????????if?ee(k) ????????????break?
????????end
??????
end
toc
figure(1)
plot(ee);
legend(‘迭代誤差‘)
xlabel(‘迭代次數‘);
ylabel(‘訓練誤差‘);
figure(2)
plot(t1x‘b‘);
hold?on
plot(t1y4‘r--‘);
legend(‘樣本數據‘‘BP網絡輸出‘);
?
%驗證訓練效果
t2=2000*pi:0.15:2004*pi;
l1=length(t2)
net1=[];
net2=[];
[pnminpmaxptnmintmaxt]?=?premnmx(t2x2);
t2=pn;x2=tn;
?for?j=1:l1
?????net1=logsig(t2(j)*V‘+B1‘);%1/(1+exp(-t1));%計算第一層輸出
?????net2(j)=W*net1‘+B2;%計算輸出層輸出
???????
?????%e1(j)=x2(j)-net2(j);%計算誤差
?end
i=1;
for?t2=2000*pi:0.15:2004*pi;
????x2(i)=3000+100*sin(t2)+10*rand(1);
????i=i+1;
end
net22=postmnmx(net2mintmaxt);
t2=2000*pi:0.15:2004*pi;
for?j=1:l1
???e1(j)=x2(j)-net22(j);%計算誤差
end
figure(3)
plot(t2x2‘b‘)
hold?on
plot(t2net22‘r*‘)
legend(‘樣本數據‘‘BP網絡輸出‘);
xlabel(‘x‘);
ylabel(‘y‘);
figure(4)
plot(e1)
legend(‘誤差曲線‘)
xlabel(‘x‘);
ylabel(‘測試誤差‘);
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2284??2010-01-16?14:30??BP\BP1.m
?????文件???????1510??2010-01-16?14:31??BP\BP2.m
?????文件???????3702??2010-01-14?20:28??BP\BP3.m
?????文件???????2414??2010-01-14?14:33??BP\BP4.m
?????目錄??????????0??2010-04-02?10:47??BP
-----------?---------??----------?-----??----
?????????????????9910????????????????????5
- 上一篇:青果教務網絡管理系統入侵破解詳細過程
- 下一篇:北航計組實驗代碼、電路一
評論
共有 條評論