




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)四 Matlab 神經(jīng)網(wǎng)絡(luò)以及應(yīng)用于汽油辛烷值預(yù)測(cè)、實(shí)驗(yàn)?zāi)康?. 掌握 MATLAB 創(chuàng)建 BP 神經(jīng)網(wǎng)絡(luò)并應(yīng)用于擬合非線性函數(shù)2. 掌握 MATLAB 創(chuàng)建 REF 神經(jīng)網(wǎng)絡(luò)并應(yīng)用于擬合非線性函數(shù)3. 掌握 MATLAB 創(chuàng)建 BP 神經(jīng)網(wǎng)絡(luò)和 REF 神經(jīng)網(wǎng)絡(luò)解決實(shí)際問(wèn)題4. 了解 MATLAB 神經(jīng)網(wǎng)絡(luò)并行運(yùn)算、實(shí)驗(yàn)原理2.1 EP神經(jīng)網(wǎng)絡(luò)2.1.1 BP 神經(jīng)網(wǎng)絡(luò)概述EP神經(jīng)網(wǎng)絡(luò) Rumelhard 和McClelland 于1 9 8 6年提出。從結(jié)構(gòu)上將,它是一種 典型的多層前向型神經(jīng)網(wǎng)絡(luò), 具有一個(gè)輸入層、 一個(gè)或多個(gè)隱含層和一個(gè)輸出層。 層與層之 間采用權(quán)連接的方式, 同一
2、層的神經(jīng)元之間不存在相互連接。 理論上已經(jīng)證明, 具有一個(gè)隱 含層的三層網(wǎng)絡(luò)可以逼近任意非線性函數(shù)。隱含層中的神經(jīng)元多采用 S 型傳遞函數(shù), 輸出層的神經(jīng)元多采用線性傳遞函數(shù)。 圖1所 示為一個(gè)典型的EP神經(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ù)tan sig ,輸出層傳遞函 數(shù)為 purelin 。圖1 含一個(gè)隱含層的 BP 網(wǎng)絡(luò)結(jié)構(gòu)2.1.2 BP 神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)規(guī)則BP 網(wǎng)絡(luò)是一種多層前饋神經(jīng)網(wǎng)絡(luò),其神經(jīng)元的傳遞函數(shù)為 S 型函數(shù),因此輸出量為 0到 1 之間的連續(xù)量,它可以實(shí)現(xiàn)從輸入到輸出的任意的非線
3、性映射。由于其權(quán)值的調(diào)整是利用實(shí)際輸出與期望輸出之差,對(duì)網(wǎng)絡(luò)的各層連接權(quán)由后向前逐層進(jìn)行校正的計(jì)算方法,故而稱為反向傳播(Back-Propogation )學(xué)習(xí)算法,簡(jiǎn)稱為 BP算法。BP算法主要是利用輸 入、輸出樣本集進(jìn)行相應(yīng)訓(xùn)練,使網(wǎng)絡(luò)達(dá)到給定的輸入輸出映射函數(shù)關(guān)系。算法常分為兩個(gè)階段:第一階段(正向計(jì)算過(guò)程)由樣本選取信息從輸入層經(jīng)隱含層逐層計(jì)算各單元的輸出 值;第二階段(誤差反向傳播過(guò)程)由輸出層計(jì)算誤差并逐層向前算出隱含層各單元的誤差, 并以此修正前一層權(quán)值。BP網(wǎng)絡(luò)的學(xué)習(xí)過(guò)程主要由以下四部分組成:1 )輸入樣本順傳播輸入樣本傳播也就是樣本由輸入層經(jīng)中間層向輸出層傳播計(jì)算。這一過(guò)程
4、主要是 輸入樣本求出它所對(duì)應(yīng)的實(shí)際輸出。隱含層中第i個(gè)神經(jīng)元的輸出為Raiif1W1ij pjb1ii 12, sj 1 輸出層中第k個(gè)神經(jīng)元的輸出為:S1a2kf2w2ki a1 ib2k ,i 1,2,S2i 1其中f1( ), f2 ( 分別為隱含層和輸出層的傳遞函數(shù)。2 )輸出誤差逆?zhèn)鞑ギ?dāng)這些實(shí)際的輸出值與期在第一步的樣本順傳播計(jì)算中我們得到了網(wǎng)絡(luò)的實(shí)際輸出值, 望輸出值不一樣時(shí),或者說(shuō)其誤差大于所限定的數(shù)值時(shí),就要對(duì)網(wǎng)絡(luò)進(jìn)行校正。首先,定義誤差函數(shù)1 S22E(W,b)= ;(tka2k )2 k 1其次,給出權(quán)值的變化 輸出層的權(quán)值變化從第i個(gè)輸入到第k個(gè)輸出的權(quán)值為:Ew2kik
5、i a1iW2ki 隱含層的權(quán)值變化其中:從第j個(gè)輸入到第i個(gè)輸出的權(quán)值為:Eij Pj01(n為學(xué)習(xí)系數(shù))WjWiij其中:1ijeif1S2Ikiek f 2 ,ekl ka2kkiW2kik 1由此可以看出:調(diào)整是與誤差成正比,即誤差越大調(diào)整的幅度就越大。調(diào)整量與輸入值大小成比例,在這次學(xué)習(xí)過(guò)程中就顯得越活躍,所以與其相連的權(quán)值的調(diào)整幅度就應(yīng)該越大,調(diào)整是與學(xué)習(xí)系數(shù)成正比。通常學(xué)習(xí)系數(shù)在0.10.8之間,為使整個(gè)學(xué)習(xí)過(guò)程加快,又不會(huì)引起振蕩,可采用變學(xué)習(xí)率的方法,即在學(xué)習(xí)初期取較大的學(xué)習(xí)系數(shù)隨著學(xué)習(xí)過(guò)程的進(jìn)行逐漸減小其值。最后,將輸出誤差由輸出層經(jīng)中間層傳向輸入層,逐層進(jìn)行校正。2.1.
6、3 BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練對(duì)BP網(wǎng)絡(luò)進(jìn)行訓(xùn)練時(shí),首先要提供一組訓(xùn)練樣本,其中每個(gè)樣本由輸入樣本和輸出對(duì) 組成。當(dāng)網(wǎng)絡(luò)的所有實(shí)際輸出與其期望輸出小于指定誤差時(shí),訓(xùn)練結(jié)束。否則,通過(guò)修正權(quán) 值,使網(wǎng)絡(luò)的實(shí)際輸出與期望輸出接近一致(圖 2 )。實(shí)際上針對(duì)不同具體情況, BP網(wǎng)絡(luò)的訓(xùn)練有相應(yīng)的學(xué)習(xí)規(guī)則,即不同的最優(yōu)化算法, 沿減少期望輸出與實(shí)際輸出之間誤差的原則,實(shí)現(xiàn) BP網(wǎng)絡(luò)的函數(shù)逼近、向量分類和模式識(shí)別。aHI1 j;岀怫1v rE1 耳1JB111圖2 神經(jīng)網(wǎng)絡(luò)的訓(xùn)練2.2 RBF神經(jīng)網(wǎng)絡(luò)2.2.1 RBF 神經(jīng)網(wǎng)絡(luò)概述1985年,Powell提出了多變量插值的徑向基函數(shù)( Radical Basi
7、s Function, RBF )方 法。1988年,Moody 和Darken提出了一種神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),即RBF神經(jīng)網(wǎng)絡(luò),屬于前向神經(jīng)網(wǎng)絡(luò)類型,它能夠以任意精度逼近任意連續(xù)函數(shù),特別適合于解決分類問(wèn)題。RBF網(wǎng)絡(luò)的結(jié)構(gòu)與多層前向網(wǎng)絡(luò)類似,它是一種三層前向網(wǎng)絡(luò)。輸入層由信號(hào)源節(jié)點(diǎn)組成;第二層為隱含層,隱單元數(shù)視所描述問(wèn)題的需要而定,隱單元的變換函數(shù)RBF ()是對(duì)中心點(diǎn)徑向?qū)ΨQ且衰減的非負(fù)非線性函數(shù);第三層為輸出層,它對(duì)輸入模式的作用作出響應(yīng)。從輸入空間到隱含層空間的變換是非線性的,而從隱含層空間的輸出層空間變換是線性的。RBF網(wǎng)絡(luò)的基本思想是:用 RBF作為隱單元的“基”構(gòu)成隱含層空間,這樣就
8、可以將 輸入向量直接(即不需要通過(guò)權(quán)接)映射到隱空間。當(dāng)RBF的中心點(diǎn)確定以后,這種映射關(guān)系也就確定了。而隱含層空間到輸出空間的映射是線性的,即網(wǎng)絡(luò)的輸出是隱單元輸出的線性加權(quán)和。此處的權(quán)即為網(wǎng)絡(luò)可調(diào)參數(shù)。由此可見(jiàn),從總體上看,網(wǎng)絡(luò)由輸入到輸出的映 射是非線性的,而網(wǎng)絡(luò)輸出對(duì)可調(diào)參數(shù)而言卻又是線性的。這樣網(wǎng)絡(luò)的權(quán)就可由線性方程直接解出,從而大大加快學(xué)習(xí)速度并避免局部極小問(wèn)題。徑向基神經(jīng)網(wǎng)絡(luò)的神經(jīng)元結(jié)構(gòu)如圖3所示。徑向基神經(jīng)網(wǎng)絡(luò)的激活函數(shù)采用徑向基函數(shù),通常定義為空間任一點(diǎn)到某一中心之間歐氏距離的單調(diào)函數(shù)。由圖3所示的徑向基神經(jīng)元結(jié)構(gòu)可以看出,徑向基神經(jīng)網(wǎng)絡(luò)的激活函數(shù)是以輸入向量和權(quán)值向量之間的
9、距離distl作為自變量的。徑向基神經(jīng)網(wǎng)絡(luò)的激活函數(shù)(高斯函數(shù))的一般表達(dá)式為隨著權(quán)值和輸入向量之間距離的減少,網(wǎng)絡(luò)輸出是遞增的,當(dāng)輸入向量和權(quán)值向量一致時(shí),神經(jīng)元輸出1。在圖3中的b為閾值,用于調(diào)整神經(jīng)元的靈敏度。利用徑向基神經(jīng)元和線性神經(jīng)元可以建立廣義回歸神經(jīng)網(wǎng)絡(luò),該種神經(jīng)網(wǎng)絡(luò)適用于函數(shù)逼近方面的應(yīng)用;徑向基神經(jīng)元和競(jìng)爭(zhēng)神經(jīng)元可以組建概率神經(jīng)網(wǎng)絡(luò),此種神經(jīng)網(wǎng)絡(luò)適用于解決分類問(wèn)題。由輸入層、隱含層和輸出層構(gòu)成的一般徑向基神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。喻:憶:圖4徑向基神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)222 RBF神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)算法徑向基函數(shù)網(wǎng)絡(luò)是由輸入層,隱含層和輸出層構(gòu)成的三層前向網(wǎng)絡(luò)(以單個(gè)輸出神經(jīng)元為例),隱含
10、層采用徑向基函數(shù)作為激活函數(shù),該徑向基函數(shù)一般為高斯函數(shù),隱含層每個(gè) 神經(jīng)元與輸入層相連的權(quán)值向量W1i和輸入矢量Xq (表示第q個(gè)輸入向量)之間的距離乘上閾值bli ,作為本身的輸入(圖 5)。xqw11ixm圖5徑向基神經(jīng)網(wǎng)絡(luò)神經(jīng)元的輸入與輸出由此可得隱含層的第i個(gè)神經(jīng)元的輸入為:kiq |W1 Xq| b1j J wlji x: 2 b1i輸出為:riq exp( (kq)2) exp(Xq| b1J2)徑向基函數(shù)的閾值bl可以調(diào)節(jié)函數(shù)的靈敏度,但實(shí)際工作中更常用另一參數(shù)C (稱為擴(kuò)展常數(shù))。bl和C的關(guān)系有多種確定方法,在 MATLAB神經(jīng)網(wǎng)絡(luò)工具箱中, bl和C的關(guān) 系為b1i 0.
11、8326/G,此時(shí)隱含層神經(jīng)元的輸出變?yōu)椋篻i: exp( (|W1 Xq| 警)2)Ci在MATLAB神經(jīng)網(wǎng)絡(luò)工具箱中,C值用參數(shù)spread表示,由此可見(jiàn),spread值的大小實(shí)際上反映了輸出對(duì)輸入的響應(yīng)寬度。spread值越大,隱含層神經(jīng)元對(duì)輸入向量的響應(yīng)范圍將越大,且神經(jīng)元間的平滑度也較好。輸出層的輸入為各隱含層神經(jīng)元輸出的加權(quán)求和。由于激活函數(shù)為純線性函數(shù),因此輸出為:nyqriq w2ii 1RBF網(wǎng)絡(luò)的訓(xùn)練過(guò)程分為兩步:第一步為無(wú)教師式學(xué)習(xí),確定訓(xùn)練輸入層與隱含層間的權(quán)值W1 ;第二步為有教師式學(xué)習(xí), 提供輸入向量X、對(duì)應(yīng)的目標(biāo)向量確定訓(xùn)練隱含層與輸出層間的權(quán)值W 2在訓(xùn)練以前需
12、要T和徑向基函數(shù)的擴(kuò)展常數(shù)C。訓(xùn)練的目的是求取兩層的最終權(quán)值W1,W2和閾值b1,b2。在RBF網(wǎng)絡(luò)訓(xùn)練中,隱含層神經(jīng)元數(shù)量的確定是一個(gè)關(guān)鍵問(wèn)題,簡(jiǎn)便的做法是使其與輸入向量的個(gè)數(shù)相等(稱為精確 (exact) RBF )。顯然,在輸入向量個(gè)數(shù)很多時(shí),過(guò)多的隱含層 單元數(shù)是難以讓人接受的。其改進(jìn)方法是從1個(gè)神經(jīng)元開(kāi)始訓(xùn)練,通過(guò)檢查輸出誤差使網(wǎng)絡(luò)自動(dòng)增加神經(jīng)元。每次循環(huán)使用,使網(wǎng)絡(luò)產(chǎn)生的最大誤差所對(duì)應(yīng)的輸入向量作為權(quán)值向量,產(chǎn)生一個(gè)新的隱含層神經(jīng)元,然后檢查新網(wǎng)絡(luò)的誤差, 重復(fù)此過(guò)程直到達(dá)到誤差要求或最大 隱含層神經(jīng)元數(shù)為止(稱為近似( approximate ) RBF )。2.3 RBF神經(jīng)網(wǎng)
13、絡(luò)與BP神經(jīng)網(wǎng)絡(luò)的比較在理論上,RBF網(wǎng)絡(luò)和BP網(wǎng)絡(luò)一樣能以任意精度逼近任何非線性函數(shù)。但由于它們使用的激活函數(shù)不同, 其逼近性能也不相同。 Poggio和Girosi已經(jīng)證明,RBF網(wǎng)絡(luò)是連續(xù)函 數(shù)的最佳逼近,而 BP網(wǎng)絡(luò)不是。BP網(wǎng)絡(luò)使用的Sigmoid函數(shù)具有全局特性,它在輸入值 的很大范圍內(nèi)每個(gè)節(jié)點(diǎn)都對(duì)輸出值產(chǎn)生影響,并且激活函數(shù)在輸入值的很大范圍內(nèi)相互重 疊,因而相互影響,因此 BP網(wǎng)絡(luò)訓(xùn)練過(guò)程很長(zhǎng)。此外,由于BP算法的固有特性,BP網(wǎng)絡(luò)容易陷入局部極小的問(wèn)題不可能從根本上避免,并且BP網(wǎng)絡(luò)隱層節(jié)點(diǎn)數(shù)目的確定依賴于經(jīng)驗(yàn)和試湊,很難得到最優(yōu)網(wǎng)絡(luò)。采用局部激活函數(shù)的RBF網(wǎng)絡(luò)在很大程度上
14、克服了上述缺點(diǎn),RBF不僅有良好的泛化能力, 而且對(duì)于每個(gè)輸入值,只有很少幾個(gè)節(jié)點(diǎn)具有非零激活值, 因此只需很少部分節(jié)點(diǎn)及權(quán)值改變。學(xué)習(xí)速度可以比通常的BP算法提高上千倍,容易適應(yīng)新數(shù)據(jù),其隱含層節(jié)點(diǎn)的數(shù)目也在訓(xùn)練過(guò)程中確定,并且其收斂性也較BP網(wǎng)絡(luò)易于保證,因此可以得到最優(yōu)解。2.4 BP 神經(jīng)網(wǎng)絡(luò)與 RBF神經(jīng)網(wǎng)絡(luò)的MATLAB 實(shí)現(xiàn)2.4.1 BP神經(jīng)網(wǎng)絡(luò)的相關(guān)函數(shù)(1) newff:BP神經(jīng)網(wǎng)絡(luò)參數(shù)設(shè)置函數(shù)函數(shù)功能:構(gòu)建一個(gè)BP神經(jīng)網(wǎng)絡(luò)函數(shù)形式:n et=newff(P , T, S, TF, BTF, BLF, PF, IPF, OPF, DDF)P:輸入數(shù)據(jù)矩陣(訓(xùn)練集的輸入向量作
15、為列構(gòu)成的矩陣)T:輸出數(shù)據(jù)矩陣(訓(xùn)練集的期望向量作為列構(gòu)成的矩陣)S:隱合層節(jié)點(diǎn)數(shù)TF:節(jié)點(diǎn)傳遞函數(shù),包括硬限幅傳遞函數(shù)hardlim,對(duì)稱硬限幅傳遞函數(shù)hardlims,線性傳遞函數(shù)pureli n,正切S型傳遞函數(shù)tan sig,對(duì)數(shù)S型傳遞函數(shù)logsig.BTF訓(xùn)練函數(shù),包括梯度下降BP算法訓(xùn)練函數(shù)traingd,動(dòng)量反傳的梯度下降BP算法訓(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-_Marquardt 的BP算法訓(xùn)練函數(shù) trainlm。BLF:網(wǎng)絡(luò)學(xué)
16、習(xí)函數(shù),包括Bp學(xué)習(xí)規(guī)則learngd、帶動(dòng)量項(xiàng)的BP學(xué)習(xí)規(guī)則learngdm 。 PF:性能分析函數(shù),包括均值絕對(duì)誤差性能分析函數(shù) mae、均方差性能分析函數(shù) mse. IPF:輸入處理函數(shù)。OPF:輸出處理函數(shù)。DDF:驗(yàn)證數(shù)據(jù)劃分函數(shù)。一般在使用過(guò)程中設(shè)置前面6個(gè)參數(shù),后面4個(gè)參數(shù)采用系統(tǒng)默認(rèn)參數(shù)。注意:Matlab R2011a 之后的版本開(kāi)始用新函數(shù) feedforward net替代函數(shù)newff,其用法為feedforward net(hidde nSizes,trai nFcn)hiddenSizes :隱含層神經(jīng)元個(gè)數(shù),默認(rèn)為10 ,若是多個(gè)隱含層,這是沒(méi)有隱含層神經(jīng)元個(gè)數(shù)組
17、成的行向量;tra in Fen :訓(xùn)練函數(shù),默認(rèn)為trai nl m)trai n: BP 神經(jīng)網(wǎng)絡(luò)訓(xùn)練函數(shù)函數(shù)功能:用訓(xùn)練數(shù)據(jù)訓(xùn)練 BP神經(jīng)網(wǎng)絡(luò)。函數(shù)形式:n et,tr=trai n(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ò)程記錄一般在使用過(guò)程中設(shè)置前面 3 個(gè)參數(shù),后面 2 個(gè)參數(shù)采用系統(tǒng)默認(rèn)參數(shù)。(3) sim: BP 神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)函數(shù) 函數(shù)功能:用訓(xùn)練好的 BP 神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)函數(shù)輸出。函數(shù)形式: y=sim(net, x)net: 訓(xùn)練好的網(wǎng)絡(luò)。x: 輸入數(shù)據(jù)
18、。y: 網(wǎng)絡(luò)預(yù)測(cè)數(shù)據(jù)。2.4.2 RBF 神經(jīng)網(wǎng)絡(luò)的相關(guān)函數(shù)(1) newrb該函數(shù)可以用來(lái)設(shè)計(jì)一個(gè)近似( approximate )徑向基網(wǎng)絡(luò)。其調(diào)用格式為 net,tr=newrb(X, T, GOAL, SPREAD, MN, DF)其中, X 為 Q 組輸入向量組成的 R*Q 維矩陣; T 為 Q 組目標(biāo)分類向量組成的 S*Q 維矩陣; GOAL 為均方誤差目標(biāo)( Mean Squared Error Goal),默認(rèn)為 0.0 ; SPREAD為徑向基函數(shù)的擴(kuò)展速度,默認(rèn)為1, MN 為神經(jīng)元的最大數(shù)目,默認(rèn)為 Q; DF 為兩次顯示之間所添加的神經(jīng)元數(shù)目,默認(rèn)為 25 ; net
19、為返回值 ,一個(gè) RBF 網(wǎng)絡(luò), tr 為返 回值,訓(xùn)練記錄。用 newrb() 創(chuàng)建 RBF 網(wǎng)絡(luò)是一個(gè)不斷嘗試的過(guò)程,在創(chuàng)建過(guò)程中,需要不斷增加中 間層神經(jīng)元和個(gè)數(shù),直到網(wǎng)絡(luò)的輸出誤差滿足預(yù)先設(shè)定的值為止。(2) newrbe()該函數(shù)用于設(shè)計(jì)一個(gè)精確 (exact) 徑向基網(wǎng)絡(luò),其調(diào)用格式為net=newrbe(X, T, SOREAD)其中, X 為 Q 組輸入向量組成的 R*Q 維矩陣; T 為 Q 組目標(biāo)分類向量組成的 S*Q 維矩陣; SPREAD 為徑向基函數(shù)的擴(kuò)展速度,默認(rèn)為1 。和 newrb() 不同, newrbe() 能夠基于設(shè)計(jì)向量快速,無(wú)誤差地設(shè)計(jì)一個(gè)徑向基網(wǎng)絡(luò)。
20、 適合輸入向量個(gè)數(shù)較少的情形。(3) radbas()該函數(shù)為徑向基傳遞函數(shù)。其調(diào)用格式為A=radbas(N) Info=radbas(code)其中, N 為輸入(列)向量的 S*Q 維矩陣; A 為函數(shù)返回矩陣,與 N 一一對(duì)應(yīng), 即N中的每個(gè)元素通過(guò)徑向基函數(shù)得到 A; info=radbas(code) 表示根據(jù)code值的不 同返回有關(guān)函數(shù)的不同信息。包括 derive 返回導(dǎo)函數(shù)的名稱name 返回函數(shù)全稱。output 返回輸入范圍。active 返回可用輸入范圍。2.5 神經(jīng)網(wǎng)絡(luò)并行運(yùn)算 MATLAB 并行運(yùn)算工具箱可以將神經(jīng)網(wǎng)絡(luò)仿真計(jì)算并行化,從而減少運(yùn)算時(shí)間。行 化的實(shí)現(xiàn)
21、是將整個(gè)訓(xùn)練數(shù)據(jù)集拆分到(多核)計(jì)算機(jī)不同的 worker 上,整個(gè)數(shù)據(jù)集的運(yùn)。 算結(jié)果為合并后的所有 worker 的計(jì)算值。進(jìn)行神經(jīng)網(wǎng)絡(luò)的并行運(yùn)算, 需要先打開(kāi) matlabpool, 同時(shí)將神經(jīng)網(wǎng)絡(luò) train 與 sim 函數(shù) 中的 useparallel 參數(shù)設(shè)置為 yes% 打開(kāi) MATLAB workersmatlabpool open% 檢查 worker 數(shù)量poolsize=matlabpool(size)% 設(shè)置 train 與 sim 函數(shù)中的參數(shù)“ Useparallel ”為“ yes ”。net2=train(net1,x,t,Useparallel,yes)y=
22、sim(net2,x,Useparallel,yes)三、實(shí)驗(yàn)內(nèi)容1. 建立 BP 神經(jīng)網(wǎng)絡(luò)擬合非線性函數(shù)22y x1 x2第一步 數(shù)據(jù)選擇和歸一化 根據(jù)非線性函數(shù)方程隨機(jī)得到該函數(shù)的 2000 組數(shù)據(jù),將數(shù)據(jù)存貯在 data.mat 文件中 ( 下載后拷貝到 Matlab 當(dāng)前目錄 ),其中 input 是函數(shù)輸入數(shù)據(jù), output 是函數(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)境變量 clc clear% 訓(xùn)練數(shù)據(jù)預(yù)測(cè)數(shù)據(jù)提取及歸一化 %載入輸入輸出數(shù)據(jù) load data input o
23、utput% 從 1 到 2000 間隨機(jī)排序 k=rand(1,2000);m,n=sort(k);%找出訓(xùn)練數(shù)據(jù)和預(yù)測(cè)數(shù)據(jù) input_train=input(n(1:1900),:);output_train=output(n(1:1900); input_test=input(n(1901:2000),:);output_test=output(n(1901:2000);%選連樣本輸入輸出數(shù)據(jù)歸一化 inputn,inputps=mapminmax(input_train);outputn,outputps=mapminmax(output_train);第二步 建立和訓(xùn)練 BP 神經(jīng)
24、網(wǎng)絡(luò)構(gòu)建 BP 神經(jīng)網(wǎng)絡(luò),用訓(xùn)練數(shù)據(jù)訓(xùn)練,使網(wǎng)絡(luò)對(duì)非線性函數(shù)輸出具有預(yù)測(cè)能力。%構(gòu)建和訓(xùn)練 BP 神經(jīng)網(wǎng)絡(luò)% BP 神經(jīng)網(wǎng)絡(luò)構(gòu)建 net=newff(inputn,outputn,5);%網(wǎng)絡(luò)參數(shù)配置(迭代次數(shù),學(xué)習(xí)率,目標(biāo)) net.trainParam.epochs=100;net.trainParam.lr=0.1; net.trainParam.goal=0.00004;%網(wǎng)絡(luò)訓(xùn)練,并記錄訓(xùn)練時(shí)間tic net=train(net,inputn,outputn);t1=tocdisp( 神經(jīng)網(wǎng)絡(luò)的訓(xùn)練時(shí)間為 ,num2str(t1), 秒 );第三步 BP 神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)用訓(xùn)練好的 BP
25、 神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)非線性函數(shù)輸出。% BP 網(wǎng)絡(luò)預(yù)測(cè) %預(yù)測(cè)數(shù)據(jù)歸一化 inputn_test=mapminmax(apply,input_test,inputps);%網(wǎng)絡(luò)預(yù)測(cè)輸出 an=sim(net,inputn_test);%網(wǎng)絡(luò)輸出反歸一化BPoutput=mapminmax(reverse,an,outputps);第四步 結(jié)果分析通過(guò) BP 神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)輸出和期望輸出分析 BP 神經(jīng)網(wǎng)絡(luò)的擬合能力。 % 結(jié)果分析figure(1) plot(BPoutput,:og) hold on plot(output_test,-*);legend( 預(yù)測(cè)輸出 , 期望輸出 ) title(B
26、P 網(wǎng)絡(luò)預(yù)測(cè)輸出 ,fontsize,12) ylabel( 函數(shù)輸出 ,fontsize,12) xlabel( 樣本 ,fontsize,12)%預(yù)測(cè)誤差 error=BPoutput-output_test;figure(2)plot(error,-*)title(BP 網(wǎng)絡(luò)預(yù)測(cè)誤差 ,fontsize,12) ylabel( 誤差 ,fontsize,12) xlabel( 樣本 ,fontsize,12)figure(3) plot(output_test-BPoutput)./BPoutput,-*); title( 神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)誤差百分比 )errorsum=sum(abs(er
27、ror);2. 建立 RBF 神經(jīng)網(wǎng)絡(luò)擬合非線性函數(shù)22y 20+ x12 10cos(2 x1) x22 10cos(2 x2) 第一步 建立 exact RBF 神經(jīng)網(wǎng)絡(luò)擬合 , 觀察擬合效果% RBF 網(wǎng)絡(luò)的回歸 - 非線性函數(shù)回歸的實(shí)現(xiàn)% 清空環(huán)境變量clcclear% 產(chǎn)生輸入 輸出數(shù)據(jù)% 設(shè)置步長(zhǎng)interval=0.01;% 產(chǎn)生 x1 x2x1=-1.5:interval:1.5;x2=-1.5:interval:1.5;% 按照函數(shù)先求得相應(yīng)的函數(shù)值,作為網(wǎng)絡(luò)的輸出。F =20+x1.A2-10*cos(2*pi*x1)+x242-10*cos(2*pi*x2);% 網(wǎng)絡(luò)建立
28、和訓(xùn)練%網(wǎng)絡(luò)建立輸入為x1;x2,輸出為F。Spread使用默認(rèn)。net=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);hold on;plot3(x1,x2,ty,b-.);view(113,36)title( 可視化的方法觀察準(zhǔn)確 RBF 神經(jīng)網(wǎng)絡(luò)的擬合效果 )xlabel(x1)ylabel(x2)zlabel(F)grid on可祖比的方注辺星雄蝴卩芳詢埜閩壞的払皆牧黒第二步 建立approximate RBF 神經(jīng)網(wǎng)絡(luò)擬合%
29、RBF網(wǎng)絡(luò)的回歸-非線性函數(shù)回歸的實(shí)現(xiàn)clcclear%產(chǎn)生訓(xùn)練樣本(訓(xùn)練輸入,訓(xùn)練輸出)% Id為樣本例數(shù)ld=400;%產(chǎn)生2*ld的矩陣x=ra nd(2,ld);%將x轉(zhuǎn)換到-1.5 1.5之間x=(x-0.5)*1.5*2;% x的第一行為x1,第二行為x2.x1=x(1,:);x2=x(2,:);%計(jì)算網(wǎng)絡(luò)輸出F值F=20+x1.A2-10*cos(2*pi*x1)+x292-10*cos(2*pi*x2);%建立RBF神經(jīng)網(wǎng)絡(luò)%采用approximate RBF 神經(jīng)網(wǎng)絡(luò)。spread為默認(rèn)值 n et=newrb(x,F);%建立測(cè)試樣本 % gen erate the tes
30、ti ng datain terval=0.1;i, j=meshgrid(-1.5:i nterval:1.5); row=size(i);tx1=i(:);tx1=tx1;tx2=j(:);tx2=tx2;tx=tx1;tx2;% 使用建立的 RBF 網(wǎng)絡(luò)進(jìn)行模擬,得出網(wǎng)絡(luò)輸出 ty=sim(net,tx);% 使用圖像,畫(huà)出 3 維圖% 真正的函數(shù)圖像 interval=0.1;x1, x2=meshgrid(-1.5:interval:1.5);F = 20+x142-10*cos(2*pi*x1)+x2.A2-10*cos(2*pi*x2);subplot(1,3,1)mesh(x1
31、,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 神經(jīng)網(wǎng)絡(luò)結(jié)果 ) % 誤差圖像 subplot(1,3,3)mesh(x1,x2,F-v);zlim(0,60) title( 誤差圖像 ) set(gcf,position,300 ,250,900,400)歸I曲坦叵落務(wù)+&蘭創(chuàng)I?討論題:對(duì)于非線性函數(shù)22 0.25222 x 0.1y (x-i x2) sin 50( X|x2) 1(1 )分別建立BP神經(jīng)網(wǎng)絡(luò)和RBF神
32、經(jīng)網(wǎng)絡(luò)擬合并比較兩者的性能差異。(2 )就BP神經(jīng)網(wǎng)絡(luò)驗(yàn)證單線程運(yùn)算和并行運(yùn)算的運(yùn)行時(shí)間差異。3. 應(yīng)用實(shí)例:基于近紅外光譜的汽油辛烷值預(yù)測(cè)問(wèn)題描述辛烷值是汽油最重要的品質(zhì)指標(biāo),傳統(tǒng)的實(shí)驗(yàn)室檢測(cè)方法存在樣品用量大、測(cè)試周期長(zhǎng)和費(fèi)用高等問(wèn)題,不適用與生產(chǎn)控制,特別是在線測(cè)試,今年發(fā)展起來(lái)的近紅外光譜分析方 法(NIR),作為一種快速分析方法,已經(jīng)廣泛應(yīng)用于農(nóng)業(yè)、制藥、生物化工、石油產(chǎn)品等 領(lǐng)域。其優(yōu)越性是無(wú)損檢測(cè)、低成本、無(wú)污染、能在線分析,更適合于生產(chǎn)和控制的需要。針對(duì)采集得到的60組汽油樣品,利用傅立葉近紅外變換光譜儀對(duì)其掃描,掃描范圍為 9001700nm ,掃描間隔為2nm,每個(gè)樣品的光
33、譜曲線共含有 401個(gè)波長(zhǎng)點(diǎn)。同時(shí),禾U用 傳統(tǒng)實(shí)驗(yàn)室檢測(cè)方法測(cè)定其辛烷值含量?,F(xiàn)要求利用BP神經(jīng)網(wǎng)絡(luò)及RBF神經(jīng)網(wǎng)絡(luò)分別建立汽油樣品近紅外光譜與其辛烷值之間的關(guān)系的數(shù)學(xué)模型,并對(duì)模型的性能進(jìn)行評(píng)價(jià)。解題思路及步驟依據(jù)問(wèn)題描述中的要求,實(shí)現(xiàn)BP神經(jīng)網(wǎng)絡(luò)及RBF神經(jīng)網(wǎng)絡(luò)的模型建立及性能評(píng)價(jià),大體上可以分為以下幾個(gè)步驟:1 )產(chǎn)生訓(xùn)練集/測(cè)試集為了保證建立的模型具有良好的泛化能力,要求訓(xùn)練集樣本足夠多,且具有良好的代表性。一般認(rèn)為,訓(xùn)練集樣本數(shù)量占總體樣本數(shù)量的2/33/4 為宜,剩余的1/41/3 作為測(cè)試集樣本。同事,盡量使得訓(xùn)練集與測(cè)試集樣本的分布規(guī)律近似相同。2 )創(chuàng)建/訓(xùn)練BP神經(jīng)網(wǎng)絡(luò)創(chuàng)
34、建BP神經(jīng)網(wǎng)絡(luò)需要確定網(wǎng)絡(luò)的結(jié)構(gòu),即需要確定以下幾個(gè)參數(shù):輸入變量個(gè)數(shù)、隱 函數(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ò)的性能影響較大。若隱含層神經(jīng)元的個(gè)數(shù)較少,則網(wǎng)絡(luò)不能充分描述輸出和輸入變量之間的關(guān)系;相反,若隱含層神經(jīng)元的個(gè)數(shù)較多,則會(huì)導(dǎo)致網(wǎng)絡(luò)的學(xué)習(xí)時(shí)間變長(zhǎng),甚至?xí)霈F(xiàn)過(guò) 擬合的問(wèn)題。一般地, 確定隱含層神經(jīng)元個(gè)數(shù)的方法實(shí)在經(jīng)驗(yàn)公式的基礎(chǔ)上,對(duì)比隱含層 不同神經(jīng)元個(gè)數(shù)對(duì)模型性能的影響,從而進(jìn)行選擇。網(wǎng)絡(luò)結(jié)構(gòu)確定后,設(shè)置相關(guān)訓(xùn)練參數(shù)(如訓(xùn)練次數(shù)、學(xué)習(xí)率等) ,便可以
35、對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn) 練。3)創(chuàng)建/訓(xùn)練 RBF 神經(jīng)網(wǎng)絡(luò)創(chuàng)建 RBF 神經(jīng)網(wǎng)絡(luò)時(shí)需要考慮 spread 的值對(duì)網(wǎng)絡(luò)性能的影響。一般而言, spread 的 值越大,函數(shù)的擬合就越平滑。然而,過(guò)大的 spread 值將需要非常多的神經(jīng)元以適應(yīng)函數(shù) 的快速變化; 反之,若 spread 值太小, 則意味著需要許多的神經(jīng)元來(lái)適應(yīng)函數(shù)的緩慢變化, 從而導(dǎo)致網(wǎng)絡(luò)性能不好。4 )仿真測(cè)試 模型建立后,將測(cè)試集的輸入變量送入模型,模型的輸出就是對(duì)應(yīng)的預(yù)測(cè)結(jié)果。5 )性能評(píng)價(jià)通過(guò)計(jì)算測(cè)試集預(yù)測(cè)值與真實(shí)值間的誤差, 可以對(duì)模型的泛化能力進(jìn)行評(píng)價(jià)。 在此基礎(chǔ) 上,可以進(jìn)行進(jìn)一步的研究和改善。MATLAB 程序?qū)崿F(xiàn)第一步
36、 產(chǎn)生訓(xùn)練集 / 測(cè)試集60 個(gè)樣品的光譜及辛烷值數(shù)據(jù)保存在 spectra_data.mat 文件中,該文件包含兩個(gè)變量 矩陣: NIR 為 60 行 401 列的樣品光譜數(shù)據(jù), octane 為 60 行 1 列的辛烷值數(shù)據(jù)。這里采 用隨機(jī)法產(chǎn)生訓(xùn)練集和測(cè)試集,隨機(jī)產(chǎn)生 50 個(gè)樣品作為訓(xùn)練集,剩余的 10 個(gè)樣品作為測(cè) 試集。程序如下:% 清空環(huán)境變量clear allclc% 訓(xùn)練集 / 測(cè)試集產(chǎn)生%導(dǎo)入數(shù)據(jù)load spectra_data.mat% 隨機(jī)產(chǎn)生訓(xùn)練集和測(cè)試集temp = randperm(size(NIR,1);% 訓(xùn)練集 50 個(gè)樣本P_train = NIR(te
37、mp(1:50),:);T_train = octane(temp(1:50),:);% 測(cè)試集 10 個(gè)樣本P_test = NIR(temp(51:end),:);T_test = octane(temp(51:end),:);N = size(P_test,2);說(shuō)明:(1) 由于訓(xùn)練集/測(cè)試集產(chǎn)生的隨機(jī)性,每次運(yùn)行的結(jié)果均有可能不同。(2) 函數(shù)randperm(n)用于產(chǎn)生一個(gè)長(zhǎng)度為 n的正整數(shù)隨機(jī)序列。第二步 創(chuàng)建/訓(xùn)練BP神經(jīng)網(wǎng)絡(luò)及仿真測(cè)試?yán)肕ATLAB神經(jīng)網(wǎng)絡(luò)自帶工具箱的函數(shù),可以方便的進(jìn)行BP神經(jīng)網(wǎng)絡(luò)創(chuàng)建、訓(xùn)練及仿真測(cè)試。在訓(xùn)練之前,可以對(duì)相關(guān)的訓(xùn)練參數(shù)進(jìn)行設(shè)置,也可以采取
38、默認(rèn)設(shè)置。程序如 下:% BP神經(jīng)網(wǎng)絡(luò)創(chuàng)建、訓(xùn)練及仿真測(cè)試%創(chuàng)建網(wǎng)絡(luò)net = n ewff(P_trai n, T_trai n,9);%設(shè)置訓(xùn)練參數(shù)n et.tra in Param.epochs = 1000;n et.tra in Param.goal = 1e-3;n et.tra in Para m.lr = 0.01;%訓(xùn)練網(wǎng)絡(luò)net = trai n(n et,P_trai n, T_trai n);%仿真測(cè)試T_sim_bp = sim( net,P_test);第三步創(chuàng)建RBF神經(jīng)網(wǎng)絡(luò)及仿真測(cè)試?yán)肕ATLAB神經(jīng)網(wǎng)絡(luò)自帶工具箱的函數(shù),可以方便的進(jìn)行RBF神經(jīng)網(wǎng)絡(luò)創(chuàng)建、訓(xùn)練
39、及仿真測(cè)試。程序如下:% RBF神經(jīng)網(wǎng)絡(luò)創(chuàng)建及仿真測(cè)試%創(chuàng)建網(wǎng)絡(luò)net = n ewrbe(P_trai n, T_trai n,0.3);%仿真測(cè)試T_sim_rbf = sim( net,P_test);第四步性能評(píng)價(jià)BP神經(jīng)網(wǎng)絡(luò)及RBF神經(jīng)網(wǎng)絡(luò)仿真測(cè)試結(jié)束后,通過(guò)計(jì)算預(yù)測(cè)值與真實(shí)值的偏差情況, 可以對(duì)網(wǎng)絡(luò)的泛化能力。采用兩個(gè)評(píng)價(jià)指標(biāo),分別為相對(duì)誤差E和決定系數(shù)R2,其計(jì)算公式分別為E 山,i 1,2,.,nYi2ni斛yi1i 122nnnn22n ?n %yri 1i 1i 1i 1nn2其中?i (i 1,2,., n )為第i個(gè)樣品的預(yù)測(cè)值;yi為第i個(gè)樣品的真實(shí)值;n為樣品數(shù)目。相對(duì)誤差越小,表明模型的性能越好。決定系數(shù)范圍在0,1內(nèi),越接近于1,表明模型的擬合性能越好,反之,越趨近于0,表明模型的擬合性能越差。程序如下:%性能評(píng)價(jià)%相對(duì)誤差errorerror_bp = abs(T_sim_bp - T_test)./T_test;error_r
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 房屋建筑工程保修合同
- 店鋪股權(quán)轉(zhuǎn)讓協(xié)議書(shū)
- 公司車輛租賃合同
- 工程車輛運(yùn)輸合作協(xié)議
- 《數(shù)學(xué)函數(shù)圖像應(yīng)用:函數(shù)變換與圖表解讀教案》
- 文言文閱讀技巧:詞序分析與文本理解教案
- 鐵藝圍欄施工方案
- 門(mén)庭柱加寬施工方案
- 垃圾清理施工方案
- 潔凈廠房設(shè)計(jì)工程施工方案
- 部編版《語(yǔ)文》(八年級(jí)-下冊(cè))第一單元教材分析與教學(xué)建議
- Unit 1 Home 單元測(cè)試卷 重難點(diǎn)提優(yōu)卷(含答案)譯林版(2024)七年級(jí)英語(yǔ)下冊(cè)
- 現(xiàn)代企業(yè)服務(wù)營(yíng)銷的創(chuàng)新與實(shí)踐
- 5.2 做自強(qiáng)不息的中國(guó)人 (課件)-2024-2025學(xué)年統(tǒng)編版道德與法治七年級(jí)下冊(cè)
- 【寒假開(kāi)學(xué)第一課】AI時(shí)代做自己的哪吒
- 《材料科學(xué)與工程專業(yè)生產(chǎn)實(shí)習(xí)》課程教學(xué)大綱
- 陵園墓地代理居間
- 2025年寧夏警官職業(yè)學(xué)院高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- CWAN 0043-2021攪拌摩擦焊攪拌頭設(shè)計(jì)及制造標(biāo)準(zhǔn)
- 從入門(mén)到精通:2025年化妝基本步驟
- 移動(dòng)傳輸匯聚機(jī)房施工項(xiàng)目
評(píng)論
0/150
提交評(píng)論