




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第八章 人工神經(jīng)元網(wǎng)絡(luò)設(shè)計(jì)開發(fā)平臺(tái)神經(jīng)網(wǎng)絡(luò)在很多領(lǐng)域獲得了極其廣泛的應(yīng)用,解決了許多傳統(tǒng)方法難以解決的問題。這些領(lǐng)域包括自動(dòng)控制、計(jì)算機(jī)科學(xué)、機(jī)器學(xué)習(xí)、航空航天、心理學(xué)以及經(jīng)濟(jì)學(xué)等。雖然神經(jīng)網(wǎng)絡(luò)有著實(shí)用性和強(qiáng)大的解決問題的能力,但是它所涉及的一些算法在數(shù)學(xué)計(jì)算上往往比較復(fù)雜,過程也比較繁瑣。因此,采用計(jì)算機(jī)輔助計(jì)算便成了其必然的選擇。目前,與神經(jīng)網(wǎng)絡(luò)相關(guān)的開發(fā)平臺(tái)較多。本章首先對(duì)應(yīng)用廣泛的MATLAB神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)及其應(yīng)用做了詳細(xì)介紹。其次對(duì)MATLAB中基于Simulink的神經(jīng)網(wǎng)絡(luò)控制系統(tǒng)的設(shè)計(jì)過程做了簡(jiǎn)要介紹,并給出了一個(gè)控制系統(tǒng)實(shí)例。最后對(duì)其他幾種專用神經(jīng)網(wǎng)絡(luò)開發(fā)環(huán)境及其應(yīng)用作簡(jiǎn)單
2、介紹。8.1 MATLAB神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)及其應(yīng)用MATLAB神經(jīng)網(wǎng)絡(luò)工具箱構(gòu)造了典型神經(jīng)網(wǎng)絡(luò)的轉(zhuǎn)移函數(shù),編寫了各種網(wǎng)絡(luò)設(shè)計(jì)和訓(xùn)練的子程序,并提供了豐富的演示實(shí)例。隨著版本的提高,其中的工具箱函數(shù)也越來(lái)越豐富。它給工程人員進(jìn)行神經(jīng)網(wǎng)絡(luò)分析和設(shè)計(jì)帶來(lái)了極大的便利。本節(jié)將介紹現(xiàn)有的神經(jīng)網(wǎng)絡(luò)模型的工具箱函數(shù)的功能、使用格式及方法。并提供各種實(shí)例,使讀者了解工具箱各種網(wǎng)絡(luò)函數(shù)使用方法。8.1.1 感知器神經(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ù)幫助。表8.1
3、列出了感知器神經(jīng)網(wǎng)絡(luò)的主要函數(shù)。表8.1 感知器神經(jīng)網(wǎng)絡(luò)函數(shù)類型函數(shù)名功能網(wǎng)絡(luò)設(shè)計(jì)函數(shù)newp()建立一個(gè)感知器轉(zhuǎn)移函數(shù)hardlim()硬限幅轉(zhuǎn)移函數(shù)hardlims()對(duì)稱硬限幅轉(zhuǎn)移函數(shù)初始化函數(shù)initp()初始化感知器神經(jīng)網(wǎng)絡(luò)init()初始化神經(jīng)網(wǎng)絡(luò)訓(xùn)練函數(shù)trainp()訓(xùn)練感知器神經(jīng)網(wǎng)絡(luò)trainpn()訓(xùn)練神經(jīng)網(wǎng)絡(luò)adapt()網(wǎng)絡(luò)自適應(yīng)訓(xùn)練函數(shù)學(xué)習(xí)函數(shù)learnp()感知器學(xué)習(xí)函數(shù)learnpn()標(biāo)準(zhǔn)感知器學(xué)習(xí)函數(shù)仿真及分析函數(shù)simup()對(duì)感知器神經(jīng)網(wǎng)絡(luò)進(jìn)行仿真sim()對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行仿真mae()平均誤差性能函數(shù)繪圖函數(shù)plotpv()在坐標(biāo)圖上繪制樣本點(diǎn)plotpc
4、()在坐標(biāo)圖上繪制分類線1網(wǎng)絡(luò)設(shè)計(jì)函數(shù)感知器神經(jīng)網(wǎng)絡(luò)新建函數(shù)newp函數(shù)newp用于建立感知器神經(jīng)網(wǎng)絡(luò)。函數(shù)的使用格式為net=newp(P,S,Tf,Lf)式中,P為一個(gè)輸入向量矩陣,它決定了輸入向量的最大值和最小值的取值范圍;S為輸出神經(jīng)元的個(gè)數(shù);Tf為網(wǎng)絡(luò)的轉(zhuǎn)移函數(shù),缺省值為hardlim;Lf為網(wǎng)絡(luò)的學(xué)習(xí)函數(shù),缺省值為learnp;net為生成的感知器神經(jīng)網(wǎng)絡(luò)。2轉(zhuǎn)移函數(shù)(1)硬限幅轉(zhuǎn)移函數(shù)hardlim函數(shù)hardlim()為轉(zhuǎn)移函數(shù),用于根據(jù)網(wǎng)絡(luò)輸入得到相應(yīng)的輸出。如果網(wǎng)絡(luò)的輸入達(dá)到門限,則硬限幅轉(zhuǎn)移函數(shù)輸出為1;否則,硬限幅轉(zhuǎn)移函數(shù)輸出為0。函數(shù)的使用格式為a=hardlim(P
5、)式中,函數(shù)hardlim(P)為返回網(wǎng)絡(luò)輸入向量P的輸出矩陣a,一般情況下,輸出矩陣a可直接用網(wǎng)絡(luò)輸入向量P代替,即輸出a等于輸入P。(2)對(duì)稱硬限幅轉(zhuǎn)移函數(shù)hardlims函數(shù)hardlims()為轉(zhuǎn)移函數(shù),用于根據(jù)網(wǎng)絡(luò)輸入得到相應(yīng)的輸出。如果網(wǎng)絡(luò)的輸入達(dá)到門限,則硬限幅轉(zhuǎn)移函數(shù)輸出為1;否則,硬限幅轉(zhuǎn)移函數(shù)輸出為-1。函數(shù)的使用格式和函數(shù)hardlim相同。3初始化函數(shù)(1)感知器神經(jīng)網(wǎng)絡(luò)初始化函數(shù)initp函數(shù)initp()用于建立一個(gè)單層(一個(gè)輸入層和一個(gè)輸出層)感知器神經(jīng)網(wǎng)絡(luò)。函數(shù)的使用格式為W,b=init(R,S)W,b=initp(P,T)式中,R為輸入個(gè)數(shù);S為輸出神經(jīng)元個(gè)
6、數(shù);W和b分別為網(wǎng)絡(luò)的初始權(quán)值和閾值;P為輸入向量矩陣;T為目標(biāo)向量。另外,P和S可以用對(duì)應(yīng)的輸入向量矩陣和目標(biāo)向量來(lái)代替。(2)神經(jīng)網(wǎng)絡(luò)初始化函數(shù)init函數(shù)init()用于對(duì)一個(gè)已存在的神經(jīng)網(wǎng)絡(luò)進(jìn)行初始化修正。初始化后,網(wǎng)絡(luò)的權(quán)值和閾值得到修正。函數(shù)的使用格式為net=init(net0)式中,net1為初始化前的神經(jīng)網(wǎng)絡(luò);net為初始化后的神經(jīng)網(wǎng)絡(luò)。4訓(xùn)練函數(shù)(1)感知器網(wǎng)絡(luò)訓(xùn)練函數(shù)trainp函數(shù)trainp()用于訓(xùn)練新建的感知器網(wǎng)絡(luò),并通過訓(xùn)練確定網(wǎng)絡(luò)的權(quán)值和閾值。函數(shù)的使用格式為W1,b1,epochs,errors=trainpW,b,P,T,tp式中,W和W1分別為訓(xùn)練前后的
7、網(wǎng)絡(luò)權(quán)值;b和b1分別為訓(xùn)練前后的閾值;P為輸入向量矩陣;T為網(wǎng)絡(luò)的目標(biāo)向量;tp為訓(xùn)練控制參數(shù),其中,tp(1)為顯示間隔次數(shù),缺省值為1;tp(2)為最大循環(huán)次數(shù),缺省值為100。(2)神經(jīng)網(wǎng)絡(luò)訓(xùn)練函數(shù)train函數(shù)train()是一種通用的訓(xùn)練函數(shù),用于訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò)。它將一組輸入向量重復(fù)應(yīng)用到一個(gè)網(wǎng)絡(luò)上,每次都更新網(wǎng)絡(luò),直到達(dá)到某種準(zhǔn)則停止訓(xùn)練。停止準(zhǔn)則可能是最大的學(xué)習(xí)步數(shù)、最小的誤差梯度或誤差目標(biāo)。函數(shù)的使用格式為net1,tr=train(net,P,T,Pi,Ai)式中,net和net1分別為訓(xùn)練前后的網(wǎng)絡(luò);P為輸入向量矩陣;T為目標(biāo)向量;Pi為初始輸入延時(shí),缺省值為0;Ai為
8、初始的層延時(shí),缺省值為0。(3)網(wǎng)絡(luò)自適應(yīng)訓(xùn)練函數(shù)adapt函數(shù)adapt()也是一種訓(xùn)練神經(jīng)網(wǎng)絡(luò)的通用訓(xùn)練函數(shù)。自適應(yīng)函數(shù)在每一個(gè)輸入時(shí)間階段更新網(wǎng)絡(luò)時(shí)仿真網(wǎng)絡(luò),且在進(jìn)行下一個(gè)輸入的仿真前完成。函數(shù)的使用格式為net1,Y,E,Pf,Af=adapt(net,P,T,Pi,Ai)式中,net和net1為訓(xùn)練前后的網(wǎng)絡(luò);P為輸入向量矩陣;T為目標(biāo)向量;Pi為初始輸入延時(shí),缺省值為0;Ai為初始的層延時(shí),缺省值為0;E為網(wǎng)絡(luò)的誤差;Pf為最終輸入延時(shí);Af為最終的層延時(shí)。例8.1 試設(shè)計(jì)一個(gè)感知器神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)與門的功能。解:程序如下:P=0 0 1 1;0 1 0 1; %提供輸入矢量T=0 0
9、 0 1; %提供目標(biāo)向量net=newp(0 1;0 1,1) %新建感知器網(wǎng)絡(luò)net.adaptParam.passes=10; %設(shè)定最大訓(xùn)練次數(shù)為10net=adapt(net,P,T); %進(jìn)行網(wǎng)絡(luò)自適應(yīng)訓(xùn)練Y=sim(net,P) %用仿真函數(shù)驗(yàn)證運(yùn)行結(jié)果為:Y= 0 0 0 15學(xué)習(xí)函數(shù)(1)感知器學(xué)習(xí)函數(shù)learnp函數(shù)learnp()是一種學(xué)習(xí)函數(shù),它通過感知器神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)規(guī)則來(lái)調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值使網(wǎng)絡(luò)的平均絕對(duì)誤差性能最小,以便對(duì)輸入矢量正確分類。函數(shù)的使用格式為dW,db=learnp(P,E)式中,P為輸入向量矩陣;E為誤差向量(E=T-Y,T為網(wǎng)絡(luò)的目標(biāo)向量,Y為網(wǎng)
10、絡(luò)的輸出向量);dW和db分別為權(quán)值變化陣和閾值變化陣。(2)標(biāo)準(zhǔn)化感知器學(xué)習(xí)函數(shù)learnpn函數(shù)learnpn()通過標(biāo)準(zhǔn)化感知器神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)規(guī)則來(lái)調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值使網(wǎng)絡(luò)的平均絕對(duì)誤差性能最小。標(biāo)準(zhǔn)化感知器神經(jīng)網(wǎng)絡(luò)是為了消除學(xué)習(xí)訓(xùn)練時(shí)間對(duì)奇異樣本的敏感性而在感知器神經(jīng)網(wǎng)絡(luò)基礎(chǔ)上提出的一種學(xué)習(xí)規(guī)則,它是對(duì)感知器神經(jīng)網(wǎng)絡(luò)的改進(jìn)。函數(shù)的使用格式和函數(shù)learnp相同。6仿真及分析函數(shù)(1)感知器神經(jīng)網(wǎng)絡(luò)的仿真函數(shù)simup函數(shù)simup()用于仿真感知器神經(jīng)網(wǎng)絡(luò),以測(cè)試其性能。感知器的一系列硬特性神經(jīng)元組成,運(yùn)行速度很快,對(duì)簡(jiǎn)單的分類很有用。函數(shù)的使用格式為Y=simup(P,W,b)式中,
11、P為輸入矢量矩陣;W和b分別為網(wǎng)絡(luò)的權(quán)值和閾值;Y為網(wǎng)絡(luò)的輸出向量。(2)網(wǎng)絡(luò)仿真函數(shù)sim函數(shù)sim()為通用網(wǎng)絡(luò)仿真函數(shù),用于測(cè)試一個(gè)神經(jīng)網(wǎng)絡(luò)的性能。函數(shù)使用格式為Y,Pf,Af=sim(net,P,Pi,Ai)式中,net為待測(cè)試的網(wǎng)絡(luò);P為輸入向量矩陣;Pi為初始輸入延時(shí),缺省值為0;Ai為初始的層延時(shí),缺省值為0;Y為輸出向量矩陣;Pf為最終輸入延時(shí);Af為最終的層延時(shí)。(3)平均絕對(duì)誤差性能函數(shù)mae函數(shù)mae()用于計(jì)算網(wǎng)絡(luò)的平均絕對(duì)誤差,以測(cè)試網(wǎng)絡(luò)的性能。函數(shù)的使用格式為perf=mae(E,W,pp)式中,E=誤差向量(E=T-Y,T為網(wǎng)絡(luò)的目標(biāo)向量,Y為網(wǎng)絡(luò)的輸出向量);W
12、為權(quán)值向量和閾值向量(可忽略);pp為性能參數(shù)(可忽略);perf為平均絕對(duì)誤差和。例8.2 建立一個(gè)單輸入、單輸出的感知器,輸入范圍是-8 8,下面給出網(wǎng)絡(luò)的輸入和目標(biāo)向量:P=-8 -4 0 4 8; T=0 0 0 1 1;求出網(wǎng)絡(luò)平均絕對(duì)誤差。解:程序如下:net=newp(-8 8,1); %建立感知器網(wǎng)絡(luò)P=-8 -4 0 4 8; %提供輸入向量T=0 0 0 1 1; %提供目標(biāo)向量A=sim(net,P) %用仿真函數(shù)測(cè)試E=T-Aperf=mae(E) %計(jì)算平均絕對(duì)誤差運(yùn)行結(jié)果為:A = 1 1 1 1 1E = -1 -1 -1 0 0perf = 0.60007繪圖函
13、數(shù)(1)樣本點(diǎn)繪制函數(shù)plotpv函數(shù)plotpv用于在坐標(biāo)圖上繪制出已知給定的樣本點(diǎn)及其類別,不同的類別使用不同的符號(hào)。函數(shù)的使用格式為plotpv(P,T)式中,P定義了n個(gè)2或3維的樣本,是一個(gè)2×n為或3×n維的矩陣;T為樣本點(diǎn)的類別,是一個(gè)n維向量。如果T只含一元矢量,則目標(biāo)為0的輸入矢量畫為“o”;目標(biāo)為1時(shí)的輸入矢量畫為“+”。如果T含二元矢量,則輸入矢量對(duì)應(yīng)如下:0 0用“o”;0 1用“+”;1 0用“*”;1 1用“×”。(2)感知器分類線函數(shù)plotpc函數(shù)plotpc()用于對(duì)含權(quán)矩陣W和閾值矢量b的硬特性神經(jīng)元的兩個(gè)或三個(gè)輸入畫一個(gè)分類線
14、。函數(shù)的使用格式為h=plotpc(W,b)h=plotpc(W,b,h)式中,W為網(wǎng)絡(luò)的權(quán)值矩陣;b為網(wǎng)絡(luò)的閾值矩陣;h為返回的句柄。其中plotpc(W,b,h)包含了前一次調(diào)用后返回的句柄,它在畫新分類線之前,會(huì)刪除舊線。例8.3 給定網(wǎng)絡(luò)輸入和目標(biāo)向量:P=-1 -0.5 0.4 -0.2;-0.5 0.4 -0.5 0.9; T=1 1 0 0;建立一個(gè)雙輸入、單輸出的神經(jīng)元感知器,輸入范圍是-1 1,并使用分類線函數(shù)分類驗(yàn)證網(wǎng)絡(luò)的正確性。解:程序如下:P=-1 -0.5 0.4 -0.2;-0.5 0.4 -0.5 0.9;T=1 1 0 0;W,b=initp(P,T);plot
15、pv(P,T);W,b,epochs,errors=trainp(W,b,P,T,-1);plotpc(W,b);運(yùn)行結(jié)果如圖8.1所示。圖8.1 樣本分類曲線圖由圖可見網(wǎng)絡(luò)是正確的。8.1.2 線性神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)線性神經(jīng)網(wǎng)絡(luò)不同于感知器神經(jīng)網(wǎng)絡(luò),其中每個(gè)神經(jīng)元的轉(zhuǎn)移函數(shù)是一個(gè)線性轉(zhuǎn)移函數(shù),因此線性神經(jīng)網(wǎng)絡(luò)的輸出可以取任意值,而不像感知神經(jīng)網(wǎng)絡(luò)的輸出只能是0或1。線性神經(jīng)網(wǎng)絡(luò)采可用Window-Hoff或BP準(zhǔn)則來(lái)調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值。MATLAB 神經(jīng)網(wǎng)絡(luò)工具箱中提供了大量的與線性網(wǎng)絡(luò)相關(guān)的工具箱函數(shù)。在MATLAB 工作空間的命令行中輸入“help linnet”,便可得到與線性網(wǎng)絡(luò)相
16、關(guān)的函數(shù)幫助。表8.2 列出了線性神經(jīng)網(wǎng)絡(luò)的主要函數(shù)和基本功能。表8.2 線性神經(jīng)網(wǎng)絡(luò)的主要函數(shù)和基本功能類型函數(shù)名功能網(wǎng)絡(luò)設(shè)計(jì)函數(shù)newlind()設(shè)計(jì)一個(gè)線性層newlin()新建一個(gè)線性層solvelin()設(shè)計(jì)一個(gè)線性神經(jīng)網(wǎng)絡(luò)轉(zhuǎn)移函數(shù)purelin()線性轉(zhuǎn)移函數(shù)初始化函數(shù)initlin()線性神經(jīng)的初始化函數(shù)initwb()神經(jīng)網(wǎng)絡(luò)某一層的權(quán)值和閾值初始化函數(shù)initlay()神經(jīng)網(wǎng)絡(luò)某一層的初始化函數(shù)initzero()將權(quán)值設(shè)置為零的初始化函數(shù)訓(xùn)練函數(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)練trainwb()神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾
17、值訓(xùn)練函數(shù)adaptwb()神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值自適應(yīng)函數(shù)學(xué)習(xí)函數(shù)learnwh()Widrow-Hoff的學(xué)習(xí)函數(shù)仿真及分析函數(shù)sse()誤差平方和性能函數(shù)simulin()對(duì)線性神經(jīng)網(wǎng)絡(luò)進(jìn)行仿真maxlinlr()計(jì)算線性層的最大學(xué)習(xí)速率加權(quán)相關(guān)函數(shù)dotprod()權(quán)值點(diǎn)積函數(shù)netprod()網(wǎng)絡(luò)輸入的積函數(shù)normprod()規(guī)范點(diǎn)積權(quán)值函數(shù)1網(wǎng)絡(luò)設(shè)計(jì)函數(shù)(1)線性層設(shè)計(jì)函數(shù)newlind函數(shù)newlind()可以設(shè)計(jì)一個(gè)訓(xùn)練好的線性網(wǎng)絡(luò)。函數(shù)的使用格式為net=newlind(P,T)式中,P為輸入向量;T為目標(biāo)向量;net為新的線性神經(jīng)網(wǎng)絡(luò)。(2)線性層新建函數(shù)newlin函數(shù)n
18、ewlin()可以設(shè)計(jì)一個(gè)新的線性網(wǎng)絡(luò),但需要訓(xùn)練。函數(shù)的使用格式為net=newlin(P,S,Id,lr)式中,P為輸入向量,它決定了輸入向量的最小值和最大值的取值范圍;S為輸出向量的個(gè)數(shù);Id為輸出延時(shí)向量,默認(rèn)值為0;lr為學(xué)習(xí)速率,默認(rèn)值為0.01;net為生成的線性神經(jīng)網(wǎng)絡(luò)。(3)線性神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)函數(shù)solvelin與大多數(shù)其他神經(jīng)網(wǎng)絡(luò)不同的是,線性神經(jīng)網(wǎng)絡(luò)只要知道輸入矢量和目標(biāo)矢量,就可以對(duì)其進(jìn)行設(shè)計(jì)。使用solvelin()就可以不經(jīng)過訓(xùn)練,直接找出網(wǎng)絡(luò)的權(quán)值和閾值,使得網(wǎng)絡(luò)的誤差和平方和最小。函數(shù)的使用格式為W,b=solvelin(P,T)式中,P為輸入向量矩陣;T為目標(biāo)向
19、量;W為網(wǎng)絡(luò)的初始權(quán)值;b為網(wǎng)絡(luò)的初始閾值。當(dāng)網(wǎng)絡(luò)不具有閾值時(shí),W=solvelin(P,T)。例8.4 在輸入P、輸出目標(biāo)T和初始輸入延遲給定的情況下,利用函數(shù)newlind創(chuàng)建一個(gè)線性層,并對(duì)其進(jìn)行仿真。程序如下:P=1 3 5 2 3 4;T=2.0 6.2 4.4 5.7 7.1 8.2; %給定輸入矩陣和目標(biāo)值Pi=2 5; %給定兩個(gè)初始輸入延遲net=newlind(P,T,Pi); %新建線性層Y=sim(net,P,Pi) %仿真顯示結(jié)果為:Y = 2.3505 6.3883 5.9990 5.7087 7.4418 5.71172轉(zhuǎn)移函數(shù)(1)線性轉(zhuǎn)移函數(shù)purelin神經(jīng)
20、元最簡(jiǎn)單的轉(zhuǎn)移函數(shù)是簡(jiǎn)單地從神經(jīng)元輸入到輸出的線性轉(zhuǎn)移函數(shù),輸出僅僅被神經(jīng)元所附加的閾值所修正。線性轉(zhuǎn)移函數(shù)常用于由Window-Hoff或BP準(zhǔn)則來(lái)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)中。該函數(shù)的調(diào)用格式為a=purelin(P)式中,函數(shù)purelin(P)為返回網(wǎng)絡(luò)輸入向量P的輸出矩陣a,一般情況下,輸出矩陣a可直接用網(wǎng)絡(luò)輸入向量P代替,即輸出a等于輸入P。 例8.5利用如下命令可得到如圖8.2所示的線性轉(zhuǎn)移函數(shù)。t=3:0.1:4;b=0;a=purelin(t,b);plot(t,a) 圖8.2 線性轉(zhuǎn)移函數(shù)3初始化函數(shù)(1)初始化函數(shù)initlin利用initlin()函數(shù)可建立一個(gè)單輸入單輸出線性神經(jīng)
21、網(wǎng)絡(luò)。函數(shù)的使用格式為W,b=initlin(R,S)W,b=initlin(P,T)式中,R為輸入個(gè)數(shù);S為輸出神經(jīng)元數(shù);W為網(wǎng)絡(luò)的初始權(quán)值;b為網(wǎng)絡(luò)的初始閾值。另外,P和S可以用對(duì)應(yīng)得輸入向量矩陣和目標(biāo)向量來(lái)代替。(2)權(quán)值和閾值初始化函數(shù)initwb函數(shù)initwb()用于對(duì)一個(gè)已存在的神經(jīng)網(wǎng)絡(luò)某一層的權(quán)值和閾值進(jìn)行初始化。函數(shù)的使用格式為net=initwb(net0,i)式中,net0為初始化前的網(wǎng)絡(luò);i為第i層;net為第i層的權(quán)值和閾值初始化后的網(wǎng)絡(luò)。(3)層初始化函數(shù)initlay函數(shù)initlay()用于對(duì)一個(gè)已存在的神經(jīng)網(wǎng)絡(luò)的某一層進(jìn)行初始化。函數(shù)的使用格式為net=ini
22、tlay(net0)式中,net0為初始化前的網(wǎng)絡(luò);4訓(xùn)練函數(shù)(1)線性神經(jīng)網(wǎng)絡(luò)訓(xùn)練函數(shù)trainwh函數(shù)trainwh()利用Window-Hoff學(xué)習(xí)規(guī)則對(duì)線性層的權(quán)值進(jìn)行訓(xùn)練,根據(jù)產(chǎn)生的誤差矢量調(diào)整權(quán)值和誤差。函數(shù)的使用格式為W,b,ep,er=trainwh(W0,b0,P,T,tp)式中W0和W分別為網(wǎng)絡(luò)訓(xùn)練前后的權(quán)值;b0和b分別為網(wǎng)絡(luò)訓(xùn)練前后的閾值;P為輸入向量矩陣;T為目標(biāo)向量;tp包含訓(xùn)練所用到的四個(gè)控制參數(shù),分別決定了訓(xùn)練過程的顯示頻率、最大的訓(xùn)練次數(shù),誤差指標(biāo)和學(xué)習(xí)率。ep為訓(xùn)練步數(shù);er為訓(xùn)練后的網(wǎng)絡(luò)誤差。(2)線性神經(jīng)網(wǎng)絡(luò)自適應(yīng)訓(xùn)練函數(shù)adaptwh函數(shù)adaptwh
23、()利用Window-Hoff學(xué)習(xí)規(guī)則對(duì)線性層的權(quán)值進(jìn)行自適應(yīng)調(diào)節(jié),每次迭代中通過修改自適應(yīng)網(wǎng)絡(luò)層的權(quán)值、閾值和輸出矢量適應(yīng)環(huán)境的變化。函數(shù)的使用格式為Y,E,W,b=adaptwh(W0,b0,P,T,lr)式中,W0和W分別為自適應(yīng)訓(xùn)練前后的權(quán)值;b0和b分別為自適應(yīng)訓(xùn)練前后的閾值;P為輸入向量矩陣;T為目標(biāo)向量;lr為學(xué)習(xí)速率;Y為輸出向量;E為網(wǎng)絡(luò)誤差。5學(xué)習(xí)函數(shù)(1)線性神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)函數(shù)learnwh當(dāng)函數(shù)solvelin()設(shè)計(jì)的線性神經(jīng)網(wǎng)絡(luò)不能使網(wǎng)絡(luò)誤差平方和性能最小時(shí),可采用函數(shù)learnwh()和trainwh()函數(shù)來(lái)調(diào)整。函數(shù)learnwh()使用格式為dW,db=lea
24、rnwh(P,E,lr)式中,P為輸入向量矩陣;E為誤差向量(E=T-Y,T為目標(biāo)向量,Y為輸出向量);dW為權(quán)值變化陣;db閾值變化陣;lr為學(xué)習(xí)速率(0<lr1)。6仿真及分析函數(shù)(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)式中,E為誤差矩陣或向量(E=T-Y);T表示網(wǎng)絡(luò)的目標(biāo)向量;Y表示網(wǎng)絡(luò)的輸出向量;w為所有權(quán)值和閾值向量(可忽略);pp為性能參數(shù)(可忽略);perf為誤差平方和。(2)線性神經(jīng)網(wǎng)絡(luò)的仿真函數(shù)simulinsimulin()是一個(gè)仿真函數(shù),可用來(lái)檢驗(yàn)一個(gè)
25、線性神經(jīng)網(wǎng)絡(luò)的性能。函數(shù)的使用格式為a=simulin(P,W,b)式中,P為輸入向量矩陣;W為網(wǎng)絡(luò)的權(quán)值;b為網(wǎng)絡(luò)的閾值;a為網(wǎng)絡(luò)的輸出向量。(3)線性神經(jīng)網(wǎng)絡(luò)最大學(xué)習(xí)速率maxlinlr函數(shù)manlinlr()用于計(jì)算采用Window-Hoff學(xué)習(xí)規(guī)則訓(xùn)練的線性網(wǎng)絡(luò)的最大學(xué)習(xí)速率。函數(shù)使用格式為lr=maxlinlr(P,b)式中,P為輸入向量;b為網(wǎng)絡(luò)閾值(不具有閾值時(shí),可省略);lr為學(xué)習(xí)速率。在訓(xùn)練時(shí),學(xué)習(xí)速率不宜超過最大學(xué)習(xí)速率,過大則使學(xué)習(xí)不穩(wěn)定。7加權(quán)相關(guān)函數(shù)(1)權(quán)值點(diǎn)積函數(shù)dotprod函數(shù)dotprod()用于計(jì)算輸入向量和權(quán)值的點(diǎn)積可得到加權(quán)輸入矩陣。函數(shù)的dotpro
26、d()的使用格式為Z=dotprod(W,P)式中,W為權(quán)值矩陣;P為輸入向量;Z為權(quán)值矩陣和權(quán)值的點(diǎn)積。(2)網(wǎng)絡(luò)輸入積函數(shù)netprod函數(shù)netprod()是根據(jù)加權(quán)輸入和閾值計(jì)算一層的網(wǎng)絡(luò)輸出。函數(shù)的使用格式為Z=netprod(Z1,Z2,)式中,Zi為加權(quán)輸入矩陣。例8.6 利用線性網(wǎng)絡(luò)進(jìn)行系統(tǒng)辨識(shí)。程序如下:time=0:0.02:4;P=sin(sin(time.*time*10); %定義輸入信號(hào)T=1.5*P+0.7; %定義系統(tǒng)變換函數(shù)figure;plot(time,P,time,T,'-'); %繪制輸入與輸出曲線Q=length(T);X1=zero
27、s(3,Q);X1(1,1:Q)=T(1,1:Q); %延時(shí)信號(hào)一定步長(zhǎng)得到網(wǎng)絡(luò)輸入X1(2,2:Q)=T(1,1:(Q-1);X1(3,3:Q)=T(1,1:(Q-2); w,b=solvelin(X1,T); %設(shè)計(jì)網(wǎng)絡(luò)y=simulin(X1,w,b); %仿真網(wǎng)絡(luò)figure;plot(time,y,'+',time,T,'-',time,T-y,'x'); %繪制網(wǎng)絡(luò)預(yù)測(cè)輸出、系統(tǒng)輸出及誤差顯示結(jié)果如下:圖8.3 系統(tǒng)輸入、輸出曲線圖8.4 網(wǎng)絡(luò)預(yù)測(cè)輸出、系統(tǒng)輸出及誤差8.1.3 BP神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)MATLAB 神經(jīng)網(wǎng)絡(luò)工具箱中提供
28、了大量的與BP網(wǎng)絡(luò)相關(guān)的工具箱函數(shù)。在MATLAB 工作空間的命令行中輸入“help backprop”,便可得到與BP神經(jīng)網(wǎng)絡(luò)相關(guān)的函數(shù)幫助。表8.3 列出了BP神經(jīng)網(wǎng)絡(luò)的重要函數(shù)和基本功能。表8.3 BP神經(jīng)網(wǎng)絡(luò)的重要函數(shù)和基本功能類型函數(shù)名功能網(wǎng)絡(luò)設(shè)計(jì)函數(shù)newff()新建前饋BP網(wǎng)絡(luò)函數(shù)newfftd()新建前饋輸入延時(shí)BP網(wǎng)絡(luò)函數(shù)newcf()新建前向?qū)盈BBP網(wǎng)絡(luò)函數(shù)轉(zhuǎn)移函數(shù)tagsig()雙曲正切S型轉(zhuǎn)移函數(shù)purelin()線性轉(zhuǎn)移函數(shù)logsig()對(duì)數(shù)S型轉(zhuǎn)移函數(shù)初始化函數(shù)initff()BP神經(jīng)網(wǎng)絡(luò)初始化函數(shù)訓(xùn)練函數(shù)trainbp()BP算法前向網(wǎng)絡(luò)訓(xùn)練函數(shù)trainbpx
29、()快速BP算法前向網(wǎng)絡(luò)訓(xùn)練函數(shù)trainlm()Levenberg-Marguardt規(guī)則前向網(wǎng)絡(luò)訓(xùn)練函數(shù)學(xué)習(xí)函數(shù)learnbp()BP學(xué)習(xí)函數(shù)learnbpm()含動(dòng)量規(guī)則的快速BP學(xué)習(xí)規(guī)則learnlm()Levenberg-Marguardt學(xué)習(xí)規(guī)則求導(dǎo)函數(shù)deltatan()Tansig神經(jīng)元的delta函數(shù)delatlin()Purelin神經(jīng)元的delta函數(shù)deltalog()Logsig神經(jīng)元的delta函數(shù)仿真及分析函數(shù)simuff()BP神經(jīng)網(wǎng)絡(luò)仿真函數(shù)mse()均方誤差性能函數(shù)sumsqr()計(jì)算誤差平方和errsurf()計(jì)算誤差曲面繪圖函數(shù)plotes()繪制誤差曲
30、面圖plotep()在誤差曲面圖上繪制權(quán)值和閾值的位置ploterr()繪制誤差平方和對(duì)訓(xùn)練次數(shù)的曲線barerr()繪制誤差的直方圖其他nwlog()對(duì)Logsig神經(jīng)元產(chǎn)生Nguyen-Midrow隨機(jī)數(shù)1網(wǎng)絡(luò)設(shè)計(jì)函數(shù)(1)網(wǎng)絡(luò)建立函數(shù)newff函數(shù)newff()用于建立一個(gè)前向神經(jīng)網(wǎng)絡(luò)。使用格式為net=newff(P,S1 S2 Sn,T1 T2 Tn,BTF,BLF,PF)式中,P為輸入向量,它決定了輸入向量的最小值和最大值的取值范圍;S1 S2 Sn為網(wǎng)絡(luò)隱含層和輸出層神經(jīng)元的個(gè)數(shù);T1 T2 Tn為網(wǎng)絡(luò)隱含層和輸出層的轉(zhuǎn)移函數(shù),默認(rèn)為tansig;BTF為網(wǎng)絡(luò)的反向訓(xùn)練函數(shù),默認(rèn)
31、為trainlm;BLF為網(wǎng)絡(luò)的反向權(quán)值學(xué)習(xí)函數(shù),默認(rèn)為learngdm;PF為性能函數(shù),默認(rèn)為mse;net為新生成的BP神經(jīng)網(wǎng)絡(luò)。2轉(zhuǎn)移函數(shù)(1)雙曲正切S型轉(zhuǎn)移函數(shù)tansig雙曲正切S型(Sigmoid)函數(shù)是一種轉(zhuǎn)移函數(shù),可把神經(jīng)元的輸入范圍從(-,+)映射到(-1,+1)。函數(shù)的使用格式為a=tansig(P)式中,P為網(wǎng)絡(luò)的輸入向量;a為返回的輸出矩陣。函數(shù)purelin()在8.2中已經(jīng)介紹,此處不再贅述。函數(shù)logsig()和tansig()的用法相同,不同的是函數(shù)logsig()將輸入映射到(,)。3初始化函數(shù)(1)前向網(wǎng)絡(luò)初始化函數(shù)initff函數(shù)initff()用于在知
32、道網(wǎng)絡(luò)的輸入取值范圍、各層的神經(jīng)元個(gè)數(shù)及轉(zhuǎn)移函數(shù)的情況下,對(duì)BP網(wǎng)絡(luò)進(jìn)行初始化。它可對(duì)最多三層神經(jīng)網(wǎng)絡(luò)進(jìn)行初始化,可得到每層的權(quán)值和閾值。函數(shù)的使用格式為W,b=initff(P,S,f)W1,b1,W2,b2=initff(P,S1,f1,S2,f2)W1,b1,W2,b2,W3,b3=initff(P,S1,f1,S2,f2,S3,f3)式中,P為一個(gè)向量矩陣,它決定了輸入向量的最小值和最大值的取值范圍;S、Si為各層神經(jīng)元的個(gè)數(shù);f、fi為各層的轉(zhuǎn)移函數(shù);W、Wi為初始化后各層的權(quán)值矩陣;b、bi為初始化后各層的閾值向量。值得注意:P的每一行中必須包含網(wǎng)絡(luò)期望輸入的最大值和最小值,這樣才
33、能合理地初始化權(quán)值和閾值。另外,initf也可用目標(biāo)向量T代替網(wǎng)絡(luò)輸出層的神經(jīng)元數(shù),這時(shí)輸出層的神經(jīng)元數(shù)目就為T的函數(shù)。例8.7 考慮一兩層BP網(wǎng)絡(luò),網(wǎng)絡(luò)的輸入層由2個(gè)神經(jīng)元組成,隱含層由5個(gè)神經(jīng)元組成,輸出層由3個(gè)神經(jīng)元組成,兩輸入矢量P定義了輸入到網(wǎng)絡(luò)的最大值和最小值:P=0 10;5 5。隱層和輸出層的神經(jīng)元轉(zhuǎn)移函數(shù)分別為“正切S型函數(shù)”和“線性函數(shù)”,則其網(wǎng)絡(luò)的初始權(quán)值和閾值可用initff產(chǎn)生。程序如下:w1,b1,w2,b2=initff(0 10;-5 5,5,'tansig',3,'purelin')顯示結(jié)果為:w1 = -0.2205 -0.2
34、222 0.2540 -0.1830 0.2559 -0.1803 -0.2294 0.2130 -0.3048 0.0714b1 = 0.5670 -1.3383 -0.9755 0.0872 2.5554w2 = 0.9122 0.6242 -0.8156 -0.6677 -0.0968 0.1911 0.2202 -0.1502 0.6663 0.9132 -0.9425 0.4030 -0.2488 0.6773 -0.7057b2 = 0.7399 0.5389 -0.11174訓(xùn)練函數(shù)(1)前向網(wǎng)絡(luò)訓(xùn)練函數(shù)trainbp函數(shù)trainbp()采用BP算法訓(xùn)練前向函數(shù),使網(wǎng)絡(luò)完成函數(shù)
35、逼近、矢量分類及模式識(shí)別。函數(shù)的使用格式為W,B,te,tr=trainbp(w,b,f,P,T,tp)W1,B1,W2,B2,te,tr=trainbp(w1,b1,f1,w2,b2,f2,P,T,tp)W1,B1,W2,B2,W3,B3,te,tr=trainbp(w1,b1,f1,w2,b2,f2,w3,b3,f3,P,T,tp)式中,w、wi為訓(xùn)練前的權(quán)值矩陣;W、Wi為訓(xùn)練后的權(quán)值矩陣;b、bi為訓(xùn)練前的閾值矩陣;B、Bi為訓(xùn)練后的閾值矩陣;te為實(shí)際訓(xùn)練次數(shù);tr為網(wǎng)絡(luò)訓(xùn)練誤差平方和的行向量;f、fi為轉(zhuǎn)移函數(shù);P為輸入向量;T為目標(biāo)向量;tp是訓(xùn)練控制參數(shù);其作用是設(shè)定如何進(jìn)行訓(xùn)
36、練,其中tp(1)為顯示間隔次數(shù),缺省值為5;tp(2)為最大循環(huán)次數(shù),缺省值為100;tp(3)為目標(biāo)誤差,缺省值為0.02;tp(4)為學(xué)習(xí)速率,缺省值為0.01。(2)利用快速BP算法的前向網(wǎng)絡(luò)訓(xùn)練函數(shù)trainbpx函數(shù)trainbpx()采用了動(dòng)量因子,使BP算法的學(xué)習(xí)速率大大縮短。函數(shù)的使用格式與trainbp()格式相同。但是它的訓(xùn)練控制參數(shù)tp不同,其中tp(1)為顯示間隔次數(shù),缺省值為25;tp(2)為最大循環(huán)次數(shù),缺省值為100;tp(3)為目標(biāo)誤差,缺省值為0.02;tp(4)為學(xué)習(xí)速率,缺省值為0.01;tp(5)為學(xué)習(xí)速率增加的比率,缺省值為1.05;tp(6)為學(xué)習(xí)
37、速率減少的比率,缺省值為0.7 ;tp(7)為動(dòng)量常數(shù),缺省值為0.9;tp(8)為最大誤差比率,缺省值為1.04。(3)利用Levenberg-Marguardt規(guī)則的前向網(wǎng)絡(luò)訓(xùn)練函數(shù)trainlm函數(shù)trainlm()是一種基于Levenberg-Marguardt規(guī)則基礎(chǔ)上的訓(xùn)練算法,它的訓(xùn)練速度比基于梯度下降法的trainbp和trainbpx要快的多。函數(shù)的使用格式同trainbp。不同的是訓(xùn)練控制參數(shù),在trainlm的訓(xùn)練控制參數(shù)tp中, tp(1)為顯示間隔次數(shù),缺省值為25;tp(2)為最大循環(huán)次數(shù),缺省值為100;tp(3)為目標(biāo)誤差,缺省值為0.02;tp(4)為學(xué)習(xí)速率
38、,缺省值為0.001;tp(5)為學(xué)習(xí)速率的初始值,缺省值為0.001;tp(6)為學(xué)習(xí)速率的增加系數(shù),缺省值為10;tp(7)為學(xué)習(xí)速率的減小系數(shù),缺省值為0.1;tp(8)為學(xué)習(xí)速率的最大值,缺省值為10。5學(xué)習(xí)函數(shù)(1)BP學(xué)習(xí)規(guī)則函數(shù)learnbp函數(shù)learnbp()可通過在梯度下降最陡方向上不斷地調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值,使網(wǎng)絡(luò)誤差的平方和最小。函數(shù)的使用格式為dW,db=learnbp(P,delta,lr)式中,P為輸入向量矩陣;delta為誤差導(dǎo)數(shù)矢量;lr為學(xué)習(xí)速率;dW為權(quán)值修正矩陣;db為閾值修正向量。(2)含動(dòng)量規(guī)則的BP學(xué)習(xí)規(guī)則函數(shù)learnbpm函數(shù)learnbpm通
39、過引入動(dòng)量因子的方法來(lái)改變權(quán)值的方法,提高了學(xué)習(xí)的速度及算法的可靠性。它使權(quán)值的變化等于上次權(quán)值的變化與這次由BP規(guī)則引起的變化之和,這樣可將動(dòng)量加到BP學(xué)習(xí)中,上一次權(quán)值變化的影響可由動(dòng)量常數(shù)來(lái)調(diào)節(jié)。當(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)=mc*w(i,j)+(1-mc)*lr*d(i)d(j)其中,mc為動(dòng)量常數(shù)。函數(shù)使用格式為dW1,db1=learnbpm(P,delta,lr,mc,dW,db)式中,P為本層的輸入向量;delta為誤差導(dǎo)數(shù)矢量;lr為自適應(yīng)學(xué)習(xí)速率;mc為動(dòng)量常
40、數(shù);dW為上一次權(quán)值修正變化矩陣;db為上一次閾值修正向量;dW1為本次權(quán)值變化矩陣;db1為本次閾值修正向量。(3)levenberg-marguardt學(xué)習(xí)函數(shù)learnlm函數(shù)learnlm()用于計(jì)算網(wǎng)絡(luò)輸出誤差對(duì)網(wǎng)絡(luò)權(quán)值的導(dǎo)數(shù),利用Levenberg-Marguardt算法訓(xùn)練前向網(wǎng)絡(luò)時(shí),需要用到這個(gè)計(jì)算。該方法需要很多的內(nèi)存。函數(shù)的使用格式為dW,db=learnlm(P,delta)式中,P為本層的輸入向量;delta為誤差導(dǎo)數(shù)矢量;dW為權(quán)值修正變化矩陣;db為閾值修正向量。6求導(dǎo)函數(shù)(1)正切型神經(jīng)元求導(dǎo)函數(shù)deltatan函數(shù)deltatan()用于計(jì)算正切型輸出層的誤差導(dǎo)
41、數(shù)或delta矢量。函數(shù)的使用格式為dy=deltatan(Y)dy=deltatan(Y,E)dy=deltatan(Y,d1,W1)式中,為正切型層的輸出向量;為誤差;d1為下一層的delta矢量;W1為下一層的權(quán)值;dy為正切型層的誤差導(dǎo)數(shù)。(2)線性神經(jīng)元的求導(dǎo)函數(shù)deltalin函數(shù)deltalin()用于計(jì)算線性輸出層的誤差導(dǎo)數(shù)或delta矢量。函數(shù)的使用格式為dy=deltatan(Y)dy=deltatan(Y,E)dy=deltatan(Y,d1,W1)式中,為線性層的輸出向量;為誤差;d1為下一層的delta矢量;W1為下一層的權(quán)值;dy為線性層的誤差導(dǎo)數(shù)。7仿真及分析函數(shù)
42、(1)前向網(wǎng)絡(luò)仿真函數(shù)simuff函數(shù)simuff()最多可仿真三層前向網(wǎng)絡(luò)。使用格式為y=simuff(P,W,b,f)y1,y2=simuff(P,W1,b1,f1,W2,b2,f2)y1,y2,y3=simuff(P,W1,b1,f1,W2,b2,f2,W3,b3,f3)式中,P為輸入向量;W、Wi為權(quán)值矩陣;b、bi為閾值矩陣;y、yi為各層的輸出向量矩陣。(2)誤差曲面計(jì)算函數(shù)errsurf函數(shù)errsurf()用于計(jì)算單神經(jīng)元誤差的平方和。函數(shù)的使用格式為Es=errsurf(P,T,W,b,f)式中,P為輸入向量;T為目標(biāo)向量;W為權(quán)值矩陣;b為閾值向量;f為轉(zhuǎn)移函數(shù);Es為計(jì)算
43、出的誤差平方和。8繪圖函數(shù)(1)誤差曲面圖繪制函數(shù)plotes函數(shù)plotes用于繪制誤差曲面圖。函數(shù)的使用格式為plotes(W,b,Es,v)式中,W為權(quán)值矩陣;b為閾值向量;Es為誤差曲面;v為期望的視角;缺省值為-37.5 30。(2)在誤差曲面圖上繪制權(quán)值和閾值的位置函數(shù)plotep函數(shù)plotep()用于在誤差曲面圖上繪出單輸入網(wǎng)絡(luò)權(quán)值W和閾值b所對(duì)應(yīng)得誤差e的位置。函數(shù)的使用格式為plotep(W,b,e)式中,W為權(quán)值矩陣;b為閾值向量;e為神經(jīng)元誤差。(3)繪制誤差平方和對(duì)訓(xùn)練次數(shù)的曲線函數(shù)ploterr函數(shù)ploterr(e)繪制誤差e的行矢量對(duì)訓(xùn)練次數(shù)的曲線,縱軸為對(duì)數(shù)形
44、式??偟挠?xùn)練次數(shù)比誤差e的長(zhǎng)度要小1。誤差e中的第一個(gè)元素是訓(xùn)練前的初始網(wǎng)絡(luò)誤差。函數(shù)ploterr(e,g)繪制誤差e的行矢量并用水平點(diǎn)線來(lái)標(biāo)志誤差g。(4)誤差的直方圖繪制函數(shù)barerr函數(shù)barerr用于繪制每對(duì)輸入/目標(biāo)矢量誤差e平方和的直方圖。例8.8 輸入矢量P和相應(yīng)的目標(biāo)矢量T分別為P=-6.0 -6.1 -4.1 -4.0 +4.0 +4.1 +6.0 +6.1;T=+0.0 +0.0 +0.97 +0.99 +0.01 +0.03 +1.0 +1.0;權(quán)值取為(-1,+1)之間,閾值取為(-2.5,+2.5)之間,試計(jì)算對(duì)數(shù)S型神經(jīng)元的誤差曲面。解:程序如下:P=-6.0
45、-6.1 -4.1 -4.0 +4.0 +4.1 +6.0 +6.1;T=+0.0 +0.0 +0.97 +0.99 +0.01 +0.03 +1.0 +1.0;W=-1:0.1:1;b=-2.5:0.25:2.5;ES=errsurf(P,T,W,b,'logsig');plotes(W,b,ES,60 30)顯示結(jié)果為:圖8.5誤差曲面圖例8.9 利用兩層BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練加權(quán)系數(shù)。兩組3輸入為1 2;-1 1;1 3,希望的輸出為1 1;1 1。隱含層的轉(zhuǎn)移函數(shù)取S型轉(zhuǎn)移函數(shù),輸出的轉(zhuǎn)移函數(shù)取線性轉(zhuǎn)移函數(shù)。解:程序如下:%兩層BP算法的學(xué)習(xí)期(訓(xùn)練加權(quán)系數(shù)Wki,Wij)%
46、初始化lr=0.05; %lr為學(xué)習(xí)速率err_goal=0.001; %err_goal為期望誤差最小值max_epoch=10000; %訓(xùn)練的最大次數(shù)P=1 2;-1 1;1 3;T=1 1;1 1; %提供兩組3輸入2輸出的訓(xùn)練集和目標(biāo)值%初始化Wki,Wij(M為輸入節(jié)點(diǎn)j的數(shù)量,q為隱含層節(jié)點(diǎn)i的數(shù)量,L為輸出節(jié)點(diǎn)的數(shù)量,N為樣本點(diǎn)的組數(shù))M,N=size(P);q=10;L,N=size(T); Wij=rand(q,M); %隨機(jī)給定輸入層與隱含層間的權(quán)值Wki=rand(L,q); %隨機(jī)給定隱含層與輸出層間的權(quán)值b1=zeros(q,1);b2=zeros(L,1); %隨
47、機(jī)給定隱含層、輸出層的閾值for epoch=1:max_epochOi=tansig(Wij*P,b1); %計(jì)算網(wǎng)絡(luò)隱含層的各神經(jīng)元輸出Ok=purelin(Wki*Oi,b2); %計(jì)算網(wǎng)絡(luò)輸出層的各神經(jīng)元輸出E=T-Ok; %計(jì)算網(wǎng)絡(luò)誤差deltak=deltalin(Ok,E); %計(jì)算網(wǎng)絡(luò)輸出層的deltadeltai=deltatan(Oi,deltak,Wki); %計(jì)算網(wǎng)絡(luò)隱含層的deltadWki,db2=learnbp(Oi,deltak,lr); %調(diào)整輸出層加權(quán)系數(shù)Wki=Wki+dWki;b2=b2+db2;dWij,db1=learnbp(P,deltai,lr)
48、; %調(diào)整隱含層加權(quán)系數(shù)Wij=Wij+dWij;b1=b1+db1;%計(jì)算網(wǎng)絡(luò)權(quán)值修正后的誤差平方和SSE=sumsqr(T-purelin(Wki*tansig(Wij*P,b1),b2);if(SSE<err_goal) break;endend%BP算法的工作期(根據(jù)訓(xùn)練好的Wki,Wij和給定的輸入計(jì)算輸出)P1=P; %給定輸入Oi=tansig(Wij*P1,b1); %計(jì)算網(wǎng)絡(luò)隱含層的各神經(jīng)元輸出Ok=purelin(Wki*Oi,b2); %計(jì)算網(wǎng)絡(luò)輸出層的各神經(jīng)元輸出Ok %顯示網(wǎng)絡(luò)輸出層的輸出顯示結(jié)果為:Ok = 0.9820 1.0152 0.9842 1.013
49、58.1.4 徑向基神經(jīng)網(wǎng)絡(luò)工具箱函數(shù)徑向基神經(jīng)網(wǎng)絡(luò)是一種在逼近能力、分類能力和學(xué)習(xí)速度等方面均優(yōu)于BP網(wǎng)絡(luò)的的網(wǎng)絡(luò)。MATLAB 神經(jīng)網(wǎng)絡(luò)工具箱中提供了大量的與徑向基網(wǎng)絡(luò)相關(guān)的工具箱函數(shù)。在MATLAB 工作空間的命令行中輸入“help radbasis”,便可得到與徑向基神經(jīng)網(wǎng)絡(luò)相關(guān)的函數(shù)幫助。表8.4 列出了徑向基神經(jīng)網(wǎng)絡(luò)的重要函數(shù)和基本功能。表8.4徑向基神經(jīng)網(wǎng)絡(luò)的重要函數(shù)和基本功能類型函數(shù)名功能網(wǎng)絡(luò)設(shè)計(jì)函數(shù)solverb()設(shè)計(jì)一個(gè)徑向基神經(jīng)網(wǎng)絡(luò)solverbe()設(shè)計(jì)一個(gè)精確徑向基神經(jīng)網(wǎng)絡(luò)newrb()新建一個(gè)徑向基神經(jīng)網(wǎng)絡(luò)newrbe()新建一個(gè)嚴(yán)格的徑向基神經(jīng)網(wǎng)絡(luò)newgrnn
50、()新建一個(gè)廣義回歸徑向基神經(jīng)網(wǎng)絡(luò)newpnn()新建一個(gè)概率徑向基神經(jīng)網(wǎng)絡(luò)轉(zhuǎn)移函數(shù)radbas()徑向基轉(zhuǎn)移函數(shù)權(quán)函數(shù)dist()計(jì)算矢量間的距離仿真及分析函數(shù)simurb()仿真徑向基神經(jīng)網(wǎng)絡(luò)mse()反映均方誤差性能轉(zhuǎn)換函數(shù)ind2vec()將下標(biāo)矢量變換成單值矢量組vec2ind()將單值矢量組變換成下標(biāo)矢量1網(wǎng)絡(luò)設(shè)計(jì)函數(shù)(1)徑向基神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)函數(shù)solverb函數(shù)solverb()設(shè)計(jì)的徑向基神經(jīng)網(wǎng)絡(luò),因在建立網(wǎng)絡(luò)時(shí)預(yù)先設(shè)置了目標(biāo)函數(shù),完成了網(wǎng)絡(luò)的訓(xùn)練,所以可以不經(jīng)過訓(xùn)練直接使用。函數(shù)的使用格式為W1,b1,W2,b2,nr,dr=solverb(P,T,dp)式中,P為輸入向量;
51、T為目標(biāo)向量;dp為設(shè)計(jì)參數(shù),其中dp(1)為顯示間隔次數(shù),缺省值為25;dp(2)為最大的神經(jīng)元數(shù),缺省值為1000;dp(3)為目標(biāo)誤差,缺省值為0.02;dp(4)為徑向基層的分布,默認(rèn)值為1.0;W1和b1為網(wǎng)絡(luò)的徑向基神經(jīng)元隱含的權(quán)值和閾值;W2和b2為網(wǎng)絡(luò)的輸出層的權(quán)值和閾值;nr為radbas層的神經(jīng)元個(gè)數(shù);dr為設(shè)計(jì)誤差。(2)精確徑向基神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)函數(shù)solverbe函數(shù)solverbe()設(shè)計(jì)的徑向基神經(jīng)網(wǎng)絡(luò),因隱含層與輸入向量P一樣多,對(duì)設(shè)計(jì)的輸入/目標(biāo)向量集誤差為0。函數(shù)的使用格式為W1,b1,W2,b2=solverbe(P,T,sc)式中,P為輸入向量;T為目標(biāo)向量;sc為徑向基函數(shù)的寬度,即從函數(shù)頂點(diǎn)10.5的距離,缺省值為1;W1和b1為網(wǎng)絡(luò)的徑向基神經(jīng)元隱含的權(quán)值和閾值;W2和b2為網(wǎng)絡(luò)輸出層的權(quán)值和閾值。(3)新建徑向基神經(jīng)網(wǎng)絡(luò)函數(shù)newrb函數(shù)newrb()用于新建一個(gè)徑向基神經(jīng)網(wǎng)絡(luò),可以直接使用。它可自動(dòng)增加徑向基網(wǎng)絡(luò)的隱層神經(jīng)元,直到均方誤差滿足為止。函數(shù)的使用格式為net=newrb(P,T,goal,spread)式中,P為輸入向量;T為目標(biāo)向量;goal為均方誤差,缺省值為0;spread為徑向基函數(shù)的分布,缺省值為1;net為生成的新網(wǎng)絡(luò)。(4)新建精確徑向基神經(jīng)網(wǎng)絡(luò)函數(shù)newrbe函數(shù)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 通信工程光纖傳輸系統(tǒng)試題集
- 辦公室接待來(lái)賓登記表
- 攝影工作室拍攝風(fēng)格更改免責(zé)協(xié)議
- 體育場(chǎng)館運(yùn)營(yíng)與維護(hù)服務(wù)合同
- 治療協(xié)議服務(wù)合同
- 黑龍江省佳木斯市富錦市2024-2025學(xué)年九年級(jí)上學(xué)期期末生物學(xué)試題(含答案)
- 財(cái)務(wù)會(huì)計(jì)準(zhǔn)則下的財(cái)務(wù)報(bào)表編制試題
- 滑雪培訓(xùn)服務(wù)合同
- 幼兒園小班故事表演活動(dòng)解讀
- 公司新年?duì)I銷策略規(guī)劃與執(zhí)行方案設(shè)計(jì)
- 2024.8.1十七個(gè)崗位安全操作規(guī)程手冊(cè)(值得借鑒)
- 電影《白日夢(mèng)想家》課件
- 深度學(xué)習(xí)及自動(dòng)駕駛應(yīng)用 課件 第1章 汽車自動(dòng)駕駛技術(shù)概述
- 汽車4S點(diǎn)隱患排查治理體系(清單及排查表)
- UV數(shù)碼噴印墨水市場(chǎng)分析
- 記憶有方 過目不忘 課件
- 無(wú)人機(jī)應(yīng)用與基礎(chǔ)操控入門課件
- 2024年全國(guó)職業(yè)院校技能大賽中職組(短視頻制作賽項(xiàng))考試題庫(kù)-下(多選、判斷題)
- 口腔病歷管理制度內(nèi)容
- 三一燈塔工廠解決方案
- 四川省會(huì)計(jì)師事務(wù)所服務(wù)收費(fèi)標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論