神經(jīng)網(wǎng)絡工具箱函數(shù).ppt_第1頁
神經(jīng)網(wǎng)絡工具箱函數(shù).ppt_第2頁
神經(jīng)網(wǎng)絡工具箱函數(shù).ppt_第3頁
神經(jīng)網(wǎng)絡工具箱函數(shù).ppt_第4頁
神經(jīng)網(wǎng)絡工具箱函數(shù).ppt_第5頁
已閱讀5頁,還剩233頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1,第2章 MATLAB神經(jīng)網(wǎng)絡 工具箱函數(shù) 2.1 MATLAB神經(jīng)網(wǎng)絡工具箱函數(shù) 2.2 MATLAB神經(jīng)網(wǎng)絡工具箱的圖形用戶界面,2,利用神經(jīng)網(wǎng)絡能解決許多用傳統(tǒng)方法無法解決的問題。神經(jīng)網(wǎng)絡在很多領(lǐng)域中都有應用,以實現(xiàn)各種復雜的功能。這些領(lǐng)域包括商業(yè)及經(jīng)濟估算、自動檢測和監(jiān)視、計算機視覺、語音處理、機器人及自動控制、優(yōu)化問題、航空航天、銀行金融業(yè)、工業(yè)生產(chǎn)等。而神經(jīng)網(wǎng)絡是一門發(fā)展很快的學科,其應用領(lǐng)域也會隨著其發(fā)展有更大的拓寬。,3,本章將介紹MATLAB神經(jīng)網(wǎng)絡工具箱的應用。在MATLAB神經(jīng)網(wǎng)絡工具箱中提供了豐富的演示實例,用MATLAB語言構(gòu)造了典型神經(jīng)網(wǎng)絡的激活函數(shù),編寫了各種網(wǎng)絡設(shè)計與訓練的子程序,網(wǎng)絡的設(shè)計者可以根據(jù)自己的需要去調(diào)用工具箱中有關(guān)神經(jīng)網(wǎng)絡的設(shè)計訓練程序,使自己能夠從繁瑣的編程中解脫出來。,4,MATLAB神經(jīng)網(wǎng)絡工具箱提供了許多進行神經(jīng)網(wǎng)絡設(shè)計和分析的工具函數(shù),這些函數(shù)的MATLAB實現(xiàn),使得設(shè)計者對所選定網(wǎng)絡進行計算的過程,轉(zhuǎn)變?yōu)閷瘮?shù)的調(diào)用和參數(shù)的選擇,這給用戶帶來了極大的方便,即使不了解算法的本質(zhì),也可以直接應用功能豐富的函數(shù)來實現(xiàn)自己的目的。有關(guān)這些工具函數(shù)的使用可以通過help命令得到,本章將對這些函數(shù)的功能、調(diào)用格式,以及使用方法做詳細的介紹。,2.1 MATLAB神經(jīng)網(wǎng)絡工具箱函數(shù),5,隨著MATLAB軟件的版本提高,其對應的神經(jīng)網(wǎng)絡工具箱的內(nèi)容越來越豐富,它包括了很多現(xiàn)有的神經(jīng)網(wǎng)絡的新成果,涉及的網(wǎng)絡模型有,感知機網(wǎng)絡、線性神經(jīng)網(wǎng)絡、BP神經(jīng)網(wǎng)絡、徑向基神經(jīng)網(wǎng)絡、自組織神經(jīng)網(wǎng)絡、學習向量量化神經(jīng)網(wǎng)絡、Elman神經(jīng)網(wǎng)絡、Hopfield神經(jīng)網(wǎng)絡、自適應濾波和控制系統(tǒng)網(wǎng)絡等。,6,神經(jīng)網(wǎng)絡工具箱提供了很多經(jīng)典的學習算法,使用它能夠快速地實現(xiàn)對實際問題的建模求解。由于其編程簡單,這樣就給使用者節(jié)省了大量的編程時間,使其能夠把更多的精力投入到網(wǎng)絡設(shè)計而不是具體程序?qū)崿F(xiàn)上。,7,2.1.1 神經(jīng)網(wǎng)絡工具箱中的通用函數(shù) MATLAB神經(jīng)網(wǎng)絡工具箱中提供的函數(shù)主要分為兩大部分。一部分函數(shù)是通用的,這些函數(shù)幾乎可以用于所有類型的神經(jīng)網(wǎng)絡,如神經(jīng)網(wǎng)絡的初始化函數(shù)init( )、訓練函數(shù)train( )和仿真函數(shù)sim( )等;另一部分函數(shù)則是特別針對某一種類型的神經(jīng)網(wǎng)絡的,如對感知機神經(jīng)網(wǎng)絡進行建立的函數(shù)simup( )等。表2-1列出了一些通用函數(shù)的名稱和基本功能。,8,表2-1 神經(jīng)網(wǎng)絡的通用函數(shù)和功能,9,1. 初始化神經(jīng)網(wǎng)絡函數(shù)init( ) 利用初始化神經(jīng)網(wǎng)絡函數(shù)init( )可以對一個已存在的神經(jīng)網(wǎng)絡進行初始化修正,該網(wǎng)絡的權(quán)值和偏值是按照網(wǎng)絡初始化函數(shù)來進行修正的。其調(diào)用格式為: net=init(NET),2. 神經(jīng)網(wǎng)絡某一層的初始化函數(shù)initlay( ) 初始化函數(shù)initlay( )特別適用于層-層結(jié)構(gòu)神經(jīng)網(wǎng)絡的初始化,該網(wǎng)絡的權(quán)值和偏值是按照網(wǎng)絡初始化函數(shù)來進行修正的。其調(diào)用格式為: net=initlay(NET),10,3. 神經(jīng)網(wǎng)絡某一層的權(quán)值和偏值初始化函數(shù)initwb( ) 利用初始化函數(shù)initwb( )可以對一個已存在的神經(jīng)網(wǎng)絡的NET某一層i的權(quán)值和偏值進行初始化修正,該網(wǎng)絡對每層的權(quán)值和偏值是按照設(shè)定的每層的初始化函數(shù)來進行修正的。其調(diào)用格式為: net=initwb(NET,i),4. 神經(jīng)網(wǎng)絡訓練函數(shù)train( ) 利用train( ) 函數(shù)可以訓練一個神經(jīng)網(wǎng)絡。網(wǎng)絡訓練函數(shù)是一種通用的學習函數(shù),訓練函數(shù)重復地把一組輸入向量應用到一個網(wǎng)絡上,每次都更新網(wǎng)絡,直到達到了某種準則。停止準則可能是最大的學習步數(shù)、最小的誤差梯度或者是誤差目標等,調(diào)用格式為: net,tr,Y,E,Xf,Af=train(NET,X,T,Xi,Ai),11,5. 網(wǎng)絡自適應訓練函數(shù)adapt( ) 另一種通用的訓練函數(shù)是自適應函數(shù)adapt( )。自適應函數(shù)在每一個輸入時間階段更新網(wǎng)絡時仿真網(wǎng)絡,而這在進行下一個輸入的仿真前完成,其調(diào)用格式為: net,Y,E,Xf,Af,tr= adapt(NET,X,T,Xi,Ai),6. 網(wǎng)絡仿真函數(shù)sim( ) 神經(jīng)網(wǎng)絡一旦訓練完成,網(wǎng)絡的權(quán)值和偏值就已經(jīng)確定了。于是就可以使用它來解決實際問題了。利用sim( ) 函數(shù)可以仿真一個神經(jīng)網(wǎng)絡的性能。其調(diào)用格式為: Y,Xf,Af,E,perf=sim(net,X,Xi,Ai,T) 或 Y,Xf,Af,E,perf=sim(net,Q Ts,Xi,Ai),12,7. 權(quán)值點積函數(shù)dotprod( ) 網(wǎng)絡輸入向量與權(quán)值的點積可得到加權(quán)輸入。函數(shù)dotprod ( )的調(diào)用格式為: Z=dotprod (W,X) 式中,W為SR維的權(quán)值矩陣;X為Q組R維的輸入向量;Z為Q組S維的W與X 的點積。 8. 網(wǎng)絡輸入的和函數(shù)netsum( ) 網(wǎng)絡輸入的和函數(shù)是通過某一層的加權(quán)輸入和偏值相加作為該層的輸入。調(diào)用格式: Z=netprod(Z1,Z2,) 式中,Zi為SQ維矩陣。,13,9. 網(wǎng)絡輸入的積函數(shù)netprod( ) 網(wǎng)絡輸入的積函數(shù)是通過某一層的加權(quán)輸入和偏值相乘作為該層的輸入。調(diào)用格式: Z=netprod(Z1,Z2,) 式中,Zi為SQ維矩陣。 10. 結(jié)構(gòu)一致函數(shù)concur( ) 函數(shù)concur( )的作用在于使得本來不一致的權(quán)值向量和偏值向量的結(jié)構(gòu)一致,以便于進行相加或相乘運算,其調(diào)用格式為: Z=concur(b,q) 式中,b為N1維的權(quán)值向量;q為要達到一致化所需要的長度;Z為一個已經(jīng)一致化了的矩陣。,14,例2-1 利用netsum( )函數(shù)和netprod( )函數(shù),對兩個加權(quán)輸入向量Z1和Z2進行相加和相乘。 解 MATLAB的程序如下。 Z1=1 2 4;3 4 1;Z2=-1 2 2;-5 -6 1; %提供兩個加權(quán)輸入向量 b=0;-1;q=3; %權(quán)值向量和一致化所需要的長度 Z=concur(b,q) %計算一致化了的矩陣 X1=netsum(Z1,Z2),X2=netprod(Z1,Z2) %計算向量的和與積 結(jié)果顯示: Z = 0 0 0 -1 -1 -1 X1 = 0 4 6 -2 -2 2 X2 = -1 4 8 -15 -24 1,15,2.1.2 感知機神經(jīng)網(wǎng)絡工具箱函數(shù) MATLAB神經(jīng)網(wǎng)絡工具箱中提供了大量的與感知機相關(guān)的的函數(shù)。在MATLAB工作空間的命令行鍵入“help percept”,便可得到與感知機(Perceptron)相關(guān)的函數(shù),進一步利用help命令又能得到相關(guān)函數(shù)的詳細介紹。表2-2列出了這些函數(shù)的名稱和基本功能。,16,表2-2 感知機網(wǎng)絡的重要函數(shù)和功能,17,1平均絕對誤差性能函數(shù)mae( ) 感知機網(wǎng)絡學習規(guī)則為調(diào)整網(wǎng)絡的權(quán)值和偏值,使網(wǎng)絡的平均絕對誤差和性能最小。平均絕對誤差性能函數(shù)的調(diào)用格式為: perf=mae(E,w,pp) 式中 E為誤差矩陣或向量(E=T-Y)。,18,2硬限幅傳輸函數(shù)hardlim( ) 硬限幅傳輸函數(shù)hardlim( )通過計算網(wǎng)絡的輸入得到該層的輸出。如果網(wǎng)絡的輸入達到門限,則硬限幅傳輸函數(shù)的輸出為1,否則為0。這表明神經(jīng)元可用來作出判斷或分類。其調(diào)用格式為: a=hardlim(N) 或 a=hardlim(Z,b) a=hardlim(P) 函數(shù)hardlim(N)在給定網(wǎng)絡的輸入矢量矩陣N時,返回該層的輸出矢量矩陣a。當N中的元素大于等于零時,返回的值為1,否則為0。函數(shù)hardlim(Z,b)用于矢量是成批處理且偏差存在的情況下,此時的偏差b和加權(quán)輸入矩陣Z是分開傳輸?shù)?。偏差矢量b加到Z中的每個矢量中形成網(wǎng)絡輸入矩陣。,19,返回的元素a是1還是0,取決于網(wǎng)絡輸入矩陣中的元素是大于等于0還是小于0;函數(shù)hardlim(P)包含傳輸函數(shù)的特性名并返回問題中的特性,如下的特性可從任何傳輸函數(shù)中獲得: (1)delta與傳輸函數(shù)相關(guān)的delta函數(shù); (2)init傳輸函數(shù)的標準初始化函數(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( )通過計算網(wǎng)絡的輸入得到該層的輸出。如果網(wǎng)絡的輸入達到門限,則硬限幅傳輸函數(shù)的輸出為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,21,例2-2 建立一個感知機網(wǎng)絡,使其能夠完成“或”的功能。 解 為了完成“或”函數(shù),建立一個兩輸入、單輸出的一個單層感知機網(wǎng)絡。 設(shè)輸入向量為:X=0 0 1 1;0 1 0 1, 目標向量為:T=0 1 1 1。 激活函數(shù)取硬限幅傳輸函數(shù)。 根據(jù)感知機學習算法的計算步驟,利用MATLAB的神經(jīng)網(wǎng)絡工具箱的有關(guān)函數(shù)編寫的程序如下。 ex2_2,22,結(jié)果顯示: epoch = 3 Wij = 1.5028 1.7095 y = 0 1 1 1,23,4. 繪制樣本點的函數(shù)plotpv( ) 利用plotpv( ) 函數(shù)可在坐標圖中繪出已知給出的樣本點及其類別,不同的類別使用了不同的符號。其調(diào)用格式為: plotpv(X,T) 式中 X定義了n個2或3維的樣本,它是一個2n維或3n維的矩陣;T表示各樣本點的類別,它是一個n維的向量。 如果T只含一元矢量,目標0的輸入矢量畫為“o”; 目標1的輸入矢量畫為“+”; 如果T含二元矢量,則輸入矢量對應如下:0 0用“o”;0 1用“+”;1 0用“*”;1 1用“”。例,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=1 1 0 1 1 0 1 0; plotpv(X,T) 對樣本不同的類別使用了不同的符號,如圖2-2所示。,圖2-2 樣本的分類,25,5. 在存在的圖上畫感知機的分類線函數(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īng)網(wǎng)絡的初始化函數(shù)initp( ) 利用initp( ) 函數(shù)可建立一個單層(一個輸入層和一個輸出層)感知機神經(jīng)網(wǎng)絡。其調(diào)用格式為: W,b=initp(R,S) 或 W,b=initp(X,T),27,例利用以下命令,可得圖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ù)可以在已繪制的圖上加上感知機分類線(MATLAB6.1 及以下版本利用此命令 不能產(chǎn)生分類線),如 圖2-3所示。由圖可見 經(jīng)過初始化后的網(wǎng)絡對 輸入樣本還不能正確進 行分類。,圖2-3 輸入樣本加網(wǎng)絡初始分類線,28,7用感知機準則訓練感知機的函數(shù)trainp( ) 經(jīng)過初始化建立的感知機,還必須經(jīng)過訓練才能夠?qū)嶋H應用。通過訓練以決定網(wǎng)絡的權(quán)值和偏值。對于感知機,其訓練過程為:對于給定的輸入向量,計算網(wǎng)絡的實際輸出,并與相應的目標向量進行比較,得到誤差,然后根據(jù)相應的學習規(guī)則調(diào)整權(quán)值和偏值。重新計算網(wǎng)絡在新的權(quán)值和偏值作用下的輸出,重復上述的權(quán)值和偏值的調(diào)整過程,直到網(wǎng)絡的輸出與期望的目標向量相等或者訓練次數(shù)達到預定的最大次數(shù)時才停止訓練,之所以要設(shè)定最大訓練次數(shù),是因為對于有些問題,使用感知機神經(jīng)網(wǎng)絡時是不能解決的,這正是感知機的缺點。 訓練感知機神經(jīng)網(wǎng)絡trainp( ) 函數(shù)的調(diào)用格式為: W,B,epochs,errors= trainp(w,b,X,T,tp),29,例2-4 利用trainp( )函數(shù)訓練一個感知機網(wǎng)絡,并用訓練后的網(wǎng)絡對輸入樣本進行分類。 解 程序如下。 ex2_4 例利用以上程序,可得如圖2-4所示的樣本及分類線。 用標準化感知機準則訓 練感知機的函數(shù)trainpn( ) 的用法同函數(shù)trainp( ), 即使輸入矢量的長度不同, 使用標準化感知機準則也 使得學習過程收斂很快。,圖2-4 樣本加分類線,30,8. 感知機神經(jīng)網(wǎng)絡的仿真函數(shù)simup( ) 神經(jīng)網(wǎng)絡一旦訓練完成,網(wǎng)絡的權(quán)值和偏值就已經(jīng)確定了。于是就可以使用它來解決實際問題了。感知機由一系列硬特性神經(jīng)元組成,運行速度很快,對簡單的分類很有用。利用simup( ) 函數(shù)可以測試一個感知機神經(jīng)網(wǎng)絡的性能。其調(diào)用格式為: Y=simup(X,w,b),31,例2-5 利用trainp( )函數(shù)訓練一個感知機網(wǎng)絡,使其能夠完成“或”的功能。 解 根據(jù)神經(jīng)網(wǎng)絡工具箱函數(shù)編寫的程序如下。 ex2_5,執(zhí)行以上程序可得如下結(jié)果以及圖2-5至圖2-8。 y = 0 1 1 1 由以上結(jié)果和圖2-7可知,訓練后的網(wǎng)絡已具有“或”的功能,且可對輸入樣本進行正確分類,32,圖2-5 輸入樣本的分類 圖2-6 輸入樣本加網(wǎng)絡初始分類線,圖2-7 輸入樣本加網(wǎng)絡訓練后的分類線 圖2-8 誤差曲線,33,例2-6 利用trainp( )函數(shù)訓練一個感知機網(wǎng)絡,使其能夠?qū)θ齻€輸入進行分類。 解 根據(jù)神經(jīng)網(wǎng)絡工具箱函數(shù)編寫的程序如下。 ex2_6 執(zhí)行以上程序可得如下結(jié)果以及圖2-9至圖2-12。 y = 0 1 0 0 1 1 0 1,34,圖2-9 輸入樣本的分類 圖2-10 輸入樣本加網(wǎng)絡初始分類線,圖2-11 輸入樣本加網(wǎng)絡訓練后的分類線 圖2-12 誤差曲線,35,例2-7 利用trainp( )函數(shù)訓練一個感知機網(wǎng)絡,使其能夠?qū)⑤斎敕譃?類。 解 根據(jù)神經(jīng)網(wǎng)絡工具箱函數(shù)編寫的程序如下。 ex2-7,36,執(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)絡訓練后的分類線 圖2-14 誤差曲線,37,9感知機學習函數(shù)learnp( ) 感知機神經(jīng)網(wǎng)絡學習規(guī)則為調(diào)整網(wǎng)絡的權(quán)值和偏值使網(wǎng)絡平均絕對誤差性能最小,以便對網(wǎng)絡輸入矢量正確分類。感知機的學習規(guī)則只能訓練單層網(wǎng)絡,函數(shù)調(diào)用格式為: dW, db=learnp(X,E),38,例2-8 利用learnp( )函數(shù)訓練建立一個感知機網(wǎng)絡,使其能夠完成“或”的功能。 解 根據(jù)神經(jīng)網(wǎng)絡工具箱函數(shù)編寫的程序如下。 ex2_8,結(jié)果顯示: epoch = 5 W = 1.3626 1.7590 y = 0 1 1 1,39,10標準化感知機學習函數(shù)learnpn( ) 感知機學習規(guī)則在調(diào)整網(wǎng)絡的權(quán)值和偏值時利用下式 從上式可以看出,輸入向量X越大,則權(quán)值的變化w就越大。當存在奇異樣本(即該樣本向量同其它所有的樣本向量比較起來,特別得大或者特別得?。r,利用以上規(guī)則訓練時間大為加長。因為其它樣本則需花很多時間才能同奇異樣本所對應的權(quán)值變化相匹配。為了消除學習訓練時間對奇異樣本的敏感性,提出了一種改進的感知機學習規(guī)則,也成為標準化感知機學習規(guī)則,標準化感知機學習規(guī)則試圖使奇異樣本和其它樣本對權(quán)值的變化值的影響均衡,它可通過下式實現(xiàn),40,標準化感知機的學習函數(shù)為learnpn( ),其調(diào)用格式為: dW, db=learnpn(X,E) 式中 X為輸入向量矩陣;E為誤差向量(E=T-Y);T表示網(wǎng)絡的目標向量;Y表示網(wǎng)絡的輸出向量;dW為權(quán)值變化陣;db為偏值變化陣。 相應于標準化感知機學習規(guī)則的訓練函數(shù)為trainpn( ),其調(diào)用格式為: W,B,epochs,errors= trainpn(w,b,X,T,tp),41,例2-9 利用trainpn( )函數(shù)訓練建立一個感知機網(wǎng)絡,觀察奇異輸入樣本對訓練結(jié)果的影響。 解 根據(jù)神經(jīng)網(wǎng)絡工具箱函數(shù)編寫的程序如下。 ex2_9,42,執(zhí)行以上程序可得如下結(jié)果以及圖2-15和圖2-16。 y = 1 1 0 0 1,圖2-15 輸入樣本加網(wǎng)絡訓練后的分類線 圖2-16 誤差曲線,由圖2-16可見利用函數(shù)trainpn( ),網(wǎng)絡訓練只需要2步,如果利用函數(shù)trainp( ),網(wǎng)絡訓練需要經(jīng)過60多步。,43,例2-10 利用trainpn( )函數(shù)訓練建立一個感知機網(wǎng)絡,對“異或”問題進行分類。 解 單層感知機不能解決像邏輯“異或”一類的線性不可分的輸入向量的分類問題,解決這一問題的方案,是可以設(shè)計一個兩層的網(wǎng)絡,即含有輸入層,隱含層和輸出層的結(jié)構(gòu)。設(shè)輸入向量為:X=0 0 1 1;0 1 0 1,目標向量為:T=0 1 1 0。根據(jù)神經(jīng)網(wǎng)絡工具箱函數(shù)編寫的程序ex2_10.m如下。 %ex2_10.m,執(zhí)行以上程序可得如下結(jié)果以及圖2-17和圖2-18。 y = 0 1 1 0,44,由圖2-18可見網(wǎng)絡訓練只需要4步。需要指出的是,由于隱含層的權(quán)值和偏值是隨機給定的而且不可調(diào)整,故隱含層的輸出也是隨機的,這樣網(wǎng)絡有可能有解,也有可能無解,如果網(wǎng)絡找不到解,可再次運行網(wǎng)絡,以重新初始化隱含層的權(quán)值和偏值。如果采用單層網(wǎng)絡,對以上問題永遠也找不到正確的分類方案。,45,11. 建立感知機神經(jīng)網(wǎng)絡函數(shù)newp( ) 利用newp( ) 函數(shù)可建立一個感知機神經(jīng)網(wǎng)絡。其調(diào)用格式為: net=newp(Xr,S,Tf,Lf) 例建立一個兩輸入且樣本點取值在-1,1之間,而網(wǎng)絡只有單個神經(jīng)元的感知機神經(jīng)網(wǎng)絡,可利用以下命令 net=newp(-1 1;-1 1,1);,46,使用plotpc( )函數(shù)可以在已繪制的圖上加上感知機分類線。讓它返回得到的分類線的句柄,以便在下一次再繪制分類線時能夠?qū)⒃瓉淼膭h除。例 handle=plotpc(net.iw1,net.b1); 式中 net.iw1用來計算網(wǎng)絡net的權(quán)值,net.b1用來計算網(wǎng)絡net的偏值。,47,例2-11 利用newp( )和train( )函數(shù)建立并訓練一個感知機網(wǎng)絡,使其同樣能夠完成“或”的功能。 解 根據(jù)神經(jīng)網(wǎng)絡工具箱函數(shù)編寫的程序如下。 ex2_11 執(zhí)行結(jié)果 y = 0 1 1 1,48,例2-12 利用train( )函數(shù)訓練一個感知機網(wǎng)絡,并選擇10個點對其進行測試。 解 根據(jù)神經(jīng)網(wǎng)絡工具箱函數(shù)編寫的程序ex2_12.m如下。 ex2_12.m 運行以上命令可得如圖2-20和圖2-21所示的訓練過程誤差曲線和測試結(jié)果。由圖可見網(wǎng)絡訓練只需5步,就能夠?qū)⑺鼈冋_分類,這說明了設(shè)計的網(wǎng)絡是正確的。,49,2.1.3 線性神經(jīng)網(wǎng)絡工具箱函數(shù) MATLAB神經(jīng)網(wǎng)絡工具箱中提供了大量的與線性網(wǎng)絡相關(guān)的的工具箱函數(shù)。在MATLAB工作空間的命令行鍵入“help linnet”,便可得到與線性網(wǎng)絡相關(guān)的函數(shù),進一步利用help命令又能得到相關(guān)函數(shù)的詳細介紹。表2-3列出了這些函數(shù)的名稱和基本功能。,50,表2-3 線性網(wǎng)絡的重要函數(shù)和功能,51,1誤差平方和性能函數(shù)sse( ) 線性網(wǎng)絡學習規(guī)則為調(diào)整網(wǎng)絡的權(quán)值和偏值使網(wǎng)絡誤差平方和性能最小。誤差平方和性能函數(shù)的調(diào)用格式為: perf=sse(E,w,pp),52,2. 線性傳輸函數(shù)purelin( ) 神經(jīng)元最簡單的傳輸函數(shù)是簡單地從神經(jīng)元輸入到輸出的線性傳輸函數(shù),輸出僅僅被神經(jīng)元所附加的偏差所修正。線性傳輸函數(shù)常用于Widriw-Hoff或BP準則來訓練的神經(jīng)網(wǎng)絡中,該函數(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ù)的標準初始化函數(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)絡的初始化函數(shù)initlin( ) 利用initlin( ) 函數(shù)可建立一個單層(一個輸入層和一個輸出層)線性神經(jīng)網(wǎng)絡。其調(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);,55,4. 設(shè)計一個線性神經(jīng)網(wǎng)絡函數(shù)solvelin( ) 同大多數(shù)其它神經(jīng)網(wǎng)絡不同的是,只要已知線性神經(jīng)網(wǎng)絡的輸入向量和目標向量,就可以直接對其進行設(shè)計。使用函數(shù)solvelin( )設(shè)計的線性神經(jīng)網(wǎng)絡,可以不經(jīng)過訓練,直接找出網(wǎng)絡的權(quán)值和偏值,使得網(wǎng)絡的誤差的平方和最小。該函數(shù)的調(diào)用格式為: W,b=solvelin(X,T),56,5. 線性神經(jīng)網(wǎng)絡的仿真函數(shù)simulin( ) 利用函數(shù)solvelin( )建立的線性神經(jīng)網(wǎng)絡的權(quán)值和偏值就已經(jīng)根據(jù)網(wǎng)絡的輸入向量和目標向量訓練好了。simulin( ) 函數(shù)可以測試一個線性神經(jīng)網(wǎng)絡的性能。其調(diào)用格式為: Y=simulin(X,w,b),57,例2-13 利用solvelin( )函數(shù)建立一個線性網(wǎng)絡,并對其進行測試。 X=1 2 3;T=2.0 4.1 5.9; %給定訓練集和目標值 W,b=solvelin(X,T);y=simulin(X,W,b) 結(jié)果顯示: y= 2.0500 4.0000 5.9500,58,6. 計算線性層的最大學習速率函數(shù)maxlinlr( ) 函數(shù)maxlinlr( ) 用于計算用Widrow-Hoff準則訓練的線性網(wǎng)絡的最大穩(wěn)定學習速率。其調(diào)用格式為: lr=maxlinlr(X) 或 lr=maxlinlr(X,b) 例利用以下命令可計算出用Widrow-Hoff準則訓練的線性神經(jīng)元層所用的學習率上限。 X=1 2 -4 7;0.1 3 10 6; lr=maxlinlr(X) 結(jié)果顯示: lr = 0.0069,59,7線性神經(jīng)網(wǎng)絡學習函數(shù)learnwh( ) 線性網(wǎng)絡采用Widrow-Hoff學習規(guī)則,Widrow-Hoff學習規(guī)則只能訓練單層的線性神經(jīng)網(wǎng)絡,但這并不影響單層線性神經(jīng)網(wǎng)絡的應用,因為對每一個多層線性神經(jīng)網(wǎng)絡而言,都可以設(shè)計出一個性能完全相當?shù)膯螌泳€性神經(jīng)網(wǎng)絡。當利用函數(shù)solvelin( )設(shè)計的線性神經(jīng)網(wǎng)絡不能調(diào)整網(wǎng)絡的權(quán)值和偏值使網(wǎng)絡誤差平方和性能最小時,可以應用函數(shù)learnwh( )和 函數(shù)trainwh( )來調(diào)整網(wǎng)絡的權(quán)值和偏值。函數(shù)learnwh( )的調(diào)用格式為: dW, db=learnwh(X,E,lr),60,8線性神經(jīng)網(wǎng)絡的訓練函數(shù)trainwh( ) 函數(shù)trainwh( )可利用Widrow-Hoff學習規(guī)則對線性層的權(quán)值進行訓練,利用輸入矢量,計算該層輸出矢量,然后根據(jù)產(chǎn)生的誤差矢量調(diào)整該層的權(quán)值和偏差。調(diào)用格式為: W,B,epochs,errors= trainwh(w,b,X,T,tp),9. 線性神經(jīng)網(wǎng)絡自適應訓練函數(shù)adaptwh( ) 函數(shù)adaptwh( )可以利用Widrow-Hoff學習規(guī)則對線性層的權(quán)值進行自適應調(diào)節(jié),在每一步迭代過程中,修改自適應線性網(wǎng)絡層的權(quán)值、偏差和輸出矢量,從而學習并適應環(huán)境的變化。其調(diào)用格式為: Y,E,W,B= adaptwh(w,b,X,T,lr),61,10. 設(shè)計一個線性層函數(shù)newlind( ) 利用函數(shù)newlind( )設(shè)計出的線性網(wǎng)絡已經(jīng)訓練好,可直接使用,該函數(shù)調(diào)用格式為: net=newlind(X,T) 式中 X為RQ維的Q組輸入向量;T 為SQ維的Q組目標分類向量;net為生成的新線性神經(jīng)網(wǎng)絡。,62,例2-14 利用newlind( )函數(shù)建立一個線性網(wǎng)絡,并對其進行測試。 解 MATLAB程序ex2_14.m如下。 %ex2_14.m X=1 2 3;T=2.0 4.1 5.9; %給定訓練集和目標值 net=newlind(X,T); y=sim(net,X) 執(zhí)行結(jié)果: y= 2.0500 4.0000 5.9500,63,11. 新建一個線性層函數(shù)newlin( ) 利用函數(shù)newlin( )設(shè)計的線性網(wǎng)絡,還需訓練,該函數(shù)調(diào)用格式為: net=newlin(Xr,S,Id,lr) 例建立一個線性網(wǎng)絡??衫靡韵旅?X=1 2 3;S=1;net=newlin(minmax(X),S);,64,執(zhí)行結(jié)果可得圖2-23和圖2-24。 圖2-23 系統(tǒng)輸入輸出曲線 圖2-24 網(wǎng)絡預測輸出與系統(tǒng)輸出和誤差,例2-15 利用線性網(wǎng)絡進行系統(tǒng)辨識。 解 MATLAB程序如下: ex2_15,65,執(zhí)行結(jié)果可得圖2-25和圖2-26。 圖2-25 網(wǎng)絡待預測的目標信號 圖2-26 網(wǎng)絡預測輸出與目標值,例2-16 利用線性網(wǎng)絡進行自適應預測。 解 方法一: MATLAB程序如下: ex2_16_1,66,執(zhí)行結(jié)果可得圖2-27和圖2-28。 圖2-27 網(wǎng)絡待預測的目標信號 圖2-28網(wǎng)絡預測輸出與誤差,方法二:MATLAB程序如下: ex2_16_2,67,執(zhí)行結(jié)果可得圖2-29和圖2-30。 圖2-29 網(wǎng)絡待預測的目標信號 圖2-30 網(wǎng)絡預測輸出目標信號與誤差,例2-17 利用線性網(wǎng)絡預測一個時變信號序列。 解 MATLAB程序如下: ex2_17,68,2.1.4 BP神經(jīng)網(wǎng)絡工具箱函數(shù) MATLAB神經(jīng)網(wǎng)絡工具箱中提供了大量的進行BP網(wǎng)絡分析和設(shè)計的工具箱函數(shù)。在MATLAB工作空間的命令行鍵入“help backprop”,便可得到與BP神經(jīng)網(wǎng)絡相關(guān)的函數(shù),進一步利用help命令又能得到相關(guān)函數(shù)的詳細介紹。表2-4列出了這些函數(shù)的名稱和基本功能。,69,表2-4 BP網(wǎng)絡的重要函數(shù)和功能,70,71,1均方誤差性能函數(shù)mse( ) BP神經(jīng)網(wǎng)絡學習規(guī)則為調(diào)整網(wǎng)絡的權(quán)值和偏值,使網(wǎng)絡的均方誤差和性能最小。均方誤差性能函數(shù)的調(diào)用格式為: perf=mse(E,w,pp),2. 雙曲正切S型(Sigmoid)傳輸函數(shù)tansig( ) 雙曲正切Sigmoid函數(shù)把神經(jīng)元的輸入范圍從 (-,+)映射到(-1,+1),它是可導函數(shù),適用于BP訓練的神經(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ù)的標準初始化函數(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)絡的最后一層是Sigmoid型神經(jīng)元,那么整個網(wǎng)絡的輸出就被限制在一個較小的范圍內(nèi);如果BP網(wǎng)絡的最后一層是Purelin型線性神經(jīng)元,那么整個網(wǎng)絡的輸出可以取任意值。,74,3. 正切S型(Tansig)神經(jīng)元的求導函數(shù)dtansig( ) 函數(shù)dtansig( )為Tansig神經(jīng)元的導函數(shù),它根據(jù)Y=1-X2的函數(shù)來計算,其調(diào)用格式為: dY_dX =dtansig(X,Y) Logsig和Purelin神經(jīng)元的導函數(shù)dlogsig( )和dpurelin( )的用法同上。但它們分別根據(jù)Y=X*(1-X)和Y=1的函數(shù)來計算。例利用以下MATLAB命令 X=0.1 0.8 0.7;Y=tansig(x),dY_dX=dtansig(X,Y) 結(jié)果顯示: Y= 0.0997 0.6640 0.6044 dY_dX= 0.9901 0.5591 0.6347,75,4. 正切S型(Tansig)神經(jīng)元的求導函數(shù)deltatan ( ) 反向傳播誤差算法(BP)是利用誤差平方和對網(wǎng)絡各層輸入的導數(shù)來調(diào)整其權(quán)值和偏值的,從而降低誤差平方和。從網(wǎng)絡誤差矢量中可推導出輸出層的誤差導數(shù)或(delta)矢量,隱含層的矢量的導出,這種矢量的反向傳播正是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學習規(guī)則函數(shù)learnbp( ) BP神經(jīng)網(wǎng)絡學習規(guī)則為調(diào)整網(wǎng)絡的權(quán)值和偏值使網(wǎng)絡誤差的平方和為最小。這是通過在最速下降方向上不斷地調(diào)整網(wǎng)絡的權(quán)值和偏值來達到的。計算網(wǎng)絡輸出層的誤差矢量導數(shù),然后反饋回網(wǎng)絡,直到每個隱含層的誤差導數(shù)(稱為delta)都達到。這可由函數(shù)deltatan( )、deltalin( )和deltalog( )計算。根據(jù)BP準則,每一層的權(quán)值矩陣w利用本層的向量和輸入向量x來更新,即w(i,j)=(i)x(j) 。函數(shù)調(diào)用格式為 dW,dB=learnbp(X,delta,lr),77,6. 含動量規(guī)則的BP學習規(guī)則函數(shù)learnbpm( ) 為了提高BP算法的學習速度并增加算法的可靠性,在BP學習算法中引進了動量因子,它使權(quán)值的變化等于上次權(quán)值的變化與這次由BP準則引起的變化之和,這樣可將動量加到BP學習中,上一次權(quán)值變化的影響可由動量常數(shù)來調(diào)整。動量法降低了網(wǎng)絡對于誤差曲面局部細節(jié)的敏感性,有效地抑制網(wǎng)絡陷于局部極小。而自適應學習率,也可以使訓練時間大大縮短。當動量常數(shù)為0時,說明權(quán)值的變化僅由梯度決定。,78,當動量常數(shù)為0時,說明權(quán)值的變化僅由梯度決定。當動量常數(shù)為1時,說明新的權(quán)值變化僅等于上次權(quán)值變化,而忽略掉梯度項,其數(shù)學表達式為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學習規(guī)則函數(shù)learnlm( ) 函數(shù)learnlm( )采用了Levenberg-Marguardt優(yōu)化方法,從而使得學習時間更短。其缺點是,對于復雜的問題,該方法需要很大的存儲空間。LM方法更新參數(shù)(如權(quán)值和偏值)的數(shù)學表達式為w=(JTJ+I)-1JTe。隨著的增大,LM方法中的JTJ 項變得無關(guān)緊要,因而學習過程由 -1JTe決定,即梯度下降法。函數(shù)調(diào)用格式為 dW,dB=learnlm(X,delta),80,例2-18 利用三層BP神經(jīng)網(wǎng)絡訓練加權(quán)系數(shù)。兩組3輸入為1 2;-1 1;1 3,希望的輸出均為1,1。隱含層的激活函數(shù)取S型傳輸函數(shù),輸出層的激活函數(shù)取線性傳輸函數(shù)。 解 根據(jù)BP學習算法的計算步驟,利用MATLAB的神經(jīng)網(wǎng)絡工具箱的有關(guān)函數(shù)編寫的程序如下。 ex2_18 結(jié)果顯示: Ok = 1.0068 0.9971 0.9758 1.0178,81,8. BP神經(jīng)網(wǎng)絡初始化函數(shù)initff( ) 在設(shè)計一個BP網(wǎng)絡時,只要已知網(wǎng)絡的輸入向量的取值范圍、各層的神經(jīng)元個數(shù)及傳輸函數(shù),就可以利用初始化函數(shù)initff( )對BP網(wǎng)絡進行初始化。函數(shù)initff( )可最多對三層神經(jīng)網(wǎng)絡進行初始化,而得到每層的權(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è)計一個隱含層有8個神經(jīng)元,傳輸函數(shù)為tansig,輸出層有5個神經(jīng)元,傳輸函數(shù)為purelin的兩層BP神經(jīng)網(wǎng)絡可利用以下命令。 X=sin(0:100);cos(0:100*2); W1,b1,W2,b2=initff(X,8,tansig,5,purelin),83,9. 利用BP算法訓練前向網(wǎng)絡函數(shù)trainbp( ) BP神經(jīng)網(wǎng)絡學習規(guī)則為調(diào)整網(wǎng)絡的權(quán)值和偏值使網(wǎng)絡誤差的平方和為最小。這是通過在最速下降方向上不斷地調(diào)整網(wǎng)絡的權(quán)值和偏值來達到的。函數(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算法訓練前向網(wǎng)絡函數(shù)trainbpx( ) 使用動量因子時,BP算法可找到更好的解,而自適應學習率,也可以使訓練時間大大縮短。函數(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ī)則訓練前向網(wǎng)絡函數(shù)trainlm( ) 函數(shù)trainbp( )和trainbpx( ) 都是基于梯度下降的訓練算法,而函數(shù)trainblm( )是建立在一種優(yōu)化方法基礎(chǔ)上的訓練算法。其調(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( )的訓練速度最快,但它需要更大的存儲空間,trainbpx( ) 的訓練速度次之,trainbp( )最慢。,87,12. BP神經(jīng)網(wǎng)絡仿真函數(shù)simuff( ) BP神經(jīng)網(wǎng)絡由一系列網(wǎng)絡層組成,每一層都從前一層得到輸入數(shù)據(jù),simuff( )函數(shù)可仿真最多三層前向網(wǎng)絡。其調(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)絡完成函數(shù)逼近。隱含層的激活函數(shù)取S型傳輸函數(shù),輸出層的激活函數(shù)取線性傳輸函數(shù)。 解 (1)根據(jù)神經(jīng)網(wǎng)絡工具箱函數(shù)trainbp( )編寫的程序如下。 ex2_19_1 利用以上程序可得圖2-32和如下結(jié)果。 y2 = 0.9887,89,利用以上程序可得如下結(jié)果。 y2 = 1.0026,(2)根據(jù)神經(jīng)網(wǎng)絡工具箱函數(shù)trainbpx( )編寫的程序如下。 ex2_19_2,(3)根據(jù)神經(jīng)網(wǎng)絡工具箱函數(shù)trainlm( )編寫的程序如下。 ex2_19_3,結(jié)果顯示: y2 = 0.9987,90,13. 建立網(wǎng)絡函數(shù)newff( ) 利用newff( ) 函數(shù)可建立一個感知機神經(jīng)網(wǎng)絡。其調(diào)用格式為: net=newff(Xr,S1 S2.SNl,TF1 TF2.TFNl,BTF,BLF,PF),91,例2-20 利用newff( )函數(shù)建立一個非線性函數(shù)的BP網(wǎng)絡逼近正弦函數(shù)。 解 MATLAB程序ex2_20.m如下。 ex2_20.m 未經(jīng)訓練的網(wǎng)絡輸出 與目標值(正弦函數(shù))的比 較,如圖2-33所示。網(wǎng)絡 的權(quán)值和偏值是隨機的, 所以未將訓練的網(wǎng)絡輸出 效果很差,而且每次運行 結(jié)果也不一樣。,圖2-33 未訓練的網(wǎng)絡輸出與目標值,92,14. 建立網(wǎng)絡函數(shù)newfftd( ) 利用newfftd( )函數(shù)可生成一個前饋輸入延時BP網(wǎng)絡。其調(diào)用格式為: net=newfftd(Xr,ID,S1 S2.SNl,TF1 TF2.TFNl,BTF,BLF,PF) 式中,ID為延遲輸入向量;其他參數(shù)定義同函數(shù)newff( )。,93,例2-21 利用兩層BP神經(jīng)網(wǎng)絡訓練加權(quán)系數(shù)。兩組3輸入為1 2;-1 1;1 3,希望的輸出均為1,1。隱含層的激活函數(shù)取S型傳輸函數(shù),輸出層的激活函數(shù)取線性傳輸函數(shù)。 解 根據(jù)神經(jīng)網(wǎng)絡工具箱函數(shù)編寫的程序如下。 ex2_21 結(jié)果顯示: Y = 1.0000 1.0000 1.0000 1.0000,94,15. 計算誤差曲面函數(shù)errsurf( ) 利用誤差曲面函數(shù)可以計算單輸入神經(jīng)元誤差的平方和。其調(diào)用格式為: Es= errsurf (X, T, W,b,Tf) 式中 X為的輸入向量;T為目標向量;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為期望的視角,默認為-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 誤差曲面圖,96,17. 在誤差曲面圖上繪制權(quán)值和偏值的位置函數(shù)plotep ( ) 函數(shù)plotep ( )在已由函數(shù)plotes ( )產(chǎn)生的誤差性能表面圖上畫出單輸入網(wǎng)絡權(quán)值w與偏差b所對應的誤差e的位置,該函數(shù)調(diào)用格式為: h=plotep (W,b,e),97,例利用以下命令,可得圖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)值和偏值在誤差曲面圖上的位置,98,18.繪制誤差平方和對訓練次數(shù)的曲線函數(shù)ploterr ( ) 函數(shù)ploterr (e) 繪制誤差e的行矢量對訓練次數(shù)的曲線,縱軸為對數(shù)形式??偟挠柧毚螖?shù)比誤差e的長度要小1。誤差e中的第一個元素是訓練前(次數(shù)為0)的初始網(wǎng)絡誤差。函數(shù)ploterr (e,g) 繪制誤差e的行矢量并用水平點線來標志誤差g。 19繪制誤差的直方圖函數(shù)barerr( ) 函數(shù)barerr (e) 繪制每對輸入/目標矢量誤差e平方和的直方圖。,99,例2-22 設(shè)計一個三層BP神經(jīng)網(wǎng)絡,并訓練它來識別0,1,2,9,A,F,這16個十六進制已經(jīng)被數(shù)字成像系統(tǒng)數(shù)字化了,其結(jié)果是對應每個數(shù)字有一個53的布爾量網(wǎng)絡。例如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個十六進制對應的53的布爾量網(wǎng)絡,100,解 將這16個含15個布爾量網(wǎng)絡元素的輸入向量定義成一個1516維的輸入矩陣X,X中每一列的15個元素對應一個數(shù)字量按列展開的布爾量網(wǎng)絡元素,例如X中第一列的15個元素1;1;1;1;0;1;1;0;1;1;0;1;1;1;1表示0。目標向量也被定義成一個416維的目標矩陣T,其每一列的4個元素對應一個數(shù)字量,這16個數(shù)字量用其所對應的十六進制值表示。例如用0;0;0;0表示0;用0;0;0;1表示1;用0;0;1;0表示2,等等。,101,為了識別這些以53布爾量網(wǎng)絡表示的十六進制數(shù),所設(shè)計的網(wǎng)絡需要有16個輸入,在輸出層需要有4個神經(jīng)元來識別它,隱含層(對應于MATLAB工具箱中的第一層)設(shè)計了9個神經(jīng)元。激活函數(shù)選擇log-Sigmoid型傳輸函數(shù),因為它的輸出范圍(0到1)正好適合在學習后輸出布爾值。由于十六進制數(shù)的表示有時會受到噪聲的污染,使布爾量網(wǎng)絡元素發(fā)生變化,為了能排除噪聲的干擾,順利地識別16個十六進制數(shù),必須設(shè)計高性能的神經(jīng)網(wǎng)絡。,102,方法一: ex2_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,103,方法二: ex2_22_2,結(jié)果顯示: y4 = 0.0000 0.0000 0.0004 0.0000 1.0000 1.0000 1.0000 1.0000 0.0001 0.0011 0.9992 0.

溫馨提示

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

評論

0/150

提交評論