![數(shù)學(xué)建模實(shí)驗(yàn)三:Matlab神經(jīng)網(wǎng)絡(luò)以及應(yīng)用于汽油辛烷值預(yù)測(cè)_第1頁(yè)](http://file4.renrendoc.com/view/2f694e419cefca4c0dea05062cd2ffbb/2f694e419cefca4c0dea05062cd2ffbb1.gif)
![數(shù)學(xué)建模實(shí)驗(yàn)三:Matlab神經(jīng)網(wǎng)絡(luò)以及應(yīng)用于汽油辛烷值預(yù)測(cè)_第2頁(yè)](http://file4.renrendoc.com/view/2f694e419cefca4c0dea05062cd2ffbb/2f694e419cefca4c0dea05062cd2ffbb2.gif)
![數(shù)學(xué)建模實(shí)驗(yàn)三:Matlab神經(jīng)網(wǎng)絡(luò)以及應(yīng)用于汽油辛烷值預(yù)測(cè)_第3頁(yè)](http://file4.renrendoc.com/view/2f694e419cefca4c0dea05062cd2ffbb/2f694e419cefca4c0dea05062cd2ffbb3.gif)
![數(shù)學(xué)建模實(shí)驗(yàn)三:Matlab神經(jīng)網(wǎng)絡(luò)以及應(yīng)用于汽油辛烷值預(yù)測(cè)_第4頁(yè)](http://file4.renrendoc.com/view/2f694e419cefca4c0dea05062cd2ffbb/2f694e419cefca4c0dea05062cd2ffbb4.gif)
![數(shù)學(xué)建模實(shí)驗(yàn)三:Matlab神經(jīng)網(wǎng)絡(luò)以及應(yīng)用于汽油辛烷值預(yù)測(cè)_第5頁(yè)](http://file4.renrendoc.com/view/2f694e419cefca4c0dea05062cd2ffbb/2f694e419cefca4c0dea05062cd2ffbb5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
試驗(yàn)三Matlab神經(jīng)網(wǎng)絡(luò)以及應(yīng)用于汽油辛烷值推測(cè)一、試驗(yàn)?zāi)康陌盐誐ATLAB創(chuàng)立BP把握MATLAB創(chuàng)立REF把握MATLAB創(chuàng)立BP神經(jīng)網(wǎng)絡(luò)和REF了解MATLAB二、試驗(yàn)原理BP神經(jīng)網(wǎng)絡(luò)BPBP神經(jīng)網(wǎng)絡(luò)RumelhardMcClelland層的三層網(wǎng)絡(luò)可以靠近任意非線性函數(shù)。隱含層中的神經(jīng)元多承受S示為一個(gè)典型的BP神經(jīng)網(wǎng)絡(luò)。該網(wǎng)絡(luò)具有一個(gè)隱含層,輸入層神經(jīng)元數(shù)據(jù)為R,隱含層神經(jīng)元數(shù)目為S1,輸出層神經(jīng)元數(shù)據(jù)為S2,隱含層承受S型傳遞函數(shù)tansig,輸出層傳遞函purelin。圖1含一個(gè)隱含層的BPBPBPS型函數(shù),因此輸出量為01稱(chēng)為反向傳播〔Back-Propogation〕學(xué)習(xí)算法,簡(jiǎn)稱(chēng)為BPBP〔正向計(jì)算過(guò)程二階段〔誤差反向傳播過(guò)程此修正前一層權(quán)值。BP網(wǎng)絡(luò)的學(xué)習(xí)過(guò)程主要由以下四局部組成:1〕輸入樣本順傳播輸入樣本傳播也就是樣本由輸入層經(jīng)中間層向輸出層傳播計(jì)算。這一過(guò)程主要是輸入樣本求出它所對(duì)應(yīng)的實(shí)際輸出。①隱含層中第i個(gè)神經(jīng)元的輸出為R a f
w p
i1,2,,s1i 1
1ij
1i 1②輸出層中第k個(gè)神經(jīng)元的輸出為:1 a f w a b
i1,2,s2k 2
i1
2ki
2k 2f(·),f(·)分別為隱含層和輸出層的傳遞函數(shù)。1 22〕輸出誤差逆?zhèn)鞑ピ诘谝徊降臉颖卷槀鞑ビ?jì)算中我們得到了網(wǎng)絡(luò)的實(shí)際輸出值望輸出值不一樣時(shí),或者說(shuō)其誤差大于所限定的數(shù)值時(shí),就要對(duì)網(wǎng)絡(luò)進(jìn)展校正。首先,定義誤差函數(shù)其次,給出權(quán)值的變化①輸出層的權(quán)值變化
()=1s22
(t a )2k 2ki個(gè)輸入到第k個(gè)輸出的權(quán)值為:其中:
w2ki
E aw ki 1i2ki②隱含層的權(quán)值變化
eki
f”,e2
l ak 2kj個(gè)輸入到第i個(gè)輸出的權(quán)值為:其中:
w ij
E pw ij 1ij
01 (η為學(xué)習(xí)系數(shù)) eij i
f”1es2i
ki
2ki越大,③調(diào)整是與學(xué)習(xí)系數(shù)成正比。通常學(xué)習(xí)系數(shù)在~之間,為使整個(gè)學(xué)習(xí)過(guò)程加快,又不漸漸減小其值。最終,將輸出誤差由輸出層經(jīng)中間層傳向輸入層,逐層進(jìn)展校正。BP對(duì)BP網(wǎng)絡(luò)進(jìn)展訓(xùn)練時(shí),首先要供給一組訓(xùn)練樣本,其中每個(gè)樣本由輸入樣本和輸出對(duì)組成。當(dāng)網(wǎng)絡(luò)的全部實(shí)際輸出與其期望輸出小于指定誤差時(shí),訓(xùn)練完畢。否則,通過(guò)修正權(quán)值,使網(wǎng)絡(luò)的實(shí)際輸出與期望輸出接近全都〔圖。實(shí)際上針對(duì)不同具體狀況,BP網(wǎng)絡(luò)的訓(xùn)練有相應(yīng)的學(xué)習(xí)規(guī)章,即不同的最優(yōu)化算法,沿削減期望輸出與實(shí)際輸出之間誤差的原則,實(shí)現(xiàn)BP網(wǎng)絡(luò)的函數(shù)靠近、向量分類(lèi)和模式識(shí)別。
2神經(jīng)網(wǎng)絡(luò)的訓(xùn)練RBF1985,Powell〔RadicalBasisFunction,RBF〕方法。1988Moody和DarkenRBF神經(jīng)網(wǎng)絡(luò),屬于前向神經(jīng)網(wǎng)絡(luò)類(lèi)型,它能夠以任意精度靠近任意連續(xù)函數(shù),特別適合于解決分類(lèi)問(wèn)題。RBF網(wǎng)絡(luò)的構(gòu)造與多層前向網(wǎng)絡(luò)類(lèi)似,它是一種三層前向網(wǎng)絡(luò)。輸入層由信號(hào)源節(jié)點(diǎn)組成;其次層為隱含層,隱單元數(shù)視所描述問(wèn)題的需要而定,隱單元的變換函數(shù)RBF〔〕是對(duì)中心點(diǎn)徑向?qū)ΨQ(chēng)且衰減的非負(fù)非線性函數(shù)從輸入空間到隱含層空間的變換是非線性的,而從隱含層空間的輸出層空間變換是線性的。RBF網(wǎng)絡(luò)的根本思想是:用RBF入向量直接〔即不需要通過(guò)權(quán)接〕RBF的中心點(diǎn)確定以后,這種映射關(guān)系也權(quán)和。此處的權(quán)即為網(wǎng)絡(luò)可調(diào)參數(shù)。由此可見(jiàn),從總體上看,網(wǎng)絡(luò)由輸入到輸出的映射是非,從而大大加快學(xué)習(xí)速度并避開(kāi)局部微小問(wèn)題。徑向基神經(jīng)網(wǎng)絡(luò)的神經(jīng)元構(gòu)造如圖3所示。徑向基神經(jīng)網(wǎng)絡(luò)的激活函數(shù)承受徑向基函徑向基神經(jīng)網(wǎng)絡(luò)的激活函數(shù)〔高斯函數(shù)〕的一般表達(dá)式為Rdistedist徑向基神經(jīng)網(wǎng)絡(luò)的激活函數(shù)〔高斯函數(shù)〕的一般表達(dá)式為Rdistedist2x1x21h2hdistnyihxmb3徑向基神經(jīng)元模型時(shí),神經(jīng)元輸出13b神經(jīng)元和競(jìng)爭(zhēng)神經(jīng)元可以組建概率神經(jīng)網(wǎng)絡(luò),此種神經(jīng)網(wǎng)絡(luò)適用于解決分類(lèi)問(wèn)題。由輸入層、隱含層和輸出層構(gòu)成的一般徑向基神經(jīng)網(wǎng)絡(luò)構(gòu)造如圖4所示。4徑向基神經(jīng)網(wǎng)絡(luò)構(gòu)造RBF〔以單個(gè)輸出神經(jīng)元為例神經(jīng)元與輸入層相連的權(quán)值向量W1i
Xq〔表示第q個(gè)輸入向量〕之間的距離乘上閾值b1i
,作為本身的輸入〔圖。w11w11iW1Xqiirqiw1mib1i1xq2xqm5徑向基神經(jīng)網(wǎng)絡(luò)神經(jīng)元的輸入與輸出1 1 xq2ji jj輸出為:
kqW1i
i
irqexp((kq)2)exp((W1Xqb1)2)i i i i徑向基函數(shù)的閾值b1C〔稱(chēng)為擴(kuò)展常數(shù)。b1C的關(guān)系有多種確定方法,在MATLABb1C的關(guān)系為/Ci
,此時(shí)隱含層神經(jīng)元的輸出變?yōu)椋篻qexp((W1Xq
0.8326
)2)i i CiMATLABC值用參數(shù)spreadspread際上反映了輸出對(duì)輸入的響應(yīng)寬度。spread值越大,隱含層神經(jīng)元對(duì)輸入向量的響應(yīng)范圍將越大,且神經(jīng)元間的平滑度也較好。輸出層的輸入為各隱含層神經(jīng)元輸出的加權(quán)求和。由于激活函數(shù)為純線性函數(shù),因此輸出為:yqni1
rqw2i iRBF網(wǎng)絡(luò)的訓(xùn)練過(guò)程分為兩步:第一步為無(wú)教師式學(xué)習(xí),確定訓(xùn)練輸入層與隱含層間的權(quán)值W1W2.在訓(xùn)練以前需X、對(duì)應(yīng)的目標(biāo)向量T和徑向基函數(shù)的擴(kuò)展常數(shù)C。訓(xùn)練的目的是求取兩層的最終權(quán)值W1,W2和閾值b1b2。在RBF網(wǎng)絡(luò)訓(xùn)練中,隱含層神經(jīng)元數(shù)量確實(shí)定是一個(gè)關(guān)鍵問(wèn)題,簡(jiǎn)便的做法是使其與輸入向量的個(gè)數(shù)相等〔(exact)RB。明顯,在輸入向量個(gè)數(shù)很多時(shí),過(guò)多的隱含層1動(dòng)增加神經(jīng)元。每次循環(huán)使用,使網(wǎng)絡(luò)產(chǎn)生的最大誤差所對(duì)應(yīng)的輸入向量作為權(quán)值向量,產(chǎn)隱含層神經(jīng)元數(shù)為止〔稱(chēng)為近似approximat〕RB。RBFBP在理論上,RBF網(wǎng)絡(luò)和BP網(wǎng)絡(luò)一樣能以任意精度靠近任何非線性函數(shù)。但由于它們使用的激活函數(shù)不同,其靠近性能也不一樣。PoggioGirosiRBF數(shù)的最正確靠近,而B(niǎo)PBP網(wǎng)絡(luò)使用的Sigmoid很大范圍內(nèi)每個(gè)節(jié)點(diǎn)都對(duì)輸出值產(chǎn)生影響,并且激活函數(shù)在輸入值的很大范圍內(nèi)相互重疊,BP網(wǎng)絡(luò)訓(xùn)練過(guò)程很長(zhǎng)。此外,由于BPBP陷入局部微小的問(wèn)題不行能從根本上避開(kāi),并且BP網(wǎng)絡(luò)隱層節(jié)點(diǎn)數(shù)目確實(shí)定依靠于閱歷和試RBFRBF不BP隱含層節(jié)點(diǎn)的數(shù)目也在訓(xùn)練過(guò)程中確定,并且其收斂性也較BP網(wǎng)絡(luò)易于保證,因此可以得到最優(yōu)解。BPRBFMATLABBPnewff:BP函數(shù)功能:構(gòu)建一個(gè)BP函數(shù)形式:net=newff(P,T,S,TF,BTF,BLF,PF,IPF,OPF,DDF)P:輸入數(shù)據(jù)矩陣〔訓(xùn)練集的輸入向量作為列構(gòu)成的矩陣〕T:輸出數(shù)據(jù)矩陣〔訓(xùn)練集的期望向量作為列構(gòu)成的矩陣〕S:隱合層節(jié)點(diǎn)數(shù)TF:節(jié)點(diǎn)傳遞函數(shù),包括硬限幅傳遞函數(shù)hardlimhardlims,線性傳遞函數(shù)purelin,正切S型傳遞函數(shù)tansig,對(duì)數(shù)S型傳遞函數(shù)logsig.BTF:BPtraingdBP訓(xùn)練函數(shù)traingdm.動(dòng)態(tài)自適應(yīng)學(xué)習(xí)率的梯度下降BP算法訓(xùn)練函數(shù)traingda,動(dòng)量反傳和動(dòng)態(tài)自適應(yīng)學(xué)習(xí)率的梯度下降BP算法訓(xùn)練函數(shù)traingdx、Levenberg-_MarquardtBPtrainlm。BLF:網(wǎng)絡(luò)學(xué)習(xí)函數(shù),包括Bp學(xué)習(xí)規(guī)章learngd、帶動(dòng)量項(xiàng)的BP學(xué)習(xí)規(guī)章learngdm。PF:性能分析函數(shù),包括均值確定誤差性能分析函數(shù)mae、均方差性能分析函數(shù)mse.IPF:輸入處理函數(shù)。OPF:輸出處理函數(shù)。DDF:驗(yàn)證數(shù)據(jù)劃分函數(shù)。feedforwardnet替代函數(shù)newff,其用64留意:Matlabfeedforwardnet替代函數(shù)newff,其用法為feedforwardnet(hiddenSizes,trainFcn)hiddenSizes:隱含層神經(jīng)元個(gè)數(shù),默認(rèn)為10,假設(shè)是多個(gè)隱含層,這是沒(méi)有隱含層神經(jīng)元個(gè)數(shù)組成的行向量;trainFcn:訓(xùn)練函數(shù),默認(rèn)為”trainlm”)train:BP函數(shù)功能:用訓(xùn)練數(shù)據(jù)訓(xùn)練BP神經(jīng)網(wǎng)絡(luò)。函數(shù)形式:[net,tr]=train(NET,X,T,Pi,Ai)NET:待訓(xùn)練網(wǎng)絡(luò)X:輸入數(shù)據(jù)矩陣T:輸出數(shù)據(jù)矩陣Pi:初始化輸入層條件Ai:初始化輸出層條件net:訓(xùn)練好的網(wǎng)絡(luò)tr:訓(xùn)練過(guò)程記錄32sim:BP函數(shù)功能:用訓(xùn)練好的BP神經(jīng)網(wǎng)絡(luò)推測(cè)函數(shù)輸出。函數(shù)形式:y=sim(net,x)net:訓(xùn)練好的網(wǎng)絡(luò)。x: 輸入數(shù)據(jù)。y: 網(wǎng)絡(luò)推測(cè)數(shù)據(jù)。RBFnewrb該函數(shù)可以用來(lái)設(shè)計(jì)一個(gè)近似〔approximate〕徑向基網(wǎng)絡(luò)。其調(diào)用格式為[net,tr]=newrb(X,T,GOAL,SPREAD,MN,DF)其中,X為Q組輸入向量組成的R*QTQS*Q陣;GOAL為均方誤差目標(biāo)〔MeanSquaredErrorGoal〕,默認(rèn)為;SPREAD為徑向基函數(shù)的擴(kuò)展速度,默認(rèn)為1,MNQ;DF加的神經(jīng)元數(shù)目,默認(rèn)為25;net為返回值,一個(gè)RBFtr用newrb創(chuàng)立RBF層神經(jīng)元和個(gè)數(shù),直到網(wǎng)絡(luò)的輸出誤差滿足預(yù)先設(shè)定的值為止。newrbe該函數(shù)用于設(shè)計(jì)一個(gè)準(zhǔn)確(exact)徑向基網(wǎng)絡(luò),其調(diào)用格式為net=newrbe(X,T,SOREAD)其中,XQ組輸入向量組成的R*QTQ組目標(biāo)分類(lèi)向量組成的S*Q矩陣;SPREAD1。和newrb不同,newrbe合輸入向量個(gè)數(shù)較少的情形。radbas該函數(shù)為徑向基傳遞函數(shù)。其調(diào)用格式為A=radbas(N)Info=radbas(code)其中,N〔列〕向量的S*QAN一一對(duì)應(yīng),即N中的每個(gè)元素通過(guò)徑向基函數(shù)得到A;info=radbas(code)表示依據(jù)code值的不同返回有關(guān)函數(shù)的不同信息。包括derive 返回導(dǎo)函數(shù)的名稱(chēng)name 返回函數(shù)全稱(chēng)。output 返回輸入范圍。active 返回可用輸入范圍。神經(jīng)網(wǎng)絡(luò)并行運(yùn)算MATLAB化的實(shí)現(xiàn)是將整個(gè)訓(xùn)練數(shù)據(jù)集拆分到〔多核〕計(jì)算機(jī)不同的worker上,整個(gè)數(shù)據(jù)集的運(yùn)。算結(jié)果為合并后的全部workermatlabpool,同時(shí)將神經(jīng)網(wǎng)絡(luò)train與simuseparallelyes%%翻開(kāi)MATLABworkersmatlabpoolopen%檢查workerpoolsize=matlabpool(”size”)%%設(shè)置train與simUseparalleyenet2=train(net1,x,t,”Useparallel”,”yes”)y=sim(net2,x,”Useparallel”,”yes”)]三、試驗(yàn)內(nèi)容BPyx2x21 2第一步數(shù)據(jù)選擇和歸一化2023組數(shù)據(jù),將數(shù)據(jù)存貯在文件中〔下載后拷貝到Matlab當(dāng)前名目,其中inputoutput是函數(shù)輸出數(shù)據(jù)。從輸入輸出數(shù)據(jù)中隨機(jī)選取1900中數(shù)據(jù)作為網(wǎng)絡(luò)訓(xùn)練數(shù)據(jù),100組作為網(wǎng)絡(luò)測(cè)試數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)展歸一化處理。%%清空環(huán)境變量clcclear%%訓(xùn)練數(shù)據(jù)推測(cè)數(shù)據(jù)提取及歸一化%載入輸入輸出數(shù)據(jù)loaddatainputoutput12023k=rand(1,2023);[m,n]=sort(k);%找出訓(xùn)練數(shù)據(jù)和推測(cè)數(shù)據(jù)input_train=input(n(1:1900),:)”;output_train=output(n(1:1900));input_test=input(n(1901:2023),:)”;output_test=output(n(1901:2023));%選連樣本輸入輸出數(shù)據(jù)歸一化[inputn,inputps]=mapminmax(input_train);[outputn,outputps]=mapminmax(output_train);其次步建立和訓(xùn)練BP構(gòu)建BP神經(jīng)網(wǎng)絡(luò),用訓(xùn)練數(shù)據(jù)訓(xùn)練,使網(wǎng)絡(luò)對(duì)非線性函數(shù)輸出具有推測(cè)力量。%%構(gòu)建和訓(xùn)練BP%BPnet=newff(inputn,outputn,5);%網(wǎng)絡(luò)參數(shù)配置〔迭代次數(shù),學(xué)習(xí)率,目標(biāo)〕網(wǎng)絡(luò)訓(xùn)練,并記錄訓(xùn)練時(shí)間ticnet=train(net,inputn,outputn);t1=tocdisp([”神經(jīng)網(wǎng)絡(luò)的訓(xùn)練時(shí)間為”,num2str(t1),”秒”]);第三步BP用訓(xùn)練好的BP神經(jīng)網(wǎng)絡(luò)推測(cè)非線性函數(shù)輸出。%%BP%推測(cè)數(shù)據(jù)歸一化inputn_test=mapminmax(”apply”,input_test,inputps);%網(wǎng)絡(luò)推測(cè)輸出an=sim(net,inputn_test);%網(wǎng)絡(luò)輸出反歸一化BPoutput=mapminmax(”reverse”,an,outputps);第四步結(jié)果分析BPBP%%結(jié)果分析figure(1)plot(BPoutput,”:og”)holdonplot(output_test,”-*”);legend(”推測(cè)輸出”,”期望輸出”)title(”BP”,”fontsize”,12)ylabel(”函數(shù)輸出”,”fontsize”,12)xlabel(”樣本”,”fontsize”,12)%推測(cè)誤差error=BPoutput-output_test;figure(2)plot(error,”-*”)title(”BP”,”fontsize”,12)ylabel(”誤差”,”fontsize”,12)xlabel(”樣本”,”fontsize”,12)figure(3)plot((output_test-BPoutput)./BPoutput,”-*”);title(”神經(jīng)網(wǎng)絡(luò)推測(cè)誤差百分比”)errorsum=sum(abs(error));RBFy20+x210cos(2x)x210cos(2x)1 1 2 2第一步建立exactRBF%RBF%%清空環(huán)境變量clcclear%%產(chǎn)生輸入輸出數(shù)據(jù)%設(shè)置步長(zhǎng)interval=;%產(chǎn)生x1x2x1=:interval:;x2=:interval:;%依據(jù)函數(shù)先求得相應(yīng)的函數(shù)值,作為網(wǎng)絡(luò)的輸出。F=20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2);%%網(wǎng)絡(luò)建立和訓(xùn)練%網(wǎng)絡(luò)建立輸入為[x1;x2],輸出為F。Spreadnet=newrbe([x1;x2],F)%%網(wǎng)絡(luò)的效果驗(yàn)證%將原數(shù)據(jù)回帶,測(cè)試網(wǎng)絡(luò)效果:ty=sim(net,[x1;x2]);%使用圖像來(lái)看網(wǎng)絡(luò)對(duì)非線性函數(shù)的擬合效果figureplot3(x1,x2,F,”rd”);holdon;plot3(x1,x2,ty,”b-.”);view(113,36)title(”可視化的方法觀看準(zhǔn)確RBF神經(jīng)網(wǎng)絡(luò)的擬合效果”)xlabel(”x1”)ylabel(”x2”)zlabel(”F”)gridon其次步建立approximateRBF%RBFclcclear%%產(chǎn)生訓(xùn)練樣本〔訓(xùn)練輸入,訓(xùn)練輸出〕%ldld=400;2*ldx=rand(2,ld);xx=**2;%x的第一行為x1,其次行為x2.x1=x(1,:);x2=x(2,:);%計(jì)算網(wǎng)絡(luò)輸出FF=20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2);%%建立RBF%承受approximateRBFspreadnet=newrb(x,F);%%建立測(cè)試樣本%generatethetestingdatainterval=;[i,j]=meshgrid:interval:;row=size(i);tx1=i(:);tx1=tx1”;tx2=j(:);tx2=tx2”;tx=[tx1;tx2];%%使用建立的RBFty=sim(net,tx);3%真正的函數(shù)圖像interval=;[x1,x2]=meshgrid:interval:;F=20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2);subplot(1,3,1)mesh(x1,x2,F);zlim([0,60])title(”真正的函數(shù)圖像”)%網(wǎng)絡(luò)得出的函數(shù)圖像v=reshape(ty,row);subplot(1,3,2)mesh(i,j,v);zlim([0,60])title(”RBF%誤差圖像subplot(1,3,3)mesh(x1,x2,F-v);zlim([0,60])title(”誤差圖像”)set(gcf,”position”,[300,250,900,400])爭(zhēng)論題:對(duì)于非線性函數(shù)y(x2x2)0.25{sin2[50(x2x2)0.1]1}1 2 1 2分別建立BP神經(jīng)網(wǎng)絡(luò)和RBF神經(jīng)網(wǎng)絡(luò)擬合并比較兩者的性能差異。就BP神經(jīng)網(wǎng)絡(luò)驗(yàn)證單線程運(yùn)算和并行運(yùn)算的運(yùn)行時(shí)間差異。解:〔1〕Mfunctiony=f(x1,x2)y=(x1.^2+x2.^2).^.*(sin(50*(x1.^2+x2.^2).^.^2+1);〔1〕BPa=-2;b=2;temp=a::b;x=repmat(temp,2,1);y=fun(x(1,:),x(2,:));input_train=x;output_train=y;[input_n,input_ps]=mapminmax(input_train);[output_n,output_ps]=mapminmax(output_train);hiddenSizes=2023;trainFcn=”trainlm”;net=fitnet(hiddenSizes,trainFcn);temp=a::b;input_test=repmat(temp,2,1);output_test=fun(input_test(1,:),input_test(2,:));inputn_test=mapminmax(”apply”,input_test,input_ps);prediction=sim(net,inputn_test);BP_output=mapminmax(”reverse”,prediction,output_ps);figure;plot3(x(1,:),x(2,:),y,”y+”);holdon;plot3(input_test(1,:),input_test(2,:),BP_output,”k”);view(113,36);title(”BPé??í???μ??ao?D§1?í?”);xlabel(”x1”);ylabel(”x2”);zlabel(”y”);gridon;輸出:RBFa=-2;b=2;temp=a::b;x=repmat(temp,2,1);y=fun(x(1,:),x(2,:));spread=;net=newrbe([x(1,:);x(2,:)],y);ty=sim(net,x);figure;plot3(x(1,:),x(2,:),y,”y+”);holdon;plot3(x(1,:),x(2,:),ty,”k”);view(113,36);title(”RBFé??í???μ??ao?D§1?í?”);xlabel(”x1”);ylabel(”x2”);zlabel(”y”);gridon;輸出:BPsample=2023;a=-2;b=2;x=a+(b-a).*rand(2,sample);y=fun(x(1,:),x(2,:));input_train=x;output_train=y;[input_n,input_ps]=mapminmax(input_train);[output_n,output_ps]=mapminmax(output_train);hiddenSizes=500;trainFcn=”trainlm”;net=fitnet(hiddenSizes,trainFcn);=300;=;=;net=train(net,input_n,output_n);input_test=a+(b-a).*rand(2,sample*;output_test=fun(input_test(1,:),input_test(2,:));inputn_test=mapminmax(”apply”,input_test,input_ps);prediction=sim(net,inputn_test);BP_output=mapminmax(”reverse”,prediction,output_ps);subplot(1,2,1);plot(BP_output);holdon;plot(output_test,”:+”);legend(”?¤2aê?3?”,”?úí?ê?3?”);title(”BPí????¤2aê?3?”,”fontsize”,12);xlabel(”?ù±?”,”fontsize”,12);ylabel(”oˉêyê?3?”,”fontsize”,12);subplot(1,2,2);error=BP_output-output_test;plot(error,”-+”);title(”BPé??í????¤2a?ó2?”,”fontsize”,12);ylabel(”?ó2?”,”fontsize”,12);xlabel(”?ù±?”,”fontsize”,12);figure(2);plot((output_test-BP_output)./BP_output,”-+”);title(”BPé??í????¤2a?ó2?°ù·?±è”);errorsum=sum(abs(error));[x1,x2]=meshgrid(a::b);y=fun(x1,x2);subplot(1,3,1);mesh(x1,x2,y);zlim([-2,5]);title(”??êμoˉêyí???”)tx1=x1(:);tx1=tx1”;tx2=x2(:);tx2=tx2”;input_BP=[tx1;tx2];inputn_BP=mapminmax(”apply”,input_BP,input_ps);prediction_BP=sim(net,inputn_BP);output_BP=mapminmax(”reverse”,prediction_BP,output_ps);v=reshape(output_BP,size(x1));subplot(1,3,2);mesh(x1,x2,v);zlim([-2,5]);title(”BPé??í????ao?í???”)subplot(1,3,3);mesh(x1,x2,y-v);zlim([-2,5]);title(”?ó2?í???”);set(gcf,”position”,[300,250,900,400]);輸出:RBFsample=2023;a=-2;b=2;x=a+(b-a).*rand(2,sample);y=fun(x(1,:),x(2,:));F=y;spread=;net=newrb(x,F,spread);[i,j]=meshgrid(a::b);row=size(i);tx1=i(:);tx1=tx1”;tx2=j(:);tx2=tx2”;tx=[tx1;tx2];ty=sim(net,tx);[x1,x2]=meshgrid(a::b);F=fun(x1,x2);subplot(1,3,1);mesh(x1,x2,F);zlim([-2,5]);title(”??êμoˉêyí???”);v=reshape(ty,row);subplot(1,3,2);mesh(i,j,v);zlim([-2,5]);title(”RBFé??í????ao?í???”);err=F-v;subplot(1,3,3);mesh(x1,x2,err);zlim([-2,5]);title(”?ó2?í???”);set(gcf,”position”,[300,250,900,400]);輸出:分析:由圖可知,對(duì)于簡(jiǎn)單的非線性系統(tǒng),BPRBF的誤差較RBF神經(jīng)網(wǎng)絡(luò)的誤差突然增大。此外,BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)速率是固定的,因此網(wǎng)絡(luò)的收斂速度慢,需要較長(zhǎng)的訓(xùn)練時(shí)間。對(duì)于一些簡(jiǎn)單問(wèn)題,BPRBF神經(jīng)網(wǎng)絡(luò)是種簡(jiǎn)潔,訓(xùn)練速度快?!?〕程序代碼:a=-2;b=2;temp=a::b;x=repmat(temp,2,1);y=fun(x(1,:),x(2,:));input_train=x;output_train=y;[input_n,input_ps]=mapminmax(input_train);[output_n,output_ps]=mapminmax(output_train);hiddenSizes=2023;trainFcn=”trainlm”;net=fitnet(hiddenSizes,trainFcn);=300;=;=;tic;net=train(net,input_n,output_n);t1=toc;disp([”BPé??í???μ¥??3ì????μ??μá·ê±???a”,num2str(t1),”??”]);temp=a::b;input_test=repmat(temp,2,1);output_test=fun(input_test(1,:),input_test(2,:));inputn_test=mapminmax(”apply”,input_test,input_ps);tic;prediction=sim(net,inputn_test);t1=toc;disp([”BPé??í???μ¥??3ì????μ??¤2aê±???a”,num2str(t1),”??”]);BP_output=mapminmax(”reverse”,prediction,output_ps);poolobj=gcp(”nocreate”);ifisempty(poolobj)poolsize=0;elsepoolsize=;endhiddenSizes=500;trainFcn=”trainlm”;net=fitnet(hiddenSizes,trainFcn);=300;=;=;tic;net=train(net,input_n,output_n);t1=toc;disp([”BPé??í???2¢DD????μ??μá·ê±???a”,num2str(t1),”??”]);temp=a::b;input_test=repmat(temp,2,1);output_test=fun(input_test(1,:),input_test(2,:));inputn_test=mapminmax(”apply”,input_test,input_ps);tic;prediction=sim(net,inputn_test,”Useparallel”,”yes”);t1=toc;disp([”BPé??í???2¢DD????μ??¤2aê±???a”,num2str(t1),”??”]);BP_output=mapminmax(”reverse”,prediction,output_ps);輸出:分析:由圖可知,BP神經(jīng)網(wǎng)絡(luò)單線程運(yùn)算和并行運(yùn)算的運(yùn)行時(shí)間差異格外大,并行運(yùn)算的時(shí)間??偟膩?lái)說(shuō),并行計(jì)算的效率相對(duì)于單線程計(jì)算的效率高。應(yīng)用實(shí)例:基于近紅外光譜的汽油辛烷值推測(cè)問(wèn)題描述法NI域。其優(yōu)越性是無(wú)損檢測(cè)、低本錢(qián)、無(wú)污染、能在線分析,更適合于生產(chǎn)和掌握的需要。針對(duì)采集得到的60組汽油樣品,利用傅立葉近紅外變換光譜儀對(duì)其掃描,掃描范圍為900~1700nm,掃描間隔為2nm,每個(gè)樣品的光譜曲線共含有401個(gè)波長(zhǎng)點(diǎn)。同時(shí),利用傳統(tǒng)試驗(yàn)室檢測(cè)方法測(cè)定其辛烷值含量?,F(xiàn)要求利用BPRBF神經(jīng)網(wǎng)絡(luò)分別建立汽油樣品近紅外光譜與其辛烷值之間的關(guān)系的數(shù)學(xué)模型,并對(duì)模型的性能進(jìn)展評(píng)價(jià)。解題思路及步驟BP神經(jīng)網(wǎng)絡(luò)及RBF上可以分為以下幾個(gè)步驟:產(chǎn)生訓(xùn)練集/測(cè)試集為了保證建立的模型具有良好的泛化力量,要求訓(xùn)練集樣本足夠多,且具有良好的代表性。一般認(rèn)為,訓(xùn)練集樣本數(shù)量占總體樣本數(shù)量的2/3~3/41/4~1/3集樣本。同事,盡量使得訓(xùn)練集與測(cè)試集樣本的分布規(guī)律近似一樣。創(chuàng)立/BP創(chuàng)立BP數(shù)層數(shù)及個(gè)層神經(jīng)元個(gè)數(shù)、輸出變量個(gè)數(shù)。從問(wèn)題描述中可知,輸入變量個(gè)數(shù)為401,輸出變量個(gè)數(shù)為1。隱含層一個(gè)〔牢靠近任意非線性函數(shù),隱含層神經(jīng)元的個(gè)數(shù)對(duì)BP神經(jīng)網(wǎng)絡(luò)關(guān)系;相反,假設(shè)隱含層神經(jīng)元的個(gè)數(shù)較多,則會(huì)導(dǎo)致網(wǎng)絡(luò)的學(xué)習(xí)時(shí)間變長(zhǎng),甚至?xí)麥邕^(guò)擬合的問(wèn)題。一般地,確定隱含層神經(jīng)元個(gè)數(shù)的方法實(shí)在閱歷公式的根底上,比照隱含層不同神經(jīng)元個(gè)數(shù)對(duì)模型性能的影響,從而進(jìn)展選擇。網(wǎng)絡(luò)構(gòu)造確定后,設(shè)置相關(guān)訓(xùn)練參數(shù)〔如訓(xùn)練次數(shù)、學(xué)習(xí)率等練。創(chuàng)立/RBF創(chuàng)立RBF神經(jīng)網(wǎng)絡(luò)時(shí)需要考慮spreadspread越大,函數(shù)的擬合就越平滑。然而,過(guò)大的spread值將需要格外多的神經(jīng)元以適應(yīng)函數(shù)的快速變化;反之,假設(shè)spread值太小,則意味著需要很多的神經(jīng)元來(lái)適應(yīng)函數(shù)的緩慢變化,從而導(dǎo)致網(wǎng)絡(luò)性能不好。仿真測(cè)試模型建立后,將測(cè)試集的輸入變量送入模型,模型的輸出就是對(duì)應(yīng)的推測(cè)結(jié)果。5〕性能評(píng)價(jià)上,可以進(jìn)展進(jìn)一步的爭(zhēng)論和改善。MATLAB第一步產(chǎn)生訓(xùn)練集/測(cè)試集60個(gè)樣品的光譜及辛烷值數(shù)據(jù)保存在文件中,該文件包含兩個(gè)變量矩陣:NIR為60行401octane6015010%%清空環(huán)境變量clearallclc%%訓(xùn)練集/測(cè)試集產(chǎn)生%導(dǎo)入數(shù)據(jù)load%隨機(jī)產(chǎn)生訓(xùn)練集和測(cè)試集temp=randperm(size(NIR,1));%訓(xùn)練集——50P_train=NIR(temp(1:50),:)”;T_train=octane(temp(1:50),:)”;%測(cè)試集——10P_test=NIR(temp(51:end),:)”;T_test=octane(temp(51:end),:)”;N=size(P_test,2);說(shuō)明:由于訓(xùn)練集/測(cè)試集產(chǎn)生的隨機(jī)性,每次運(yùn)行的結(jié)果均有可能不同。函數(shù)randperm(n)用于產(chǎn)生一個(gè)長(zhǎng)度為n其次步創(chuàng)立/BPMATLABBP真測(cè)試。在訓(xùn)練之前,可以對(duì)相關(guān)的訓(xùn)練參數(shù)進(jìn)展設(shè)置,也可以實(shí)行默認(rèn)設(shè)置。程序如下:%%BP%創(chuàng)立網(wǎng)絡(luò)net=newff(P_train,T_train,9);%設(shè)置訓(xùn)練參數(shù)=1000;=1e-3;=;%訓(xùn)練網(wǎng)絡(luò)net=train(net,P_train,T_train);%仿真測(cè)試T_sim_bp=sim(net,P_test);RBFMATLAB神經(jīng)網(wǎng)絡(luò)自帶工具箱的函數(shù),可以便利的進(jìn)展RBF神經(jīng)網(wǎng)絡(luò)創(chuàng)立、訓(xùn)練及仿真測(cè)試。程序如下:%%RBF%創(chuàng)立網(wǎng)絡(luò)net=newrbe(P_train,T_train,;%仿真測(cè)試T_sim_rbf=sim(net,P_test);第四步性能評(píng)價(jià)BP神經(jīng)網(wǎng)絡(luò)及RBF神經(jīng)網(wǎng)絡(luò)仿真測(cè)試完畢后,通過(guò)計(jì)算推測(cè)值與真實(shí)值的偏差狀況,可以對(duì)網(wǎng)絡(luò)的泛化力量。承受兩個(gè)評(píng)價(jià)指標(biāo),分別為相對(duì)誤差ER2,其計(jì)算公式分別為yi iE ,yi ii yi n ? n 2n yy ynR2 n
i1
i i2
i1n
i
2in ?2i
y2
y i1
i1
i
ii1
i1
iyi
〔i 1,2,...,n〕為第iyi
為第in為樣品數(shù)目。[0,1]內(nèi),越接近于1,說(shuō)明模型的擬合性能越好,反之,越趨近于0,說(shuō)明模型的擬合性能越差。程序如下:%%性能評(píng)價(jià)%相對(duì)誤差errorerror_bp=abs(T_sim_bp-T_test)./T_test;error_rbf=abs(T_sim_rbf-T_test)./T_test;%打算系數(shù)R^2R2_bp=(N*sum(T_sim_bp.*T_test)-sum(T_sim_bp)*sum(T_test))^2/((N*sum((T_sim_bp).^2)-(sum(T_sim_bp))^2)* (N*sum((T_test).^2)-(sum(T_test))^2));R2_rbf=(N*sum(T_sim_rbf.*T_test)-sum(T_sim_rbf)*sum(T_test))^2/((N*sum((T_sim_rbf).^2)-(sum(T_sim_rbf))^2)*(N*sum((T_test).^2)-(sum(T_test))^2));%結(jié)果比照result_bp=[T_test”T_sim_bp”T_sim_rbf”error_bp”error_rbf”]第五步繪圖為了更為直觀地對(duì)結(jié)果進(jìn)展觀看和分析,以圖片的形式將結(jié)果呈現(xiàn)出來(lái)。程序如下:%%繪圖figureplot(1:N,T_test,”b:*”,1:N,T_sim_bp,”r-o”,1:N,T_sim_rbf,”k-.^”)legend(”真實(shí)值”,”BP”,”RBFxlabel(”推測(cè)樣本”)ylabel(”辛烷值”)string(BPvsRBF)”;[”R^2=”num2str(R2_bp)”(BP)””R^2=”num2str(R2_rbf)”(RBF)”]};title(string)測(cè)試集辛烷值含量推測(cè)結(jié)果比照(BPvsRBF)R2=0.95709(BP)R2=0.93152(RBF)89真實(shí)值BP推測(cè)值88 RBF推測(cè)值87值烷 86辛8584831 2 3 4 5 推測(cè)樣本
7 8 9 10爭(zhēng)論題:網(wǎng)絡(luò)參數(shù)的影響及其選擇隱含層神經(jīng)元的個(gè)數(shù)對(duì)BP神經(jīng)網(wǎng)絡(luò)的性能影響較大。假設(shè)隱含層神經(jīng)元的個(gè)數(shù)較少,則網(wǎng)網(wǎng)絡(luò)的學(xué)習(xí)時(shí)間變長(zhǎng),甚至?xí)麥邕^(guò)擬合的
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 關(guān)于基金合同范例說(shuō)明
- 家禽飼養(yǎng)業(yè)產(chǎn)業(yè)融合創(chuàng)新路徑探討考核試卷
- 可燃冰開(kāi)采對(duì)全球能源格局的影響考核試卷
- 公職律師聘請(qǐng)合同范例
- 農(nóng)業(yè)工程設(shè)計(jì)考核試卷
- 出租法院宿舍合同范本
- 農(nóng)業(yè)種植培訓(xùn)合同范例
- 勞務(wù)材料合同范本
- 2025-2030年地質(zhì)災(zāi)害應(yīng)急測(cè)繪技術(shù)行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報(bào)告
- 土壤污染治理與修復(fù)國(guó)際合作案例分析考核試卷
- 中國(guó)歷代政治得失-課件
- 課件:森林的基本概念
- 高速公路養(yǎng)護(hù)培訓(xùn)
- 如何在小學(xué)語(yǔ)文教學(xué)中落實(shí)單元語(yǔ)文要素
- 2024年演出經(jīng)紀(jì)人考試必背1000題附答案(黃金題型)
- 安全員繼續(xù)教育考試題庫(kù)1000道附參考答案(完整版)
- (2024年)保安培訓(xùn)圖文課件
- 專(zhuān)題16.7 二次根式章末八大題型總結(jié)(拔尖篇)-八年級(jí)數(shù)學(xué)下冊(cè)(人教版)(解析版)
- 如何提高調(diào)查研究能力
- 電網(wǎng)兩票培訓(xùn)課件
- 改革開(kāi)放教育援藏的創(chuàng)新及其成效
評(píng)論
0/150
提交評(píng)論