版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、MATLAB神經(jīng)網(wǎng)絡(luò) 工具箱函數(shù) 1.1 MATLAB神經(jīng)網(wǎng)絡(luò)工具箱函數(shù) 1.2 MATLAB神經(jīng)網(wǎng)絡(luò)工具箱的圖形用戶界面,1,研究學(xué)習(xí),利用神經(jīng)網(wǎng)絡(luò)能解決許多用傳統(tǒng)方法無(wú)法解決的問(wèn)題。神經(jīng)網(wǎng)絡(luò)在很多領(lǐng)域中都有應(yīng)用,以實(shí)現(xiàn)各種復(fù)雜的功能。這些領(lǐng)域包括商業(yè)及經(jīng)濟(jì)估算、自動(dòng)檢測(cè)和監(jiān)視、計(jì)算機(jī)視覺(jué)、語(yǔ)音處理、機(jī)器人及自動(dòng)控制、優(yōu)化問(wèn)題、航空航天、銀行金融業(yè)、工業(yè)生產(chǎn)等。而神經(jīng)網(wǎng)絡(luò)是一門發(fā)展很快的學(xué)科,其應(yīng)用領(lǐng)域也會(huì)隨著其發(fā)展有更大的拓寬,2,研究學(xué)習(xí),本章將介紹MATLAB神經(jīng)網(wǎng)絡(luò)工具箱的應(yīng)用。在MATLAB神經(jīng)網(wǎng)絡(luò)工具箱中提供了豐富的演示實(shí)例,用MATLAB語(yǔ)言構(gòu)造了典型神經(jīng)網(wǎng)絡(luò)的激活函數(shù),編寫了
2、各種網(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)練程序,使自己能夠從繁瑣的編程中解脫出來(lái),3,研究學(xué)習(xí),MATLAB神經(jīng)網(wǎng)絡(luò)工具箱提供了許多進(jìn)行神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)和分析的工具函數(shù),這些函數(shù)的MATLAB實(shí)現(xiàn),使得設(shè)計(jì)者對(duì)所選定網(wǎng)絡(luò)進(jìn)行計(jì)算的過(guò)程,轉(zhuǎn)變?yōu)閷?duì)函數(shù)的調(diào)用和參數(shù)的選擇,這給用戶帶來(lái)了極大的方便,即使不了解算法的本質(zhì),也可以直接應(yīng)用功能豐富的函數(shù)來(lái)實(shí)現(xiàn)自己的目的。有關(guān)這些工具函數(shù)的使用可以通過(guò)help命令得到,本章將對(duì)這些函數(shù)的功能、調(diào)用格式,以及使用方法做詳細(xì)的介紹,1.1 MATLAB神經(jīng)網(wǎng)絡(luò)工具箱函數(shù),4,研究學(xué)習(xí),隨著MATLAB軟件的版本提
3、高,其對(duì)應(yīng)的神經(jīng)網(wǎng)絡(luò)工具箱的內(nèi)容越來(lá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ò)等,5,研究學(xué)習(xí),神經(jīng)網(wǎng)絡(luò)工具箱提供了很多經(jīng)典的學(xué)習(xí)算法,使用它能夠快速地實(shí)現(xiàn)對(duì)實(shí)際問(wèn)題的建模求解。由于其編程簡(jiǎn)單,這樣就給使用者節(jié)省了大量的編程時(shí)間,使其能夠把更多的精力投入到網(wǎng)絡(luò)設(shè)計(jì)而不是具體程序?qū)崿F(xiàn)上,6,研究學(xué)習(xí),1.1.1 神經(jīng)網(wǎng)絡(luò)工具箱中的通用函數(shù) MATLAB神經(jīng)網(wǎng)絡(luò)工具箱中提供的函數(shù)主要分為兩大部分。一部分函數(shù)是通用的,
4、這些函數(shù)幾乎可以用于所有類型的神經(jīng)網(wǎng)絡(luò),如神經(jīng)網(wǎng)絡(luò)的初始化函數(shù)init( )、訓(xùn)練函數(shù)train( )和仿真函數(shù)sim( )等;另一部分函數(shù)則是特別針對(duì)某一種類型的神經(jīng)網(wǎng)絡(luò)的,如對(duì)感知機(jī)神經(jīng)網(wǎng)絡(luò)進(jìn)行建立的函數(shù)simup( )等。表1-1列出了一些通用函數(shù)的名稱和基本功能,7,研究學(xué)習(xí),表1-1 神經(jīng)網(wǎng)絡(luò)的通用函數(shù)和功能,8,研究學(xué)習(xí),1. 初始化神經(jīng)網(wǎng)絡(luò)函數(shù)init( ) 利用初始化神經(jīng)網(wǎng)絡(luò)函數(shù)init( )可以對(duì)一個(gè)已存在的神經(jīng)網(wǎng)絡(luò)進(jìn)行初始化修正,該網(wǎng)絡(luò)的權(quán)值和偏值是按照網(wǎng)絡(luò)初始化函數(shù)來(lái)進(jìn)行修正的。其調(diào)用格式為: net=init(NET,2. 神經(jīng)網(wǎng)絡(luò)某一層的初始化函數(shù)initlay( )
5、 初始化函數(shù)initlay( )特別適用于層-層結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)的初始化,該網(wǎng)絡(luò)的權(quán)值和偏值是按照網(wǎng)絡(luò)初始化函數(shù)來(lái)進(jìn)行修正的。其調(diào)用格式為: net=initlay(NET,9,研究學(xué)習(xí),3. 神經(jīng)網(wǎng)絡(luò)某一層的權(quán)值和偏值初始化函數(shù)initwb( ) 利用初始化函數(shù)initwb( )可以對(duì)一個(gè)已存在的神經(jīng)網(wǎng)絡(luò)的NET某一層i的權(quán)值和偏值進(jìn)行初始化修正,該網(wǎng)絡(luò)對(duì)每層的權(quán)值和偏值是按照設(shè)定的每層的初始化函數(shù)來(lái)進(jìn)行修正的。其調(diào)用格式為: net=initwb(NET,i,4. 神經(jīng)網(wǎng)絡(luò)訓(xùn)練函數(shù)train( ) 利用train( ) 函數(shù)可以訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò)。網(wǎng)絡(luò)訓(xùn)練函數(shù)是一種通用的學(xué)習(xí)函數(shù),訓(xùn)練函數(shù)重復(fù)地
6、把一組輸入向量應(yīng)用到一個(gè)網(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,10,研究學(xué)習(xí),5. 網(wǎng)絡(luò)自適應(yīng)訓(xùn)練函數(shù)adapt( ) 另一種通用的訓(xùn)練函數(shù)是自適應(yīng)函數(shù)adapt( )。自適應(yīng)函數(shù)在每一個(gè)輸入時(shí)間階段更新網(wǎng)絡(luò)時(shí)仿真網(wǎng)絡(luò),而這在進(jìn)行下一個(gè)輸入的仿真前完成,其調(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)確定了。于是就可以使用
7、它來(lái)解決實(shí)際問(wèn)題了。利用sim( ) 函數(shù)可以仿真一個(gè)神經(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,Q Ts,Xi,Ai,11,研究學(xué)習(xí),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ù)是通過(guò)某一層的加權(quán)輸入和偏值相加作為該層的輸入。調(diào)用格式: Z
8、=netprod(Z1,Z2,) 式中,Zi為SQ維矩陣,12,研究學(xué)習(xí),9. 網(wǎng)絡(luò)輸入的積函數(shù)netprod( ) 網(wǎng)絡(luò)輸入的積函數(shù)是通過(guò)某一層的加權(quán)輸入和偏值相乘作為該層的輸入。調(diào)用格式: Z=netprod(Z1,Z2,) 式中,Zi為SQ維矩陣。 10. 結(jié)構(gòu)一致函數(shù)concur( ) 函數(shù)concur( )的作用在于使得本來(lái)不一致的權(quán)值向量和偏值向量的結(jié)構(gòu)一致,以便于進(jìn)行相加或相乘運(yùn)算,其調(diào)用格式為: Z=concur(b,q) 式中,b為N1維的權(quán)值向量;q為要達(dá)到一致化所需要的長(zhǎng)度;Z為一個(gè)已經(jīng)一致化了的矩陣,13,研究學(xué)習(xí),例1-1 利用netsum( )函數(shù)和netprod(
9、 )函數(shù),對(duì)兩個(gè)加權(quán)輸入向量Z1和Z2進(jìn)行相加和相乘。 解 MATLAB的程序如下。 Z1=1 2 4;3 4 1;Z2=-1 2 2;-5 -6 1; %提供兩個(gè)加權(quán)輸入向量 b=0;-1;q=3; %權(quán)值向量和一致化所需要的長(zhǎng)度 Z=concur(b,q) %計(jì)算一致化了的矩陣 X1=netsum(Z1,Z2),X2=netprod(Z1,Z2) %計(jì)算向量的和與積 結(jié)果顯示: Z = 0 0 0 -1 -1 -1 X1 = 0 4 6 -2 -2 2 X2 = -1 4 8 -15 -24 1,14,研究學(xué)習(xí),1.1.2 感知機(jī)神經(jīng)網(wǎng)絡(luò)工具箱函數(shù) MATLAB神經(jīng)網(wǎng)絡(luò)工具箱中提供了大量的
10、與感知機(jī)相關(guān)的的函數(shù)。在MATLAB工作空間的命令行鍵入“help percept”,便可得到與感知機(jī)(Perceptron)相關(guān)的函數(shù),進(jìn)一步利用help命令又能得到相關(guān)函數(shù)的詳細(xì)介紹。表1-2列出了這些函數(shù)的名稱和基本功能,15,研究學(xué)習(xí),表1-2 感知機(jī)網(wǎng)絡(luò)的重要函數(shù)和功能,16,研究學(xué)習(xí),1平均絕對(duì)誤差性能函數(shù)mae( ) 感知機(jī)網(wǎng)絡(luò)學(xué)習(xí)規(guī)則為調(diào)整網(wǎng)絡(luò)的權(quán)值和偏值,使網(wǎng)絡(luò)的平均絕對(duì)誤差和性能最小。平均絕對(duì)誤差性能函數(shù)的調(diào)用格式為: perf=mae(E,w,pp) 式中 E為誤差矩陣或向量(E=T-Y,17,研究學(xué)習(xí),2硬限幅傳輸函數(shù)hardlim( ) 硬限幅傳輸函數(shù)hardlim(
11、 )通過(guò)計(jì)算網(wǎng)絡(luò)的輸入得到該層的輸出。如果網(wǎng)絡(luò)的輸入達(dá)到門限,則硬限幅傳輸函數(shù)的輸出為1,否則為0。這表明神經(jīng)元可用來(lái)作出判斷或分類。其調(diào)用格式為: a=hardlim(N) 或 a=hardlim(Z,b) a=hardlim(P) 函數(shù)hardlim(N)在給定網(wǎng)絡(luò)的輸入矢量矩陣N時(shí),返回該層的輸出矢量矩陣a。當(dāng)N中的元素大于等于零時(shí),返回的值為1,否則為0。函數(shù)hardlim(Z,b)用于矢量是成批處理且偏差存在的情況下,此時(shí)的偏差b和加權(quán)輸入矩陣Z是分開傳輸?shù)摹F钍噶縝加到Z中的每個(gè)矢量中形成網(wǎng)絡(luò)輸入矩陣,18,研究學(xué)習(xí),返回的元素a是1還是0,取決于網(wǎng)絡(luò)輸入矩陣中的元素是大于等于0
12、還是小于0;函數(shù)hardlim(P)包含傳輸函數(shù)的特性名并返回問(wèn)題中的特性,如下的特性可從任何傳輸函數(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ù)曲線,19,研究學(xué)習(xí),3對(duì)稱硬限幅傳輸函數(shù)hardlims( ) 對(duì)稱硬限幅傳輸函數(shù)hardlims( )通過(guò)計(jì)算網(wǎng)絡(luò)的輸入得到該層的輸出。如果網(wǎng)絡(luò)的輸入達(dá)到門限,則硬限幅傳輸函數(shù)的輸
13、出為1,否則為-1。例 w=eye(3);b=-0.5*ones(3,1); X=1 0;0 1;1 1; a=hardlims(w*X,b) 結(jié)果顯示: a = 1 -1 -1 1 1 1,20,研究學(xué)習(xí),例1-2 建立一個(gè)感知機(jī)網(wǎng)絡(luò),使其能夠完成“或”的功能。 解 為了完成“或”函數(shù),建立一個(gè)兩輸入、單輸出的一個(gè)單層感知機(jī)網(wǎng)絡(luò)。 設(shè)輸入向量為:X=0 0 1 1;0 1 0 1, 目標(biāo)向量為:T=0 1 1 1。 激活函數(shù)取硬限幅傳輸函數(shù)。 根據(jù)感知機(jī)學(xué)習(xí)算法的計(jì)算步驟,利用MATLAB的神經(jīng)網(wǎng)絡(luò)工具箱的有關(guān)函數(shù)編寫的程序如下。 ex2_2,21,研究學(xué)習(xí),結(jié)果顯示: epoch = 3
14、Wij = 1.5028 1.7095 y = 0 1 1 1,22,研究學(xué)習(xí),4. 繪制樣本點(diǎn)的函數(shù)plotpv( ) 利用plotpv( ) 函數(shù)可在坐標(biāo)圖中繪出已知給出的樣本點(diǎn)及其類別,不同的類別使用了不同的符號(hào)。其調(diào)用格式為: plotpv(X,T) 式中 X定義了n個(gè)2或3維的樣本,它是一個(gè)2n維或3n維的矩陣;T表示各樣本點(diǎn)的類別,它是一個(gè)n維的向量。 如果T只含一元矢量,目標(biāo)0的輸入矢量畫為“o”; 目標(biāo)1的輸入矢量畫為“+”; 如果T含二元矢量,則輸入矢量對(duì)應(yīng)如下:0 0用“o”;0 1用“+”;1 0用“*”;1 1用“”。例,23,研究學(xué)習(xí),X=-0.5,-0.5,0.3,
15、-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=1 1 0 1 1 0 1 0; plotpv(X,T) 對(duì)樣本不同的類別使用了不同的符號(hào),如圖2-2所示,圖2-2 樣本的分類,24,研究學(xué)習(xí),5. 在存在的圖上畫感知機(jī)的分類線函數(shù)plotpc( ) 硬特性神經(jīng)元將輸入空間用一條直線(如果神經(jīng)元有兩個(gè)輸入),或用一個(gè)平面(如果神經(jīng)元有三個(gè)輸入),或用一個(gè)超平面(如果神經(jīng)元有三個(gè)以上輸入)分成兩個(gè)區(qū)域。plotpc(w,b)對(duì)含權(quán)矩陣w和偏差矢量b的硬特性神經(jīng)元的兩個(gè)或三個(gè)輸入畫一個(gè)分類線。這一函數(shù)返回分類線的句柄以便以后
16、調(diào)用。plotpc(w,b,h)包含從前的一次調(diào)用中返回的句柄,它在畫新分類線之前,刪除舊線,25,研究學(xué)習(xí),6. 感知機(jī)神經(jīng)網(wǎng)絡(luò)的初始化函數(shù)initp( ) 利用initp( ) 函數(shù)可建立一個(gè)單層(一個(gè)輸入層和一個(gè)輸出層)感知機(jī)神經(jīng)網(wǎng)絡(luò)。其調(diào)用格式為: W,b=initp(R,S) 或 W,b=initp(X,T,26,研究學(xué)習(xí),例利用以下命令,可得圖1-54。 X=0 0 1 1;0 1 0 1;T=0 1 1 1; W,b=initp(X,T); plotpv(X,T);plotpc(W,b); 使用plotpc( )函數(shù)可以在已繪制的圖上加上感知機(jī)分類線(MATLAB6.1 及以下版
17、本利用此命令 不能產(chǎn)生分類線),如 圖2-3所示。由圖可見(jiàn) 經(jīng)過(guò)初始化后的網(wǎng)絡(luò)對(duì) 輸入樣本還不能正確進(jìn) 行分類,圖2-3 輸入樣本加網(wǎng)絡(luò)初始分類線,27,研究學(xué)習(xí),7用感知機(jī)準(zhǔn)則訓(xùn)練感知機(jī)的函數(shù)trainp( ) 經(jīng)過(guò)初始化建立的感知機(jī),還必須經(jīng)過(guò)訓(xùn)練才能夠?qū)嶋H應(yīng)用。通過(guò)訓(xùn)練以決定網(wǎng)絡(luò)的權(quán)值和偏值。對(duì)于感知機(jī),其訓(xùn)練過(guò)程為:對(duì)于給定的輸入向量,計(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)整過(guò)程,直到網(wǎng)絡(luò)的輸出與期望的目標(biāo)向量相等或者訓(xùn)練次數(shù)達(dá)到預(yù)定的最大次數(shù)時(shí)才停止訓(xùn)練,之所以
18、要設(shè)定最大訓(xùn)練次數(shù),是因?yàn)閷?duì)于有些問(wèn)題,使用感知機(jī)神經(jīng)網(wǎng)絡(luò)時(shí)是不能解決的,這正是感知機(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,28,研究學(xué)習(xí),例1-4 利用trainp( )函數(shù)訓(xùn)練一個(gè)感知機(jī)網(wǎng)絡(luò),并用訓(xùn)練后的網(wǎng)絡(luò)對(duì)輸入樣本進(jìn)行分類。 解 程序如下。 ex2_4 例利用以上程序,可得如圖2-4所示的樣本及分類線。 用標(biāo)準(zhǔn)化感知機(jī)準(zhǔn)則訓(xùn) 練感知機(jī)的函數(shù)trainpn( ) 的用法同函數(shù)trainp( ), 即使輸入矢量的長(zhǎng)度不同, 使用標(biāo)準(zhǔn)化感知機(jī)準(zhǔn)則也 使得學(xué)習(xí)過(guò)程收斂很快,圖2-4 樣本加分
19、類線,29,研究學(xué)習(xí),8. 感知機(jī)神經(jīng)網(wǎng)絡(luò)的仿真函數(shù)simup( ) 神經(jīng)網(wǎng)絡(luò)一旦訓(xùn)練完成,網(wǎng)絡(luò)的權(quán)值和偏值就已經(jīng)確定了。于是就可以使用它來(lái)解決實(shí)際問(wèn)題了。感知機(jī)由一系列硬特性神經(jīng)元組成,運(yùn)行速度很快,對(duì)簡(jiǎn)單的分類很有用。利用simup( ) 函數(shù)可以測(cè)試一個(gè)感知機(jī)神經(jīng)網(wǎng)絡(luò)的性能。其調(diào)用格式為: Y=simup(X,w,b,30,研究學(xué)習(xí),例1-5 利用trainp( )函數(shù)訓(xùn)練一個(gè)感知機(jī)網(wǎng)絡(luò),使其能夠完成“或”的功能。 解 根據(jù)神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)編寫的程序如下。 ex2_5,執(zhí)行以上程序可得如下結(jié)果以及圖2-5至圖2-8。 y = 0 1 1 1 由以上結(jié)果和圖2-7可知,訓(xùn)練后的網(wǎng)絡(luò)已具有
20、“或”的功能,且可對(duì)輸入樣本進(jìn)行正確分類,31,研究學(xué)習(xí),圖2-5 輸入樣本的分類 圖2-6 輸入樣本加網(wǎng)絡(luò)初始分類線,圖2-7 輸入樣本加網(wǎng)絡(luò)訓(xùn)練后的分類線 圖2-8 誤差曲線,32,研究學(xué)習(xí),例1-6 利用trainp( )函數(shù)訓(xùn)練一個(gè)感知機(jī)網(wǎng)絡(luò),使其能夠?qū)θ齻€(gè)輸入進(jìn)行分類。 解 根據(jù)神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)編寫的程序如下。 ex2_6 執(zhí)行以上程序可得如下結(jié)果以及圖2-9至圖2-12。 y = 0 1 0 0 1 1 0 1,33,研究學(xué)習(xí),圖2-9 輸入樣本的分類 圖2-10 輸入樣本加網(wǎng)絡(luò)初始分類線,圖2-11 輸入樣本加網(wǎng)絡(luò)訓(xùn)練后的分類線 圖2-12 誤差曲線,34,研究學(xué)習(xí),例1-7
21、利用trainp( )函數(shù)訓(xùn)練一個(gè)感知機(jī)網(wǎng)絡(luò),使其能夠?qū)⑤斎敕譃?類。 解 根據(jù)神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)編寫的程序如下。 ex2-7,35,研究學(xué)習(xí),執(zhí)行以上程序可得如下結(jié)果以及圖2-13和圖2-14。 y = 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 圖2-13 輸入樣本加網(wǎng)絡(luò)訓(xùn)練后的分類線 圖2-14 誤差曲線,36,研究學(xué)習(xí),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ò)平均絕對(duì)誤差性能最小,以便對(duì)網(wǎng)絡(luò)輸入矢量正確分類。感知機(jī)的學(xué)習(xí)規(guī)則只能訓(xùn)練單層網(wǎng)絡(luò),函數(shù)調(diào)用格式為: dW, db=learnp(X,E,37,研究
22、學(xué)習(xí),例1-8 利用learnp( )函數(shù)訓(xùn)練建立一個(gè)感知機(jī)網(wǎng)絡(luò),使其能夠完成“或”的功能。 解 根據(jù)神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)編寫的程序如下。 ex2_8,結(jié)果顯示: epoch = 5 W = 1.3626 1.7590 y = 0 1 1 1,38,研究學(xué)習(xí),10標(biāo)準(zhǔn)化感知機(jī)學(xué)習(xí)函數(shù)learnpn( ) 感知機(jī)學(xué)習(xí)規(guī)則在調(diào)整網(wǎng)絡(luò)的權(quán)值和偏值時(shí)利用下式 從上式可以看出,輸入向量X越大,則權(quán)值的變化w就越大。當(dāng)存在奇異樣本(即該樣本向量同其它所有的樣本向量比較起來(lái),特別得大或者特別得?。r(shí),利用以上規(guī)則訓(xùn)練時(shí)間大為加長(zhǎng)。因?yàn)槠渌鼧颖緞t需花很多時(shí)間才能同奇異樣本所對(duì)應(yīng)的權(quán)值變化相匹配。為了消除學(xué)習(xí)訓(xùn)練
23、時(shí)間對(duì)奇異樣本的敏感性,提出了一種改進(jìn)的感知機(jī)學(xué)習(xí)規(guī)則,也成為標(biāo)準(zhǔn)化感知機(jī)學(xué)習(xí)規(guī)則,標(biāo)準(zhǔn)化感知機(jī)學(xué)習(xí)規(guī)則試圖使奇異樣本和其它樣本對(duì)權(quán)值的變化值的影響均衡,它可通過(guò)下式實(shí)現(xiàn),39,研究學(xué)習(xí),標(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,40,研究學(xué)習(xí),例1-9
24、 利用trainpn( )函數(shù)訓(xùn)練建立一個(gè)感知機(jī)網(wǎng)絡(luò),觀察奇異輸入樣本對(duì)訓(xùn)練結(jié)果的影響。 解 根據(jù)神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)編寫的程序如下。 ex2_9,41,研究學(xué)習(xí),執(zhí)行以上程序可得如下結(jié)果以及圖2-15和圖2-16。 y = 1 1 0 0 1,圖2-15 輸入樣本加網(wǎng)絡(luò)訓(xùn)練后的分類線 圖2-16 誤差曲線,由圖2-16可見(jiàn)利用函數(shù)trainpn( ),網(wǎng)絡(luò)訓(xùn)練只需要2步,如果利用函數(shù)trainp( ),網(wǎng)絡(luò)訓(xùn)練需要經(jīng)過(guò)60多步,42,研究學(xué)習(xí),例1-10 利用trainpn( )函數(shù)訓(xùn)練建立一個(gè)感知機(jī)網(wǎng)絡(luò),對(duì)“異或”問(wèn)題進(jìn)行分類。 解 單層感知機(jī)不能解決像邏輯“異或”一類的線性不可分的輸入向量
25、的分類問(wèn)題,解決這一問(wèn)題的方案,是可以設(shè)計(jì)一個(gè)兩層的網(wǎng)絡(luò),即含有輸入層,隱含層和輸出層的結(jié)構(gòu)。設(shè)輸入向量為:X=0 0 1 1;0 1 0 1,目標(biāo)向量為:T=0 1 1 0。根據(jù)神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)編寫的程序ex2_10.m如下。 %ex2_10.m,執(zhí)行以上程序可得如下結(jié)果以及圖2-17和圖2-18。 y = 0 1 1 0,43,研究學(xué)習(xí),由圖2-18可見(jiàn)網(wǎng)絡(luò)訓(xùn)練只需要4步。需要指出的是,由于隱含層的權(quán)值和偏值是隨機(jī)給定的而且不可調(diào)整,故隱含層的輸出也是隨機(jī)的,這樣網(wǎng)絡(luò)有可能有解,也有可能無(wú)解,如果網(wǎng)絡(luò)找不到解,可再次運(yùn)行網(wǎng)絡(luò),以重新初始化隱含層的權(quán)值和偏值。如果采用單層網(wǎng)絡(luò),對(duì)以上問(wèn)題永
26、遠(yuǎn)也找不到正確的分類方案,44,研究學(xué)習(xí),11. 建立感知機(jī)神經(jīng)網(wǎng)絡(luò)函數(shù)newp( ) 利用newp( ) 函數(shù)可建立一個(gè)感知機(jī)神經(jīng)網(wǎng)絡(luò)。其調(diào)用格式為: net=newp(Xr,S,Tf,Lf) 例建立一個(gè)兩輸入且樣本點(diǎn)取值在-1,1之間,而網(wǎng)絡(luò)只有單個(gè)神經(jīng)元的感知機(jī)神經(jīng)網(wǎng)絡(luò),可利用以下命令 net=newp(-1 1;-1 1,1,45,研究學(xué)習(xí),使用plotpc( )函數(shù)可以在已繪制的圖上加上感知機(jī)分類線。讓它返回得到的分類線的句柄,以便在下一次再繪制分類線時(shí)能夠?qū)⒃瓉?lái)的刪除。例 handle=plotpc(net.iw1,net.b1); 式中 net.iw1用來(lái)計(jì)算網(wǎng)絡(luò)net的權(quán)值,n
27、et.b1用來(lái)計(jì)算網(wǎng)絡(luò)net的偏值,46,研究學(xué)習(xí),例1-11 利用newp( )和train( )函數(shù)建立并訓(xùn)練一個(gè)感知機(jī)網(wǎng)絡(luò),使其同樣能夠完成“或”的功能。 解 根據(jù)神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)編寫的程序如下。 ex2_11 執(zhí)行結(jié)果 y = 0 1 1 1,47,研究學(xué)習(xí),例1-12 利用train( )函數(shù)訓(xùn)練一個(gè)感知機(jī)網(wǎng)絡(luò),并選擇10個(gè)點(diǎn)對(duì)其進(jìn)行測(cè)試。 解 根據(jù)神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)編寫的程序ex2_12.m如下。 ex2_12.m 運(yùn)行以上命令可得如圖2-20和圖2-21所示的訓(xùn)練過(guò)程誤差曲線和測(cè)試結(jié)果。由圖可見(jiàn)網(wǎng)絡(luò)訓(xùn)練只需5步,就能夠?qū)⑺鼈冋_分類,這說(shuō)明了設(shè)計(jì)的網(wǎng)絡(luò)是正確的,48,研究學(xué)習(xí),
28、1.1.3 線性神經(jīng)網(wǎng)絡(luò)工具箱函數(shù) MATLAB神經(jīng)網(wǎng)絡(luò)工具箱中提供了大量的與線性網(wǎng)絡(luò)相關(guān)的的工具箱函數(shù)。在MATLAB工作空間的命令行鍵入“help linnet”,便可得到與線性網(wǎng)絡(luò)相關(guān)的函數(shù),進(jìn)一步利用help命令又能得到相關(guān)函數(shù)的詳細(xì)介紹。表2-3列出了這些函數(shù)的名稱和基本功能,49,研究學(xué)習(xí),表1-3 線性網(wǎng)絡(luò)的重要函數(shù)和功能,50,研究學(xué)習(xí),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,51,研究學(xué)習(xí),2. 線性傳輸函數(shù)purelin( ) 神經(jīng)元最簡(jiǎn)單的傳輸函數(shù)是
29、簡(jiǎn)單地從神經(jīng)元輸入到輸出的線性傳輸函數(shù),輸出僅僅被神經(jīng)元所附加的偏差所修正。線性傳輸函數(shù)常用于Widriw-Hoff或BP準(zhǔn)則來(lái)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)中,該函數(shù)調(diào)用格式為: a=purelin(N) 或 a=purelin(Z,b) a=purelin(P,52,研究學(xué)習(xí),函數(shù)purelin(P)包含傳輸函數(shù)的特性名并返回問(wèn)題中的特性,如下的特性可從任何傳輸函數(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
30、;b=0; a=purelin(n,b);plot(n,a,圖2-22 線性傳輸函數(shù),53,研究學(xué)習(xí),3. 線性神經(jīng)網(wǎng)絡(luò)的初始化函數(shù)initlin( ) 利用initlin( ) 函數(shù)可建立一個(gè)單層(一個(gè)輸入層和一個(gè)輸出層)線性神經(jīng)網(wǎng)絡(luò)。其調(diào)用格式為: W,b=initlin(R,S) 或 W,b=initlin(X,T) 例 X=0 0 1 1;0 1 0 1; T=0 1 1 1; W,b=initlin(X,T,54,研究學(xué)習(xí),4. 設(shè)計(jì)一個(gè)線性神經(jīng)網(wǎng)絡(luò)函數(shù)solvelin( ) 同大多數(shù)其它神經(jīng)網(wǎng)絡(luò)不同的是,只要已知線性神經(jīng)網(wǎng)絡(luò)的輸入向量和目標(biāo)向量,就可以直接對(duì)其進(jìn)行設(shè)計(jì)。使用函數(shù)so
31、lvelin( )設(shè)計(jì)的線性神經(jīng)網(wǎng)絡(luò),可以不經(jīng)過(guò)訓(xùn)練,直接找出網(wǎng)絡(luò)的權(quán)值和偏值,使得網(wǎng)絡(luò)的誤差的平方和最小。該函數(shù)的調(diào)用格式為: W,b=solvelin(X,T,55,研究學(xué)習(xí),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ù)可以測(cè)試一個(gè)線性神經(jīng)網(wǎng)絡(luò)的性能。其調(diào)用格式為: Y=simulin(X,w,b,56,研究學(xué)習(xí),例1-13 利用solvelin( )函數(shù)建立一個(gè)線性網(wǎng)絡(luò),并對(duì)其進(jìn)行測(cè)試。 X=1 2 3;T=2.0 4.1 5.9; %給定訓(xùn)練集和目標(biāo)值
32、 W,b=solvelin(X,T);y=simulin(X,W,b) 結(jié)果顯示: y= 2.0500 4.0000 5.9500,57,研究學(xué)習(xí),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=1 2 -4 7;0.1 3 10 6; lr=maxlinlr(X) 結(jié)果顯示: lr = 0.0069,58,研究學(xué)
33、習(xí),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)閷?duì)每一個(gè)多層線性神經(jīng)網(wǎng)絡(luò)而言,都可以設(shè)計(jì)出一個(gè)性能完全相當(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ò)誤差平方和性能最小時(shí),可以應(yīng)用函數(shù)learnwh( )和 函數(shù)trainwh( )來(lái)調(diào)整網(wǎng)絡(luò)的權(quán)值和偏值。函數(shù)learnwh( )的調(diào)用格式為: dW, db=learnwh(X,E,lr,59,研究學(xué)習(xí),8線性神經(jīng)網(wǎng)絡(luò)的訓(xùn)練函數(shù)trainwh( )
34、函數(shù)trainwh( )可利用Widrow-Hoff學(xué)習(xí)規(guī)則對(duì)線性層的權(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ī)則對(duì)線性層的權(quán)值進(jìn)行自適應(yīng)調(diào)節(jié),在每一步迭代過(guò)程中,修改自適應(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,60,研究學(xué)習(xí),10. 設(shè)計(jì)一個(gè)線性層函數(shù)
35、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ò),61,研究學(xué)習(xí),例1-14 利用newlind( )函數(shù)建立一個(gè)線性網(wǎng)絡(luò),并對(duì)其進(jìn)行測(cè)試。 解 MATLAB程序ex2_14.m如下。 %ex2_14.m X=1 2 3;T=2.0 4.1 5.9; %給定訓(xùn)練集和目標(biāo)值 net=newlind(X,T); y=sim(net,X) 執(zhí)行結(jié)果: y= 2.0500 4.0000 5.9500,62,研究學(xué)習(xí),
36、11. 新建一個(gè)線性層函數(shù)newlin( ) 利用函數(shù)newlin( )設(shè)計(jì)的線性網(wǎng)絡(luò),還需訓(xùn)練,該函數(shù)調(diào)用格式為: net=newlin(Xr,S,Id,lr) 例建立一個(gè)線性網(wǎng)絡(luò)??衫靡韵旅?X=1 2 3;S=1;net=newlin(minmax(X),S,63,研究學(xué)習(xí),執(zhí)行結(jié)果可得圖2-23和圖2-24。 圖2-23 系統(tǒng)輸入輸出曲線 圖2-24 網(wǎng)絡(luò)預(yù)測(cè)輸出與系統(tǒng)輸出和誤差,例1-15 利用線性網(wǎng)絡(luò)進(jìn)行系統(tǒng)辨識(shí)。 解 MATLAB程序如下: ex2_15,64,研究學(xué)習(xí),執(zhí)行結(jié)果可得圖2-25和圖2-26。 圖2-25 網(wǎng)絡(luò)待預(yù)測(cè)的目標(biāo)信號(hào) 圖2-26 網(wǎng)絡(luò)預(yù)測(cè)輸出與目標(biāo)值,
37、例1-16 利用線性網(wǎng)絡(luò)進(jìn)行自適應(yīng)預(yù)測(cè)。 解 方法一: MATLAB程序如下: ex2_16_1,65,研究學(xué)習(xí),執(zhí)行結(jié)果可得圖2-27和圖2-28。 圖2-27 網(wǎng)絡(luò)待預(yù)測(cè)的目標(biāo)信號(hào) 圖2-28網(wǎng)絡(luò)預(yù)測(cè)輸出與誤差,方法二:MATLAB程序如下: ex2_16_2,66,研究學(xué)習(xí),執(zhí)行結(jié)果可得圖2-29和圖2-30。 圖2-29 網(wǎng)絡(luò)待預(yù)測(cè)的目標(biāo)信號(hào) 圖2-30 網(wǎng)絡(luò)預(yù)測(cè)輸出目標(biāo)信號(hào)與誤差,例2-17 利用線性網(wǎng)絡(luò)預(yù)測(cè)一個(gè)時(shí)變信號(hào)序列。 解 MATLAB程序如下: ex2_17,67,研究學(xué)習(xí),1.1.4 BP神經(jīng)網(wǎng)絡(luò)工具箱函數(shù) MATLAB神經(jīng)網(wǎng)絡(luò)工具箱中提供了大量的進(jìn)行BP網(wǎng)絡(luò)分析和設(shè)計(jì)的
38、工具箱函數(shù)。在MATLAB工作空間的命令行鍵入“help backprop”,便可得到與BP神經(jīng)網(wǎng)絡(luò)相關(guān)的函數(shù),進(jìn)一步利用help命令又能得到相關(guān)函數(shù)的詳細(xì)介紹。表2-4列出了這些函數(shù)的名稱和基本功能,68,研究學(xué)習(xí),表2-4 BP網(wǎng)絡(luò)的重要函數(shù)和功能,69,研究學(xué)習(xí),70,研究學(xué)習(xí),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),它
39、是可導(dǎo)函數(shù),適用于BP訓(xùn)練的神經(jīng)元,函數(shù)調(diào)用格式為: a=tansig(N) 或 a=tansig(Z,b) tansig (P,71,研究學(xué)習(xí),函數(shù)tansig (P)包含傳輸函數(shù)的特性名并返回問(wèn)題中的特性,如下的特性可從任何傳輸函數(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 雙曲正切曲線,72,研究學(xué)習(xí),如果BP網(wǎng)絡(luò)的最后一
40、層是Sigmoid型神經(jīng)元,那么整個(gè)網(wǎng)絡(luò)的輸出就被限制在一個(gè)較小的范圍內(nèi);如果BP網(wǎng)絡(luò)的最后一層是Purelin型線性神經(jīng)元,那么整個(gè)網(wǎng)絡(luò)的輸出可以取任意值,73,研究學(xué)習(xí),3. 正切S型(Tansig)神經(jīng)元的求導(dǎo)函數(shù)dtansig( ) 函數(shù)dtansig( )為Tansig神經(jīng)元的導(dǎo)函數(shù),它根據(jù)Y=1-X2的函數(shù)來(lái)計(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ù)來(lái)計(jì)算。例利用以下MATLAB命令 X=0.1 0.8 0.7;Y=ta
41、nsig(x),dY_dX=dtansig(X,Y) 結(jié)果顯示: Y= 0.0997 0.6640 0.6044 dY_dX= 0.9901 0.5591 0.6347,74,研究學(xué)習(xí),4. 正切S型(Tansig)神經(jīng)元的求導(dǎo)函數(shù)deltatan ( ) 反向傳播誤差算法(BP)是利用誤差平方和對(duì)網(wǎng)絡(luò)各層輸入的導(dǎo)數(shù)來(lái)調(diào)整其權(quán)值和偏值的,從而降低誤差平方和。從網(wǎng)絡(luò)誤差矢量中可推導(dǎo)出輸出層的誤差導(dǎo)數(shù)或(delta)矢量,隱含層的矢量的導(dǎo)出,這種矢量的反向傳播正是BP算法的由來(lái)。函數(shù)調(diào)用格式為: dy=deltatan(y) 或 dy=deltatan(y,e) dy=deltatan(y,d2,
42、w2,Logsig和Purelin神經(jīng)元的delta函數(shù)deltalog( )和deltalin( )的用法同上,75,研究學(xué)習(xí),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ò)誤差的平方和為最小。這是通過(guò)在最速下降方向上不斷地調(diào)整網(wǎng)絡(luò)的權(quán)值和偏值來(lái)達(dá)到的。計(jì)算網(wǎng)絡(luò)輸出層的誤差矢量導(dǎo)數(shù),然后反饋回網(wǎng)絡(luò),直到每個(gè)隱含層的誤差導(dǎo)數(shù)(稱為delta)都達(dá)到。這可由函數(shù)deltatan( )、deltalin( )和deltalog( )計(jì)算。根據(jù)BP準(zhǔn)則,每一層的權(quán)值矩陣w利用本層的向量和輸入向量x來(lái)更新,即w(i,j)=(i)x(j) 。函數(shù)調(diào)用格式為 d
43、W,dB=learnbp(X,delta,lr,76,研究學(xué)習(xí),6. 含動(dòng)量規(guī)則的BP學(xué)習(xí)規(guī)則函數(shù)learnbpm( ) 為了提高BP算法的學(xué)習(xí)速度并增加算法的可靠性,在BP學(xué)習(xí)算法中引進(jìn)了動(dòng)量因子,它使權(quán)值的變化等于上次權(quán)值的變化與這次由BP準(zhǔn)則引起的變化之和,這樣可將動(dòng)量加到BP學(xué)習(xí)中,上一次權(quán)值變化的影響可由動(dòng)量常數(shù)來(lái)調(diào)整。動(dòng)量法降低了網(wǎng)絡(luò)對(duì)于誤差曲面局部細(xì)節(jié)的敏感性,有效地抑制網(wǎng)絡(luò)陷于局部極小。而自適應(yīng)學(xué)習(xí)率,也可以使訓(xùn)練時(shí)間大大縮短。當(dāng)動(dòng)量常數(shù)為0時(shí),說(shuō)明權(quán)值的變化僅由梯度決定,77,研究學(xué)習(xí),當(dāng)動(dòng)量常數(shù)為0時(shí),說(shuō)明權(quán)值的變化僅由梯度決定。當(dāng)動(dòng)量常數(shù)為1時(shí),說(shuō)明新的權(quán)值變化僅等于上次
44、權(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,78,研究學(xué)習(xí),7. Levenberg-Marguardt學(xué)習(xí)規(guī)則函數(shù)learnlm( ) 函數(shù)learnlm( )采用了Levenberg-Marguardt優(yōu)化方法,從而使得學(xué)習(xí)時(shí)間更短。其缺點(diǎn)是,對(duì)于復(fù)雜的問(wèn)題,該方法需要很大的存儲(chǔ)空間。LM方法更新參數(shù)(如權(quán)值和偏值)的數(shù)學(xué)表達(dá)式為w=(JTJ+I)-1JTe。隨著的增大,LM方法中的JTJ 項(xiàng)變得無(wú)關(guān)緊要,因而學(xué)習(xí)過(guò)程由 -1JTe決定,即梯度下降法。函數(shù)
45、調(diào)用格式為 dW,dB=learnlm(X,delta,79,研究學(xué)習(xí),例1-18 利用三層BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練加權(quán)系數(shù)。兩組3輸入為1 2;-1 1;1 3,希望的輸出均為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.0068 0.9971 0.9758 1.0178,80,研究學(xué)習(xí),8. BP神經(jīng)網(wǎng)絡(luò)初始化函數(shù)initff( ) 在設(shè)計(jì)一個(gè)BP網(wǎng)絡(luò)時(shí),只要已知網(wǎng)絡(luò)的輸入向量的取值范圍、各層的神經(jīng)元個(gè)數(shù)及傳輸函數(shù),就可以利用初始化函數(shù)in
46、itff( )對(duì)BP網(wǎng)絡(luò)進(jìn)行初始化。函數(shù)initff( )可最多對(duì)三層神經(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,81,研究學(xué)習(xí),例如設(shè)計(jì)一個(gè)隱含層有8個(gè)神經(jīng)元,傳輸函數(shù)為tansig,輸出層有5個(gè)神經(jīng)元,傳輸函數(shù)為purelin的兩層BP神經(jīng)網(wǎng)絡(luò)可利用以下命令。 X=sin(0:100);cos(0:100*2); W1,b1,W2,b2=initff
47、(X,8,tansig,5,purelin,82,研究學(xué)習(xí),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ò)誤差的平方和為最小。這是通過(guò)在最速下降方向上不斷地調(diào)整網(wǎng)絡(luò)的權(quán)值和偏值來(lái)達(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,83,研
48、究學(xué)習(xí),10. 利用快速BP算法訓(xùn)練前向網(wǎng)絡(luò)函數(shù)trainbpx( ) 使用動(dòng)量因子時(shí),BP算法可找到更好的解,而自適應(yīng)學(xué)習(xí)率,也可以使訓(xùn)練時(shí)間大大縮短。函數(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,84,研究學(xué)習(xí),11. 利用Levenberg-Marguardt規(guī)則訓(xùn)練前向網(wǎng)絡(luò)函數(shù)train
49、lm( ) 函數(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,85,研究學(xué)習(xí),函數(shù)trainlm( )的訓(xùn)練速度最快,但它需要更大的存儲(chǔ)空間,trainbp
50、x( ) 的訓(xùn)練速度次之,trainbp( )最慢,86,研究學(xué)習(xí),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,87,研究學(xué)習(xí),例1-19 利用兩層BP神經(jīng)網(wǎng)絡(luò)完成函數(shù)逼近。隱含層的激活函數(shù)取S型傳輸函數(shù),輸出層的激活函數(shù)取線性傳輸函數(shù)。 解 (1)根
51、據(jù)神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)trainbp( )編寫的程序如下。 ex2_19_1 利用以上程序可得圖2-32和如下結(jié)果。 y2 = 0.9887,88,研究學(xué)習(xí),利用以上程序可得如下結(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,89,研究學(xué)習(xí),13. 建立網(wǎng)絡(luò)函數(shù)newff( ) 利用newff( ) 函數(shù)可建立一個(gè)感知機(jī)神經(jīng)網(wǎng)絡(luò)。其調(diào)用格式為: net=newff(Xr,S1 S2.SNl,TF1 TF2.TFN
52、l,BTF,BLF,PF,90,研究學(xué)習(xí),例1-20 利用newff( )函數(shù)建立一個(gè)非線性函數(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)值,91,研究學(xué)習(xí),14. 建立網(wǎng)絡(luò)函數(shù)newfftd( ) 利用newfftd( )函數(shù)可生成一個(gè)前饋輸入延時(shí)BP網(wǎng)絡(luò)。其調(diào)用格式為: net=newfftd(Xr,ID,S1 S2.SNl,TF1 TF2.TFNl,B
53、TF,BLF,PF) 式中,ID為延遲輸入向量;其他參數(shù)定義同函數(shù)newff(,92,研究學(xué)習(xí),例1-21 利用兩層BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練加權(quán)系數(shù)。兩組3輸入為1 2;-1 1;1 3,希望的輸出均為1,1。隱含層的激活函數(shù)取S型傳輸函數(shù),輸出層的激活函數(shù)取線性傳輸函數(shù)。 解 根據(jù)神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)編寫的程序如下。 ex2_21 結(jié)果顯示: Y = 1.0000 1.0000 1.0000 1.0000,93,研究學(xué)習(xí),15. 計(jì)算誤差曲面函數(shù)errsurf( ) 利用誤差曲面函數(shù)可以計(jì)算單輸入神經(jīng)元誤差的平方和。其調(diào)用格式為: Es= errsurf (X, T, W,b,Tf) 式中 X為的輸入
54、向量;T為目標(biāo)向量;W為權(quán)值矩陣;b為的偏值向量;Tf為傳輸函數(shù),94,研究學(xué)習(xí),16. 繪制誤差曲面圖函數(shù)plotes( ) 利用函數(shù)plotes ( )可繪制誤差曲面圖。其調(diào)用格式為:plotes(W,b,Es,v) 式中 W為權(quán)值矩陣;b為的偏值向量;Es為誤差曲面;v為期望的視角,默認(rèn)為-37.5 30。 例利用以下命令,可得圖2-34。 X=3 2;T=0.4 0.8; W=-4:0.4:4;b=W; Es=errsurf (X, T, W,b,logsig); plotes(W,b,Es,60 30,圖2-34 誤差曲面圖,95,研究學(xué)習(xí),17. 在誤差曲面圖上繪制權(quán)值和偏值的位置
55、函數(shù)plotep ( ) 函數(shù)plotep ( )在已由函數(shù)plotes ( )產(chǎn)生的誤差性能表面圖上畫出單輸入網(wǎng)絡(luò)權(quán)值w與偏差b所對(duì)應(yīng)的誤差e的位置,該函數(shù)調(diào)用格式為: h=plotep (W,b,e,96,研究學(xué)習(xí),例利用以下命令,可得圖2-35。 X=3 2;T=0.4 0.8; W=-4:0.4:4;b=W; Es=errsurf (X,T,W,b,logsig); plotes(W,b,Es,60 30) W=-2;b=0; e=sumsqr(T-simuff(X,W,b,logsig);plotep(W,b,e,圖2-35 權(quán)值和偏值在誤差曲面圖上的位置,97,研究學(xué)習(xí),18.繪制
56、誤差平方和對(duì)訓(xùn)練次數(shù)的曲線函數(shù)ploterr ( ) 函數(shù)ploterr (e) 繪制誤差e的行矢量對(duì)訓(xùn)練次數(shù)的曲線,縱軸為對(duì)數(shù)形式??偟挠?xùn)練次數(shù)比誤差e的長(zhǎng)度要小1。誤差e中的第一個(gè)元素是訓(xùn)練前(次數(shù)為0)的初始網(wǎng)絡(luò)誤差。函數(shù)ploterr (e,g) 繪制誤差e的行矢量并用水平點(diǎn)線來(lái)標(biāo)志誤差g。 19繪制誤差的直方圖函數(shù)barerr( ) 函數(shù)barerr (e) 繪制每對(duì)輸入/目標(biāo)矢量誤差e平方和的直方圖,98,研究學(xué)習(xí),例1-22 設(shè)計(jì)一個(gè)三層BP神經(jīng)網(wǎng)絡(luò),并訓(xùn)練它來(lái)識(shí)別0,1,2,9,A,F,這16個(gè)十六進(jìn)制已經(jīng)被數(shù)字成像系統(tǒng)數(shù)字化了,其結(jié)果是對(duì)應(yīng)每個(gè)數(shù)字有一個(gè)53的布爾量網(wǎng)絡(luò)。例如
57、0用1 1 1;1 0 1;1 0 1;1 0 1;1 1 1表示;1用0 1 0;0 1 0;0 1 0;0 1 0; 0 1 0表示;2用1 1 1; 0 0 1;0 1 0;1 0 0;1 1 1表示,等等。如圖2-36所示,圖2-36 16個(gè)十六進(jìn)制對(duì)應(yīng)的53的布爾量網(wǎng)絡(luò),99,研究學(xué)習(xí),解 將這16個(gè)含15個(gè)布爾量網(wǎng)絡(luò)元素的輸入向量定義成一個(gè)1516維的輸入矩陣X,X中每一列的15個(gè)元素對(duì)應(yīng)一個(gè)數(shù)字量按列展開的布爾量網(wǎng)絡(luò)元素,例如X中第一列的15個(gè)元素1;1;1;1;0;1;1;0;1;1;0;1;1;1;1表示0。目標(biāo)向量也被定義成一個(gè)416維的目標(biāo)矩陣T,其每一列的4個(gè)元素對(duì)應(yīng)一
58、個(gè)數(shù)字量,這16個(gè)數(shù)字量用其所對(duì)應(yīng)的十六進(jìn)制值表示。例如用0;0;0;0表示0;用0;0;0;1表示1;用0;0;1;0表示2,等等,100,研究學(xué)習(xí),為了識(shí)別這些以53布爾量網(wǎng)絡(luò)表示的十六進(jìn)制數(shù),所設(shè)計(jì)的網(wǎng)絡(luò)需要有16個(gè)輸入,在輸出層需要有4個(gè)神經(jīng)元來(lái)識(shí)別它,隱含層(對(duì)應(yīng)于MATLAB工具箱中的第一層)設(shè)計(jì)了9個(gè)神經(jīng)元。激活函數(shù)選擇log-Sigmoid型傳輸函數(shù),因?yàn)樗妮敵龇秶?到1)正好適合在學(xué)習(xí)后輸出布爾值。由于十六進(jìn)制數(shù)的表示有時(shí)會(huì)受到噪聲的污染,使布爾量網(wǎng)絡(luò)元素發(fā)生變化,為了能排除噪聲的干擾,順利地識(shí)別16個(gè)十六進(jìn)制數(shù),必須設(shè)計(jì)高性能的神經(jīng)網(wǎng)絡(luò),101,研究學(xué)習(xí),方法一: ex
59、2_22_1,結(jié)果顯示: y = 0.0000 0.0000 0.0000 0.0000 0.9999 1.0000 0.9999 1.0000 0.0002 0.0000 1.0000 1.0000 0.0001 0.0236 1.0000 1.0000 0.0008 1.0000 0.0000 1.0000 0.0000 1.0000 0.0000 0.9997 1.0000 0.9995 0.9985 1.0000 1.0000 0.9964 1.0000 1.0000,102,研究學(xué)習(xí),方法二: ex2_22_2,結(jié)果顯示: y4 = 0.0000 0.0000 0.0004 0.00
60、00 1.0000 1.0000 1.0000 1.0000 0.0001 0.0011 0.9992 0.9994 0.0004 0.0000 1.0000 0.9999 0.0010 0.9993 0.0040 1.0000 0.0000 0.9999 0.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.9997 1.0000 1.0000,103,研究學(xué)習(xí),1.1.5 徑向基神經(jīng)網(wǎng)絡(luò)工具箱函數(shù) MATLAB神經(jīng)網(wǎng)絡(luò)工具箱中提供了大量的與徑向基網(wǎng)絡(luò)相關(guān)的的工具箱函數(shù)。在MATLAB工作空間的命令行鍵入“help radbasis”,便可得到
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字式壓磁應(yīng)力測(cè)量?jī)x相關(guān)行業(yè)投資方案范本
- 多元文化交流活動(dòng)策劃計(jì)劃
- 家居用品租賃合同三篇
- 共同努力共創(chuàng)騰飛計(jì)劃
- 兒童急性淋巴細(xì)胞白血病指南2024版解讀
- 2024-2025學(xué)年五年級(jí)上冊(cè)數(shù)學(xué)期末全真模擬培優(yōu)卷(蘇教版)【解析版】-A4
- 1例急性腦梗死患者靜脈溶栓個(gè)案護(hù)理
- 《鉆井安全培訓(xùn)材料》課件
- 初中語(yǔ)文教研組工作參考計(jì)劃
- 《設(shè)置系統(tǒng)提高安全》課件
- 個(gè)體工商戶設(shè)立(變更)登記審核表
- 聚苯板外墻外保溫系統(tǒng)驗(yàn)收及檢驗(yàn)細(xì)則
- 世界地圖中文版本全集(高清版)
- 世界旅游夏威夷英文介紹簡(jiǎn)介English introduction of Hawaii(課堂PPT)
- 彩色學(xué)生電子小報(bào)手抄報(bào)模板消防安全2
- 安全生產(chǎn)中長(zhǎng)期規(guī)劃
- 淺談初中數(shù)學(xué)教學(xué)中拔尖生的培養(yǎng)策略
- JGJT231-2021規(guī)范解讀
- 日標(biāo)歐標(biāo)英標(biāo)O型圈匯總
- 不合格品及糾正措施處理單(表格模板、doc格式)
- 777F02板型尺寸及ULD組裝高教知識(shí)
評(píng)論
0/150
提交評(píng)論