《神經(jīng)模糊預(yù)測(cè)控制及其MATLAB實(shí)現(xiàn)》 第5版 課件 第2章MATLAB神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)工具箱_第1頁(yè)
《神經(jīng)模糊預(yù)測(cè)控制及其MATLAB實(shí)現(xiàn)》 第5版 課件 第2章MATLAB神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)工具箱_第2頁(yè)
《神經(jīng)模糊預(yù)測(cè)控制及其MATLAB實(shí)現(xiàn)》 第5版 課件 第2章MATLAB神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)工具箱_第3頁(yè)
《神經(jīng)模糊預(yù)測(cè)控制及其MATLAB實(shí)現(xiàn)》 第5版 課件 第2章MATLAB神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)工具箱_第4頁(yè)
《神經(jīng)模糊預(yù)測(cè)控制及其MATLAB實(shí)現(xiàn)》 第5版 課件 第2章MATLAB神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)工具箱_第5頁(yè)
已閱讀5頁(yè),還剩371頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第2章MATLAB神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)工具箱2.1MATLAB神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)

2.2MATLAB神經(jīng)網(wǎng)絡(luò)工具箱的圖形用戶界面2.3基于Simulink的神經(jīng)網(wǎng)絡(luò)模塊2.4神經(jīng)網(wǎng)絡(luò)在系統(tǒng)預(yù)測(cè)和故障診斷中的應(yīng)用2.5MATLAB深度學(xué)習(xí)工具箱1利用神經(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ì)估算、自動(dòng)檢測(cè)和監(jiān)視、計(jì)算機(jī)視覺、語(yǔ)音處理、機(jī)器人及自動(dòng)控制、優(yōu)化問題、航空航天、銀行金融業(yè)、工業(yè)生產(chǎn)等。而神經(jīng)網(wǎng)絡(luò)是一門發(fā)展很快的學(xué)科,其應(yīng)用領(lǐng)域也會(huì)隨著其發(fā)展有更大的拓寬。2

本章將介紹MATLAB神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)工具箱的應(yīng)用。在MATLAB神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)工具箱中提供了豐富的演示實(shí)例,用MATLAB語(yǔ)言構(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)練程序,使自己能夠從繁瑣的編程中解脫出來。3

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ì)算的過程,轉(zhuǎn)變?yōu)閷?duì)函數(shù)的調(diào)用和參數(shù)的選擇,這給用戶帶來了極大的方便,即使不了解算法的本質(zhì),也可以直接應(yīng)用功能豐富的函數(shù)來實(shí)現(xiàn)自己的目的。有關(guān)這些工具函數(shù)的使用可以通過help命令得到,本章將對(duì)這些函數(shù)的功能、調(diào)用格式,以及使用方法做詳細(xì)的介紹。2.1MATLAB神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)4隨著MATLAB軟件的版本提高,其對(duì)應(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ò)等。5神經(jīng)網(wǎng)絡(luò)工具箱提供了很多經(jīng)典的學(xué)習(xí)算法,使用它能夠快速地實(shí)現(xiàn)對(duì)實(shí)際問題的建模求解。由于其編程簡(jiǎn)單,這樣就給使用者節(jié)省了大量的編程時(shí)間,使其能夠把更多的精力投入到網(wǎng)絡(luò)設(shè)計(jì)而不是具體程序?qū)崿F(xiàn)上。62.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ù)則是特別針對(duì)某一種類型的神經(jīng)網(wǎng)絡(luò)的,如對(duì)感知機(jī)神經(jīng)網(wǎng)絡(luò)進(jìn)行建立的函數(shù)simup()等。表2-1列出了一些通用函數(shù)的名稱和基本功能。7表2-1神經(jīng)網(wǎng)絡(luò)的通用函數(shù)和功能函數(shù)名功能init()初始化一個(gè)神經(jīng)網(wǎng)絡(luò)initlay()層-層結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)的初始化函數(shù)initwb()神經(jīng)網(wǎng)絡(luò)某一層的權(quán)值和偏值初始化函數(shù)initzero()將權(quán)值設(shè)置為零的初始化函數(shù)train()神經(jīng)網(wǎng)絡(luò)訓(xùn)練函數(shù)adapt()神經(jīng)網(wǎng)絡(luò)自適應(yīng)訓(xùn)練函數(shù)sim()神經(jīng)網(wǎng)絡(luò)仿真函數(shù)dotprod()權(quán)值點(diǎn)積函數(shù)normprod()規(guī)范點(diǎn)積權(quán)值函數(shù)netsum()輸入求和函數(shù)netprod()網(wǎng)絡(luò)輸入的積函數(shù)concur()結(jié)構(gòu)一致函數(shù)81.初始化神經(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ù)來進(jìn)行修正的。其調(diào)用格式為:net=init(NET)式中,NET為初始化前的網(wǎng)絡(luò);net為初始化后的網(wǎng)絡(luò)。92.神經(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)式中,NET為初始化前的網(wǎng)絡(luò);net為初始化后的網(wǎng)絡(luò)。103.神經(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ù)來進(jìn)行修正的。其調(diào)用格式為:net=initwb(NET,i)式中,NET為初始化前的網(wǎng)絡(luò);i為第i層;net為第i層的權(quán)值和偏值修正后的網(wǎng)絡(luò)。114.神經(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ù)地把一組輸入向量應(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)式中,NET為要訓(xùn)練的網(wǎng)絡(luò);X為網(wǎng)絡(luò)輸入;T表示網(wǎng)絡(luò)的目標(biāo)輸出,默認(rèn)值為0;Xi表示初始輸入延時(shí),默認(rèn)值為0;Ai表示初始的層延時(shí),默認(rèn)值為0;net訓(xùn)練后的網(wǎng)絡(luò);tr訓(xùn)練步數(shù)和性能;Y為網(wǎng)絡(luò)的輸出;E表示網(wǎng)絡(luò)誤差;Xf表示最終輸入延時(shí);Af表示最終的層延時(shí)??蛇x參數(shù)Xi,Ai,Xf和Af只適用于存在輸入延遲和層延遲的網(wǎng)絡(luò)。125.網(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)式中,NET為要訓(xùn)練的網(wǎng)絡(luò);X為網(wǎng)絡(luò)的輸入;T表示網(wǎng)絡(luò)的目標(biāo),默認(rèn)值為0;Xi表示初始輸入延時(shí),默認(rèn)值為0;Ai表示初始的層延時(shí),默認(rèn)值為0;net訓(xùn)練后的網(wǎng)絡(luò);Y表示網(wǎng)絡(luò)的輸出;E網(wǎng)絡(luò)的誤差;Xf表示最終輸入延時(shí);Af表示最終的層延時(shí);tr訓(xùn)練步數(shù)和性能??蛇x參數(shù)Xi,Ai,Xf和Af同樣只適用于存在輸入延遲和層延遲的網(wǎng)絡(luò)。另外,參數(shù)T是可選的,并且僅適用于必須指明網(wǎng)絡(luò)目標(biāo)的場(chǎng)合。

136.網(wǎng)絡(luò)仿真函數(shù)sim()

神經(jīng)網(wǎng)絡(luò)一旦訓(xùn)練完成,網(wǎng)絡(luò)的權(quán)值和偏值就已經(jīng)確定了。于是就可以使用它來解決實(shí)際問題了。利用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,{QTs},Xi,Ai)式中,net為要仿真的網(wǎng)絡(luò);X為網(wǎng)絡(luò)的輸入;Xi表示初始輸入延時(shí),默認(rèn)值為0;Ai表示初始的層延時(shí),默認(rèn)值為0;T為網(wǎng)絡(luò)的目標(biāo)輸出,默認(rèn)值為0;Y表示網(wǎng)絡(luò)的輸出;Xf表示最終輸入延時(shí);Af表示最終的層延時(shí);E網(wǎng)絡(luò)的誤差;perf表示網(wǎng)絡(luò)性能。參數(shù)Xi,Ai,Xf和Af是可選的,它們只適用于存在輸入延遲和層延遲的網(wǎng)絡(luò)。147.權(quán)值點(diǎn)積函數(shù)dotprod()

網(wǎng)絡(luò)輸入向量與權(quán)值的點(diǎn)積可得到加權(quán)輸入。函數(shù)dotprod()的調(diào)用格式為:Z=dotprod(W,X)式中,W為S

R維的權(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為S

Q維矩陣。159.網(wǎng)絡(luò)輸入的積函數(shù)netprod()

網(wǎng)絡(luò)輸入的積函數(shù)是通過某一層的加權(quán)輸入和偏值相乘作為該層的輸入。調(diào)用格式:Z=netprod(Z1,Z2,…)式中,Zi為S

Q維矩陣。10.結(jié)構(gòu)一致函數(shù)concur()

函數(shù)concur()的作用在于使得本來不一致的權(quán)值向量和偏值向量的結(jié)構(gòu)一致,以便于進(jìn)行相加或相乘運(yùn)算,其調(diào)用格式為:Z=concur(b,q)式中,b為N

1維的權(quán)值向量;q為要達(dá)到一致化所需要的長(zhǎng)度;Z為一個(gè)已經(jīng)一致化了的矩陣。

16例2-1利用netsum()函數(shù)和netprod()函數(shù),對(duì)兩個(gè)加權(quán)輸入向量Z1和Z2進(jìn)行相加和相乘。解MATLAB的程序如下。Z1=[124;341];Z2=[-122;-5-61];%提供兩個(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=000-1-1

-1X1=046-2-22X2=-148-15-241172.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ù)的名稱和基本功能。18表2-2感知機(jī)網(wǎng)絡(luò)的重要函數(shù)和功能

函數(shù)名功能mae()平均絕對(duì)誤差性能函數(shù)hardlim()硬限幅傳輸函數(shù)hardlims()對(duì)稱硬限幅傳輸函數(shù)plotpv()在坐標(biāo)圖上繪出樣本點(diǎn)plotpc()在已繪制的圖上加分類線initp()對(duì)感知機(jī)神經(jīng)網(wǎng)絡(luò)進(jìn)行初始化trainp()訓(xùn)練感知機(jī)神經(jīng)網(wǎng)絡(luò)的權(quán)值和偏值trainpn()訓(xùn)練標(biāo)準(zhǔn)化感知機(jī)的權(quán)值和偏值simup()對(duì)感知機(jī)神經(jīng)網(wǎng)絡(luò)進(jìn)行仿真learnp()感知機(jī)的學(xué)習(xí)函數(shù)learnpn()標(biāo)準(zhǔn)化感知機(jī)的學(xué)習(xí)函數(shù)newp()生成一個(gè)感知機(jī)191.平均絕對(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);T表示網(wǎng)絡(luò)的目標(biāo)向量;Y表示網(wǎng)絡(luò)的輸出向量;w為所有權(quán)值和偏值向量(可忽略);pp為性能參數(shù)(可忽略);perf表示平均絕對(duì)誤差和。

202.硬限幅傳輸函數(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時(shí),返回該層的輸出矢量矩陣a。當(dāng)N中的元素大于等于零時(shí),返回的值為1,否則為0。函數(shù)hardlim(Z,b)用于矢量是成批處理且偏差存在的情況下,此時(shí)的偏差b和加權(quán)輸入矩陣Z是分開傳輸?shù)?。偏差矢量b加到Z中的每個(gè)矢量中形成網(wǎng)絡(luò)輸入矩陣。

21返回的元素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ù)曲線

223.對(duì)稱硬限幅傳輸函數(shù)hardlims()

對(duì)稱硬限幅傳輸函數(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-111123例2-2建立一個(gè)感知機(jī)網(wǎng)絡(luò),使其能夠完成“或”的功能。解為了完成“或”函數(shù),建立一個(gè)兩輸入、單輸出的一個(gè)單層感知機(jī)網(wǎng)絡(luò)。根據(jù)表1-1中“或”函數(shù)的真值表,可得訓(xùn)練集的輸入矩陣為:目標(biāo)向量為:T=[0111]。激活函數(shù)取硬限幅傳輸函數(shù)。根據(jù)感知機(jī)學(xué)習(xí)算法的計(jì)算步驟,利用MATLAB的神經(jīng)網(wǎng)絡(luò)工具箱的有關(guān)函數(shù)編寫的程序如下。

ex2_224%感知機(jī)的第一階段——學(xué)習(xí)期err_goal=0.001;max_epoch=500;X=[0011;0101];T=[0111];[M,N]=size(X);[L,N]=size(T);%M=2;L=1;N=4;Wij=rand(L,M);b1=zeros(L,1);forepoch=1:max_epochy=hardlim(Wij*X,b1);E=T-y;SSE=mae(E);if(SSE<err_goal)break;end

Wij=Wij+E*X';b1=b1+E;endepoch,Wij

%感知機(jī)的第二階段——工作期X1=X;y=hardlim(Wij*X1,b1)25結(jié)果顯示:epoch=3Wij=1.50281.7095y=0111264.繪制樣本點(diǎn)的函數(shù)plotpv()

利用plotpv()函數(shù)可在坐標(biāo)圖中繪出已知給出的樣本點(diǎn)及其類別,不同的類別使用了不同的符號(hào)。其調(diào)用格式為:plotpv(X,T)式中

X定義了n個(gè)2或3維的樣本,它是一個(gè)2

n維或3

n維的矩陣;T表示各樣本點(diǎn)的類別,它是一個(gè)n維的向量。如果T只含一元矢量,目標(biāo)0的輸入矢量畫為“o”;

目標(biāo)1的輸入矢量畫為“+”;

如果T含二元矢量,則輸入矢量對(duì)應(yīng)如下:[00]用“o”;[01]用“+”;[10]用“*”;[11]用“

”。例

27>>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)

對(duì)樣本不同的類別使用了不同的符號(hào),如圖2-2所示。

圖2-2樣本的分類

28

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ù)返回分類線的句柄以便以后調(diào)用。plotpc(w,b,h)包含從前的一次調(diào)用中返回的句柄,它在畫新分類線之前,刪除舊線。

29

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)式中

R為輸入個(gè)數(shù);S為輸出神經(jīng)元數(shù);W為網(wǎng)絡(luò)的初始權(quán)值;b為網(wǎng)絡(luò)的初始偏值。另外,R和S可以用對(duì)應(yīng)的輸入向量矩陣X和目標(biāo)向量T來代替,此時(shí)輸入個(gè)數(shù)和輸出神經(jīng)元數(shù)根據(jù)X和T中的行數(shù)來設(shè)置。

30例利用以下命令,可得圖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ò)對(duì)輸入樣本還不能正確進(jìn)行分類。

圖2-3輸入樣本加網(wǎng)絡(luò)初始分類線31

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)值和偏值。對(duì)于感知機(jī),其訓(xùn)練過程為:對(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)整過程,直到網(wǎng)絡(luò)的輸出與期望的目標(biāo)向量相等或者訓(xùn)練次數(shù)達(dá)到預(yù)定的最大次數(shù)時(shí)才停止訓(xùn)練,之所以要設(shè)定最大訓(xùn)練次數(shù),是因?yàn)閷?duì)于有些問題,使用感知機(jī)神經(jīng)網(wǎng)絡(luò)時(shí)是不能解決的,這正是感知機(jī)的缺點(diǎn)。

32訓(xùn)練感知機(jī)神經(jīng)網(wǎng)絡(luò)trainp()函數(shù)的調(diào)用格式為:[W,B,epochs,errors]=trainp(w,b,X,T,tp)式中

w為網(wǎng)絡(luò)的初始權(quán)值;b為網(wǎng)絡(luò)的初始偏值;X為網(wǎng)絡(luò)的輸入向量矩陣;T表示網(wǎng)絡(luò)的目標(biāo)向量;tp=[disp_freqmax_epoch]是訓(xùn)練控制參數(shù),其作用是設(shè)定如何進(jìn)行訓(xùn)練,其中disp_freq

或tp(1)是更新顯示的迭代次數(shù),默認(rèn)值為1;max_epoch或tp(2)是訓(xùn)練的最大迭代次數(shù),默認(rèn)值為100,如果給出了tp,任何參數(shù)的遺漏或NaN值都會(huì)使參數(shù)設(shè)定到默認(rèn)值;W為網(wǎng)絡(luò)訓(xùn)練后的權(quán)值;B為網(wǎng)絡(luò)訓(xùn)練后的偏值;epochs表示訓(xùn)練步數(shù);errors表示誤差。

33例2-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í)過程收斂很快。

圖2-4樣本加分類線348.感知機(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)行速度很快,對(duì)簡(jiǎn)單的分類很有用。利用simup()函數(shù)可以測(cè)試一個(gè)感知機(jī)神經(jīng)網(wǎng)絡(luò)的性能。其調(diào)用格式為:Y=simup(X,w,b)式中

X為網(wǎng)絡(luò)的輸入向量矩陣;w為網(wǎng)絡(luò)的權(quán)值;b為網(wǎng)絡(luò)的偏值;Y表示網(wǎng)絡(luò)的輸出向量。

35例2-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=0111

由以上結(jié)果和圖2-7可知,訓(xùn)練后的網(wǎng)絡(luò)已具有“或”的功能,且可對(duì)輸入樣本進(jìn)行正確分類

36圖2-5輸入樣本的分類

圖2-6輸入樣本加網(wǎng)絡(luò)初始分類線

圖2-7輸入樣本加網(wǎng)絡(luò)訓(xùn)練后的分類線

圖2-8誤差曲線

37例2-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=01001101

38圖2-9輸入樣本的分類

圖2-10輸入樣本加網(wǎng)絡(luò)初始分類線

圖2-11輸入樣本加網(wǎng)絡(luò)訓(xùn)練后的分類線

圖2-12誤差曲線

39例2-7利用trainp()函數(shù)訓(xùn)練一個(gè)感知機(jī)網(wǎng)絡(luò),使其能夠?qū)⑤斎敕譃?類。解根據(jù)神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)編寫的程序如下。ex2-740執(zhí)行以上程序可得如下結(jié)果以及圖2-13和圖2-14。y=11100111000000011111

圖2-13輸入樣本加網(wǎng)絡(luò)訓(xùn)練后的分類線

圖2-14誤差曲線

419.感知機(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)式中

X為輸入向量矩陣;

E為誤差向量(E=T-Y);T表示網(wǎng)絡(luò)的目標(biāo)向量;Y表示網(wǎng)絡(luò)的輸出向量;dW為權(quán)值變化陣;db為偏值變化陣。

42例2-8利用learnp()函數(shù)訓(xùn)練建立一個(gè)感知機(jī)網(wǎng)絡(luò),使其能夠完成“或”的功能。

解根據(jù)神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)編寫的程序如下。ex2_843結(jié)果顯示:epoch=5W=1.36261.7590y=01114410.標(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)存在奇異樣本(即該樣本向量同其它所有的樣本向量比較起來,特別得大或者特別得小)時(shí),利用以上規(guī)則訓(xùn)練時(shí)間大為加長(zhǎng)。因?yàn)槠渌鼧颖緞t需花很多時(shí)間才能同奇異樣本所對(duì)應(yīng)的權(quán)值變化相匹配。為了消除學(xué)習(xí)訓(xùn)練時(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)值的變化值的影響均衡,它可通過下式實(shí)現(xiàn)45標(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)46例2-9利用trainpn()函數(shù)訓(xùn)練建立一個(gè)感知機(jī)網(wǎng)絡(luò),觀察奇異輸入樣本對(duì)訓(xùn)練結(jié)果的影響。解根據(jù)神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)編寫的程序如下。ex2_947執(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多步。

48例2-10

利用trainpn()函數(shù)訓(xùn)練建立一個(gè)感知機(jī)網(wǎng)絡(luò),對(duì)“異或”問題進(jìn)行分類。解單層感知機(jī)不能解決像邏輯“異或”一類的線性不可分的輸入向量的分類問題,解決這一問題的方案,是可以設(shè)計(jì)一個(gè)兩層的網(wǎng)絡(luò),即含有輸入層,隱含層和輸出層的結(jié)構(gòu)。根據(jù)表1-1中“異或”函數(shù)的真值表,可得訓(xùn)練集的輸入矩陣為:目標(biāo)向量為:T=[0110]。根據(jù)神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)編寫的程序ex2_10.m如下。%ex2_10.m

執(zhí)行以上程序可得如下結(jié)果以及圖2-17和圖2-18。y=011049由圖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ò),對(duì)以上問題永遠(yuǎn)也找不到正確的分類方案。50

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)式中Xr為一個(gè)r

2維的輸入向量矩陣,它決定了r維輸入向量的最大值和最小值的取值范圍;S表示神經(jīng)元的個(gè)數(shù);Tf表示網(wǎng)絡(luò)的傳輸函數(shù),默認(rèn)值為hardlim;Lf表示網(wǎng)絡(luò)的學(xué)習(xí)函數(shù),默認(rèn)值為learnp;net生成的新感知機(jī)神經(jīng)網(wǎng)絡(luò)。例建立一個(gè)兩輸入且樣本點(diǎn)取值在[-1,1]之間,而網(wǎng)絡(luò)只有單個(gè)神經(jīng)元的感知機(jī)神經(jīng)網(wǎng)絡(luò),可利用以下命令

>>net=newp([-11;-11],1);51使用plotpc()函數(shù)可以在已繪制的圖上加上感知機(jī)分類線。讓它返回得到的分類線的句柄,以便在下一次再繪制分類線時(shí)能夠?qū)⒃瓉淼膭h除。例>>handle=plotpc(net.iw{1},net.b{1});式中

net.iw{1}用來計(jì)算網(wǎng)絡(luò)net的權(quán)值,net.b{1}用來計(jì)算網(wǎng)絡(luò)net的偏值。

52例2-11利用newp()和train()函數(shù)建立并訓(xùn)練一個(gè)感知機(jī)網(wǎng)絡(luò),使其同樣能夠完成“或”的功能。解根據(jù)神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)編寫的程序如下。ex2_11

執(zhí)行結(jié)果y=011153例2-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)練過程誤差曲線和測(cè)試結(jié)果。由圖可見網(wǎng)絡(luò)訓(xùn)練只需5步,就能夠?qū)⑺鼈冋_分類,這說明了設(shè)計(jì)的網(wǎng)絡(luò)是正確的。

542.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ù)的名稱和基本功能。55表2-3線性網(wǎng)絡(luò)的重要函數(shù)和功能函數(shù)名功能sse()誤差平方和性能函數(shù)purelin()線性傳輸函數(shù)initlin()線性線性神經(jīng)的初始化函數(shù)solvelin()設(shè)計(jì)一個(gè)線性神經(jīng)網(wǎng)絡(luò)simulin()對(duì)線性神經(jīng)網(wǎng)絡(luò)進(jìn)行仿真maxlinlr()計(jì)算線性層的最大學(xué)習(xí)速率learnwh()Widrow-hoff的學(xué)習(xí)函數(shù)trainwh()對(duì)線性神經(jīng)網(wǎng)絡(luò)進(jìn)行離線訓(xùn)練adaptwh()對(duì)線性神經(jīng)網(wǎng)絡(luò)進(jìn)行在線自適應(yīng)訓(xùn)練newlind()設(shè)計(jì)一個(gè)線性層newlin()新建一個(gè)線性層561.誤差平方和性能函數(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)式中

E為誤差矩陣或向量(E=T-Y);T表示網(wǎng)絡(luò)的目標(biāo)向量;Y表示網(wǎng)絡(luò)的輸出向量;w為所有權(quán)值和偏值向量(可忽略);pp為性能參數(shù)(可忽略);perf為誤差平方和。

572.線性傳輸函數(shù)purelin()

神經(jīng)元最簡(jiǎn)單的傳輸函數(shù)是簡(jiǎn)單地從神經(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)其中

函數(shù)purelin(N)返回網(wǎng)絡(luò)輸入向量N的輸出矩陣a,更一般的是函數(shù)的輸出矩陣a可直接用網(wǎng)絡(luò)輸入向量N代替,即輸出a等于輸入N;函數(shù)purelin(Z,b)用于矢量是成批處理且偏差存在的情況下,此時(shí)的偏差b和加權(quán)輸入矩陣Z是分開傳輸?shù)?。偏差矢量b加到Z中的每個(gè)矢量中形成網(wǎng)絡(luò)輸入矩陣,最后被返回。

58函數(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ù)

59

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)式中R為輸入個(gè)數(shù);S為輸出神經(jīng)元數(shù);W為網(wǎng)絡(luò)的初始權(quán)值;b為網(wǎng)絡(luò)的初始偏值。另外,R和S可以用對(duì)應(yīng)的輸入向量矩陣X和目標(biāo)向量T來代替,此時(shí)輸入個(gè)數(shù)和輸出神經(jīng)元數(shù)根據(jù)X和T中的行數(shù)來設(shè)置。例>>X=[0011;0101];>>T=[0111];[W,b]=initlin(X,T);604.設(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ù)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)式中

X為R

Q維的Q組輸入向量;T為S

Q維的Q組目標(biāo)分類向量;W為網(wǎng)絡(luò)的初始權(quán)值;b為網(wǎng)絡(luò)的初始偏值。

61

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)式中X為網(wǎng)絡(luò)的輸入向量矩陣;w為網(wǎng)絡(luò)的權(quán)值;b為網(wǎng)絡(luò)的偏值;Y表示網(wǎng)絡(luò)的輸出向量。62例2-13利用solvelin()函數(shù)建立一個(gè)線性網(wǎng)絡(luò),并對(duì)其進(jìn)行測(cè)試。>>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.950063

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)式中X為輸入向量;lr為學(xué)習(xí)速率。網(wǎng)絡(luò)不具有偏值時(shí)采用上式,具有偏值b時(shí)采用下式。一般地,學(xué)習(xí)速率越大,網(wǎng)絡(luò)訓(xùn)練所需時(shí)間越少。但如果太高,學(xué)習(xí)就不穩(wěn)定。例利用以下命令可計(jì)算出用Widrow-Hoff準(zhǔn)則訓(xùn)練的線性神經(jīng)元層所用的學(xué)習(xí)率上限。>>X=[12-47;0.13106];lr=maxlinlr(X)結(jié)果顯示:

lr=0.006964

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()來調(diào)整網(wǎng)絡(luò)的權(quán)值和偏值。函數(shù)learnwh()的調(diào)用格式為:[dW,db]=learnwh(X,E,lr)65式中

X為輸入向量矩陣;

E為誤差向量(E=T-Y);T表示網(wǎng)絡(luò)的目標(biāo)向量;Y表示網(wǎng)絡(luò)的輸出向量;dW為權(quán)值變化陣;db為偏值變化陣;lr為學(xué)習(xí)速率(0<lr

1),用于控制每次誤差修正值。學(xué)習(xí)速率lr較大時(shí),學(xué)習(xí)過程加速;網(wǎng)絡(luò)收斂較快;但是lr太大時(shí),學(xué)習(xí)過程變得不穩(wěn)定,且誤差會(huì)加大。因此學(xué)習(xí)速率的取值很關(guān)鍵。它可利用函數(shù)maxlinlr()求出合適的學(xué)習(xí)速率lr。

66

8.線性神經(jīng)網(wǎng)絡(luò)的訓(xùn)練函數(shù)trainwh()

函數(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)式中

w和W分別為網(wǎng)絡(luò)訓(xùn)練前后的權(quán)值;b和B分別為網(wǎng)絡(luò)訓(xùn)練前后的偏值,X為網(wǎng)絡(luò)的輸入向量矩陣,T表示網(wǎng)絡(luò)的目標(biāo)向量,tp=[disp_freqmax_epocherr_goallr]是訓(xùn)練控制參數(shù),包括更新顯示的迭代次數(shù)disp_freq(缺省值為25),訓(xùn)練的最大迭代次數(shù)max_epoch(缺省值為100),目標(biāo)誤差平方和err_goal(缺省值為0.02)和學(xué)習(xí)速率lr(用函數(shù)maxlinlr()找缺省值);epochs表示訓(xùn)練步數(shù);errors表示訓(xùn)練后的網(wǎng)絡(luò)誤差。

679.線性神經(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é),在每一步迭代過程中,修改自適應(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)式中

w和W分別為網(wǎng)絡(luò)自適應(yīng)訓(xùn)練前后的權(quán)值;b和B分別為網(wǎng)絡(luò)自適應(yīng)訓(xùn)練前后的偏值;X為網(wǎng)絡(luò)的輸入;T表示網(wǎng)絡(luò)的目標(biāo);lr為學(xué)習(xí)速率;Y表示網(wǎng)絡(luò)的輸出;E網(wǎng)絡(luò)的誤差。

68

10.設(shè)計(jì)一個(gè)線性層函數(shù)newlind()

利用函數(shù)newlind()設(shè)計(jì)出的線性網(wǎng)絡(luò)已經(jīng)訓(xùn)練好,可直接使用,該函數(shù)調(diào)用格式為:net=newlind(X,T)式中X為R

Q維的Q組輸入向量;T為S

Q維的Q組目標(biāo)分類向量;net為生成的新線性神經(jīng)網(wǎng)絡(luò)。69例2-14利用newlind()函數(shù)建立一個(gè)線性網(wǎng)絡(luò),并對(duì)其進(jìn)行測(cè)試。解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.95007011.新建一個(gè)線性層函數(shù)newlin()

利用函數(shù)newlin()設(shè)計(jì)的線性網(wǎng)絡(luò),還需訓(xùn)練,該函數(shù)調(diào)用格式為:net=newlin(Xr,S,Id,lr)式中Xr為一個(gè)輸入向量,它決定了輸入向量的最小值和最大值的取值范圍;S為輸出向量的個(gè)數(shù),Id為輸出延時(shí)向量,默認(rèn)為0;lr為學(xué)習(xí)速率,默認(rèn)為0.01;net生成的線性神經(jīng)網(wǎng)絡(luò)。例建立一個(gè)線性網(wǎng)絡(luò)??衫靡韵旅?gt;>X=[123];S=1;net=newlin(minmax(X),S);71執(zhí)行結(jié)果可得圖2-23和圖2-24。

圖2-23系統(tǒng)輸入輸出曲線

圖2-24網(wǎng)絡(luò)預(yù)測(cè)輸出與系統(tǒng)輸出和誤差

例2-15

利用線性網(wǎng)絡(luò)進(jìn)行系統(tǒng)辨識(shí)。解MATLAB程序如下:ex2_1572執(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)值

例2-16

利用線性網(wǎng)絡(luò)進(jìn)行自適應(yīng)預(yù)測(cè)。解方法一:MATLAB程序如下:ex2_16_173

執(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_274

執(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_17752.1.4

BP神經(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ù)的名稱和基本功能。

76表2-4BP網(wǎng)絡(luò)的重要函數(shù)和功能

函數(shù)名功能tansig()雙曲正切S型(tan-sigmoid)傳輸函數(shù)purelin()線性(Purelin)傳輸函數(shù)logsig()對(duì)數(shù)S型(log-sigmoid)傳輸函數(shù)deltatan()Tansig神經(jīng)元的delta函數(shù)deltalin()Purelin神經(jīng)元的delta函數(shù)deltalog()Logsig神經(jīng)元的delta函數(shù)learnbp()BP學(xué)習(xí)規(guī)則learnbpm()含動(dòng)量規(guī)則的快速BP學(xué)習(xí)規(guī)則learnlm()Levenberg-Marguardt學(xué)習(xí)規(guī)則initff()對(duì)BP神經(jīng)網(wǎng)絡(luò)進(jìn)行初始化trainbp()利用BP算法訓(xùn)練前向網(wǎng)絡(luò)trainbpx()利用快速BP算法訓(xùn)練前向網(wǎng)絡(luò)trainlm()利用Levenberg-Marguardt規(guī)則訓(xùn)練前向網(wǎng)絡(luò)77函數(shù)名功能simuff()BP神經(jīng)網(wǎng)絡(luò)進(jìn)行仿真newff()生成一個(gè)前饋BP網(wǎng)絡(luò)newfftd()生成一個(gè)前饋輸入延時(shí)BP網(wǎng)絡(luò)newcf()生成一個(gè)前向?qū)盈BBP網(wǎng)絡(luò)nwlog()對(duì)Logsig神經(jīng)元產(chǎn)生Nguyen-Midrow隨機(jī)數(shù)sse()誤差平方和性能函數(shù)sumsqr()計(jì)算誤差平方和errsurf()計(jì)算誤差曲面plotes()繪制誤差曲面圖plotep()在誤差曲面圖上繪制權(quán)值和偏值的位置ploterr()繪制誤差平方和對(duì)訓(xùn)練次數(shù)的曲線barerr()繪制誤差的直方圖781.均方誤差性能函數(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)式中,E為誤差矩陣或向量(E=T-Y);T表示網(wǎng)絡(luò)的目標(biāo)向量;Y表示網(wǎng)絡(luò)的輸出向量;w為所有權(quán)值和偏值向量,可省略;pp為性能參數(shù),可省略;perf表示平均絕對(duì)誤差和。792.雙曲正切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)其中

函數(shù)tansig(N)返回網(wǎng)絡(luò)輸入向量N的輸出矩陣a;函數(shù)tansig(Z,b)用于矢量是成批處理且偏差存在的情況下,此時(shí)的偏差b和加權(quán)輸入矩陣Z是分開傳輸?shù)摹F钍噶縝加到Z中的每個(gè)矢量中形成網(wǎng)絡(luò)輸入矩陣,最后被返回。

80函數(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雙曲正切曲線

81如果BP網(wǎng)絡(luò)的最后一層是Sigmoid型神經(jīng)元,那么整個(gè)網(wǎng)絡(luò)的輸出就被限制在一個(gè)較小的范圍內(nèi);如果BP網(wǎng)絡(luò)的最后一層是Purelin型線性神經(jīng)元,那么整個(gè)網(wǎng)絡(luò)的輸出可以取任意值。

82

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)其中,X為網(wǎng)絡(luò)的輸入;Y為網(wǎng)絡(luò)的輸出;dY_dX為輸出對(duì)輸入的導(dǎo)數(shù)。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

834.正切S型(Tansig)神經(jīng)元的求導(dǎo)函數(shù)deltatan()

反向傳播誤差算法(BP)是利用誤差平方和對(duì)網(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)84其中

deltatan(y)可計(jì)算出這一層輸出y對(duì)本層輸出的導(dǎo)數(shù)dy;deltatan(y,e)可計(jì)算出Tansig輸出層的誤差導(dǎo)數(shù)dy,參數(shù)y和e分別為該層的輸出向量和誤差;deltatan(y,d2,w2)可計(jì)算出Tansig隱含層的誤差導(dǎo)數(shù)dy,參數(shù)y為正切S型層的輸出向量,d2和w2為下一層的

(delta)矢量和連接權(quán)值。

Logsig和Purelin神經(jīng)元的delta函數(shù)deltalog()和deltalin()的用法同上。855.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ò),直到每個(gè)隱含層的誤差導(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)式中

X為本層的輸入向量;delta為誤差導(dǎo)數(shù)

矢量;lr學(xué)習(xí)速率;dW為權(quán)值修正陣;dB為偏值修正向量。

866.含動(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ù)來調(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í),說明權(quán)值的變化僅由梯度決定。87當(dāng)動(dòng)量常數(shù)為0時(shí),說明權(quán)值的變化僅由梯度決定。當(dāng)動(dòng)量常數(shù)為1時(shí),說明新的權(quán)值變化僅等于上次權(quán)值變化,而忽略掉梯度項(xiàng),其數(shù)學(xué)表達(dá)式為

w(i,j)=D

w(i,j)+(1-D)

(i)x(j)。函數(shù)調(diào)用格式為[dW,dB]=learnbpm(X,delta,lr,D,dw,db)式中

X為本層的輸入向量;delta為誤差導(dǎo)數(shù)

矢量;lr自適應(yīng)學(xué)習(xí)速率;D為動(dòng)量常數(shù);dw為上一次權(quán)值修正陣;db為上一次偏值修正向量;dW為本次權(quán)值修正陣;dB為本次偏值修正向量。

887.Levenberg-Marguardt學(xué)習(xí)規(guī)則函數(shù)learnlm()

函數(shù)learnlm()采用了Levenberg-Marguardt優(yōu)化方法,從而使得學(xué)習(xí)時(shí)間更短。其缺點(diǎn)是,對(duì)于復(fù)雜的問題,該方法需要很大的存儲(chǔ)空間。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)式中

X為本層的輸入向量;delta為誤差導(dǎo)數(shù)

矢量;dW為權(quán)值修正陣;dB為偏值修正向量。

89例2-18

利用三層BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練加權(quán)系數(shù)。假設(shè)輸入矩陣為;希望的輸出矩陣為隱含層的激活函數(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.0178908.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ù)initff()對(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’)

91式中Xr為一個(gè)向量矩陣,它決定了輸入向量的最小值和最大值的取值范圍;S,Si為各層神經(jīng)元的個(gè)數(shù);Tf,Tfi為各層的傳輸函數(shù);W和Wi為初始化后各層的權(quán)值矩陣;B和Bi為初始化后各層的偏值向量。另外,輸出層神經(jīng)元的個(gè)數(shù)S或Si可以用對(duì)應(yīng)的目標(biāo)向量T來代替,此時(shí)輸出神經(jīng)元數(shù)根據(jù)T中的行數(shù)來設(shè)置。例如設(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(X,8,'tansig',5,'purelin')929.利用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)93式中

w和W(及wi和Wi)分別為訓(xùn)練前后的權(quán)值矩陣;b和B(及bi和Bi)分別為訓(xùn)練前后的偏值向量;te為實(shí)際訓(xùn)練次數(shù);tr為網(wǎng)絡(luò)訓(xùn)練平方和的行向量;Tf和Tfi為傳輸函數(shù);X為輸入向量;T為目標(biāo)向量;tp=[disp_freqmax_epocherr_goallr]是訓(xùn)練控制參數(shù),其作用是設(shè)定如何進(jìn)行訓(xùn)練,其中tp(1)顯示間隔次數(shù),默認(rèn)值為25;tp(2)最大循環(huán)次數(shù),默認(rèn)值為100;tp(3)目標(biāo)誤差平方和,默認(rèn)值為0.02;tp(4)學(xué)習(xí)速率,默認(rèn)值為0.01。

9410.利用快速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)95式中

w和W(及wi和Wi)分別為訓(xùn)練前后的權(quán)值矩陣;b和B(及bi和Bi)分別為訓(xùn)練前后的偏值向量;te為實(shí)際訓(xùn)練次數(shù);tr為網(wǎng)絡(luò)訓(xùn)練平方和的行向量;Tf和Tfi為傳輸函數(shù);X為輸入向量;T為目標(biāo)向量;tp是訓(xùn)練控制參數(shù),其作用是設(shè)定如何進(jìn)行訓(xùn)練,其中tp(1)顯示間隔次數(shù),默認(rèn)值為25;tp(2)最大循環(huán)次數(shù),默認(rèn)值為100;tp(3)目標(biāo)誤差平方和,默認(rèn)值為0.02;tp(4)學(xué)習(xí)速率,默認(rèn)值為0.01;tp(5)學(xué)習(xí)率增長(zhǎng)系數(shù),默認(rèn)值為1.05;tp(6)學(xué)習(xí)率減小系數(shù),默認(rèn)值為0.7;tp(7)動(dòng)量常數(shù),默認(rèn)值為0.9;tp(8)最大誤差率,默認(rèn)值為1.04。

9611.利用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)97式中w和W(及wi和Wi)分別為訓(xùn)練前后的權(quán)值矩陣;b和B(及bi和Bi)分別為訓(xùn)練前后的偏值向量;te為實(shí)際訓(xùn)練次數(shù);tr為網(wǎng)絡(luò)訓(xùn)練平方和的行向量;Tf和Tfi為傳輸函數(shù);X為輸入向量;T為目標(biāo)向量;tp是訓(xùn)練控制參數(shù),其作用是設(shè)定如何進(jìn)行訓(xùn)練,其中tp(1)顯示間隔次數(shù),默認(rèn)值為25;tp(2)最大循環(huán)次數(shù),默認(rèn)值為100;tp(3)目標(biāo)誤差,默認(rèn)值為0.02;tp(4)最小梯度,默認(rèn)值為0.001;tp(5)學(xué)習(xí)速率

的初始值,默認(rèn)值為0.001;tp(6)參數(shù)

的增加系數(shù),默認(rèn)值為10;tp(7)參數(shù)

的減小系數(shù),默認(rèn)值為0.1;tp(8)參數(shù)

的最大值,默認(rèn)值為10。函數(shù)trainlm()的訓(xùn)練速度最快,但它需要更大的存儲(chǔ)空間,trainbpx()的訓(xùn)練速度次之,trainbp()最慢。

9812.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',)式中

X為的輸入向量;w,wi為權(quán)值矩陣;b,bi為偏值;Tf,Tfi為傳輸函數(shù)。

99例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.9887100利用以上程序可得如下結(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.998710113.建立網(wǎng)絡(luò)函數(shù)newff()

利用newff()函數(shù)可建立一個(gè)感知機(jī)神經(jīng)網(wǎng)絡(luò)。其調(diào)用格式為:net=newff(Xr,[S1S2...SNl],{TF1TF2...TFNl},BTF,BLF,PF)式中

Xr為一個(gè)輸入向量,它決定了輸入向量的最小值和最大值的取值范圍;[S1S2...SNl]表示網(wǎng)絡(luò)隱含層和輸出層神經(jīng)元的個(gè)數(shù);{TF1TF2...TFNl}表示網(wǎng)絡(luò)隱含層和輸出層的傳輸函數(shù),缺省為'tansig';BTF表示網(wǎng)絡(luò)的反向訓(xùn)練函數(shù),缺省為'trainlm';BLF表示網(wǎng)絡(luò)的反向權(quán)值學(xué)習(xí)函數(shù),缺省為'learngdm';PF表示性能數(shù),缺省為'mse';net為生成的新BP神經(jīng)網(wǎng)絡(luò)。

102例2-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)值10314.建立網(wǎng)絡(luò)函數(shù)newfftd()

利用newfftd()函數(shù)可生成一個(gè)前饋輸入延時(shí)BP網(wǎng)絡(luò)。其調(diào)用格式為:net=newfftd(Xr,ID,[S1S2...SNl],{TF1TF2...TFNl},BTF,BLF,PF)式中,ID為延遲輸入向量;其他參數(shù)定義同函數(shù)newff()。104例2-21

利用三層BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練加權(quán)系數(shù)。假設(shè)輸入矩陣為;希望的輸出矩陣為隱含層的激活函數(shù)取S型傳輸函數(shù),輸出層的激活函數(shù)取線性傳輸函數(shù)。解根據(jù)BP學(xué)習(xí)算法的計(jì)算步驟,利用MATLAB的神經(jīng)網(wǎng)絡(luò)工具箱的有關(guān)函數(shù)編寫的程序如下。

ex2_21結(jié)果顯示:Y=1.00001.00001.00001.000010515.計(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ù)。

10616.繪制誤差曲面圖函數(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誤差曲面圖10717.在誤差曲面圖上繪制權(quán)值和偏值的位置函數(shù)plotep()

函數(shù)plotep()在已由函數(shù)plotes()產(chǎn)生的誤差性能表面圖

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論