初學bp神經網絡算法(共5頁)_第1頁
初學bp神經網絡算法(共5頁)_第2頁
初學bp神經網絡算法(共5頁)_第3頁
初學bp神經網絡算法(共5頁)_第4頁
初學bp神經網絡算法(共5頁)_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精選優(yōu)質文檔-傾情為你奉上BP神經網絡算法三層BP神經網絡如圖:目標輸出向量傳遞函數輸出層,輸出向量輸入層,輸入向量隱含層,隱含層輸出向量權值為傳遞函數設網絡的輸入模式為,隱含層有h個單元,隱含層的輸出為,輸出層有m個單元,他們的輸出為,目標輸出為設隱含層到輸出層的傳遞函數為,輸出層的傳遞函數為g于是:隱含層第j個神經元的輸出;其中:輸出層第k個神經元的輸出此時網絡輸出與目標輸出的誤差為,顯然,它是的函數。下面的步驟就是想辦法調整權值,使減小。由高等數學的知識知道:負梯度方向是函數值減小最快的方向因此,可以設定一個步長,每次沿負梯度方向調整個單位,即每次權值的調整為:,在神經網絡中稱為學習速率

2、可以證明:按這個方法調整,誤差會逐漸減小。BP神經網絡(反向傳播)的調整順序為:1)先調整隱含層到輸出層的權值設為輸出層第k個神經元的輸入-復合函數偏導公式若取,則于是隱含層到輸出層的權值調整迭代公式為:2)從輸入層到隱含層的權值調整迭代公式為:其中為隱含層第j個神經元的輸入:注意:隱含層第j個神經元與輸出層的各個神經元都有連接,即涉及所有的權值,因此于是:因此從輸入層到隱含層的權值調整迭代為公式為:例:下表給出了某地區(qū)公路運力的歷史統(tǒng)計數據,請建立相應的預測模型,并對給出的2010和2011年的數據,預測相應的公路客運量和貨運量。時間人數(單位:萬人)機動車數(單位:萬輛)公路面積(單位:萬

3、平方公里)公路客運量(單位:萬人)公路貨運量(單位:萬噸)199020.550.60.0951261237199122.440.750.1162171379199225.370.850.1177301385199327.130.90.1491451399199429.451.050.2104601663199530.11.350.23113871714199630.961.450.23123531834199734.061.60.32157504322199836.421.70.32183048132199938.091.850.34198368936200039.132.150.362102

4、411099200139.992.20.361949011203200241.932.250.382043310524200344.592.350.492259811115200447.32.50.562510713320200552.892.60.593344216762200655.732.70.593683618673200756.762.850.674054820724200859.172.950.694292720803200960.633.10.794346221804201073.39003.96350.98805435927827201175.55004.09751.02685

5、560628453function main()clc % 清屏clear all; %清除內存以便加快運算速度close all; %關閉當前所有figure圖像SamNum=20; %輸入樣本數量為20TestSamNum=20; %測試樣本數量也是20ForcastSamNum=2; %預測樣本數量為2HiddenUnitNum=8; %中間層隱節(jié)點數量取8,比工具箱程序多了1個InDim=3; %網絡輸入維度為3OutDim=2; %網絡輸出維度為2%原始數據 %人數(單位:萬人)sqrs=20.55 22.44 25.37 27.13 29.45 30.10 30.96 34.06

6、36.42 38.09 39.13 39.99 . 41.93 44.59 47.30 52.89 55.73 56.76 59.17 60.63;%機動車數(單位:萬輛)sqjdcs=0.6 0.75 0.85 0.9 1.05 1.35 1.45 1.6 1.7 1.85 2.15 2.2 2.25 2.35 2.5 2.6. 2.7 2.85 2.95 3.1;%公路面積(單位:萬平方公里)sqglmj=0.09 0.11 0.11 0.14 0.20 0.23 0.23 0.32 0.32 0.34 0.36 0.36 0.38 0.49 . 0.56 0.59 0.59 0.67 0

7、.69 0.79;%公路客運量(單位:萬人)glkyl=5126 6217 7730 9145 10460 11387 12353 15750 18304 19836 21024 19490 20433 . 22598 25107 33442 36836 40548 42927 43462;%公路貨運量(單位:萬噸)glhyl=1237 1379 1385 1399 1663 1714 1834 4322 8132 8936 11099 11203 10524 11115 . 13320 16762 18673 20724 20803 21804;p=sqrs;sqjdcs;sqglmj; %

8、輸入數據矩陣t=glkyl;glhyl; %目標數據矩陣SamIn,minp,maxp,tn,mint,maxt=premnmx(p,t); %原始樣本對(輸入和輸出)初始化rand('state',sum(100*clock) %依據系統(tǒng)時鐘種子產生隨機數 NoiseVar=0.01; %噪聲強度為0.01(添加噪聲的目的是為了防止網絡過度擬合)Noise=NoiseVar*randn(2,SamNum); %生成噪聲SamOut=tn + Noise; %將噪聲添加到輸出樣本上TestSamIn=SamIn; %這里取輸入樣本與測試樣本相同因為樣本容量偏少TestSamOu

9、t=SamOut; %也取輸出樣本與測試樣本相同MaxEpochs=50000; %最多訓練次數為50000lr=0.035; %學習速率為0.035E0=0.65*10(-3); %目標誤差為0.65*10(-3)W1=0.5*rand(HiddenUnitNum,InDim)-0.1; %初始化輸入層與隱含層之間的權值B1=0.5*rand(HiddenUnitNum,1)-0.1; %初始化輸入層與隱含層之間的閾值W2=0.5*rand(OutDim,HiddenUnitNum)-0.1; %初始化輸出層與隱含層之間的權值 B2=0.5*rand(OutDim,1)-0.1; %初始化輸

10、出層與隱含層之間的閾值ErrHistory=; %給中間變量預先占據內存for i=1:MaxEpochs HiddenOut=logsig(W1*SamIn+repmat(B1,1,SamNum); % 隱含層網絡輸出 NetworkOut=W2*HiddenOut+repmat(B2,1,SamNum); % 輸出層網絡輸出 Error=SamOut-NetworkOut; % 實際輸出與網絡輸出之差 SSE=sumsqr(Error) %能量函數(誤差平方和) ErrHistory=ErrHistory SSE; if SSE<E0,break, end %如果達到誤差要求則跳出學

11、習循環(huán) % 以下六行是BP網絡最核心的程序 % 他們是權值(閾值)依據能量函數負梯度下降原理所作的每一步動態(tài)調整量 Delta2=Error; Delta1=W2'*Delta2.*HiddenOut.*(1-HiddenOut); dW2=Delta2*HiddenOut' dB2=Delta2*ones(SamNum,1); dW1=Delta1*SamIn' dB1=Delta1*ones(SamNum,1); %對輸出層與隱含層之間的權值和閾值進行修正 W2=W2+lr*dW2; B2=B2+lr*dB2; %對輸入層與隱含層之間的權值和閾值進行修正 W1=W1

12、+lr*dW1; B1=B1+lr*dB1;endHiddenOut=logsig(W1*SamIn+repmat(B1,1,TestSamNum); % 隱含層輸出最終結果NetworkOut=W2*HiddenOut+repmat(B2,1,TestSamNum); % 輸出層輸出最終結果a=postmnmx(NetworkOut,mint,maxt); % 還原網絡輸出層的結果x=1990:2009; % 時間軸刻度newk=a(1,:); % 網絡輸出客運量newh=a(2,:); % 網絡輸出貨運量figure ;subplot(2,1,1);plot(x,newk,'r-o

13、',x,glkyl,'b-+') %繪值公路客運量對比圖;legend('網絡輸出客運量','實際客運量');xlabel('年份');ylabel('客運量/萬人');subplot(2,1,2);plot(x,newh,'r-o',x,glhyl,'b-+') %繪制公路貨運量對比圖;legend('網絡輸出貨運量','實際貨運量');xlabel('年份');ylabel('貨運量/萬噸');% 利用訓練好的網絡進行預測% 當用訓練好的網絡對新數據pnew進行預測時,也應作相應的處理pnew=73.39 75.55 3.9635 4.0975 0.9880 1.0268; %2010年和2011年的相關數據;pnewn=tramnmx(pnew,minp,max

溫馨提示

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

評論

0/150

提交評論