BP神經(jīng)網(wǎng)絡預測理論及程序-學習_第1頁
BP神經(jīng)網(wǎng)絡預測理論及程序-學習_第2頁
BP神經(jīng)網(wǎng)絡預測理論及程序-學習_第3頁
BP神經(jīng)網(wǎng)絡預測理論及程序-學習_第4頁
BP神經(jīng)網(wǎng)絡預測理論及程序-學習_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

12、智能算法

12.1人工神經(jīng)網(wǎng)絡1、人工神經(jīng)網(wǎng)絡的原理假如我們只知道一些輸入和相應的輸出,但是不清楚這些輸入和輸出之間的具體關(guān)系是什么,我們可以把輸入和輸出之間的未知過程看成是一個“網(wǎng)絡”,通過不斷的網(wǎng)絡輸入和相應的輸出進行“訓練”(學習),網(wǎng)絡根據(jù)輸入和對應輸出不斷調(diào)整連接網(wǎng)絡的權(quán)值,直到滿足我們的目標要求,這樣就訓練好了一個神經(jīng)網(wǎng)絡,當我們給定一個輸入,網(wǎng)絡就會計算出一個相應的輸出。2、網(wǎng)絡結(jié)構(gòu)神經(jīng)網(wǎng)絡一般有一個輸入層,多個隱層,和一個輸出層。隱層并非越多越好。如下圖所示:12.2Matlab神經(jīng)網(wǎng)絡工具箱MATLAB神經(jīng)網(wǎng)絡工具箱幾乎涵蓋了所有的神經(jīng)網(wǎng)絡的基本常用模型,如感知器、BP網(wǎng)絡和RBFNN等。它由nftool,nctool,nprtool,nntraintool和nntool組成。主要應用于函數(shù)逼近和數(shù)據(jù)擬合、信息處理和預測、神經(jīng)網(wǎng)絡控制和故障診斷等領(lǐng)域。在實際應用中,針對具體的問題,首先需要分析利用神經(jīng)網(wǎng)絡來解決問題的性質(zhì),然后依據(jù)問題的特點,提取訓練和測試數(shù)據(jù)樣本,確定網(wǎng)絡模型,最后通過對網(wǎng)絡進行訓練、仿真等檢驗網(wǎng)絡的性能是否滿足要求。具體過程如下:(1)確定信息表達的方式,主要包括數(shù)據(jù)樣本已知;數(shù)據(jù)樣本之間相互關(guān)系不明確;輸入/輸出模式為連續(xù)的或離散的;數(shù)據(jù)樣本的預處理;將數(shù)據(jù)樣本分成訓練樣本和測試樣本。(2)網(wǎng)絡模型的確定。確定選擇何種神經(jīng)網(wǎng)絡以及網(wǎng)絡層數(shù)。(3)網(wǎng)絡參數(shù)的選擇,如輸入輸出神經(jīng)元個數(shù)的確定,隱層神經(jīng)元的個數(shù)等。(4)訓練模式的確定,包括選擇合理的訓練算法、確定合適的訓練步數(shù)、指定適當?shù)挠柧毮繕苏`差等(5)網(wǎng)絡測試,選擇合理的樣本對網(wǎng)絡進行測試。簡單來講就是三個步驟:建立網(wǎng)絡(newXX)—訓練網(wǎng)絡(trainXX)—仿真網(wǎng)絡(sim)12.3BP神經(jīng)網(wǎng)絡的Matlab相關(guān)函數(shù)BP算法的基本思想:學習過程由信號的正向傳播與誤差的反向傳播兩個過程組成。正向傳播時,輸入樣本從輸入層傳入,經(jīng)各隱層逐層處理后,傳向輸出層。若輸出層的實際輸出與期望輸出(教師信號)不符,則轉(zhuǎn)入誤差的反向傳播階段。誤差反傳是將輸出誤差以某種形式通過隱層向輸入層逐層反傳,并將誤差分攤給各層的所有單元,從而獲得各層單元的誤差信號,此誤差信號作為修正各單元權(quán)值的依據(jù)。權(quán)值不斷調(diào)整的過程就是神經(jīng)網(wǎng)絡的學習訓練過程。BP神經(jīng)網(wǎng)絡的設計內(nèi)容:(1)網(wǎng)絡層數(shù)的確定。模式樣本較少時,選用較少的隱層節(jié)點,一般采用兩層BP網(wǎng)絡;當模式樣本較多時,減少網(wǎng)絡規(guī)模,可以增加一個隱層。(2)輸入層節(jié)點數(shù)的確定。輸入層起到緩沖存儲器的作用,其節(jié)點個數(shù)取決于輸入矢量的維數(shù)。(3)輸出層節(jié)點數(shù)的確定。取決于兩個方面,輸出數(shù)據(jù)類型和表示該類型所需的數(shù)據(jù)大小。當BP網(wǎng)絡用語模式分類時,以二進制形式來表示不同模式的輸出結(jié)果,則輸出層的節(jié)點數(shù)可根據(jù)分類模式數(shù)來確定。若待分類模式的總數(shù)為m,則有兩種方法確定輸出層的節(jié)點數(shù):1)節(jié)點數(shù)即待分類模式總數(shù)m,輸出為對應的第j個分量為1,其余為0;2)節(jié)點數(shù)取經(jīng)驗值log2m,對應m種輸出模式的二進制編碼。(4)隱層節(jié)點數(shù)的確定。一般通過反復測試獲取較好的節(jié)點數(shù)。對于模式識別/分類的BP網(wǎng)絡,根據(jù)經(jīng)驗公式n=n1+n0+a,n1為輸入節(jié)點數(shù),n0為輸出節(jié)點數(shù),(5)傳輸函數(shù)。一般采用S型函數(shù)fx=11+6)訓練方法及其參數(shù)選擇。Matlab工具箱提供了多種訓練函數(shù)可供選擇。Matlab工具箱中與BP神經(jīng)網(wǎng)絡相關(guān)的函數(shù):(1)創(chuàng)建一個BP網(wǎng)絡的函數(shù)newff,調(diào)用形式為:net=newff();在對話框中創(chuàng)建一個BP網(wǎng)絡net=newff(PR,[S1S2...SN],{TF1TF2...TFN},BTF,BLF,PF);PR:由每組輸入(共R組)元素的最大值和最小值組成的R×2維德矩陣;Si:第i層的長度,共有N層;TFi:第i層的傳遞函數(shù),默認為tansig;BTF:BP網(wǎng)絡的訓練函數(shù),默認為trainlm;BLF:權(quán)值和閾值的學習算法,默認為learngdm;PF網(wǎng)絡的性能函數(shù),默認為mse.(2)傳遞函數(shù)有l(wèi)ogsig,dlogsig(導函數(shù)),tansig(雙曲正切),dtansgi,purelin,dpurelin等(3)學習函數(shù)有l(wèi)earngd(梯度下降權(quán)值/閾值學習函數(shù)),learngdm(梯度下降動量學習函數(shù))等(4)訓練函數(shù)有trainbfg(BFGS準牛頓算法),traingd,traingdm等;(5)性能函數(shù)有mse,msereg,mae等(6)顯示函數(shù)有plotperf,plotes(誤差曲面),plotep,errsurf等.舉例1:>>p=[12;-11;-21;-40]';>>t=[0.20.80.80.2];>>net=newff([-11;-11],[51],{'logsig','logsig'},'traingd');>>net.trainParam.goal=0.001;>>net.trainParam.epochs=5000;>>[net,tr]=train(net,p,t);>>saveBPnet1net;>>loadBPnet1net;>>p1=[12;-11;-21;-40]';>>a2=sim(net,p1);>>a2=a2>0.5a2=0110另一新版本程序:>>p=[12;-11;-21;-40]';>>t=[0.20.80.80.2];>>feedforwardnet(5,'traingd');>>>>net=newff([-11;-11],[51],{'logsig','logsig'},'traingd');>>net.trainParam.goal=0.001;>>net.trainParam.epochs=5000;>>[net,tr]=train(net,p,t);>>saveBPnet1net;>>loadBPnet1net;>>p1=[12;-11;-21;-40]';>>a2=sim(net,p1);>>a2=a2>0.5a2=1110程序解釋:Matlab程序如下:%定義輸入向量和目標向量p=[12;-11;-21;-40]';t=[0.20.80.80.2];%創(chuàng)建BP網(wǎng)絡并定義訓練函數(shù)及參數(shù)net=newff([-11;-11],[51],{'logsig','logsig'},'traingd');net.trainParam.goal=0.001;net.trainParam.epochs=5000;%訓練神經(jīng)網(wǎng)絡[net,tr]=train(net,p,t);125saveBPnet1net;%保存網(wǎng)絡%仿真網(wǎng)絡loadBPnet1net;%加載網(wǎng)絡p1=[12;-11;-21;-40]';a2=sim(net,p1);a2=a2>0.5注:在新版本的Matlab中,創(chuàng)建前饋BP神經(jīng)網(wǎng)絡的函數(shù)已經(jīng)更新為feedforwardnet(hiddenSizes,trainFcn),相應的程序修改為:%定義輸入向量和目標向量p=[12;-11;-21;-40]';t=[0.20.80.80.2];%創(chuàng)建BP網(wǎng)絡并定義訓練函數(shù)及參數(shù)feedforwardnet(5,'traingd');%訓練神經(jīng)網(wǎng)絡[net,tr]=train(net,p,t);saveBPnet1net;%保存網(wǎng)絡。例2:BP網(wǎng)絡用于曲線擬合>>p=-1:0.1:0.9;>>t=[-0.832-0.423-0.0240.3441.2823.4564.023.2322.1021.504...0.2481.2422.3443.2622.0521.6841.0222.2243.0221.984]t=Columns1through8-0.8320-0.4230-0.02400.34401.28203.45604.02003.2320Columns9through162.10201.50400.24801.24202.34403.26202.05201.6840Columns17through201.02202.22403.02201.9840>>net=feedforwardnet(15);>>net.trainParam.epochs=2500;>>net.trainParam.goal=0.001;>>net.trainParam.show=10;>>net.trainParam.lr=0.005;>>net=train(net,p,t);>>saveBPnet2net;>>p=-1:0.1:0.9;t=[-0.832-0.423-0.0240.3441.2823.4564.023.2322.1021.504...0.2481.2422.3443.2622.0521.6841.0222.2243.0221.984];>>holdon>>plot(p,t,'r*');>>loadBPnet2net;>>r=sim(net,p);>>plot(p,r);>>perf=perform(net,t,r)perf=0.6447>>holdoff;12.4RBF神經(jīng)網(wǎng)絡的Matlab相關(guān)函數(shù)RBF神經(jīng)網(wǎng)絡的主要特點有:(1)RBF神經(jīng)網(wǎng)絡只有一個隱層,結(jié)構(gòu)簡單;(2)RBF神經(jīng)網(wǎng)絡的隱層神經(jīng)元和輸出層神經(jīng)元的模型不同,在網(wǎng)絡中起到的作用也是不同的;(3)RBF神經(jīng)網(wǎng)絡的隱層是非線性的,輸出層是線性的;(4)RBF神經(jīng)網(wǎng)絡的基函數(shù)計算的是輸入向量和中心的歐式距離,以此作為自變量;(5)RBF神經(jīng)網(wǎng)絡使用局部指數(shù)衰減的非線性函數(shù)對非線性輸入輸出映射進行局部逼近。它的優(yōu)點有:(1)具有全局的非線性逼近能力;(2)相比其他神經(jīng)網(wǎng)絡具有更簡單的結(jié)構(gòu)];(3)因為神經(jīng)元的局部調(diào)整而具有更快的學習速率。它在非線性函數(shù)逼近、時間序列分析、模式識別、信息處理、數(shù)據(jù)分類、圖像處理、系統(tǒng)建模等方面具有廣泛的應用.Matlab工具箱中與RBF神經(jīng)網(wǎng)絡相關(guān)的函數(shù):newrb:新建一個RBF神經(jīng)網(wǎng)絡,逐個增加隱層神經(jīng)元的個數(shù),使誤差滿足要求。net=newrb(P,T,goal,spread,MN,DF)P:R-by-QmatrixofQinputvectorsT:S-by-QmatrixofQtargetclassvectorsgoal:Meansquarederrorgoal(default=0.0)spread:Spreadofradialbasisfunctions(default=1.0)MN:Maximumnumberofneurons(defaultisQ)DF:Numberofneuronstoaddbetweendisplays(default=25)newrbe:快速創(chuàng)建一個RBFNN,徑向基神經(jīng)元的數(shù)目等于輸入樣本數(shù),如果輸入像兩個數(shù)很多時會導致網(wǎng)絡規(guī)模很大,所以更常用的是newrb函數(shù)。net=newrbe(P,T,spread)P:RxQmatrixofQR-elementinputvectorsT:SxQmatrixofQS-elementtargetclassvectorsspread:Spreadofradialbasisfunctions(default=1.0)例

3:RBFNN

用于曲線擬合(續(xù)例

2)Matlab程序如下:>>p=-1:0.1:0.9;t=[-0.832-0.423-0.0240.3441.2823.4564.023.2322.1021.504...0.2481.2422.3443.2622.0521.6841.0222.2243.0221.984];>>net=newrb(p,t,0.1,0.2,20,5);NEWRB,neurons=0,MSE=1.73865NEWRB,neurons=5,MSE=0.0901476>>p=-1:0.1:0.9;t=[-0.832-0.423-0.0240.3441.2823.4564.023.2322.1021.504...0.2481.2422.3443.2622.0521.684

溫馨提示

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

評論

0/150

提交評論