?? bpnet.m
字號:
%自己設計的BP神經網絡集成。
%輸入的是 p-作為訓練值的輸入
% t-也是網絡的期望輸出結果
% ynum-設定隱層點數 一般取3~20;
% maxnum-如果訓練一直達不到期望誤差之內,那么BP迭代的次數 一般設為5000
% ex-期望誤差,也就是訓練一小于這個誤差后結束迭代 一般設為0.01
% lr-學習率 一般設為0.01
% pp-使用p-t虛擬藍好的BP網絡來分類計算的向量,也就是嵌入二值水印的大組系數進行訓練然后得到二值序列
% ww-輸出結果
% 注明:ynum,maxnum,ex,lr均是一個值;而p,t,pp,ww均可以為向量
% 比如p是m*n的n維行向量,t那么為m*k的k維行向量,pp為o*i的i維行向量,ww為o* k的k維行向量
%p,t作為網絡訓練輸入,pp作為訓練好的網絡輸入計算,最后的ww作為pp經過訓練好的BP訓練后的輸出
function ww=bpnet(p,t,ynum,maxnum,ex,lr,pp)
plot(p,t,'+');
title('訓練向量');
xlabel('P');
ylabel('t');
[w1,b1,w2,b2]=initff(p,ynum,'tansig',t,'purelin'); %初始化含一個隱層的BP網絡
zhen=25; %每迭代多少次更新顯示
biglr=1.1; %學習慢時學習率(用于跳出平坦區)
litlr=0.7; %學習快時學習率(梯度下降過快時)
a=0.7 %動量項a大小(△W(t)=lr*X*ん+a*△W(t-1))
tp=[zhen maxnum ex lr biglr litlr a 1.04]; %trainbpx
[w1,b1,w2,b2,ep,tr]=trainbpx(w1,b1,'tansig',w2,b2,'purelin',p,t,tp);
ww=simuff(pp,w1,b1,'tansig',w2,b2,'purelin');
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -