bp神經(jīng)網(wǎng)絡(luò)算法_第1頁(yè)
bp神經(jīng)網(wǎng)絡(luò)算法_第2頁(yè)
bp神經(jīng)網(wǎng)絡(luò)算法_第3頁(yè)
bp神經(jīng)網(wǎng)絡(luò)算法_第4頁(yè)
bp神經(jīng)網(wǎng)絡(luò)算法_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Jw目標(biāo)輸出向量.值為WjkBP 神經(jīng)網(wǎng)絡(luò)算法三層 BP 神經(jīng)網(wǎng)絡(luò)如圖:傳遞函數(shù)gtk輸出層,輸出向量Zk傳遞函數(shù)fyj隱含層,隱含權(quán)值為wj輸入層,輸入X1X2X3Xn設(shè)網(wǎng)絡(luò)的輸入模式為X(Xi,X2,.Xn)T,隱含層有 h 個(gè)單元,隱含層的輸出為y(yi,y2,yh)T,輸出層有 m 個(gè)單元,他們的輸出為z(Zi,Z2,.zm)T,目標(biāo)輸出為t&,t2,.,。)T設(shè)隱含層到輸出層的傳遞函數(shù)為f,輸出層的傳遞函數(shù)為 gn于是:yjf(wjXji1n)f(WijXi):隱含層第 j 個(gè)神經(jīng)元的輸出;其中i0Woj,Xo1hZkg(Wjkyj):輸出層第 k 個(gè)神經(jīng)元的輸出j01m此時(shí)

2、網(wǎng)絡(luò)輸出與目標(biāo)輸出的誤差為(tk2k1Zk)2,顯然,它是Wij和Wjk的函數(shù)。卜面的步驟就是想辦法調(diào)整權(quán)值,使減小。由高等數(shù)學(xué)的知識(shí)知道:負(fù)梯度方向是函數(shù)值減小最快的方向于是隱含層到輸出層的權(quán)值調(diào)整迭代公式為:wjk(t1)Wjkzkdzk)yj2)從輸入層到隱含層的權(quán)值調(diào)整迭代公式為:n其中Uj為隱含層第 j 個(gè)神經(jīng)元的輸入:UjWijXii0注意:隱含層第 j 個(gè)神經(jīng)元與輸出層的各個(gè)神經(jīng)元都有連接,即涉及所有的權(quán)值Wij,Vjm(tkzk)2zkUk因此一Vk0zkUkVj1m一一2-(tkzk)m21(tkzk)f(Uk)Wjk)f(Uj)XijXi因此,可以設(shè)定一個(gè)步長(zhǎng),每次沿負(fù)梯度

3、方向調(diào)整個(gè)單位,即每次權(quán)值的調(diào)整為:wpqwpq在神經(jīng)網(wǎng)絡(luò)中稱為學(xué)習(xí)速率可以證明:按這個(gè)方法調(diào)整,誤差會(huì)逐漸減小。BP 神經(jīng)網(wǎng)絡(luò)(反向傳播)的調(diào)整順序?yàn)?1)先調(diào)整隱含層到輸出層的權(quán)值h設(shè)Vk為輸出層第 k 個(gè)神經(jīng)元的輸入Vkwjkyjjomm1212(tkzj-(tkzk)2k12k1zkVkwjkwjkZkVkWjk(tkZk)g(Vk)yj1右取g(x)f(x)1eek、,則g(uk)-一十(1ek)111evk(11eVk)zk(zk)m1(tkzk)22k1wijwijm2(tkzk)2yu2k1y_ujVjUjWij(tkk0zk)f(Uk)WjkWijWijk0因此從輸入層到隱含

4、層的權(quán)值調(diào)整迭代為公式為:Wij(t1)Wij(t)jXi例:下表給出了某地區(qū)公路運(yùn)力的歷史統(tǒng)計(jì)數(shù)據(jù),請(qǐng)建立相應(yīng)的預(yù)測(cè)模型,并對(duì)給出的 2010 和2011 年的數(shù)據(jù),預(yù)測(cè)相應(yīng)的公路客運(yùn)量和貨運(yùn)量。時(shí)間人數(shù)(單位:萬(wàn)人)機(jī)動(dòng)車數(shù)(單位:萬(wàn)輛)公路面積(單位:力平方公里)公路客運(yùn)量(單位:萬(wàn)人)公路貨運(yùn)量(單位:萬(wàn)噸)199051261237199162171379199277301385199391451399199410460166319951138717141996123531834199715750432219981830481321999198368936200021024110992

5、0011949011203200220433105242003225981111520042510713320200533442167622006368361867320074054820724200842927208032009434622180420102011functionmain()clc%clearall;%closeall;%清屏清除內(nèi)存以便加快運(yùn)算速度關(guān)閉當(dāng)前所有 figure 圖像SamNum=20;%輸入樣本數(shù)量為 20TestSamNum=20;%測(cè)試樣本數(shù)量也是 20ForcastSamNum=2;HiddenUnitNum=8;InDim=3;%OutDim=2;%預(yù)

6、測(cè)樣本數(shù)量為 2中間層隱節(jié)點(diǎn)數(shù)量取 8,比工具箱程序多了網(wǎng)絡(luò)輸入維度為 3網(wǎng)絡(luò)輸出維度為 21 個(gè)須始數(shù)據(jù)%數(shù)(單位:萬(wàn)人)sqrs=.;%1 動(dòng)車數(shù)(單位:萬(wàn)輛)sqjdcs=.;公路面積(單位:萬(wàn)平方公里)sqglmj=;公路客運(yùn)量(單位:萬(wàn)人)glkyl=5126621777309145104601138712353157501830419836210241949020433.22598251073344236836405484292743462;公路貨運(yùn)量(單位:萬(wàn)噸)glhyl=12371379138513991663171418344322813289361109911203105

7、2411115.133201676218673207242080321804;p=sqrs;sqjdcs;sqglmj;%輸入數(shù)據(jù)矩陣t=glkyl;glhyl;%目標(biāo)數(shù)據(jù)矩陣SamIn,minp,maxp,tn,mint,maxt=premnmx(p,t);%原始樣本對(duì)(輸入和輸出)初始化rand(state,sum(100*clock)%依據(jù)系統(tǒng)時(shí)鐘種子產(chǎn)生隨機(jī)數(shù)的均勻分布,randn 是產(chǎn)生均值為 0,方差為 1 的正態(tài)分布 rand(n)或 randn(n)產(chǎn)生 n*n階矩陣,rand(m,n)或 randn(n)產(chǎn)生 m*n 的隨機(jī)數(shù)矩陣噪聲強(qiáng)度為(添加噪聲的目的是為了防止網(wǎng)絡(luò)過(guò)度擬

8、生成噪聲將噪聲添加到輸出樣本上這里取輸入樣本與測(cè)試樣本相同因?yàn)闃右踩≥敵鰳颖九c測(cè)試樣本相同最多訓(xùn)練次數(shù)為 50000學(xué)習(xí)速率為目標(biāo)誤差為*10A(-3)W1=*rand(HiddenUnitNum,InDim);%初始化輸入層與隱含層之間的權(quán)值rand 是產(chǎn)生 0 到 1NoiseVar=;%合)Noise=NoiseVar*randn(2,SamNum);%SamOut=tn+Noise;%TestSamIn=SamIn;%本容量偏少TestSamOut=SamOut;%MaxEpochs=50000;%lr=;%E0=*10A(-3);%B1=*rand(HiddenUnitNum,1);

9、%初始化輸入層與隱含層之間的閾值W2=*rand(OutDim,HiddenUnitNum);%初始化輸出層與隱含層之間的權(quán)值B2=*rand(OutDim,1);%初始化輸出層與隱含層之間的閾值ErrHistory=;fori=1:MaxEpochsHiddenOut=logsig(W1*SamIn+repmat(B1,1,SamNum);%隱含層網(wǎng)絡(luò)輸出NetworkOut=W2*HiddenOut+repmat(B2,1,SamNum);%輸出層網(wǎng)絡(luò)輸出Error=SamOut-NetworkOut;%SSE=sumsqr(Error)%能量函數(shù)(誤差平方和)ErrHistory=Err

10、HistorySSE;%以下六行是 BP 網(wǎng)絡(luò)最核心的程序%他們是權(quán)值(閾值)依據(jù)能量函數(shù)負(fù)梯度下降原理所作的每一步動(dòng)態(tài)調(diào)整量Delta2=Error;Delta1=W2*Delta2.*HiddenOut.*(1-HiddenOut);dW2=Delta2*HiddenOut;dB2=Delta2*ones(SamNum,1);dW1=Delta1*SamIn;dB1=Delta1*ones(SamNum,1);%對(duì)輸出層與隱含層之間的權(quán)值和閾值進(jìn)行修正W2=W2+lr*dW2;B2=B2+lr*dB2;給中間變量預(yù)先占據(jù)內(nèi)存實(shí)際輸出與網(wǎng)絡(luò)輸出之差ifSSEE0,break,end%如果達(dá)到

11、誤差要求則跳出學(xué)習(xí)循環(huán)%對(duì)輸入層與隱含層之間的權(quán)值和閾值進(jìn)行修正W1=W1+lr*dW1;B1=B1+lr*dB1;endHiddenOut=logsig(W1*SamIn+repmat(B1,1,TestSamNum);%隱含層輸出最終結(jié)果NetworkOut=W2*HiddenOut+repmat(B2,1,TestSamNum);%輸出層輸出最終結(jié)果a=postmnmx(NetworkOut,mint,maxt);%x=1990:2009;%newk=a(1,:);%newh=a(2,:);%figure;subplot(2,1,1);plot(x,newk,r-o,x,glkyl,b-

12、+)%legend(網(wǎng)絡(luò)輸出客運(yùn)量,實(shí)際客運(yùn)量,);xlabel(年份);ylabel(客運(yùn)量/萬(wàn)人,);subplot(2,1,2);plot(x,newh,r-o,x,glhyl,b-+)%legend(網(wǎng)絡(luò)輸出貨運(yùn)量,實(shí)際貨運(yùn)量,);xlabel(年份);ylabel(貨運(yùn)量/萬(wàn)噸);%利用訓(xùn)練好的網(wǎng)絡(luò)進(jìn)行預(yù)測(cè)%當(dāng)用訓(xùn)練好的網(wǎng)絡(luò)對(duì)新數(shù)據(jù) pnew 進(jìn)行預(yù)測(cè)時(shí),也應(yīng)作相應(yīng)的處理pnew=;%2010 年和 2011 年的相關(guān)數(shù)據(jù);pnewn=tramnmx(pnew,minp,maxp);%利用原始輸入數(shù)據(jù)的歸一化參數(shù)對(duì)新數(shù)據(jù)進(jìn)行歸一化;HiddenOut=logsig(W1*pnewn+repma

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論