資源簡介
兩個通用的三層前向神經網絡反向傳播算法程序,一個采用批量方式更新權
重,另一個采用單樣本方式更新權重。其中,隱含層結點的激勵函數采用雙曲正切函數,輸出層的激勵函數采用 sigmoid 函數。目標函數采用平方誤差準則函數。

代碼片段和文件信息
function?[?w?count?data]?=?batchBP(?x?z?yh?w?t?param?)
%BATCHBP?此處顯示有關此函數的摘要
%???批量BP算法
Nh?=?param.Nh;
Nx?=?param.Nx;
Nd?=?param.Nd;
Ny?=?param.Ny;
eta?=?param.eta;
theta?=?param.theta;
flag?=?0;
count?=?0;
res?=?[0?0?0];
resid?=?1;
m?=?0;
data?=?zeros(300001);
q?=?1;
while(flag?==?0)
????Wh?=?w{1};
????Wy?=?w{2};
????sj?=?zeros(NxNy);
????sh?=?zeros(NxNh);
????deltaj?=?zeros(NhNy);
????deltah?=?zeros(NdNh);
????for?k?=?1:Nx
????????for?j?=?1:Ny
????????????sj(kj)?=?z(kj)*(1-z(kj))*(t(kj)-z(kj));
????????????for?h?=?1:Nh
????????????????deltaj(hj)?=?eta*sj(kj)*yh(kh)?+?deltaj(hj);
????????????end
????????end
????????for?h?=?1:Nh
????????????sh(kh)?=?(1-yh(kh)^2)*(Wy(h:)*sj(k:)‘);
????????????for?i?=?1:Nd
????????????????deltah(ih)?=?eta*sh(kh)*x(ki)?+?deltah(ih);
????????????end
????????end
????end
????Wy?=?Wy?+?deltaj;
????Wh?=?Wh?+?deltah;
????w{1}?=?Wh;
????w{2}?=?Wy;
????[?J?z?yh?]?=?forward(?x?w?t?param?);
????JJ?=?sum(abs(J));
????data(q)?=?JJ;
????q?=?q?+?1;
????[?out?]?=?test(?w?x?t?);
????res(resid)?=?JJ;
????resid?=?resid?+?1;
????if?resid?==?4
????????resid?=?1;
????end
????if?sum(abs(J))?????????flag?=?1;???????
????end
????count?=?count?+?1;
????disp([‘batch迭代第‘?num2str(count)?‘次,正確率為:‘?num2str(out*100)?‘%?loss為:‘?num2str(JJ)]);
end
end
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-12-10?21:22??CSDN\
?????文件????????1496??2018-12-10?19:48??CSDN\batchBP.m
?????文件????????1667??2018-12-10?14:33??CSDN\BP.m
?????文件?????????574??2018-12-10?20:17??CSDN\forward.m
?????文件????????1508??2018-12-10?20:44??CSDN\mainfunction.m
?????文件?????????214??2018-12-10?19:49??CSDN\sigmoid.m
?????文件????????1581??2018-12-10?19:48??CSDN\singleBP.m
?????文件?????????239??2018-12-10?19:49??CSDN\tan_h.m
?????文件?????????291??2018-12-10?19:48??CSDN\test.m
?????文件?????????162??2018-12-10?20:55??CSDN\~$HW4.docx
- 上一篇:地震記錄合成
- 下一篇:PQ控制和下垂控制模型
評論
共有 條評論