




已閱讀5頁,還剩233頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1,第2章matlab神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)2.1matlab神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)2.2matlab神經(jīng)網(wǎng)絡(luò)工具箱的圖形用戶界面,2,利用神經(jīng)網(wǎng)絡(luò)能解決許多用傳統(tǒng)方法無法解決的問題。神經(jīng)網(wǎng)絡(luò)在很多領(lǐng)域中都有應(yīng)用,以實(shí)現(xiàn)各種復(fù)雜的功能。這些領(lǐng)域包括商業(yè)及經(jīng)濟(jì)估算、自動檢測和監(jiān)視、計(jì)算機(jī)視覺、語音處理、機(jī)器人及自動控制、優(yōu)化問題、航空航天、銀行金融業(yè)、工業(yè)生產(chǎn)等。而神經(jīng)網(wǎng)絡(luò)是一門發(fā)展很快的學(xué)科,其應(yīng)用領(lǐng)域也會隨著其發(fā)展有更大的拓寬。,3,本章將介紹matlab神經(jīng)網(wǎng)絡(luò)工具箱的應(yīng)用。在matlab神經(jīng)網(wǎng)絡(luò)工具箱中提供了豐富的演示實(shí)例,用matlab語言構(gòu)造了典型神經(jīng)網(wǎng)絡(luò)的激活函數(shù),編寫了各種網(wǎng)絡(luò)設(shè)計(jì)與訓(xùn)練的子程序,網(wǎng)絡(luò)的設(shè)計(jì)者可以根據(jù)自己的需要去調(diào)用工具箱中有關(guān)神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)訓(xùn)練程序,使自己能夠從繁瑣的編程中解脫出來。,4,matlab神經(jīng)網(wǎng)絡(luò)工具箱提供了許多進(jìn)行神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)和分析的工具函數(shù),這些函數(shù)的matlab實(shí)現(xiàn),使得設(shè)計(jì)者對所選定網(wǎng)絡(luò)進(jìn)行計(jì)算的過程,轉(zhuǎn)變?yōu)閷瘮?shù)的調(diào)用和參數(shù)的選擇,這給用戶帶來了極大的方便,即使不了解算法的本質(zhì),也可以直接應(yīng)用功能豐富的函數(shù)來實(shí)現(xiàn)自己的目的。有關(guān)這些工具函數(shù)的使用可以通過help命令得到,本章將對這些函數(shù)的功能、調(diào)用格式,以及使用方法做詳細(xì)的介紹。,2.1matlab神經(jīng)網(wǎng)絡(luò)工具箱函數(shù),5,隨著matlab軟件的版本提高,其對應(yīng)的神經(jīng)網(wǎng)絡(luò)工具箱的內(nèi)容越來越豐富,它包括了很多現(xiàn)有的神經(jīng)網(wǎng)絡(luò)的新成果,涉及的網(wǎng)絡(luò)模型有,感知機(jī)網(wǎng)絡(luò)、線性神經(jīng)網(wǎng)絡(luò)、bp神經(jīng)網(wǎng)絡(luò)、徑向基神經(jīng)網(wǎng)絡(luò)、自組織神經(jīng)網(wǎng)絡(luò)、學(xué)習(xí)向量量化神經(jīng)網(wǎng)絡(luò)、elman神經(jīng)網(wǎng)絡(luò)、hopfield神經(jīng)網(wǎng)絡(luò)、自適應(yīng)濾波和控制系統(tǒng)網(wǎng)絡(luò)等。,6,神經(jīng)網(wǎng)絡(luò)工具箱提供了很多經(jīng)典的學(xué)習(xí)算法,使用它能夠快速地實(shí)現(xiàn)對實(shí)際問題的建模求解。由于其編程簡單,這樣就給使用者節(jié)省了大量的編程時間,使其能夠把更多的精力投入到網(wǎng)絡(luò)設(shè)計(jì)而不是具體程序?qū)崿F(xiàn)上。,7,2.1.1神經(jīng)網(wǎng)絡(luò)工具箱中的通用函數(shù)matlab神經(jīng)網(wǎng)絡(luò)工具箱中提供的函數(shù)主要分為兩大部分。一部分函數(shù)是通用的,這些函數(shù)幾乎可以用于所有類型的神經(jīng)網(wǎng)絡(luò),如神經(jīng)網(wǎng)絡(luò)的初始化函數(shù)init()、訓(xùn)練函數(shù)train()和仿真函數(shù)sim()等;另一部分函數(shù)則是特別針對某一種類型的神經(jīng)網(wǎng)絡(luò)的,如對感知機(jī)神經(jīng)網(wǎng)絡(luò)進(jìn)行建立的函數(shù)simup()等。表2-1列出了一些通用函數(shù)的名稱和基本功能。,8,表2-1神經(jīng)網(wǎng)絡(luò)的通用函數(shù)和功能,9,1.初始化神經(jīng)網(wǎng)絡(luò)函數(shù)init()利用初始化神經(jīng)網(wǎng)絡(luò)函數(shù)init()可以對一個已存在的神經(jīng)網(wǎng)絡(luò)進(jìn)行初始化修正,該網(wǎng)絡(luò)的權(quán)值和偏值是按照網(wǎng)絡(luò)初始化函數(shù)來進(jìn)行修正的。其調(diào)用格式為:net=init(net),2.神經(jīng)網(wǎng)絡(luò)某一層的初始化函數(shù)initlay()初始化函數(shù)initlay()特別適用于層-層結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)的初始化,該網(wǎng)絡(luò)的權(quán)值和偏值是按照網(wǎng)絡(luò)初始化函數(shù)來進(jìn)行修正的。其調(diào)用格式為:net=initlay(net),10,3.神經(jīng)網(wǎng)絡(luò)某一層的權(quán)值和偏值初始化函數(shù)initwb()利用初始化函數(shù)initwb()可以對一個已存在的神經(jīng)網(wǎng)絡(luò)的net某一層i的權(quán)值和偏值進(jìn)行初始化修正,該網(wǎng)絡(luò)對每層的權(quán)值和偏值是按照設(shè)定的每層的初始化函數(shù)來進(jìn)行修正的。其調(diào)用格式為:net=initwb(net,i),4.神經(jīng)網(wǎng)絡(luò)訓(xùn)練函數(shù)train()利用train()函數(shù)可以訓(xùn)練一個神經(jīng)網(wǎng)絡(luò)。網(wǎng)絡(luò)訓(xùn)練函數(shù)是一種通用的學(xué)習(xí)函數(shù),訓(xùn)練函數(shù)重復(fù)地把一組輸入向量應(yīng)用到一個網(wǎng)絡(luò)上,每次都更新網(wǎng)絡(luò),直到達(dá)到了某種準(zhǔn)則。停止準(zhǔn)則可能是最大的學(xué)習(xí)步數(shù)、最小的誤差梯度或者是誤差目標(biāo)等,調(diào)用格式為:net,tr,y,e,xf,af=train(net,x,t,xi,ai),11,5.網(wǎng)絡(luò)自適應(yīng)訓(xùn)練函數(shù)adapt()另一種通用的訓(xùn)練函數(shù)是自適應(yīng)函數(shù)adapt()。自適應(yīng)函數(shù)在每一個輸入時間階段更新網(wǎng)絡(luò)時仿真網(wǎng)絡(luò),而這在進(jìn)行下一個輸入的仿真前完成,其調(diào)用格式為:net,y,e,xf,af,tr=adapt(net,x,t,xi,ai),6.網(wǎng)絡(luò)仿真函數(shù)sim()神經(jīng)網(wǎng)絡(luò)一旦訓(xùn)練完成,網(wǎng)絡(luò)的權(quán)值和偏值就已經(jīng)確定了。于是就可以使用它來解決實(shí)際問題了。利用sim()函數(shù)可以仿真一個神經(jīng)網(wǎng)絡(luò)的性能。其調(diào)用格式為:y,xf,af,e,perf=sim(net,x,xi,ai,t)或y,xf,af,e,perf=sim(net,qts,xi,ai),12,7.權(quán)值點(diǎn)積函數(shù)dotprod()網(wǎng)絡(luò)輸入向量與權(quán)值的點(diǎn)積可得到加權(quán)輸入。函數(shù)dotprod()的調(diào)用格式為:z=dotprod(w,x)式中,w為sr維的權(quán)值矩陣;x為q組r維的輸入向量;z為q組s維的w與x的點(diǎn)積。8.網(wǎng)絡(luò)輸入的和函數(shù)netsum()網(wǎng)絡(luò)輸入的和函數(shù)是通過某一層的加權(quán)輸入和偏值相加作為該層的輸入。調(diào)用格式:z=netprod(z1,z2,)式中,zi為sq維矩陣。,13,9.網(wǎng)絡(luò)輸入的積函數(shù)netprod()網(wǎng)絡(luò)輸入的積函數(shù)是通過某一層的加權(quán)輸入和偏值相乘作為該層的輸入。調(diào)用格式:z=netprod(z1,z2,)式中,zi為sq維矩陣。10.結(jié)構(gòu)一致函數(shù)concur()函數(shù)concur()的作用在于使得本來不一致的權(quán)值向量和偏值向量的結(jié)構(gòu)一致,以便于進(jìn)行相加或相乘運(yùn)算,其調(diào)用格式為:z=concur(b,q)式中,b為n1維的權(quán)值向量;q為要達(dá)到一致化所需要的長度;z為一個已經(jīng)一致化了的矩陣。,14,例2-1利用netsum()函數(shù)和netprod()函數(shù),對兩個加權(quán)輸入向量z1和z2進(jìn)行相加和相乘。解matlab的程序如下。z1=124;341;z2=-122;-5-61;%提供兩個加權(quán)輸入向量b=0;-1;q=3;%權(quán)值向量和一致化所需要的長度z=concur(b,q)%計(jì)算一致化了的矩陣x1=netsum(z1,z2),x2=netprod(z1,z2)%計(jì)算向量的和與積結(jié)果顯示:z=000-1-1-1x1=046-2-22x2=-148-15-241,15,2.1.2感知機(jī)神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)matlab神經(jīng)網(wǎng)絡(luò)工具箱中提供了大量的與感知機(jī)相關(guān)的的函數(shù)。在matlab工作空間的命令行鍵入“helppercept”,便可得到與感知機(jī)(perceptron)相關(guān)的函數(shù),進(jìn)一步利用help命令又能得到相關(guān)函數(shù)的詳細(xì)介紹。表2-2列出了這些函數(shù)的名稱和基本功能。,16,表2-2感知機(jī)網(wǎng)絡(luò)的重要函數(shù)和功能,17,1平均絕對誤差性能函數(shù)mae()感知機(jī)網(wǎng)絡(luò)學(xué)習(xí)規(guī)則為調(diào)整網(wǎng)絡(luò)的權(quán)值和偏值,使網(wǎng)絡(luò)的平均絕對誤差和性能最小。平均絕對誤差性能函數(shù)的調(diào)用格式為:perf=mae(e,w,pp)式中e為誤差矩陣或向量(e=t-y)。,18,2硬限幅傳輸函數(shù)hardlim()硬限幅傳輸函數(shù)hardlim()通過計(jì)算網(wǎng)絡(luò)的輸入得到該層的輸出。如果網(wǎng)絡(luò)的輸入達(dá)到門限,則硬限幅傳輸函數(shù)的輸出為1,否則為0。這表明神經(jīng)元可用來作出判斷或分類。其調(diào)用格式為:a=hardlim(n)或a=hardlim(z,b)a=hardlim(p)函數(shù)hardlim(n)在給定網(wǎng)絡(luò)的輸入矢量矩陣n時,返回該層的輸出矢量矩陣a。當(dāng)n中的元素大于等于零時,返回的值為1,否則為0。函數(shù)hardlim(z,b)用于矢量是成批處理且偏差存在的情況下,此時的偏差b和加權(quán)輸入矩陣z是分開傳輸?shù)?。偏差矢量b加到z中的每個矢量中形成網(wǎng)絡(luò)輸入矩陣。,19,返回的元素a是1還是0,取決于網(wǎng)絡(luò)輸入矩陣中的元素是大于等于0還是小于0;函數(shù)hardlim(p)包含傳輸函數(shù)的特性名并返回問題中的特性,如下的特性可從任何傳輸函數(shù)中獲得:(1)delta與傳輸函數(shù)相關(guān)的delta函數(shù);(2)init傳輸函數(shù)的標(biāo)準(zhǔn)初始化函數(shù);(3)name傳輸函數(shù)的全稱;(4)output包含有傳輸函數(shù)最小、最大值的二元矢量。例利用以下命令可得圖2-1。n=-5:0.1:5;a=hardlim(n);plot(n,a),圖2-1硬限幅傳輸函數(shù)曲線,20,3對稱硬限幅傳輸函數(shù)hardlims()對稱硬限幅傳輸函數(shù)hardlims()通過計(jì)算網(wǎng)絡(luò)的輸入得到該層的輸出。如果網(wǎng)絡(luò)的輸入達(dá)到門限,則硬限幅傳輸函數(shù)的輸出為1,否則為-1。例w=eye(3);b=-0.5*ones(3,1);x=10;01;11;a=hardlims(w*x,b)結(jié)果顯示:a=1-1-1111,21,例2-2建立一個感知機(jī)網(wǎng)絡(luò),使其能夠完成“或”的功能。解為了完成“或”函數(shù),建立一個兩輸入、單輸出的一個單層感知機(jī)網(wǎng)絡(luò)。設(shè)輸入向量為:x=0011;0101,目標(biāo)向量為:t=0111。激活函數(shù)取硬限幅傳輸函數(shù)。根據(jù)感知機(jī)學(xué)習(xí)算法的計(jì)算步驟,利用matlab的神經(jīng)網(wǎng)絡(luò)工具箱的有關(guān)函數(shù)編寫的程序如下。ex2_2,22,結(jié)果顯示:epoch=3wij=1.50281.7095y=0111,23,4.繪制樣本點(diǎn)的函數(shù)plotpv()利用plotpv()函數(shù)可在坐標(biāo)圖中繪出已知給出的樣本點(diǎn)及其類別,不同的類別使用了不同的符號。其調(diào)用格式為:plotpv(x,t)式中x定義了n個2或3維的樣本,它是一個2n維或3n維的矩陣;t表示各樣本點(diǎn)的類別,它是一個n維的向量。如果t只含一元矢量,目標(biāo)0的輸入矢量畫為“o”;目標(biāo)1的輸入矢量畫為“+”;如果t含二元矢量,則輸入矢量對應(yīng)如下:00用“o”;01用“+”;10用“*”;11用“”。例,24,x=-0.5,-0.5,0.3,-0.1,0.2,0.0,0.6,0.8;-0.5,0.5,-0.5,1.0,0.5,-0.9,0.8,-0.6;t=11011010;plotpv(x,t)對樣本不同的類別使用了不同的符號,如圖2-2所示。,圖2-2樣本的分類,25,5.在存在的圖上畫感知機(jī)的分類線函數(shù)plotpc()硬特性神經(jīng)元將輸入空間用一條直線(如果神經(jīng)元有兩個輸入),或用一個平面(如果神經(jīng)元有三個輸入),或用一個超平面(如果神經(jīng)元有三個以上輸入)分成兩個區(qū)域。plotpc(w,b)對含權(quán)矩陣w和偏差矢量b的硬特性神經(jīng)元的兩個或三個輸入畫一個分類線。這一函數(shù)返回分類線的句柄以便以后調(diào)用。plotpc(w,b,h)包含從前的一次調(diào)用中返回的句柄,它在畫新分類線之前,刪除舊線。,26,6.感知機(jī)神經(jīng)網(wǎng)絡(luò)的初始化函數(shù)initp()利用initp()函數(shù)可建立一個單層(一個輸入層和一個輸出層)感知機(jī)神經(jīng)網(wǎng)絡(luò)。其調(diào)用格式為:w,b=initp(r,s)或w,b=initp(x,t),27,例利用以下命令,可得圖1-54。x=0011;0101;t=0111;w,b=initp(x,t);plotpv(x,t);plotpc(w,b);使用plotpc()函數(shù)可以在已繪制的圖上加上感知機(jī)分類線(matlab6.1及以下版本利用此命令不能產(chǎn)生分類線),如圖2-3所示。由圖可見經(jīng)過初始化后的網(wǎng)絡(luò)對輸入樣本還不能正確進(jìn)行分類。,圖2-3輸入樣本加網(wǎng)絡(luò)初始分類線,28,7用感知機(jī)準(zhǔn)則訓(xùn)練感知機(jī)的函數(shù)trainp()經(jīng)過初始化建立的感知機(jī),還必須經(jīng)過訓(xùn)練才能夠?qū)嶋H應(yīng)用。通過訓(xùn)練以決定網(wǎng)絡(luò)的權(quán)值和偏值。對于感知機(jī),其訓(xùn)練過程為:對于給定的輸入向量,計(jì)算網(wǎng)絡(luò)的實(shí)際輸出,并與相應(yīng)的目標(biāo)向量進(jìn)行比較,得到誤差,然后根據(jù)相應(yīng)的學(xué)習(xí)規(guī)則調(diào)整權(quán)值和偏值。重新計(jì)算網(wǎng)絡(luò)在新的權(quán)值和偏值作用下的輸出,重復(fù)上述的權(quán)值和偏值的調(diào)整過程,直到網(wǎng)絡(luò)的輸出與期望的目標(biāo)向量相等或者訓(xùn)練次數(shù)達(dá)到預(yù)定的最大次數(shù)時才停止訓(xùn)練,之所以要設(shè)定最大訓(xùn)練次數(shù),是因?yàn)閷τ谟行﹩栴},使用感知機(jī)神經(jīng)網(wǎng)絡(luò)時是不能解決的,這正是感知機(jī)的缺點(diǎn)。訓(xùn)練感知機(jī)神經(jīng)網(wǎng)絡(luò)trainp()函數(shù)的調(diào)用格式為:w,b,epochs,errors=trainp(w,b,x,t,tp),29,例2-4利用trainp()函數(shù)訓(xùn)練一個感知機(jī)網(wǎng)絡(luò),并用訓(xùn)練后的網(wǎng)絡(luò)對輸入樣本進(jìn)行分類。解程序如下。ex2_4例利用以上程序,可得如圖2-4所示的樣本及分類線。用標(biāo)準(zhǔn)化感知機(jī)準(zhǔn)則訓(xùn)練感知機(jī)的函數(shù)trainpn()的用法同函數(shù)trainp(),即使輸入矢量的長度不同,使用標(biāo)準(zhǔn)化感知機(jī)準(zhǔn)則也使得學(xué)習(xí)過程收斂很快。,圖2-4樣本加分類線,30,8.感知機(jī)神經(jīng)網(wǎng)絡(luò)的仿真函數(shù)simup()神經(jīng)網(wǎng)絡(luò)一旦訓(xùn)練完成,網(wǎng)絡(luò)的權(quán)值和偏值就已經(jīng)確定了。于是就可以使用它來解決實(shí)際問題了。感知機(jī)由一系列硬特性神經(jīng)元組成,運(yùn)行速度很快,對簡單的分類很有用。利用simup()函數(shù)可以測試一個感知機(jī)神經(jīng)網(wǎng)絡(luò)的性能。其調(diào)用格式為:y=simup(x,w,b),31,例2-5利用trainp()函數(shù)訓(xùn)練一個感知機(jī)網(wǎng)絡(luò),使其能夠完成“或”的功能。解根據(jù)神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)編寫的程序如下。ex2_5,執(zhí)行以上程序可得如下結(jié)果以及圖2-5至圖2-8。y=0111由以上結(jié)果和圖2-7可知,訓(xùn)練后的網(wǎng)絡(luò)已具有“或”的功能,且可對輸入樣本進(jìn)行正確分類,32,圖2-5輸入樣本的分類圖2-6輸入樣本加網(wǎng)絡(luò)初始分類線,圖2-7輸入樣本加網(wǎng)絡(luò)訓(xùn)練后的分類線圖2-8誤差曲線,33,例2-6利用trainp()函數(shù)訓(xùn)練一個感知機(jī)網(wǎng)絡(luò),使其能夠?qū)θ齻€輸入進(jìn)行分類。解根據(jù)神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)編寫的程序如下。ex2_6執(zhí)行以上程序可得如下結(jié)果以及圖2-9至圖2-12。y=01001101,34,圖2-9輸入樣本的分類圖2-10輸入樣本加網(wǎng)絡(luò)初始分類線,圖2-11輸入樣本加網(wǎng)絡(luò)訓(xùn)練后的分類線圖2-12誤差曲線,35,例2-7利用trainp()函數(shù)訓(xùn)練一個感知機(jī)網(wǎng)絡(luò),使其能夠?qū)⑤斎敕譃?類。解根據(jù)神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)編寫的程序如下。ex2-7,36,執(zhí)行以上程序可得如下結(jié)果以及圖2-13和圖2-14。y=11100111000000011111圖2-13輸入樣本加網(wǎng)絡(luò)訓(xùn)練后的分類線圖2-14誤差曲線,37,9感知機(jī)學(xué)習(xí)函數(shù)learnp()感知機(jī)神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)規(guī)則為調(diào)整網(wǎng)絡(luò)的權(quán)值和偏值使網(wǎng)絡(luò)平均絕對誤差性能最小,以便對網(wǎng)絡(luò)輸入矢量正確分類。感知機(jī)的學(xué)習(xí)規(guī)則只能訓(xùn)練單層網(wǎng)絡(luò),函數(shù)調(diào)用格式為:dw,db=learnp(x,e),38,例2-8利用learnp()函數(shù)訓(xùn)練建立一個感知機(jī)網(wǎng)絡(luò),使其能夠完成“或”的功能。解根據(jù)神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)編寫的程序如下。ex2_8,結(jié)果顯示:epoch=5w=1.36261.7590y=0111,39,10標(biāo)準(zhǔn)化感知機(jī)學(xué)習(xí)函數(shù)learnpn()感知機(jī)學(xué)習(xí)規(guī)則在調(diào)整網(wǎng)絡(luò)的權(quán)值和偏值時利用下式從上式可以看出,輸入向量x越大,則權(quán)值的變化w就越大。當(dāng)存在奇異樣本(即該樣本向量同其它所有的樣本向量比較起來,特別得大或者特別得?。r,利用以上規(guī)則訓(xùn)練時間大為加長。因?yàn)槠渌鼧颖緞t需花很多時間才能同奇異樣本所對應(yīng)的權(quán)值變化相匹配。為了消除學(xué)習(xí)訓(xùn)練時間對奇異樣本的敏感性,提出了一種改進(jìn)的感知機(jī)學(xué)習(xí)規(guī)則,也成為標(biāo)準(zhǔn)化感知機(jī)學(xué)習(xí)規(guī)則,標(biāo)準(zhǔn)化感知機(jī)學(xué)習(xí)規(guī)則試圖使奇異樣本和其它樣本對權(quán)值的變化值的影響均衡,它可通過下式實(shí)現(xiàn),40,標(biāo)準(zhǔn)化感知機(jī)的學(xué)習(xí)函數(shù)為learnpn(),其調(diào)用格式為:dw,db=learnpn(x,e)式中x為輸入向量矩陣;e為誤差向量(e=t-y);t表示網(wǎng)絡(luò)的目標(biāo)向量;y表示網(wǎng)絡(luò)的輸出向量;dw為權(quán)值變化陣;db為偏值變化陣。相應(yīng)于標(biāo)準(zhǔn)化感知機(jī)學(xué)習(xí)規(guī)則的訓(xùn)練函數(shù)為trainpn(),其調(diào)用格式為:w,b,epochs,errors=trainpn(w,b,x,t,tp),41,例2-9利用trainpn()函數(shù)訓(xùn)練建立一個感知機(jī)網(wǎng)絡(luò),觀察奇異輸入樣本對訓(xùn)練結(jié)果的影響。解根據(jù)神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)編寫的程序如下。ex2_9,42,執(zhí)行以上程序可得如下結(jié)果以及圖2-15和圖2-16。y=11001,圖2-15輸入樣本加網(wǎng)絡(luò)訓(xùn)練后的分類線圖2-16誤差曲線,由圖2-16可見利用函數(shù)trainpn(),網(wǎng)絡(luò)訓(xùn)練只需要2步,如果利用函數(shù)trainp(),網(wǎng)絡(luò)訓(xùn)練需要經(jīng)過60多步。,43,例2-10利用trainpn()函數(shù)訓(xùn)練建立一個感知機(jī)網(wǎng)絡(luò),對“異或”問題進(jìn)行分類。解單層感知機(jī)不能解決像邏輯“異或”一類的線性不可分的輸入向量的分類問題,解決這一問題的方案,是可以設(shè)計(jì)一個兩層的網(wǎng)絡(luò),即含有輸入層,隱含層和輸出層的結(jié)構(gòu)。設(shè)輸入向量為:x=0011;0101,目標(biāo)向量為:t=0110。根據(jù)神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)編寫的程序ex2_10.m如下。%ex2_10.m,執(zhí)行以上程序可得如下結(jié)果以及圖2-17和圖2-18。y=0110,44,由圖2-18可見網(wǎng)絡(luò)訓(xùn)練只需要4步。需要指出的是,由于隱含層的權(quán)值和偏值是隨機(jī)給定的而且不可調(diào)整,故隱含層的輸出也是隨機(jī)的,這樣網(wǎng)絡(luò)有可能有解,也有可能無解,如果網(wǎng)絡(luò)找不到解,可再次運(yùn)行網(wǎng)絡(luò),以重新初始化隱含層的權(quán)值和偏值。如果采用單層網(wǎng)絡(luò),對以上問題永遠(yuǎn)也找不到正確的分類方案。,45,11.建立感知機(jī)神經(jīng)網(wǎng)絡(luò)函數(shù)newp()利用newp()函數(shù)可建立一個感知機(jī)神經(jīng)網(wǎng)絡(luò)。其調(diào)用格式為:net=newp(xr,s,tf,lf)例建立一個兩輸入且樣本點(diǎn)取值在-1,1之間,而網(wǎng)絡(luò)只有單個神經(jīng)元的感知機(jī)神經(jīng)網(wǎng)絡(luò),可利用以下命令net=newp(-11;-11,1);,46,使用plotpc()函數(shù)可以在已繪制的圖上加上感知機(jī)分類線。讓它返回得到的分類線的句柄,以便在下一次再繪制分類線時能夠?qū)⒃瓉淼膭h除。例handle=plotpc(net.iw1,net.b1);式中net.iw1用來計(jì)算網(wǎng)絡(luò)net的權(quán)值,net.b1用來計(jì)算網(wǎng)絡(luò)net的偏值。,47,例2-11利用newp()和train()函數(shù)建立并訓(xùn)練一個感知機(jī)網(wǎng)絡(luò),使其同樣能夠完成“或”的功能。解根據(jù)神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)編寫的程序如下。ex2_11執(zhí)行結(jié)果y=0111,48,例2-12利用train()函數(shù)訓(xùn)練一個感知機(jī)網(wǎng)絡(luò),并選擇10個點(diǎn)對其進(jìn)行測試。解根據(jù)神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)編寫的程序ex2_12.m如下。ex2_12.m運(yùn)行以上命令可得如圖2-20和圖2-21所示的訓(xùn)練過程誤差曲線和測試結(jié)果。由圖可見網(wǎng)絡(luò)訓(xùn)練只需5步,就能夠?qū)⑺鼈冋_分類,這說明了設(shè)計(jì)的網(wǎng)絡(luò)是正確的。,49,2.1.3線性神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)matlab神經(jīng)網(wǎng)絡(luò)工具箱中提供了大量的與線性網(wǎng)絡(luò)相關(guān)的的工具箱函數(shù)。在matlab工作空間的命令行鍵入“helplinnet”,便可得到與線性網(wǎng)絡(luò)相關(guān)的函數(shù),進(jìn)一步利用help命令又能得到相關(guān)函數(shù)的詳細(xì)介紹。表2-3列出了這些函數(shù)的名稱和基本功能。,50,表2-3線性網(wǎng)絡(luò)的重要函數(shù)和功能,51,1誤差平方和性能函數(shù)sse()線性網(wǎng)絡(luò)學(xué)習(xí)規(guī)則為調(diào)整網(wǎng)絡(luò)的權(quán)值和偏值使網(wǎng)絡(luò)誤差平方和性能最小。誤差平方和性能函數(shù)的調(diào)用格式為:perf=sse(e,w,pp),52,2.線性傳輸函數(shù)purelin()神經(jīng)元最簡單的傳輸函數(shù)是簡單地從神經(jīng)元輸入到輸出的線性傳輸函數(shù),輸出僅僅被神經(jīng)元所附加的偏差所修正。線性傳輸函數(shù)常用于widriw-hoff或bp準(zhǔn)則來訓(xùn)練的神經(jīng)網(wǎng)絡(luò)中,該函數(shù)調(diào)用格式為:a=purelin(n)或a=purelin(z,b)a=purelin(p),53,函數(shù)purelin(p)包含傳輸函數(shù)的特性名并返回問題中的特性,如下的特性可從任何傳輸函數(shù)中獲得:(1)delta與傳輸函數(shù)相關(guān)的delta函數(shù);(2)init傳輸函數(shù)的標(biāo)準(zhǔn)初始化函數(shù);(3)name傳輸函數(shù)的全稱;(4)output包含有傳輸函數(shù)最小、最大值的二元矢量。例利用以下命令可得圖2-22。n=-5:0.1:5;b=0;a=purelin(n,b);plot(n,a),圖2-22線性傳輸函數(shù),54,3.線性神經(jīng)網(wǎng)絡(luò)的初始化函數(shù)initlin()利用initlin()函數(shù)可建立一個單層(一個輸入層和一個輸出層)線性神經(jīng)網(wǎng)絡(luò)。其調(diào)用格式為:w,b=initlin(r,s)或w,b=initlin(x,t)例x=0011;0101;t=0111;w,b=initlin(x,t);,55,4.設(shè)計(jì)一個線性神經(jīng)網(wǎng)絡(luò)函數(shù)solvelin()同大多數(shù)其它神經(jīng)網(wǎng)絡(luò)不同的是,只要已知線性神經(jīng)網(wǎng)絡(luò)的輸入向量和目標(biāo)向量,就可以直接對其進(jìn)行設(shè)計(jì)。使用函數(shù)solvelin()設(shè)計(jì)的線性神經(jīng)網(wǎng)絡(luò),可以不經(jīng)過訓(xùn)練,直接找出網(wǎng)絡(luò)的權(quán)值和偏值,使得網(wǎng)絡(luò)的誤差的平方和最小。該函數(shù)的調(diào)用格式為:w,b=solvelin(x,t),56,5.線性神經(jīng)網(wǎng)絡(luò)的仿真函數(shù)simulin()利用函數(shù)solvelin()建立的線性神經(jīng)網(wǎng)絡(luò)的權(quán)值和偏值就已經(jīng)根據(jù)網(wǎng)絡(luò)的輸入向量和目標(biāo)向量訓(xùn)練好了。simulin()函數(shù)可以測試一個線性神經(jīng)網(wǎng)絡(luò)的性能。其調(diào)用格式為:y=simulin(x,w,b),57,例2-13利用solvelin()函數(shù)建立一個線性網(wǎng)絡(luò),并對其進(jìn)行測試。x=123;t=2.04.15.9;%給定訓(xùn)練集和目標(biāo)值w,b=solvelin(x,t);y=simulin(x,w,b)結(jié)果顯示:y=2.05004.00005.9500,58,6.計(jì)算線性層的最大學(xué)習(xí)速率函數(shù)maxlinlr()函數(shù)maxlinlr()用于計(jì)算用widrow-hoff準(zhǔn)則訓(xùn)練的線性網(wǎng)絡(luò)的最大穩(wěn)定學(xué)習(xí)速率。其調(diào)用格式為:lr=maxlinlr(x)或lr=maxlinlr(x,b)例利用以下命令可計(jì)算出用widrow-hoff準(zhǔn)則訓(xùn)練的線性神經(jīng)元層所用的學(xué)習(xí)率上限。x=12-47;0.13106;lr=maxlinlr(x)結(jié)果顯示:lr=0.0069,59,7線性神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)函數(shù)learnwh()線性網(wǎng)絡(luò)采用widrow-hoff學(xué)習(xí)規(guī)則,widrow-hoff學(xué)習(xí)規(guī)則只能訓(xùn)練單層的線性神經(jīng)網(wǎng)絡(luò),但這并不影響單層線性神經(jīng)網(wǎng)絡(luò)的應(yīng)用,因?yàn)閷γ恳粋€多層線性神經(jīng)網(wǎng)絡(luò)而言,都可以設(shè)計(jì)出一個性能完全相當(dāng)?shù)膯螌泳€性神經(jīng)網(wǎng)絡(luò)。當(dāng)利用函數(shù)solvelin()設(shè)計(jì)的線性神經(jīng)網(wǎng)絡(luò)不能調(diào)整網(wǎng)絡(luò)的權(quán)值和偏值使網(wǎng)絡(luò)誤差平方和性能最小時,可以應(yīng)用函數(shù)learnwh()和函數(shù)trainwh()來調(diào)整網(wǎng)絡(luò)的權(quán)值和偏值。函數(shù)learnwh()的調(diào)用格式為:dw,db=learnwh(x,e,lr),60,8線性神經(jīng)網(wǎng)絡(luò)的訓(xùn)練函數(shù)trainwh()函數(shù)trainwh()可利用widrow-hoff學(xué)習(xí)規(guī)則對線性層的權(quán)值進(jìn)行訓(xùn)練,利用輸入矢量,計(jì)算該層輸出矢量,然后根據(jù)產(chǎn)生的誤差矢量調(diào)整該層的權(quán)值和偏差。調(diào)用格式為:w,b,epochs,errors=trainwh(w,b,x,t,tp),9.線性神經(jīng)網(wǎng)絡(luò)自適應(yīng)訓(xùn)練函數(shù)adaptwh()函數(shù)adaptwh()可以利用widrow-hoff學(xué)習(xí)規(guī)則對線性層的權(quán)值進(jìn)行自適應(yīng)調(diào)節(jié),在每一步迭代過程中,修改自適應(yīng)線性網(wǎng)絡(luò)層的權(quán)值、偏差和輸出矢量,從而學(xué)習(xí)并適應(yīng)環(huán)境的變化。其調(diào)用格式為:y,e,w,b=adaptwh(w,b,x,t,lr),61,10.設(shè)計(jì)一個線性層函數(shù)newlind()利用函數(shù)newlind()設(shè)計(jì)出的線性網(wǎng)絡(luò)已經(jīng)訓(xùn)練好,可直接使用,該函數(shù)調(diào)用格式為:net=newlind(x,t)式中x為rq維的q組輸入向量;t為sq維的q組目標(biāo)分類向量;net為生成的新線性神經(jīng)網(wǎng)絡(luò)。,62,例2-14利用newlind()函數(shù)建立一個線性網(wǎng)絡(luò),并對其進(jìn)行測試。解matlab程序ex2_14.m如下。%ex2_14.mx=123;t=2.04.15.9;%給定訓(xùn)練集和目標(biāo)值net=newlind(x,t);y=sim(net,x)執(zhí)行結(jié)果:y=2.05004.00005.9500,63,11.新建一個線性層函數(shù)newlin()利用函數(shù)newlin()設(shè)計(jì)的線性網(wǎng)絡(luò),還需訓(xùn)練,該函數(shù)調(diào)用格式為:net=newlin(xr,s,id,lr)例建立一個線性網(wǎng)絡(luò)??衫靡韵旅顇=123;s=1;net=newlin(minmax(x),s);,64,執(zhí)行結(jié)果可得圖2-23和圖2-24。圖2-23系統(tǒng)輸入輸出曲線圖2-24網(wǎng)絡(luò)預(yù)測輸出與系統(tǒng)輸出和誤差,例2-15利用線性網(wǎng)絡(luò)進(jìn)行系統(tǒng)辨識。解matlab程序如下:ex2_15,65,執(zhí)行結(jié)果可得圖2-25和圖2-26。圖2-25網(wǎng)絡(luò)待預(yù)測的目標(biāo)信號圖2-26網(wǎng)絡(luò)預(yù)測輸出與目標(biāo)值,例2-16利用線性網(wǎng)絡(luò)進(jìn)行自適應(yīng)預(yù)測。解方法一:matlab程序如下:ex2_16_1,66,執(zhí)行結(jié)果可得圖2-27和圖2-28。圖2-27網(wǎng)絡(luò)待預(yù)測的目標(biāo)信號圖2-28網(wǎng)絡(luò)預(yù)測輸出與誤差,方法二:matlab程序如下:ex2_16_2,67,執(zhí)行結(jié)果可得圖2-29和圖2-30。圖2-29網(wǎng)絡(luò)待預(yù)測的目標(biāo)信號圖2-30網(wǎng)絡(luò)預(yù)測輸出目標(biāo)信號與誤差,例2-17利用線性網(wǎng)絡(luò)預(yù)測一個時變信號序列。解matlab程序如下:ex2_17,68,2.1.4bp神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)matlab神經(jīng)網(wǎng)絡(luò)工具箱中提供了大量的進(jìn)行bp網(wǎng)絡(luò)分析和設(shè)計(jì)的工具箱函數(shù)。在matlab工作空間的命令行鍵入“helpbackprop”,便可得到與bp神經(jīng)網(wǎng)絡(luò)相關(guān)的函數(shù),進(jìn)一步利用help命令又能得到相關(guān)函數(shù)的詳細(xì)介紹。表2-4列出了這些函數(shù)的名稱和基本功能。,69,表2-4bp網(wǎng)絡(luò)的重要函數(shù)和功能,70,71,1均方誤差性能函數(shù)mse()bp神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)規(guī)則為調(diào)整網(wǎng)絡(luò)的權(quán)值和偏值,使網(wǎng)絡(luò)的均方誤差和性能最小。均方誤差性能函數(shù)的調(diào)用格式為:perf=mse(e,w,pp),2.雙曲正切s型(sigmoid)傳輸函數(shù)tansig()雙曲正切sigmoid函數(shù)把神經(jīng)元的輸入范圍從(-,+)映射到(-1,+1),它是可導(dǎo)函數(shù),適用于bp訓(xùn)練的神經(jīng)元,函數(shù)調(diào)用格式為:a=tansig(n)或a=tansig(z,b)tansig(p),72,函數(shù)tansig(p)包含傳輸函數(shù)的特性名并返回問題中的特性,如下的特性可從任何傳輸函數(shù)中獲得:(1)delta與傳輸函數(shù)相關(guān)的delta函數(shù);(2)init傳輸函數(shù)的標(biāo)準(zhǔn)初始化函數(shù);(3)name傳輸函數(shù)的全稱;(4)output包含有傳輸函數(shù)最小、最大值的二元矢量。例利用以下命令可得圖2-31。n=-5:0.1:5;b=0;a=tansig(n,b);plot(n,a),圖2-31雙曲正切曲線,73,如果bp網(wǎng)絡(luò)的最后一層是sigmoid型神經(jīng)元,那么整個網(wǎng)絡(luò)的輸出就被限制在一個較小的范圍內(nèi);如果bp網(wǎng)絡(luò)的最后一層是purelin型線性神經(jīng)元,那么整個網(wǎng)絡(luò)的輸出可以取任意值。,74,3.正切s型(tansig)神經(jīng)元的求導(dǎo)函數(shù)dtansig()函數(shù)dtansig()為tansig神經(jīng)元的導(dǎo)函數(shù),它根據(jù)y=1-x2的函數(shù)來計(jì)算,其調(diào)用格式為:dy_dx=dtansig(x,y)logsig和purelin神經(jīng)元的導(dǎo)函數(shù)dlogsig()和dpurelin()的用法同上。但它們分別根據(jù)y=x*(1-x)和y=1的函數(shù)來計(jì)算。例利用以下matlab命令x=0.10.80.7;y=tansig(x),dy_dx=dtansig(x,y)結(jié)果顯示:y=0.09970.66400.6044dy_dx=0.99010.55910.6347,75,4.正切s型(tansig)神經(jīng)元的求導(dǎo)函數(shù)deltatan()反向傳播誤差算法(bp)是利用誤差平方和對網(wǎng)絡(luò)各層輸入的導(dǎo)數(shù)來調(diào)整其權(quán)值和偏值的,從而降低誤差平方和。從網(wǎng)絡(luò)誤差矢量中可推導(dǎo)出輸出層的誤差導(dǎo)數(shù)或(delta)矢量,隱含層的矢量的導(dǎo)出,這種矢量的反向傳播正是bp算法的由來。函數(shù)調(diào)用格式為:dy=deltatan(y)或dy=deltatan(y,e)dy=deltatan(y,d2,w2),logsig和purelin神經(jīng)元的delta函數(shù)deltalog()和deltalin()的用法同上。,76,5.bp學(xué)習(xí)規(guī)則函數(shù)learnbp()bp神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)規(guī)則為調(diào)整網(wǎng)絡(luò)的權(quán)值和偏值使網(wǎng)絡(luò)誤差的平方和為最小。這是通過在最速下降方向上不斷地調(diào)整網(wǎng)絡(luò)的權(quán)值和偏值來達(dá)到的。計(jì)算網(wǎng)絡(luò)輸出層的誤差矢量導(dǎo)數(shù),然后反饋回網(wǎng)絡(luò),直到每個隱含層的誤差導(dǎo)數(shù)(稱為delta)都達(dá)到。這可由函數(shù)deltatan()、deltalin()和deltalog()計(jì)算。根據(jù)bp準(zhǔn)則,每一層的權(quán)值矩陣w利用本層的向量和輸入向量x來更新,即w(i,j)=(i)x(j)。函數(shù)調(diào)用格式為dw,db=learnbp(x,delta,lr),77,6.含動量規(guī)則的bp學(xué)習(xí)規(guī)則函數(shù)learnbpm()為了提高bp算法的學(xué)習(xí)速度并增加算法的可靠性,在bp學(xué)習(xí)算法中引進(jìn)了動量因子,它使權(quán)值的變化等于上次權(quán)值的變化與這次由bp準(zhǔn)則引起的變化之和,這樣可將動量加到bp學(xué)習(xí)中,上一次權(quán)值變化的影響可由動量常數(shù)來調(diào)整。動量法降低了網(wǎng)絡(luò)對于誤差曲面局部細(xì)節(jié)的敏感性,有效地抑制網(wǎng)絡(luò)陷于局部極小。而自適應(yīng)學(xué)習(xí)率,也可以使訓(xùn)練時間大大縮短。當(dāng)動量常數(shù)為0時,說明權(quán)值的變化僅由梯度決定。,78,當(dāng)動量常數(shù)為0時,說明權(quán)值的變化僅由梯度決定。當(dāng)動量常數(shù)為1時,說明新的權(quán)值變化僅等于上次權(quán)值變化,而忽略掉梯度項(xiàng),其數(shù)學(xué)表達(dá)式為w(i,j)=dw(i,j)+(1-d)(i)x(j)。函數(shù)調(diào)用格式為dw,db=learnbpm(x,delta,lr,d,dw,db),79,7.levenberg-marguardt學(xué)習(xí)規(guī)則函數(shù)learnlm()函數(shù)learnlm()采用了levenberg-marguardt優(yōu)化方法,從而使得學(xué)習(xí)時間更短。其缺點(diǎn)是,對于復(fù)雜的問題,該方法需要很大的存儲空間。lm方法更新參數(shù)(如權(quán)值和偏值)的數(shù)學(xué)表達(dá)式為w=(jtj+i)-1jte。隨著的增大,lm方法中的jtj項(xiàng)變得無關(guān)緊要,因而學(xué)習(xí)過程由-1jte決定,即梯度下降法。函數(shù)調(diào)用格式為dw,db=learnlm(x,delta),80,例2-18利用三層bp神經(jīng)網(wǎng)絡(luò)訓(xùn)練加權(quán)系數(shù)。兩組3輸入為12;-11;13,希望的輸出均為1,1。隱含層的激活函數(shù)取s型傳輸函數(shù),輸出層的激活函數(shù)取線性傳輸函數(shù)。解根據(jù)bp學(xué)習(xí)算法的計(jì)算步驟,利用matlab的神經(jīng)網(wǎng)絡(luò)工具箱的有關(guān)函數(shù)編寫的程序如下。ex2_18結(jié)果顯示:ok=1.00680.99710.97581.0178,81,8.bp神經(jīng)網(wǎng)絡(luò)初始化函數(shù)initff()在設(shè)計(jì)一個bp網(wǎng)絡(luò)時,只要已知網(wǎng)絡(luò)的輸入向量的取值范圍、各層的神經(jīng)元個數(shù)及傳輸函數(shù),就可以利用初始化函數(shù)initff()對bp網(wǎng)絡(luò)進(jìn)行初始化。函數(shù)initff()可最多對三層神經(jīng)網(wǎng)絡(luò)進(jìn)行初始化,而得到每層的權(quán)值和偏值。其調(diào)用格式為:w,b=initff(xr,s,tf)或w1,b1,w2,b2=initff(xr,s1,tf1,s2,tf2)w1,b1,w2,b2,w3,b3=initff(xr,s1,tf1,s2,tf2,s3,tf3),82,例如設(shè)計(jì)一個隱含層有8個神經(jīng)元,傳輸函數(shù)為tansig,輸出層有5個神經(jīng)元,傳輸函數(shù)為purelin的兩層bp神經(jīng)網(wǎng)絡(luò)可利用以下命令。x=sin(0:100);cos(0:100*2);w1,b1,w2,b2=initff(x,8,tansig,5,purelin),83,9.利用bp算法訓(xùn)練前向網(wǎng)絡(luò)函數(shù)trainbp()bp神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)規(guī)則為調(diào)整網(wǎng)絡(luò)的權(quán)值和偏值使網(wǎng)絡(luò)誤差的平方和為最小。這是通過在最速下降方向上不斷地調(diào)整網(wǎng)絡(luò)的權(quán)值和偏值來達(dá)到的。函數(shù)調(diào)用格式為:w,b,te,tr=trainbp(w,b,tf,x,t,tp)或w1,b1,w2,b2,te,tr=trainbp(w1,b1,tf1,w2,b2,tf2,x,t,tp)w1,b1,w2,b2,w3,b3,te,tr=trainbp(w1,b1,tf1,w2,b2,tf2,w3,b3,tf3,x,t,tp),84,10.利用快速bp算法訓(xùn)練前向網(wǎng)絡(luò)函數(shù)trainbpx()使用動量因子時,bp算法可找到更好的解,而自適應(yīng)學(xué)習(xí)率,也可以使訓(xùn)練時間大大縮短。函數(shù)調(diào)用格式為:w,b,te,tr=trainbpx(w,b,tf,x,t,tp)或w1,b1,w2,b2,te,tr=trainbpx(w1,b1,tf1,w2,b2,tf2,x,t,tp);w1,b1,w2,b2,w3,b3,te,tr=trainbpx(w1,b1,tf1,w2,b2,tf2,w3,b3,tf3,x,t,tp),85,11.利用levenberg-marguardt規(guī)則訓(xùn)練前向網(wǎng)絡(luò)函數(shù)trainlm()函數(shù)trainbp()和trainbpx()都是基于梯度下降的訓(xùn)練算法,而函數(shù)trainblm()是建立在一種優(yōu)化方法基礎(chǔ)上的訓(xùn)練算法。其調(diào)用格式為:w,b,te,tr=trainlm(w,b,tf,x,t,tp)或w1,b1,w2,b2,te,tr=trainlm(w1,b1,tf1,w2,b2,tf2,x,t,tp)w1,b1,w2,b2,w3,b3,te,tr=trainlm(w1,b1,tf1,w2,b2,tf2,w3,b3,tf3,x,t,tp),86,函數(shù)trainlm()的訓(xùn)練速度最快,但它需要更大的存儲空間,trainbpx()的訓(xùn)練速度次之,trainbp()最慢。,87,12.bp神經(jīng)網(wǎng)絡(luò)仿真函數(shù)simuff()bp神經(jīng)網(wǎng)絡(luò)由一系列網(wǎng)絡(luò)層組成,每一層都從前一層得到輸入數(shù)據(jù),simuff()函數(shù)可仿真最多三層前向網(wǎng)絡(luò)。其調(diào)用格式為:y=simuff(x,w,b,tf,)或y1,y2=simuff(x,w1,b1,tf1,w2,b2,tf2)y1,y2,y3=simuff(x,w1,b1,tf1,w2,b2,tf2,w3,b3,tf3,),88,例2-19利用兩層bp神經(jīng)網(wǎng)絡(luò)完成函數(shù)逼近。隱含層的激活函數(shù)取s型傳輸函數(shù),輸出層的激活函數(shù)取線性傳輸函數(shù)。解(1)根據(jù)神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)trainbp()編寫的程序如下。ex2_19_1利用以上程序可得圖2-32和如下結(jié)果。y2=0.9887,89,利用以上程序可得如下結(jié)果。y2=1.0026,(2)根據(jù)神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)trainbpx()編寫的程序如下。ex2_19_2,(3)根據(jù)神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)trainlm()編寫的程序如下。ex2_19_3,結(jié)果顯示:y2=0.9987,90,13.建立網(wǎng)絡(luò)函數(shù)newff()利用newff()函數(shù)可建立一個感知機(jī)神經(jīng)網(wǎng)絡(luò)。其調(diào)用格式為:net=newff(xr,s1s2.snl,tf1tf2.tfnl,btf,blf,pf),91,例2-20利用newff()函數(shù)建立一個非線性函數(shù)的bp網(wǎng)絡(luò)逼近正弦函數(shù)。解matlab程序ex2_20.m如下。ex2_20.m未經(jīng)訓(xùn)練的網(wǎng)絡(luò)輸出與目標(biāo)值(正弦函數(shù))的比較,如圖2-33所示。網(wǎng)絡(luò)的權(quán)值和偏值是隨機(jī)的,所以未將訓(xùn)練的網(wǎng)絡(luò)輸出效果很差,而且每次運(yùn)行結(jié)果也不一樣。,圖2-33未訓(xùn)練的網(wǎng)絡(luò)輸出與目標(biāo)值,92,14.建立網(wǎng)絡(luò)函數(shù)newfftd()利用newfftd()函數(shù)可生成一個前饋輸入延時bp網(wǎng)絡(luò)。其調(diào)用格式為:net=newfftd(xr,id,s1s2.snl,tf1tf2.tfnl,btf,blf,pf)式中,id為延遲輸入向量;其他參數(shù)定義同函數(shù)newff()。,93,例2-21利用兩層bp神經(jīng)網(wǎng)絡(luò)訓(xùn)練加權(quán)系數(shù)。兩組3輸入為12;-11;13,希望的輸出均為1,1。隱含層的激活函數(shù)取s型傳輸函數(shù),輸出層的激活函數(shù)取線性傳輸函數(shù)。解根據(jù)神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)編寫的程序如下。ex2_21結(jié)果顯示:y=1.00001.00001.00001.0000,94,15.計(jì)算誤差曲面函數(shù)errsurf()利用誤差曲面函數(shù)可以計(jì)算單輸入神經(jīng)元誤差的平方和。其調(diào)用格式為:es=errsurf(x,t,w,b,tf)式中x為的輸入向量;t為目標(biāo)向量;w為權(quán)值矩陣;b為的偏值向量;tf為傳輸函數(shù)。,95,16.繪制誤差曲面圖函數(shù)plotes()利用函數(shù)plotes()可繪制誤差曲面圖。其調(diào)用格式為:plotes(w,b,es,v)式中w為權(quán)值矩陣;b為的偏值向量;es為誤差曲面;v為期望的視角,默認(rèn)為-37.530。例利用以下命令,可得圖2-34。x=32;t=0.40.8;w=-4:0.4:4;b=w;es=errsurf(x,t,w,b,logsig);plotes(w,b,es,6030),圖2-34誤差曲面圖,96,17.在誤差曲面圖上繪制權(quán)值和偏值的位置函數(shù)plotep()函數(shù)plotep()在已由函數(shù)plotes()產(chǎn)生的誤差性能表面圖上畫出單輸入網(wǎng)絡(luò)權(quán)值w與偏差b所對應(yīng)的誤差e的位置,該函數(shù)調(diào)用格式為:h=plotep(w,b,e),97,例利用以下命令,可得圖2-35。x=32;t=0.40.8;w=-4:0.4:4;b=w;es=errsurf(x,t,w,b,logsig);plotes(w,b,es,6030)w=-2;b=0;e=sumsqr(t-simuff(x,w,b,logsig);plotep(w,b,e),圖2-35權(quán)值和偏值在誤差曲面圖上的位置,98,18.繪制誤差平方和對訓(xùn)練次數(shù)的曲線函數(shù)ploterr()函數(shù)ploterr(e)繪制誤差e的行矢量對訓(xùn)練次數(shù)的曲線,縱軸為對數(shù)形式。總的訓(xùn)練次數(shù)比誤差e的長度要小1。誤差e中的第一個元素是訓(xùn)練前(次數(shù)為0)的初始網(wǎng)絡(luò)誤差。函數(shù)ploterr(e,g)繪制誤差e的行矢量并用水平點(diǎn)線來標(biāo)志誤差g。19繪制誤差的直方圖函數(shù)barerr()函數(shù)barerr(e)繪制每對輸入/目標(biāo)矢量誤差e平方和的直方圖。,99,例2-22設(shè)計(jì)一個三層bp神經(jīng)網(wǎng)絡(luò),并訓(xùn)練它來識別0,1,2,9,a,f,這16個十六進(jìn)制已經(jīng)被數(shù)字成像系統(tǒng)數(shù)字化了,其結(jié)果是對應(yīng)每個數(shù)字有一個53的布爾量網(wǎng)絡(luò)。例如0用111;101;101;101;111表示;1用010;010;010;010;010表示;2用111;001;010;100;111表示,等等。如圖2-36所示。,圖2-3616個十六進(jìn)制對應(yīng)的53的布爾量網(wǎng)絡(luò),100,解將這16個含15個布爾量網(wǎng)絡(luò)元素的輸入向量定義成一個1516維的輸入矩陣x,x中每一列的15個元素對應(yīng)一個數(shù)字量按列展開的布爾量網(wǎng)絡(luò)元素,例如x中第一列的15個元素1;1;1;1;0;1;1;0;1;1;0;1;1;1;1表示0。目標(biāo)向量也被定義成一個416維的目標(biāo)矩陣t,其每一列的4個元素對應(yīng)一個數(shù)字量,這16個數(shù)字量用其所對應(yīng)的十六進(jìn)制值表示。例如用0;0;0;0表示0;用0;0;0;1表示1;用0;0;1;0表示2,等等。,101,為了識別這些以53布爾量網(wǎng)絡(luò)表示的十六進(jìn)制數(shù),所設(shè)計(jì)的網(wǎng)絡(luò)需要有16個輸入,在輸出層需要有4個神經(jīng)元來識別它,隱含層(對應(yīng)于matlab工具箱中的第一層)設(shè)計(jì)了9個神經(jīng)元。激活函數(shù)選擇log-sigmoid型傳輸函數(shù),因?yàn)樗妮敵龇秶?到1)正好適合在學(xué)習(xí)后輸出布爾值。由于十六進(jìn)制數(shù)的表示有時會受到噪聲的污染,使布爾量網(wǎng)絡(luò)元素發(fā)生變化,為了能排除噪聲的干擾,順利地識別16個十六進(jìn)制數(shù),必須設(shè)計(jì)高性能的神經(jīng)網(wǎng)絡(luò)。,102,方法一:ex2_22_1,結(jié)果顯示:y=0.00000.00000.00000.00000.99991.00000.99991.00000.00020.00001.00001.00000.00010.02361.00001.00000.00081.00000.00001.00000.00001.00000.00000.99971.00000.99950.99851.00001.00000.99641.00001.0000,103,方法二:ex2_22_2,結(jié)果顯示:y4=0.00000.00000.00040.00001.00001.00001.00001.00000.00010.00110.99920.99940.00040.00001.00000.99990.00100.99930.00401.00000.00000.99990.00001.00001.00001.00001.00001.00001.00000.99971.00001.0000,104,2.1.5徑向基神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)matlab神經(jīng)網(wǎng)絡(luò)工具箱中提供了大量的與徑向基網(wǎng)絡(luò)相關(guān)的的工具箱函數(shù)。在matlab工作空間的命令行鍵入“helpradbasis”,便可得到與徑向基神經(jīng)網(wǎng)絡(luò)相關(guān)的函數(shù),進(jìn)一步利用help命令又能得到相關(guān)函數(shù)的詳細(xì)介紹。表2-5列出了這些函數(shù)的名稱和基本功能。,105,表2-5徑向基網(wǎng)絡(luò)的重要函數(shù)和功能,106,1.計(jì)算矢量間的距離函數(shù)dist()大多數(shù)神經(jīng)元網(wǎng)絡(luò)的輸入可通過表達(dá)式n=w*x+b來計(jì)算,其中w,b分別為權(quán)矢量和偏差矢量。但有一些神經(jīng)元的輸入可由函數(shù)dist()來計(jì)算,dist()函數(shù)是一個歐氏(euclidean)距離權(quán)值函數(shù),它對輸入進(jìn)行加權(quán),得到被加權(quán)的輸入。一般兩個向量x和y之間的歐氏(euclidean)距離d定義為:d=sun(x-y).2).0.5。函數(shù)dist()調(diào)用格式為:d=dist(w,x)或d=dist(pos),107,d=disk(pos)函數(shù)也可以作為一個階層距離函數(shù),用于查找某一層神經(jīng)網(wǎng)絡(luò)中的所有神經(jīng)元之間的歐氏距離,函數(shù)也返回一個距離矩陣。例如w=rand(4,3);x=rand(3,1);d=dist(w,x)結(jié)果顯示:d=0.72690.70350.87410.7699,108,2.徑向基傳輸函數(shù)radbas()徑向基函數(shù)神經(jīng)元的傳輸函數(shù)為radbas(),rbf網(wǎng)絡(luò)的輸入同前面介紹的神經(jīng)網(wǎng)絡(luò)的表達(dá)式有所不同。其網(wǎng)絡(luò)輸入為權(quán)值向量w與輸入向量x之間的向量距離乘以偏值b,即d=radbas(dist(w,x)*b)。函數(shù)調(diào)用格式為:a=radbas(n)或a=radbas(z,b)radbas(p),109,函數(shù)radbas(p)包含傳輸函數(shù)的特性名并返回問題中的特性,如下的特性可叢任何傳輸函數(shù)中獲得:(1)delta與傳輸函數(shù)相關(guān)的delta函數(shù);(2)init傳輸函數(shù)的標(biāo)準(zhǔn)初始化函數(shù);(3)name傳輸函數(shù)的全稱;(4)output包含有傳輸函數(shù)最小、最大值的二元矢量。例利用以下命令可得圖2-37。n=-5:0.1:5;a=radbas(n);plot(n,a),圖2-37徑向基傳輸函數(shù),110,3.設(shè)計(jì)一個徑向基網(wǎng)絡(luò)函數(shù)solverb()徑向基網(wǎng)絡(luò)由一個徑向基神經(jīng)元隱含層和一個線性神經(jīng)元輸出層組成的兩層神經(jīng)網(wǎng)絡(luò),徑向基網(wǎng)絡(luò)不僅能較好地?cái)M合任意不連續(xù)的函數(shù),而且能用快速的設(shè)計(jì)來代替訓(xùn)練。利用函數(shù)solverb()設(shè)計(jì)的徑向基神經(jīng)網(wǎng)絡(luò),因在建立網(wǎng)絡(luò)時預(yù)先設(shè)置了目標(biāo)參數(shù),故它同時也完成了網(wǎng)絡(luò)的訓(xùn)練,可以不經(jīng)過訓(xùn)練,直接使用。該函數(shù)的調(diào)用格式為:w1,b1,w2,b2,nr,dr=solverb(x,t,dp),111,4.設(shè)計(jì)一個精
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業(yè)遺址改造的綠色設(shè)計(jì)方法與技術(shù)研究
- 工業(yè)自動化技術(shù)的創(chuàng)新與應(yīng)用前景
- 工作之余如何更好地學(xué)習(xí)與進(jìn)修針對職場人士的學(xué)習(xí)建議
- 工業(yè)節(jié)能的途徑與實(shí)施策略
- 工作中的創(chuàng)新與創(chuàng)造力培養(yǎng)
- 工作計(jì)劃制定的技巧與實(shí)踐
- 工作場所中沖突解決與溝通能力提升
- 工廠企業(yè)的消防安全管理
- 工程機(jī)械中電液伺服系統(tǒng)的原理與應(yīng)用研究
- 工程質(zhì)量管理流程及常見問題解決
- 2024-2030年中國伊利石行業(yè)經(jīng)銷模式及競爭策略展望分析報(bào)告版
- 二位數(shù)乘二位數(shù)的計(jì)算題50道
- 2024高速養(yǎng)護(hù)工區(qū)標(biāo)準(zhǔn)化建設(shè)指南
- 物業(yè)服務(wù)外包合同
- NBT 33015-2014 電化學(xué)儲能系統(tǒng)接入配電網(wǎng)技術(shù)規(guī)定
- GB/T 44260-2024虛擬電廠資源配置與評估技術(shù)規(guī)范
- 《微動探測技術(shù)規(guī)程》
- 【經(jīng)濟(jì)法學(xué)】2024年國家開放大學(xué)春季期末考試真題及答案
- 國家開放大學(xué)本科《理工英語4》一平臺機(jī)考第三大題閱讀理解選擇總題庫
- 2024年四川省樂山市中考生物試卷附答案
- 助貸貸款服務(wù)合同范本
評論
0/150
提交評論