




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1o 實(shí)驗(yàn)七M(jìn)ATLAB神經(jīng)網(wǎng)絡(luò)工具箱一、實(shí)驗(yàn)?zāi)康?、掌握Matlab對(duì)感知器網(wǎng)絡(luò)的構(gòu)建與訓(xùn)練方法。2、掌握Matlab對(duì)線性神經(jīng)網(wǎng)絡(luò)的構(gòu)建與訓(xùn)練方法。3、掌握Matlab對(duì)BP神經(jīng)網(wǎng)絡(luò)的構(gòu)建與訓(xùn)練方法。二、實(shí)驗(yàn)原理1、感知器的MATLAB仿真感知器(Pereceptron)是一種特殊的神經(jīng)網(wǎng)絡(luò)模型,是由美國(guó)心理學(xué)家F.Rosenblatt于1958年提出的,一層為輸入層,另一層具有計(jì)算單元,感知器特別適合于簡(jiǎn)單的模式分類問(wèn)題,也可用于基于模式分類的學(xué)習(xí)控制和多模態(tài)控制中。感知器神經(jīng)元模型感知器神經(jīng)元通過(guò)對(duì)權(quán)值的訓(xùn)練,可以使感知器神經(jīng)元的輸出能代表對(duì)輸入模式進(jìn)行的分類,圖1.1為感知器神經(jīng)元模
2、型。圖1.1感知器神經(jīng)元模型感知器神經(jīng)元的每一個(gè)輸入都對(duì)應(yīng)于一個(gè)合適的權(quán)值,所有的輸入與其對(duì)應(yīng)權(quán)值的加權(quán)和作為閥值函數(shù)的輸入。由于閥值函數(shù)的引入,從而使得感知器可以將輸入向量分為兩個(gè)區(qū)域,通常閥函數(shù)采用雙極階躍函數(shù),如:1,x00,x0a=ii10n+b0ii則當(dāng)輸入n.+b.大于等于0,即有n三一b.時(shí),感知器的輸出為1;否則iiii輸出為0。上面所述的單層感知器神經(jīng)網(wǎng)絡(luò)是不可能解決線性不可分的輸入向量分類問(wèn)題,也不能推廣到一般的前向網(wǎng)絡(luò)中去。為解決這一問(wèn)題,我們可以設(shè)計(jì)多層感知器神經(jīng)網(wǎng)絡(luò)以實(shí)現(xiàn)任意形狀的劃分。圖1.3描述了一個(gè)雙層感知器神經(jīng)網(wǎng)絡(luò)。其工作方式與單層感知器網(wǎng)絡(luò)一樣,只不過(guò)是增加
3、了一層而已,具體的內(nèi)容這里不做討論。oa2圖1.3感知器神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)(三)感知器神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)規(guī)則感知器的學(xué)習(xí)規(guī)則主要是通過(guò)調(diào)整網(wǎng)絡(luò)層的權(quán)值和閥值以便能夠地網(wǎng)絡(luò)的輸入向量進(jìn)行正確的分類。如圖1.2所示的輸入向量P、輸出和量a和目標(biāo)向量為t的感知器神經(jīng)網(wǎng)絡(luò),感知器的學(xué)習(xí)規(guī)則是根據(jù)以下輸出矢量a可能出現(xiàn)的幾種情況未進(jìn)行參與調(diào)整的:1)如果第i個(gè)神經(jīng)元的輸出是正確的,即有a.=t,,則與第i個(gè)神經(jīng)元i1聯(lián)接的權(quán)值和閥值保持不變。2)如果第i個(gè)神經(jīng)元的輸出是不正確,應(yīng)該有兩種情況。i)實(shí)際輸出為0而理想輸出為1,即有ai=0,而t.=1,則所有的輸入j對(duì)權(quán)值和閥值進(jìn)行調(diào)整,修正值4W.=p.,b.=1
4、。1jjjii)實(shí)際輸出為1,而期望輸出為0,即有ai=1,而ti=0,則對(duì)所有的輸入j進(jìn)行權(quán)值和閥值調(diào)整,Wj=Pj,bi=-1o基于感知器誤差e=t-a,感知器學(xué)習(xí)規(guī)則可望寫為:卜W1j=eipj可以證明當(dāng)前輸入樣本來(lái)自線性可分的模式時(shí),上述學(xué)習(xí)算法在有限步同收斂,這時(shí)所得的權(quán)值能對(duì)所有樣本正確分類,這一結(jié)論被稱為感知器收斂定理。(四)感知器神經(jīng)網(wǎng)絡(luò)的訓(xùn)練要使前向神經(jīng)網(wǎng)絡(luò)模型實(shí)現(xiàn)某種功能,必須對(duì)它進(jìn)行訓(xùn)練,讓它逐步學(xué)會(huì)要做的事情,并把所學(xué)到的知識(shí)記憶在網(wǎng)絡(luò)的權(quán)值中。感知器神經(jīng)網(wǎng)絡(luò)的訓(xùn)練是采用由一組樣本組成的集合來(lái)進(jìn)行。在訓(xùn)練期間,將這些樣本重復(fù)輸入,通過(guò)調(diào)整權(quán)值使感知器的輸出達(dá)到所要求的理
5、想輸出。感知器的訓(xùn)練主要是反復(fù)對(duì)感知器神經(jīng)網(wǎng)絡(luò)進(jìn)行仿真和學(xué)習(xí),最終得到最優(yōu)的網(wǎng)絡(luò)閥值和權(quán)值。我們可以用以下方法訓(xùn)練網(wǎng)絡(luò):1)確定我們所解決的問(wèn)題的輸入向量P、目標(biāo)向量t,并確定各向量的維數(shù),以及網(wǎng)絡(luò)結(jié)構(gòu)大小、神經(jīng)元數(shù)目。假定我們采用圖2.2的網(wǎng)絡(luò)結(jié)構(gòu)。2)初始化:權(quán)值向量w和閥值向量b分別賦予1,+1之間的隨機(jī)值, 并且給出訓(xùn)練的最大次數(shù)。根據(jù)輸入向量P、最新權(quán)值向量w和閥值向量b,計(jì)算網(wǎng)絡(luò)輸出向量a。檢查感知器輸出向量與目標(biāo)向量是否一致,或者是否達(dá)到了最大的訓(xùn)練次數(shù),如果是則結(jié)束訓(xùn)練,否則轉(zhuǎn)入(5)。根據(jù)感知器學(xué)習(xí)規(guī)則調(diào)查權(quán)向量,并返回3)。(五)重要的感知器神經(jīng)網(wǎng)絡(luò)函數(shù)的使用方法對(duì)于感知器
6、的初始化、訓(xùn)練、仿真,在MATLABP神經(jīng)網(wǎng)絡(luò)工具箱中分別提供了init(),trainp()和sim()函數(shù)。1初始化函數(shù)init()感知器初始化函數(shù)init()可得到R個(gè)輸入,S個(gè)神經(jīng)元數(shù)的感知器層的權(quán)值和閥值,其調(diào)用格式為:w,b=init(R,S)另外,也可以利用輸入向量P和目標(biāo)向量t來(lái)初始化。w,b=init(p,t)在介紹trainp()函數(shù)前,讓我們先介紹一下訓(xùn)練的控制參數(shù)tp。tp=disp_freqmax_epoch其中disp_freq指定兩次顯示間訓(xùn)練次數(shù),缺省值為1;map_epoch指定訓(xùn)練的最大次數(shù),缺省值為100。訓(xùn)練函數(shù)trainp()調(diào)用訓(xùn)練函數(shù)trainp(
7、)函數(shù)后又得到新的權(quán)值矩陣,閥值向量以及誤差te。trainp()函數(shù)所需要的輸入變量為:輸入向量P、目標(biāo)向量t以及網(wǎng)絡(luò)的初始權(quán)值和閥值,訓(xùn)練的控制參數(shù)tp。調(diào)用格式為:w,b,te=trainp(w,b,p,t,tp)由于函數(shù)trainp()并不能保證感知器網(wǎng)絡(luò)所得到的網(wǎng)絡(luò)權(quán)值和閥值達(dá)到要求。因此,在訓(xùn)練完后,要用下列驗(yàn)證語(yǔ)句驗(yàn)證一下。a=sim(p,w,b);ifall(a=t),disp(Itworks!),end假如網(wǎng)絡(luò)不能成功運(yùn)行,就可以繼續(xù)運(yùn)用trainp()函數(shù)對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。經(jīng)足夠的訓(xùn)練后,網(wǎng)絡(luò)仍達(dá)不到要求,那么就應(yīng)當(dāng)認(rèn)真分析一下,感知器網(wǎng)絡(luò)是否適合于這個(gè)問(wèn)題。3仿真函數(shù)sim
8、()sim()函數(shù)主要用于計(jì)算網(wǎng)絡(luò)輸出。它的調(diào)用比較簡(jiǎn)單。a=sim(p,w,b)(六)感知器神經(jīng)網(wǎng)絡(luò)應(yīng)用舉例為了便于消化與理解感知器神經(jīng)網(wǎng)絡(luò)的四個(gè)問(wèn)題,下面將給出一個(gè)具體的問(wèn)題進(jìn)行分析,問(wèn)題的描述如下:兩種蠓蟲Af和Apf已由生物學(xué)家W.L.Grogan與w.w.Wirth(1981)根據(jù)它們觸角長(zhǎng)度和翼長(zhǎng)中以區(qū)分。見(jiàn)表1.1中9Af蠓和6只Apf蠓的數(shù)據(jù)。根據(jù)給出的觸角長(zhǎng)度和翼長(zhǎng)可識(shí)別出一只標(biāo)本是Af還是Apf。1.給定一只Af或者Apf族的蒙,你如何正確地區(qū)分它屬于哪一族?2將你的方法用于觸角長(zhǎng)和翼中分別為(1.24,1.80)、(1.28,1.84)、(1.40,2.04)的三個(gè)標(biāo)本表
9、1.1Af觸重長(zhǎng)1.241.361.381.3781.381.401.481.541.56翼長(zhǎng)1.721.741.641.821.901.701.701.822.08Apf觸角長(zhǎng)1.141.181.201.261.281.30翼長(zhǎng)1.781.961.862.002.001.96輸入向量為:p=1.241.361.381.3781.381.401.481.541.561.141.181.201.261.281.30;1.721.741.641.821.901.701.701.822.081.781.961.862.002.001.96目標(biāo)向量為:p圖1.4樣本圖形顯示t=111111111000
10、000圖形顯示,目標(biāo)值1對(duì)應(yīng)的用“+”、目標(biāo)值0對(duì)應(yīng)的用“o”來(lái)表示:plotpv(p,t)為解決該問(wèn)題,利用函數(shù)newp構(gòu)造輸入量在0,2.5之間的感知器神經(jīng)網(wǎng)絡(luò)模型:net=newp(02.5;02.5,1)初始化網(wǎng)絡(luò):net=init(net)利用函數(shù)adapt調(diào)整網(wǎng)絡(luò)的權(quán)值和閥值,直到誤差為0時(shí)訓(xùn)練結(jié)束:net,y,e=adapt(net,p,t)訓(xùn)練結(jié)束后可得如圖1.5的分類方式,可見(jiàn)感知器網(wǎng)絡(luò)將樣本正確地分成兩類:感知器網(wǎng)絡(luò)訓(xùn)練結(jié)束后,可以利用函數(shù)sim進(jìn)行仿真,解決實(shí)際的分類問(wèn)題:p1=1.24;1.80a1=sim(net,p1)p2=1.28;1.84a2=sim(net,p
11、2)p3=1.40;2.04a3=sim(net,p3)網(wǎng)絡(luò)仿真結(jié)果為:a1=0a2=0a3=0 2、線性神經(jīng)網(wǎng)絡(luò)的MATLAB實(shí)現(xiàn)線性神經(jīng)網(wǎng)絡(luò)是最簡(jiǎn)單的一種神經(jīng)元網(wǎng)絡(luò),由一個(gè)或多個(gè)線性神經(jīng)元構(gòu)成。1959年,美國(guó)工程師B.widrow和M.Hoft提出自適應(yīng)線性元件(Adaptivelinearelement,簡(jiǎn)稱Adaline)是線性神經(jīng)網(wǎng)絡(luò)的最早典型代表。它是感知器的變化形式,尤其在修正權(quán)矢量的方法上進(jìn)行了改進(jìn),不僅提高了訓(xùn)練收斂速度,而且提高了訓(xùn)練精度。線性神經(jīng)網(wǎng)絡(luò)與感知器神經(jīng)網(wǎng)絡(luò)的主要不同之處在于其每個(gè)神經(jīng)元的傳遞函數(shù)為線性函數(shù),它允許輸出任意值,而不是象感知器中只能輸出0或1。此外
12、,線性神經(jīng)網(wǎng)絡(luò)一般采用WidrowHoff(簡(jiǎn)稱WH)學(xué)習(xí)規(guī)則或者最小場(chǎng)方差(LeastmeanSquare,簡(jiǎn)稱LMS)規(guī)則來(lái)調(diào)整網(wǎng)絡(luò)的權(quán)值和閥值。線性神經(jīng)網(wǎng)絡(luò)的主要用途是線性逼近一個(gè)函數(shù)表達(dá)式,具有聯(lián)想功能。另外,它還適用于信號(hào)處理濾波、預(yù)測(cè)、模式識(shí)別和控制等方面。(一)線性神經(jīng)元模型線性神經(jīng)元可以訓(xùn)練學(xué)習(xí)一個(gè)與之對(duì)應(yīng)的輸入輸出函數(shù)關(guān)系,或線性逼近任意一個(gè)非線性函數(shù),但它不能產(chǎn)生任何非線性的計(jì)算特性。圖2.1描述了一個(gè)具有R個(gè)輸入的由純線性函數(shù)組成的線性神經(jīng)元。圖2.1線性神經(jīng)元模型由于線性神經(jīng)網(wǎng)絡(luò)中神經(jīng)元的傳遞函數(shù)為線性函數(shù),其輸入與輸出之間是簡(jiǎn)單的比例關(guān)系:a=g(w*p,b)其中函數(shù)
13、g(x)為線性函數(shù)。線性神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖2.2描述了一個(gè)由S個(gè)神經(jīng)元相并聯(lián)形成一層網(wǎng)絡(luò),這種網(wǎng)絡(luò)也稱為Madaline網(wǎng)絡(luò)。ooSX1圖2.2線性神經(jīng)元網(wǎng)絡(luò)W-H學(xué)習(xí)規(guī)則只能訓(xùn)練單層的線性神經(jīng)網(wǎng)絡(luò),但這并不是什么嚴(yán)重問(wèn)題。因?yàn)閷?duì)線性神經(jīng)網(wǎng)絡(luò)而言,完全可以設(shè)計(jì)出一個(gè)性能完全相當(dāng)?shù)膯螌泳€性神經(jīng)網(wǎng)絡(luò)。線性神經(jīng)學(xué)習(xí)網(wǎng)絡(luò)的學(xué)習(xí)規(guī)則前面我們提到過(guò),線性神經(jīng)網(wǎng)絡(luò)采用W-H學(xué)習(xí)規(guī)則。W-H學(xué)習(xí)規(guī)則是Widrow是Hoft提出的用來(lái)求得權(quán)值和閥值的修正值的學(xué)習(xí)規(guī)則。首先要定義一個(gè)線性網(wǎng)絡(luò)的輸出誤差函數(shù):2.1E(w,b)=|(ta)2=*(t一w*p)2由式2.1可看出,線性網(wǎng)絡(luò)具有拋物線型誤差函數(shù)所形成的誤差
14、表面。所以只有一個(gè)誤差最小值。通過(guò)W-H學(xué)習(xí)規(guī)則來(lái)計(jì)算權(quán)值和偏差的變化,并使網(wǎng)絡(luò)的誤差平方和最小化,總能夠訓(xùn)練一個(gè)網(wǎng)絡(luò)的誤差趨于最小值。這可通過(guò)沿著相對(duì)于誤差平方和最速下降方向連續(xù)調(diào)整網(wǎng)絡(luò)的權(quán)值和閥值來(lái)實(shí)現(xiàn)。根據(jù)梯度下降法,權(quán)矢量的修正值正比于當(dāng)前位置上E(w,b)的梯度,對(duì)于第i輸出節(jié)點(diǎn)為:QEAw=-n=n(t-a)p2.2ijdwiijij或表示為:Aw二朮pijij2.3Ab二朮ii2.4這里&.定義為第i個(gè)輸出節(jié)點(diǎn)的誤差:i6,=t.a.2.5iii式2.3稱為W-H學(xué)習(xí)規(guī)則。W-H學(xué)習(xí)規(guī)則的權(quán)值變化量正比于網(wǎng)絡(luò)的輸出誤差及網(wǎng)絡(luò)的輸入向量。它不需求導(dǎo)數(shù),所以算法簡(jiǎn)單,又具有收斂速度快
15、和精度高的優(yōu)點(diǎn)。式2.3中的耳稱為學(xué)習(xí)率,學(xué)習(xí)率的選取可以適當(dāng)防止學(xué)習(xí)過(guò)程中產(chǎn)生振蕩,提高收斂速度和精度。線性神經(jīng)網(wǎng)絡(luò)訓(xùn)練首先給線性神經(jīng)網(wǎng)絡(luò)提供輸入向量P,計(jì)算線性網(wǎng)絡(luò)層的輸出向量a,并求得誤差e=t-a;然后比較輸出的誤差平方和是否小于期望的誤差平方和,如果是,則停止訓(xùn)練;否則,采用W-H規(guī)則調(diào)整權(quán)值和閥值,反復(fù)進(jìn)行。如果經(jīng)過(guò)訓(xùn)練網(wǎng)絡(luò)不能達(dá)到期望目標(biāo),可以繼續(xù)對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。經(jīng)過(guò)足夠的訓(xùn)練后,網(wǎng)絡(luò)還是達(dá)不到要求。那么就仔細(xì)地分析一下,所要解決的問(wèn)題,是否適合于線性神經(jīng)網(wǎng)絡(luò)。重要線性神經(jīng)網(wǎng)絡(luò)函數(shù)的使用方法在MATLAB神經(jīng)網(wǎng)絡(luò)工具箱中提供了基于線性神經(jīng)網(wǎng)絡(luò)的初始化函數(shù)initlin()、設(shè)計(jì)函
16、數(shù)solvelin()、仿真函數(shù)simulin()以及訓(xùn)練函數(shù)trainwh和adaptwh。下面我們將分別介紹多種函數(shù)的使用方法。1初始化函數(shù)initlin()函數(shù)initlin()對(duì)線性神經(jīng)網(wǎng)絡(luò)初始化時(shí),將權(quán)值和閥值取為絕對(duì)值很小的數(shù)。其使用格式w,b=initlin(R,S)R為輸入數(shù),S為神經(jīng)元數(shù)。另外,R和S也可用輸入向量P和目標(biāo)向量t來(lái)代替,即w,b=initlin(p,t)2設(shè)計(jì)函數(shù)solvelin()與大多數(shù)其它神經(jīng)網(wǎng)絡(luò)不同,只要已知其輸入向量P和目標(biāo)向量t,就可以直接設(shè)計(jì)出線性神經(jīng)網(wǎng)絡(luò)使得線性神經(jīng)網(wǎng)絡(luò)的權(quán)值矩陣誤差最小。其調(diào)用命令如下:w,b=solvelin(p,t);3仿
17、真函數(shù)simulin()函數(shù)simulin()可得到線性網(wǎng)絡(luò)層的輸出a=simulin(p,w,b)其中a為輸出向量,b為閥值向量4訓(xùn)練函數(shù)trainwh和adaptwh()線性神經(jīng)網(wǎng)絡(luò)的訓(xùn)練函數(shù)有兩種:trainwh()和adaptwh()。其中函數(shù)trainwh可以對(duì)線性神經(jīng)網(wǎng)絡(luò)進(jìn)行離線訓(xùn)練;而函數(shù)adaptwh()可以對(duì)線性神經(jīng)網(wǎng)絡(luò)進(jìn)行在線自適應(yīng)訓(xùn)練。利用trainwh()函數(shù)可以得到網(wǎng)絡(luò)的權(quán)矩陣w,閥值向量b,實(shí)際訓(xùn)練次數(shù)te以及訓(xùn)練過(guò)程中網(wǎng)絡(luò)的誤差平方和lr。w,b,te,lr=trainwh(w,b,p,t,tp)輸入變量中訓(xùn)練參數(shù)tp為:tp(1)指定兩次更新顯示間的訓(xùn)練次數(shù),其
18、缺省值為25;tp(2)指定訓(xùn)練的最大次數(shù),其缺省值為100;tp(3)指定誤差平方和指標(biāo),其缺省值為0.02;tp(4)指定學(xué)習(xí)速率,其缺省值可由maxlinlr()函數(shù)(此函數(shù)主要用于計(jì)算采用WH規(guī)則訓(xùn)練線性網(wǎng)絡(luò)的最大的穩(wěn)定的分辨率)得到。而利用函數(shù)adaptwh()可以得到網(wǎng)絡(luò)的輸出a、誤差e、權(quán)值矩陣w和閥值向量boa,e,w,b=adaptwh(w,b,p,t,lr)輸入變量lr為學(xué)習(xí)速率,學(xué)習(xí)速率lr為可選參數(shù),其缺省值為1.0o另外,函數(shù)maxlinlr()的調(diào)用格式為:lr=maxlinlr(p);(六)線性神經(jīng)網(wǎng)絡(luò)的應(yīng)用舉例為了理解線性神經(jīng)網(wǎng)絡(luò)的理論及其應(yīng)用問(wèn)題,下面給出一個(gè)
19、實(shí)際問(wèn)題進(jìn)行分析,設(shè)計(jì)一個(gè)線性神經(jīng)網(wǎng)絡(luò),用于信號(hào)仿真及信號(hào)預(yù)測(cè)首先輸入信號(hào)樣本為:time=1:0.0025:5;p=sin(sin(time)*time*10);目標(biāo)信號(hào)為:t=p*2+2;圖形顯示樣本信號(hào)的規(guī)律為:plot(time,p,time,t,)title(InputandTargetSignals)xlabel(Time)ylabel(Input_Target_)圖2.3樣本信號(hào)利用輸入樣本信號(hào)和理想輸出進(jìn)行線性神經(jīng)網(wǎng)絡(luò)初始化w,b=initlin(p,t)然后利用函數(shù)adaptwh對(duì)構(gòu)造的網(wǎng)絡(luò)進(jìn)行訓(xùn)練,lr=0.01;a,e,w,b=adaptwh(w,b,p,t,lr)其中l(wèi)
20、r為學(xué)習(xí)率,a為網(wǎng)絡(luò)的輸出,e為誤差。仿真結(jié)果與目標(biāo)信號(hào)對(duì)比分析:plot(time,a,time,t,-)title(OutputandTargetSignals)xlabel(Time);ylabel(Output_Target_)Tnrnrn43.55圖2.4仿真結(jié)果與目標(biāo)信號(hào)對(duì)比分析誤差分析:plot(time,e)5圖2.5誤差分析holdon;plot(min(time)max(time),00,:r)xlabel(Time);ylabel(Error)3、BP神經(jīng)網(wǎng)絡(luò)的MATLAB實(shí)現(xiàn)感知器神經(jīng)網(wǎng)絡(luò)模型和線性神經(jīng)網(wǎng)絡(luò)模型雖然對(duì)人工神經(jīng)網(wǎng)絡(luò)的發(fā)展起了很大的作用,它們的出現(xiàn)也曾掀起了
21、人們研究神經(jīng)網(wǎng)絡(luò)的熱潮。但它們有許多不足之處。人們也曾因此失去了對(duì)神經(jīng)網(wǎng)絡(luò)研究的信心,但rumelhart、mcclellard和他們的同事洞悉到網(wǎng)絡(luò)信息處理的重要性,并致力于研究并行分布信息處理方法,探索人類認(rèn)知的微結(jié)構(gòu),于1985年發(fā)展了BP網(wǎng)絡(luò)的學(xué)習(xí)算法。從而給人工神經(jīng)網(wǎng)絡(luò)增添了活力,使其得以全面迅速地恢復(fù)發(fā)展起來(lái)。BP網(wǎng)絡(luò)是一種多層前饋神經(jīng)網(wǎng)絡(luò),其神經(jīng)元的激勵(lì)函數(shù)為S型函數(shù),因此輸出量為0到1之間的連續(xù)量,它可以實(shí)現(xiàn)從輸入到輸出的任意的非線性映射。由于其權(quán)值的調(diào)整是利用實(shí)際輸出與期望輸出之差,對(duì)網(wǎng)絡(luò)的各層連接權(quán)由后向前逐層進(jìn)行校正的計(jì)算方法,故而稱為反向傳播(Back-Propogat
22、ion)學(xué)習(xí)算法,簡(jiǎn)稱為BP算法。BP算法主要是利用輸入、輸出樣本集進(jìn)行相應(yīng)訓(xùn)練,使網(wǎng)絡(luò)達(dá)到給定的輸入輸出映射函數(shù)關(guān)系。算法常分為兩個(gè)階段:第一階段(正向計(jì)算過(guò)程)由樣本選取信息從輸入層經(jīng)隱含層逐層計(jì)算各單元的輸出值;第二階段(誤差反向傳播過(guò)程)由輸出層計(jì)算誤差并逐層向前算出隱含層各單元的誤差,并以此修正前一層權(quán)值。BP網(wǎng)絡(luò)主要用于函數(shù)逼近、模式識(shí)別、分類以及數(shù)據(jù)壓縮等方面。()BP網(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu)BP網(wǎng)絡(luò)通常至少有一個(gè)隱含層,如圖3.1所示的是一個(gè)具有R個(gè)輸入具有一個(gè)隱含層的BP網(wǎng)絡(luò)結(jié)構(gòu)Po1oSX1和一個(gè)隱含層的神經(jīng)網(wǎng)絡(luò)模型。圖3.1感知器與線性神經(jīng)元的主要差別在于激勵(lì)函數(shù)上:前者是二值型的
23、,而后者是線性的。BP網(wǎng)絡(luò)除了在多層網(wǎng)絡(luò)上與已介紹過(guò)的模型有不同外,其主要差別也表現(xiàn)在激勵(lì)函數(shù)上。圖3.2所示的兩種S型激勵(lì)函數(shù)的圖形,可以看到f()是連續(xù)可微的單調(diào)遞增函數(shù),這種激勵(lì)函數(shù)的輸出特性比較軟,其輸出狀態(tài)的取值范圍為0,1或者-1,+1,其硬度可以由參數(shù)久來(lái)調(diào)節(jié)。函數(shù)的輸入輸出關(guān)系表達(dá)式如下所示:雙極型的S型激勵(lì)函數(shù):f(net)=21+exp(Xnet)f(net)W(-1,1)單極型的S型激勵(lì)函數(shù):f(net)=11+exp(-Xnet)f(net)W(0,1)圖3.2sigmoid型函數(shù)圖形對(duì)于多層網(wǎng)絡(luò),這種激勵(lì)函數(shù)所劃分的區(qū)域不再是線性劃分,而是由一個(gè)非線性的超平面組成的區(qū)
24、域。因?yàn)镾型函數(shù)具有非線性的大系數(shù)功能。它可以把輸入從負(fù)無(wú)窮到正無(wú)窮大的信號(hào)變換成一1到+1之間輸出,所以采用S型函數(shù)可以實(shí)現(xiàn)從輸入到輸出的非線性映射。BP網(wǎng)絡(luò)學(xué)習(xí)規(guī)則BP網(wǎng)絡(luò)最為核心的部分便是網(wǎng)絡(luò)的學(xué)習(xí)規(guī)則。用BP算法訓(xùn)練網(wǎng)絡(luò)時(shí)有兩種方式:一種是每輸入一樣本修改一次權(quán)值;另一種是批處理方式,即使組成一個(gè)訓(xùn)練周期的全部樣本都依次輸入后計(jì)算總的平均誤差。這里我們主要探討的是后一種方式。下面我們給出兩層網(wǎng)絡(luò)結(jié)構(gòu)示意簡(jiǎn)圖4.3,并以此探討B(tài)P算法。BP網(wǎng)絡(luò)的學(xué)習(xí)過(guò)程主要由以下四部分組成:輸入樣本順傳播輸入樣本傳播也就是樣本由輸入層經(jīng)中間層向輸出層傳播計(jì)算。這一過(guò)程主要是輸入樣本求出它所對(duì)應(yīng)的實(shí)際輸出
25、。隱含層中第i個(gè)神經(jīng)元的輸出為a=1i為wp+b1ijj1iIJ=1JJ丿i=1,2,s13.1)輸出層中第k個(gè)神經(jīng)元的輸出為:a2k近wa+b2ki1i2ki=1,2,s23.2)3.3)3.4)3.5)3.6)i=1其中f1(),f2()分別為隱含層的激勵(lì)函數(shù)。輸出誤差逆?zhèn)鞑ピ诘谝徊降臉颖卷槀鞑ビ?jì)算中我們得到了網(wǎng)絡(luò)的實(shí)際輸出值,當(dāng)這些實(shí)際的輸出值與期望輸出值不一樣時(shí),或者說(shuō)其誤差大于所限定的數(shù)值時(shí),就要對(duì)網(wǎng)絡(luò)進(jìn)行校正。首先,定義誤差函數(shù)E(w,b)=它(ta)22k2kk=1其次,給出權(quán)值的變化輸出層的權(quán)值變化從第i個(gè)輸入到第k個(gè)輸出的權(quán)值為:QEAw=耳=-5-a2kiQwki1i2ki
26、其中:5=efkik2e=lakk2k隱含層的權(quán)值變化從第j個(gè)輸入到第i個(gè)輸出的權(quán)值為:0EAw=-n-=n-p0n1(“為學(xué)習(xí)系數(shù))TOC o 1-5 h z(/ow(/j1ij(3.7)其中:8=e-f(3.8)iji1e=28-w(3.9)iki2kik=1由此可以看出:調(diào)整是與誤差成正比,即誤差越大調(diào)整的幅度就越大。調(diào)整量與輸入值大小成比例,在這次學(xué)習(xí)過(guò)程中就顯得越活躍,所以與其相連的權(quán)值的調(diào)整幅度就應(yīng)該越大,調(diào)整是與學(xué)習(xí)系數(shù)成正比。通常學(xué)習(xí)系數(shù)在0.10.8之間,為使整個(gè)學(xué)習(xí)過(guò)程加快,又不會(huì)引起振蕩,可采用變學(xué)習(xí)率的方法,即在學(xué)習(xí)初期取較大的學(xué)習(xí)系數(shù)隨著學(xué)習(xí)過(guò)程的進(jìn)行逐漸減小其值。最
27、后,將輸出誤差由輸出層經(jīng)中間層傳向輸入層,逐層進(jìn)行校正。3)循環(huán)記憶訓(xùn)練為使網(wǎng)絡(luò)的輸出誤差盡可能的小,對(duì)于BP網(wǎng)絡(luò)輸入的每一組訓(xùn)練樣本,一般要經(jīng)過(guò)數(shù)百次甚至上萬(wàn)次的反復(fù)循環(huán)記憶訓(xùn)練,才能使網(wǎng)絡(luò)記住這一樣本模式。這種循環(huán)記憶訓(xùn)練實(shí)際上就是反復(fù)重復(fù)上面介紹的輸入模式正向傳播和輸出誤差逆?zhèn)鞑ミ^(guò)程。4)學(xué)習(xí)結(jié)束的檢驗(yàn)當(dāng)每次循環(huán)記憶結(jié)束后,都要進(jìn)行學(xué)習(xí)是否結(jié)束的檢驗(yàn)。檢驗(yàn)的目的主要是檢查輸出誤差是否已經(jīng)符合要求。如果小到了允許的程度,就可以結(jié)束整個(gè)學(xué)習(xí)過(guò)程,否則還要進(jìn)行循環(huán)訓(xùn)練。(三)BP網(wǎng)絡(luò)的訓(xùn)練對(duì)BP網(wǎng)絡(luò)進(jìn)行訓(xùn)練時(shí),首先要提供一組訓(xùn)練樣本,其中每個(gè)樣本由輸入樣本和輸出對(duì)組成。當(dāng)網(wǎng)絡(luò)的所有實(shí)際輸出與其
28、理想輸出一致時(shí),表明訓(xùn)練結(jié)束。否則,通過(guò)修正權(quán)值,使網(wǎng)絡(luò)的實(shí)際輸出與理想輸出一致。實(shí)際上針對(duì)不同具體情況,BP網(wǎng)絡(luò)的訓(xùn)練有相應(yīng)的學(xué)習(xí)規(guī)則,即不同的最優(yōu)化算法,沿減少理想輸出與實(shí)際輸出之間誤差的原則,實(shí)現(xiàn)BP網(wǎng)絡(luò)的函數(shù)逼近、向量分類和模式識(shí)別。以圖3.3為例來(lái)說(shuō)明BP網(wǎng)絡(luò)訓(xùn)練的主要過(guò)程。DS1_輸入神經(jīng)元數(shù)僮含層神經(jīng)元數(shù)輸出層神經(jīng)元元裁圖3.3含一個(gè)隱含層的BP網(wǎng)絡(luò)結(jié)構(gòu)首先:網(wǎng)絡(luò)初始化,構(gòu)造合理的網(wǎng)絡(luò)結(jié)構(gòu)(這里我們采用圖4.3的網(wǎng)絡(luò)結(jié)構(gòu)),取可調(diào)參數(shù)(權(quán)和閥值)為-1,1上服從均勻分布隨機(jī)數(shù),并取定期望誤差、最大循環(huán)次數(shù)和修正權(quán)值的學(xué)習(xí)率的初始值。其次,利用相應(yīng)的BP網(wǎng)絡(luò)學(xué)習(xí)規(guī)則對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,
29、求得權(quán)值修正后的誤差平方和。最后,檢查網(wǎng)絡(luò)誤差平方和是否降低到期望誤差之下,若是,訓(xùn)練結(jié)束,否則繼續(xù)。重要BP神經(jīng)網(wǎng)絡(luò)函數(shù)的使用方法函數(shù)initff()和simuff可以用來(lái)初始化和仿真不超過(guò)三層的前饋型網(wǎng)絡(luò)。函數(shù)trainbp()、trainbpx()、trainlm()可用來(lái)訓(xùn)練BP網(wǎng)絡(luò)。其中trainlm()的訓(xùn)練速度最快,但它需要更大的存儲(chǔ)空間,也就是說(shuō)它是以空間換取了時(shí)間;trainbpx()的訓(xùn)練速度次之;trainlm()最慢。1初始化函數(shù)initff()函數(shù)initff()的主要功能就是對(duì)至多三層的BP網(wǎng)絡(luò)初始化。其使用格式有多種,現(xiàn)列如下:w,b=initff(p,s,f)w
30、1,b1,w2,b2=initff(p,s1,f1,s2,f2)w1,b1,w2,b2,w3,b3=initff(p,s1,f1,f2,s3,f3) l8w,b=initff(p,s,t)w1,b1,w2,b2=initff(p,s1,f1,s2,t)w1,b1,w2,b2,w3,b3=initff(p,s1,f1,s2,f2,s3,t)w,b=initff(p,s,f)可得到s個(gè)神經(jīng)元的單層神經(jīng)網(wǎng)絡(luò)的權(quán)值和閥值,其中p為輸入向量,f為神經(jīng)元的激勵(lì)函數(shù)。BP網(wǎng)絡(luò)有一個(gè)特點(diǎn)很重要,即p中的每一行中必須包含網(wǎng)絡(luò)期望輸入的最大值和最小值,這樣才能合理地初始化權(quán)值和閥值。2仿真函數(shù)simuff()BP
31、網(wǎng)絡(luò)是由一系列網(wǎng)絡(luò)層組成,每一層都從前一層得到輸入數(shù)據(jù),函數(shù)simuff()可仿真至多三層前饋型網(wǎng)絡(luò)。對(duì)于不同的網(wǎng)絡(luò)層數(shù),其使用格式為:a=simuff(p,w1,b1,f1)a=simuff(p,w1,b1,f1,w2,b2,f2)a=simuff(p,w1,b1,f1,w2,b2,f2,w3,b3,f3)以上三式分別為單層、雙層和三層網(wǎng)絡(luò)結(jié)構(gòu)的仿真輸出。3訓(xùn)練函數(shù)關(guān)于前面所提到的幾種BP網(wǎng)絡(luò)訓(xùn)練函數(shù),在這里只介紹其中之一:trainbp()。函數(shù)trainbp()利用BP算法訓(xùn)練前饋型網(wǎng)絡(luò)。trainbp()函數(shù)可以訓(xùn)練單層、雙層和三層的前饋型網(wǎng)絡(luò),其調(diào)用格式分別為:w,b,te,tr=t
32、rainbp(w,b,f,p,t,tp)wl,b1,w2,b2,te,tr=trainbp(wl,bl,fl,w2,b2,f2,p,t,tp)wl,bl,w2,b2,w3,b3,te,tr=trainbp(wl,bl,fl,w2,b2,f2,w3,b3,f3,p,t,tp)可選訓(xùn)練參數(shù)tp內(nèi)的四個(gè)參數(shù)依次為:tp指定兩次顯示間的訓(xùn)練次數(shù),其缺省值25;tp(2)指定訓(xùn)練的最大次數(shù),其缺省值lOO;tp(3)指定誤差平方和指標(biāo),其缺省值0.02;tp(4)指定學(xué)習(xí)速率,其缺省值O.Ol;只有網(wǎng)絡(luò)誤差平方和降低到期望誤差之下,或者達(dá)到了最大訓(xùn)練次數(shù),網(wǎng)絡(luò)才停止學(xué)習(xí)。學(xué)習(xí)速率指定了權(quán)值與閥值的更新比
33、例,較小學(xué)習(xí)速率會(huì)導(dǎo)致學(xué)習(xí)時(shí)間較長(zhǎng),但可提高網(wǎng)絡(luò)權(quán)值收斂效果。BP網(wǎng)絡(luò)的應(yīng)用舉例BP網(wǎng)絡(luò)的函數(shù)逼近舉例:設(shè)計(jì)一個(gè)BP網(wǎng)絡(luò),其隱含層神經(jīng)元的激勵(lì)函數(shù)為雙曲正切函數(shù),輸出層神經(jīng)元的激勵(lì)函數(shù)為線性函數(shù),學(xué)習(xí)樣本為21組單輸入矢量,理想輸出為相應(yīng)的單輸出矢量。輸入矢量為:p=-1:0.1:1;理想輸出矢量為:t=-0.96-0.577-0.07290.3770.6410.660.4610.1336-0.201-0.434-0.5-0.393-0.16470.09880.30720.3960.34490.1816-0.0312-0.2183-0.3201;輸入輸出的函數(shù)關(guān)系曲線:plot(p,t)xla
34、bel(Input)利用輸入和理想輸出進(jìn)行BP神經(jīng)網(wǎng)絡(luò)初始化:w1,b1,w2,b2=initff(p,5,tansig,t,purelin)利用函數(shù)trainbp對(duì)構(gòu)造的BP網(wǎng)絡(luò)進(jìn)行訓(xùn)練:df=10me=8000eg=0.02lr=0.01tp=dfmeeglrw1,b1,w2,b2,ep,tr=trainbp(w1,b1,tansig,w2,b2,purelin,p,t,tp)其中df指定兩次顯示間的訓(xùn)練次數(shù),其缺省值25;me指定訓(xùn)練的最大次數(shù),其缺省值100;eg指定誤差平方和指標(biāo),其缺省值0.02;lr指定學(xué)習(xí)速率,其缺省值0.01;訓(xùn)練結(jié)果與理想輸出對(duì)比分析:111Function
35、Approximation,0.81-1-1-0.8-0.6-0.4-0.200.20.40.60.81Input圖3.5訓(xùn)練結(jié)果與理想輸出對(duì)比分析網(wǎng)絡(luò)的訓(xùn)練過(guò)程中,網(wǎng)絡(luò)收斂效果一定程度上要受網(wǎng)絡(luò)初始化的初始值的影響,實(shí)際輸出和理想輸出的誤差的變化情況可以反映網(wǎng)絡(luò)學(xué)習(xí)的效果這一點(diǎn)可以通過(guò)如圖3.6反映:ploterr(tr,eg)其中tr為網(wǎng)絡(luò)學(xué)習(xí)的循環(huán)次數(shù)。Sum-SquaredNetworkErrorfor535Epochs10-2050100150200250300350400450500EpochsTJJJdeRruas_mUS圖3.6誤差曲線三、實(shí)驗(yàn)步驟1、利用感知器進(jìn)行分類一個(gè)經(jīng)過(guò)
36、訓(xùn)練的2輸入神經(jīng)元對(duì)5個(gè)輸入向量進(jìn)行分類(2類)結(jié)合一個(gè)例子給出步驟。步驟一:兩個(gè)長(zhǎng)度為5的向量構(gòu)成輸入樣本矩陣P,行向量T為指導(dǎo)向量。利用PLOTPV畫出這個(gè)向量的圖像。例如:P=-0.5-0.5+0.3-0.1-4;-0.5+0.5-0.5+1.05;T=11001;plotpv(P,T);/plotpv函數(shù)利用感知器的輸入向量和目標(biāo)向量來(lái)畫輸入向量的圖像步驟二建立神經(jīng)網(wǎng)絡(luò)MATLAB提供函數(shù)newp來(lái)創(chuàng)建一個(gè)指定的感知器。第一個(gè)參數(shù)指定了期望的兩個(gè)輸入向量的取值范圍,第二個(gè)參數(shù)指定了只有一個(gè)神經(jīng)元。net=newp(-401;-150,1);注意:這個(gè)神經(jīng)元的傳遞函數(shù)是hardlim函數(shù)
37、,也就是階躍函數(shù)。取0,1兩個(gè)值。Hardlims函數(shù),取-1,1兩個(gè)值。步驟三添加神經(jīng)元的初始化值到分類圖初始化的權(quán)值被設(shè)為0,因此任何輸入都會(huì)給出同樣的輸出,并且分類線不會(huì)出現(xiàn)在這個(gè)圖中,不用害怕,我們會(huì)繼續(xù)訓(xùn)練這個(gè)神經(jīng)網(wǎng)。holdonlinehandle=plotpc(net.IW1,net.b1);/plotpc函數(shù)用來(lái)畫神經(jīng)網(wǎng)絡(luò)的分類線步驟四訓(xùn)練感知器Matlab提供了adapt函數(shù)來(lái)訓(xùn)練感知器,adapt函數(shù)返回一個(gè)新的能更好的執(zhí)行分類、網(wǎng)絡(luò)的輸出、和誤差的神經(jīng)網(wǎng)絡(luò),這個(gè)劃線函數(shù)允許網(wǎng)絡(luò)從3個(gè)角度去調(diào)整,畫分類線一直到誤差為0為止。E=1;/E為誤差net.adaptParam.p
38、asses=3;while(sse(E)/sse函數(shù)是用來(lái)判定誤差E的函數(shù)net,Y,E=adapt(net,P,T);利用輸入樣本調(diào)節(jié)神經(jīng)網(wǎng)netlinehandle=plotpc(net.IW1,net.b1,linehandle);畫出調(diào)整以后的分類線drawnow;/延遲一段時(shí)間end步驟五模擬simSIM函數(shù)能被用來(lái)劃分任何別的輸入向量,例如劃分一個(gè)輸入向量0.7;1.2.這個(gè)新點(diǎn)的圖像為紅色,他將用來(lái)顯示這個(gè)感知器如何把這個(gè)新點(diǎn)從最初的訓(xùn)練集取分開來(lái)。p=0.7;1.2;a=sim(net,p);/利用模擬函數(shù)sim計(jì)算出新輸入p的神經(jīng)網(wǎng)絡(luò)的輸出plotpv(p,a);circle
39、=findobj(gca,type,line);set(circle,Color,red);打開Hold,以便于以前的圖像不被刪除。增加訓(xùn)練裝置和分類線在圖中。holdon;plotpv(P,T);plotpc(net.IW1,net.b1);holdoff;axis(-22-22);最后放大感興趣的區(qū)域。這個(gè)感知器正確的區(qū)分了我們的新點(diǎn)(用紅色表示)作為”zero”類(用圓圈表示),而不是”one”類(用+號(hào)表示),盡管需要比較長(zhǎng)的訓(xùn)練時(shí)間,這個(gè)感知器仍然適當(dāng)?shù)倪M(jìn)行了學(xué)習(xí)。2、BP神經(jīng)網(wǎng)絡(luò)進(jìn)行函數(shù)逼近。第一步問(wèn)題的提出設(shè)計(jì)一個(gè)簡(jiǎn)單的BP網(wǎng)絡(luò),實(shí)現(xiàn)對(duì)非線性函數(shù)的逼近,通過(guò)改變BP網(wǎng)絡(luò)的隱層神經(jīng)元的數(shù)目,采用不同的訓(xùn)練方法來(lái)觀察
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年證件打印一體機(jī)項(xiàng)目合作計(jì)劃書
- 2025年中石化:石油腦項(xiàng)目合作計(jì)劃書
- 吧臺(tái)設(shè)備轉(zhuǎn)讓合同范例
- 影片拍攝投標(biāo)合同范本
- 農(nóng)業(yè)技能培訓(xùn)合同范本
- 司機(jī)水泥合同范例
- 合同范例新版正版
- 單位綠化施工合同范例
- LED戶外顯示屏廣告位租賃合同范本
- 個(gè)人購(gòu)房合同范本簡(jiǎn)易
- 《數(shù)獨(dú)》(第一課)教學(xué)課件
- 干部作風(fēng)建設(shè) 講義課件
- 新教科版三年級(jí)下冊(cè)科學(xué)全冊(cè)教案(2022年1月修訂)
- 便與健康課件
- 自然辯證法概論課件:第二章馬克思主義科學(xué)技術(shù)觀
- 氣道廓清技術(shù)及護(hù)理課件
- 中國(guó)黃金集團(tuán)公司黃金工業(yè)項(xiàng)目初步設(shè)計(jì)
- 《現(xiàn)代漢語(yǔ)語(yǔ)法》PPT課件(完整版)
- SAP培訓(xùn)講義(FICO概覽)V3-中石油
- 全國(guó)江蘇小學(xué)科學(xué)學(xué)科教師基本功大賽試題匯總(共19頁(yè))
- 幕墻工程施工質(zhì)量通病和防治措施方案
評(píng)論
0/150
提交評(píng)論