MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   深度神经网络/深度学习 (https://www.labfans.com/bbs/forumdisplay.php?f=45)
-   -   [讨论] 请高手指教 bp网络程序问题 (https://www.labfans.com/bbs/showthread.php?t=18804)

das Auto 2013-04-22 20:31

请高手指教 bp网络程序问题
 
我想改进一下算法,就是加上惯性项动量项和变步长,但不知道具体代码怎么写请高手指教,不胜感激!具体数据在面!
clc
clear all;
lr=0.05;%学习速率
err_goal=0.001;%期望误差最小值
max_epoch=100000;%最大训练次数
a=0.9;%惯性系数
Oi=0;
Ok=0;
%提供两组训练集和目标值(3输入2输出)
[M,N]=size(X);
q=19;
[L,N]=size(T);
%初始化Wij Wki(M为输入节点j的数量,q为隐含层节点i的数量,L为输出层节点k的数量)
Wij=rand(q,M);
Wki=rand(L,q);
Wij0=zeros(size(Wij));
Wki0=zeros(size(Wki));
for epoch=1:max_epoch
%计算隐含层各神经元的输出
NETi=Wij*X;
for j=1:N
for i=1:q
Oi(i,j)=2/(1+exp(-NETi(i,j)))-1;
end
end
%计算输出层各神经元的输出
NETk=Wki*Oi;
for i=1:N
for k=1:L
Ok(k,i)=2/(1+exp(-NETk(k,i)))-1;
end
end
%计算误差函数
E=((T-Ok)'*(T-Ok))/2;
if(E<err_goal)
break;
end
%调整输出层加权系数
deltak=Ok.*(1-Ok).*(T-Ok);
W=Wki;
Wki=Wki+lr*deltak*Oi'+a*(Wki-Wki0);
Wki0=W;
%调整隐含层加权系数
deltai=Oi.*(1-Oi).*(deltak'*Wki)';
W=Wij;
Wij=Wij+lr*deltai*X'+a*(Wij-Wij0);
Wij0=W;
end
epoch
x=[321.12 361.9 408.0 464.38 511.32 551.36 606.11 691.74 817.58 941.95 1040 1100.08 1219.09 1319.3 1452.9 1608.91 1802.04 2053.17 2382.93 2693.71 3159.66 3697.35 4358.36 6467.21 7619.31 9085.94;
1221 1256 1298 1300 1333 1399 1441 1499 1655 1774 1798 1809 1813 1895 1987 2000 2100 7975.68 9649.96 10783 13039.45 14522.9 15977.76 16988.77 18658.07 20706.13;
7103.6 7523.9 7653.8 7725.8 7986.2 8523.1 8875.3 8912.5 9632.4 9756.4 9823.1 9856.6 10029.3 11023.7 12200.1 12032.9 13216.3 13985.2 14020.3 14999. 15000.1 15012.2 16388.74 18066.07 19976.59 21293.71;
50115.3 54231.6 55664.9 59876.7 62145.3 66653.3 69875.3 71256.3 75466.3 78563.2 79536.2 80145.9 82536.7 86563.7 87562.3 88523.1 89756.3 90120.7 93205.6 93215.1 94444.32 94848.37 10708.71 12209.21 13820.39 15181.9;
105851 107507 109300 111026 112704 114333 115823 117171 118517 119850 121121 122389 123626 124761 125786 126743 127627 128453 119227 129998 130756 131448 132129 132802 133474 137054;
94.24 96.28 98.22 99.96 101.43 102.83 104.11 106.26 108.02 111.78 115.7 118.58 122.64 127.85 135.17 140.27 169.8 176.52 180.98 187.07 334.52 345.7 358.37 373.02 382.82 398.4;
476486 544259 593682 650473 644508 648085 682681 731774 860719 953940 1040810 1122110 1204583 1257332 1269004 1349394 1402798 1475257 1464353 1624526 1697381 1860487 2050680 2682114 2779100 3062600;
538062 620113 711424 732315 733781 724040 733907 780941 840256 894914 940387 983860 976536 976004 990444 1038813 056312 1116324 1159957 1244990 1341778 1466347 1639432 1916759 2127834 2425300;
20.2394 29.5136 29.8147 27.6071 25.803 25.0297 26.4817 22.8278 24.2343 25.3537 27.1843 28.7685 30.4217 34.6129 41.286 61.6971 75.4919 77.3137 66.7507 51.7889 45.0254 37.8781 32.7209 26.5204 23.8351 21.9521];


t=[4.0906 5.0063 5.3439 5.4814 5.0441 4.9271 5.3292 5.8729 6.3508 6.6362 7.1494 7.3655 7.3861 7.8067 8.3529 9.3853 10.593 10.9381 10.4372 107077 9.8738 8.9455 8.1649 7.3484 6.7759 6.5225;
13.6829 18.5785 18.7399 17.0598 15.9002 15.5072 16.2019 14.4264 14.2251 14.8817 15.9308 17.4447 19.0128 22.2721 28.608 41.8721 54.6485 56.2074 49.4174 48.0864 46.9911 43.1139 38.0442 30.4919 27.5125 25.4075;
15867.6425 24018.0001 27938.938 30861.3669 33598.4528 36354.8114 42835.9749 64482.9636 99907.0121 133382.7223 152266.5624 171768.5165 184615.8453 192951.4015 212401.8089 266890.3994 308787.2586 332438.1078 336914.6825 ...
239141.0103 188401.1686 148956.0352 119878.3999 100972.1657 91436.8329 92633.6315;];


所有时间均为北京时间。现在的时间是 23:25

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.