BP神經(jīng)網(wǎng)絡(luò)匯總課件_第1頁
BP神經(jīng)網(wǎng)絡(luò)匯總課件_第2頁
BP神經(jīng)網(wǎng)絡(luò)匯總課件_第3頁
BP神經(jīng)網(wǎng)絡(luò)匯總課件_第4頁
BP神經(jīng)網(wǎng)絡(luò)匯總課件_第5頁
已閱讀5頁,還剩77頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第6章BP神經(jīng)網(wǎng)絡(luò)編者第6章BP神經(jīng)網(wǎng)絡(luò)編者Outline1.BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)2.BP網(wǎng)絡(luò)的學(xué)習(xí)算法3.設(shè)計(jì)BP網(wǎng)絡(luò)的方法4.BP神經(jīng)網(wǎng)絡(luò)的局限性5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解6.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實(shí)例Outline1.BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)1.BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)

BP神經(jīng)網(wǎng)絡(luò)是包含多個(gè)隱含層的網(wǎng)絡(luò),具備處理線性不可分問題的能力。誤差反向傳播算法(ErrorBackPropagtion,BP),解決了多層神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)問題。是一種多層前向網(wǎng)絡(luò),又叫多層感知器。BP網(wǎng)絡(luò)是前向神經(jīng)網(wǎng)絡(luò)的核心部分,也是整個(gè)人工神經(jīng)網(wǎng)絡(luò)體系中的精華,廣泛應(yīng)用于分類識(shí)別、逼近、回歸、壓縮等領(lǐng)域。在實(shí)際應(yīng)用中,大約80%的神經(jīng)網(wǎng)絡(luò)模型采取了BP網(wǎng)絡(luò)或BP網(wǎng)絡(luò)的變化形式。1.BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)BP神經(jīng)網(wǎng)絡(luò)是包含多個(gè)隱含層的1.BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)網(wǎng)絡(luò)由多層構(gòu)成,層與層之間全連接,同一層之間的神經(jīng)元無連接。包含一個(gè)多多個(gè)隱層,可以實(shí)現(xiàn)復(fù)雜的映射關(guān)系。1.BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)網(wǎng)絡(luò)由多層構(gòu)成,層與層之間全連1.BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)

BP網(wǎng)絡(luò)的傳遞函數(shù)必須可微。BP網(wǎng)絡(luò)一般使用Sigmoid函數(shù)或線性函數(shù)作為傳遞函數(shù)。Sigmoid函數(shù)是光滑、可微的函數(shù),在分類時(shí)它比線性函數(shù)更精確,容錯(cuò)性較好。將輸入從負(fù)無窮到正無窮的范圍映射到0~1或-1~1區(qū)間內(nèi),具有非線性的放大功能。Log-SigmoidTan-Sigmoid1.BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)BP網(wǎng)絡(luò)的傳遞函數(shù)必須可微。B1.BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)“誤差反向傳播”:誤差信號(hào)反向傳播。修正權(quán)值時(shí),網(wǎng)絡(luò)根據(jù)誤差從后向前逐層進(jìn)行修正?!胺答伾窠?jīng)網(wǎng)絡(luò)”:輸出層的輸出值又連接到輸入神經(jīng)元作為下一次計(jì)算的輸入,如此循環(huán)迭代,直到網(wǎng)絡(luò)的輸出值進(jìn)入穩(wěn)定狀態(tài)為止。在本書后面的章節(jié)中會(huì)專門介紹反饋神經(jīng)網(wǎng)絡(luò),包括Hopfield網(wǎng)絡(luò)、Elman網(wǎng)絡(luò)等。BP神經(jīng)網(wǎng)絡(luò)屬于多層前向網(wǎng)絡(luò),工作信號(hào)始終正向流動(dòng),沒有反饋結(jié)構(gòu)。

BP網(wǎng)絡(luò)采用誤差反向傳播算法(Back-PropagationAlgorithm)進(jìn)行學(xué)習(xí)。在BP網(wǎng)絡(luò)中,數(shù)據(jù)從輸入層經(jīng)隱含層逐層向后傳播,訓(xùn)練網(wǎng)絡(luò)權(quán)值時(shí),則沿著減少誤差的方向,從輸出層經(jīng)過中間各層逐層向前修正網(wǎng)絡(luò)的連接權(quán)值。1.BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)“誤差反向傳播”:誤差信號(hào)2.BP網(wǎng)絡(luò)的學(xué)習(xí)算法BP學(xué)習(xí)算法的原理與LMS算法比較類似,屬于最速下降法。最速下降法最速下降法可以求某指標(biāo)(目標(biāo)函數(shù))的極小值,若將目標(biāo)函數(shù)取為均方誤差,就得到了LMS算法。對(duì)于實(shí)值函數(shù),如果在某點(diǎn)處有定義且可微,則函數(shù)在該點(diǎn)處沿著梯度相反的方向下降最快。因此,使用梯度下降法時(shí),應(yīng)首先計(jì)算函數(shù)在某點(diǎn)處的梯度,再沿著梯度的反方向以一定的步長(zhǎng)調(diào)整自變量的值。當(dāng)步長(zhǎng)足夠小時(shí)反復(fù)迭代求得函數(shù)最小值2.BP網(wǎng)絡(luò)的學(xué)習(xí)算法BP學(xué)習(xí)算法的原理與LMS算2.BP網(wǎng)絡(luò)的學(xué)習(xí)算法最速下降法實(shí)例:求函數(shù)的最小值根據(jù)梯度值可以再函數(shù)中畫出一系列的等值線或等值面,在等值線或等值面上函數(shù)值相等。梯度下降法相當(dāng)于沿著垂直于等值線方向向最小值所在位置移動(dòng)。2.BP網(wǎng)絡(luò)的學(xué)習(xí)算法最速下降法實(shí)例:求函數(shù)的最小值2.BP網(wǎng)絡(luò)的學(xué)習(xí)算法(1)目標(biāo)函數(shù)必須可微。(2)如果最小值附近比較平坦,算法會(huì)在最小值附近停留很久,收斂緩慢。

“之”字形下降(3)對(duì)于包含多個(gè)極小值的函數(shù),所獲得的結(jié)果依賴初始值。算法有可能陷入局部極小值點(diǎn),而沒有達(dá)到全局最小值點(diǎn)。BP神經(jīng)網(wǎng)絡(luò)來說,由于傳遞函數(shù)都是可微的,因此能滿足最速下降法的使用條件。2.BP網(wǎng)絡(luò)的學(xué)習(xí)算法(1)目標(biāo)函數(shù)必須可微。92.BP網(wǎng)絡(luò)的學(xué)習(xí)算法最速下降BP法隱含層傳遞函數(shù)為Sigmoid函數(shù),輸出層傳遞函數(shù)為線性函數(shù)1.工作信號(hào)正向傳播2.誤差信號(hào)反向傳播權(quán)值調(diào)整量=學(xué)習(xí)率*局部梯度*上一層輸出信號(hào)2.BP網(wǎng)絡(luò)的學(xué)習(xí)算法最速下降BP法隱含層傳遞函數(shù)為Sig102.BP網(wǎng)絡(luò)的學(xué)習(xí)算法當(dāng)輸出層傳遞函數(shù)為線性函數(shù)時(shí),輸出層與隱含層之間權(quán)值調(diào)整的規(guī)則類似于線性神經(jīng)網(wǎng)絡(luò)的權(quán)值調(diào)整規(guī)則。BP網(wǎng)絡(luò)的復(fù)雜之處在于,隱含層與隱含層之間、隱含層與輸入層之間調(diào)整權(quán)值時(shí),局部梯度的計(jì)算需要用到上一步計(jì)算的結(jié)果。前一層的局部梯度是后一層局部梯度的加權(quán)和。因此,BP網(wǎng)絡(luò)學(xué)習(xí)權(quán)值時(shí)只能從后向前依次計(jì)算。串行方式。在線方式,網(wǎng)絡(luò)每獲得一個(gè)新樣本,就計(jì)算一次誤差并更新權(quán)值,直到樣本輸入完畢。隨機(jī)輸入樣本,不容易陷入局部最優(yōu)陷阱。批量方式:離線方式。網(wǎng)絡(luò)獲得所有的訓(xùn)練樣本,計(jì)算所有樣本均方誤差的和作為總誤差。容易并行化,速度快。2.BP網(wǎng)絡(luò)的學(xué)習(xí)算法當(dāng)輸出層傳遞函數(shù)為線性函數(shù)112.BP網(wǎng)絡(luò)的學(xué)習(xí)算法動(dòng)量BP法在標(biāo)準(zhǔn)BP算法的權(quán)值更新階段引入動(dòng)量因子,使權(quán)值修正值具有一定慣性:本次權(quán)值的更新方向和幅度不但與本次計(jì)算所得的梯度有關(guān),還與上一次更新的方向和幅度有關(guān)(1)如果前后兩次計(jì)算所得的梯度方向相同,得到的權(quán)值較大,可以加速收斂過程。(2)如果前后兩次計(jì)算所得梯度方向相反,則說明兩個(gè)位置之間可能存在一個(gè)極小值,可以得到一個(gè)較小的步長(zhǎng),更容易找到最小值點(diǎn),而不會(huì)陷入來回振蕩2.BP網(wǎng)絡(luò)的學(xué)習(xí)算法動(dòng)量BP法在標(biāo)準(zhǔn)B122.BP網(wǎng)絡(luò)的學(xué)習(xí)算法

學(xué)習(xí)率可變的BP算法:當(dāng)誤差以減小的方式趨于目標(biāo)時(shí),說明修正方向是正確的,可以增加學(xué)習(xí)率;當(dāng)誤差增加超過一定范圍時(shí),說明前一步修正進(jìn)行地不正確,應(yīng)減小步長(zhǎng),并撤銷前一步修正過程。

擬牛頓法。牛頓法具有收斂快的優(yōu)點(diǎn),但需要計(jì)算誤差性能函數(shù)的二階導(dǎo)數(shù),計(jì)算較為復(fù)雜。擬牛頓法只需要知道目標(biāo)函數(shù)的梯度,通過測(cè)量梯度的變化進(jìn)行迭代,收斂速度大大優(yōu)于最速下降法。擬牛頓法有DFP方法、BFGS方法、SR1方法和Broyden族方法。2.BP網(wǎng)絡(luò)的學(xué)習(xí)算法學(xué)習(xí)率可變的BP算法:133.設(shè)計(jì)BP網(wǎng)絡(luò)的方法1.網(wǎng)絡(luò)層數(shù)。對(duì)于大部分應(yīng)用場(chǎng)合,單個(gè)隱含層即可滿足需要2.輸入層節(jié)點(diǎn)數(shù)。輸入層節(jié)點(diǎn)數(shù)取決于輸入向量的維數(shù)。如果輸入的是的圖像,則輸入向量應(yīng)為圖像中所有的像素形成的4096維向量。如果待解決的問題是二元函數(shù)擬合,則輸入向量應(yīng)為二維向量。3.隱含層節(jié)點(diǎn)數(shù)。較多的隱含層節(jié)點(diǎn)數(shù)可以帶來更好的性能,但可能導(dǎo)致訓(xùn)練時(shí)間過長(zhǎng)。經(jīng)驗(yàn)公式:BP網(wǎng)絡(luò)的設(shè)計(jì)主要包括網(wǎng)絡(luò)層數(shù)、輸入層節(jié)點(diǎn)數(shù)、隱含層節(jié)點(diǎn)數(shù)、輸出層節(jié)點(diǎn)數(shù)及傳輸函數(shù)、訓(xùn)練方法、訓(xùn)練參數(shù)的設(shè)置等幾個(gè)方面。樣本數(shù)輸入層結(jié)點(diǎn)數(shù)3.設(shè)計(jì)BP網(wǎng)絡(luò)的方法1.網(wǎng)絡(luò)層數(shù)。對(duì)于大部分應(yīng)用場(chǎng)合,單個(gè)143.設(shè)計(jì)BP網(wǎng)絡(luò)的方法輸出層神經(jīng)元的個(gè)數(shù)同樣需要根據(jù)從實(shí)際問題中得到的抽象模型來確定。在模式分類問題中,如果共有n種類別,則輸出可以采用n個(gè)神經(jīng)元。也可以將節(jié)點(diǎn)個(gè)數(shù)設(shè)計(jì)為個(gè),表示最小的不小于的整數(shù)。由于輸出共有4種情況,因此采用二維輸出即可覆蓋整個(gè)輸出空間,00、01、10和11分別表示一種類別。輸出層神經(jīng)元個(gè)數(shù)傳遞函數(shù)的選擇一般隱含層使用Sigmoid函數(shù),而輸出層使用線性函數(shù)。如果輸出層也采用Sigmoid函數(shù),輸出值將會(huì)被限制在0~1或-1~1之間。3.設(shè)計(jì)BP網(wǎng)絡(luò)的方法輸出層神經(jīng)元的個(gè)數(shù)同樣需要153.設(shè)計(jì)BP網(wǎng)絡(luò)的方法訓(xùn)練方法的選擇使用LM算法收斂速度最快,均方誤差也較小。LM算法對(duì)于模式識(shí)別相關(guān)問題的處理能力較弱,且需要較大的存儲(chǔ)空間模式識(shí)別問題,使用RPROP算法能收到較好的效果SCG算法對(duì)于模式識(shí)別和函數(shù)逼近問題都有較好的性能表現(xiàn)。初始權(quán)值的確定通常將初始權(quán)值定義為較小的非零隨機(jī)值,經(jīng)驗(yàn)值為:權(quán)值輸入端連接的神經(jīng)元個(gè)數(shù)3.設(shè)計(jì)BP網(wǎng)絡(luò)的方法訓(xùn)練方法的選擇使用LM算法收斂速度最163.設(shè)計(jì)BP網(wǎng)絡(luò)的方法確定以上參數(shù)后,將訓(xùn)練數(shù)據(jù)進(jìn)行歸一化處理,并輸入網(wǎng)絡(luò)中進(jìn)行學(xué)習(xí),若網(wǎng)絡(luò)成功收斂,即可得到所需的神經(jīng)網(wǎng)絡(luò)。3.設(shè)計(jì)BP網(wǎng)絡(luò)的方法確定以上參數(shù)后,將訓(xùn)練數(shù)據(jù)進(jìn)174.BP神經(jīng)網(wǎng)絡(luò)的局限性BP網(wǎng)絡(luò)具有實(shí)現(xiàn)任何復(fù)雜非線性映射的能力,特別適合求解內(nèi)部機(jī)制復(fù)雜的問題,但BP網(wǎng)絡(luò)也具有一些難以克服的局限性(1)需要的參數(shù)較多,且參數(shù)的選擇沒有有效的方法。隱含層結(jié)點(diǎn)個(gè)數(shù)。(2)容易陷入局部最優(yōu)。(3)樣本依賴性。如果樣本集合代表性差、矛盾樣本多、存在冗余樣本,網(wǎng)絡(luò)就很難達(dá)到預(yù)期的性能(4)初始權(quán)重敏感性。訓(xùn)練的第一步是給定一個(gè)較小的隨機(jī)初始權(quán)重,由于權(quán)重是隨機(jī)給定的,BP網(wǎng)絡(luò)往往具有不可重現(xiàn)性。4.BP神經(jīng)網(wǎng)絡(luò)的局限性BP網(wǎng)絡(luò)具有實(shí)現(xiàn)任何復(fù)雜非線性映射的185.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解函數(shù)名稱功能logsigLog-Sigmoid函數(shù)tansigTan-Sigmoid函數(shù)newff創(chuàng)建一個(gè)BP網(wǎng)絡(luò)feedforwardnet創(chuàng)建一個(gè)BP網(wǎng)絡(luò)(推薦使用)newcf創(chuàng)建級(jí)聯(lián)的前向神經(jīng)網(wǎng)絡(luò)cascadeforwardnet創(chuàng)建級(jí)聯(lián)的前向神經(jīng)網(wǎng)絡(luò)(推薦使用)newfftd創(chuàng)建前饋輸入延遲的BP網(wǎng)絡(luò)5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解函數(shù)名稱功能logsigLog-Si195.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解

logsig——Log-Sigmoid傳輸函數(shù)Log-Sigmoid函數(shù)的特點(diǎn)是范圍的數(shù)據(jù)被映射到區(qū)間可以使用下面的代碼將神經(jīng)網(wǎng)絡(luò)節(jié)點(diǎn)的傳輸函數(shù)定義為L(zhǎng)og-Sigmoid函數(shù):net.layers{i}.transferFcn=’logsig’;5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解logsig——Log-Si205.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解

tansig——Tan-Sigmoid傳輸函數(shù)tansig是雙曲正切Sigmoid函數(shù),調(diào)用形式與logsig函數(shù)相同。取值范圍:>>x=-4:.1:4;>>y=tansig(x); %Tag-Sigmoid函數(shù)>>plot(x,y,'^-r')>>title('Tan-sig函數(shù)')>>xlabel('x')>>ylabel('y')>>gridon5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解tansig——Tan-Sigmo215.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解

dlogsig/dtansig——Sigmoid函數(shù)的導(dǎo)數(shù)>>x=-4:.1:4;>>y=logsig(x); %logsig函數(shù)>>dy=dlogsig(x,y);%logsig函數(shù)的導(dǎo)數(shù)>>subplot(211)>>plot(x,y);>>title('logsig')>>subplot(212);>>plot(x,dy);>>title('dlogsig')5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解dlogsig/dtansig——225.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解newff——?jiǎng)?chuàng)建一個(gè)BP網(wǎng)絡(luò):新版語法net=newff(P,T,S)P:R*Q1矩陣,表示創(chuàng)建的神經(jīng)網(wǎng)絡(luò)中,輸入層有R個(gè)神經(jīng)元。每行對(duì)應(yīng)一個(gè)神經(jīng)元輸入數(shù)據(jù)的典型值,實(shí)際應(yīng)用中常取其最大最小值。T:SN*Q2矩陣,表示創(chuàng)建的網(wǎng)絡(luò)有SN個(gè)輸出層節(jié)點(diǎn),每行是輸出值的典型值S:標(biāo)量或向量,用于指定隱含層神經(jīng)元個(gè)數(shù),若隱含層多于一層,則寫成行向量的形式。舊版語法格式net=newff(P,N,TF,BTF):P表示輸入向量的典型值,N為各層神經(jīng)元的個(gè)數(shù),TF為表示傳輸函數(shù)的細(xì)胞數(shù)組,BTF為訓(xùn)練函數(shù)5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解newff——?jiǎng)?chuàng)建一個(gè)BP網(wǎng)絡(luò):235.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解舊版newff默認(rèn)訓(xùn)練函數(shù)為traingdx(學(xué)習(xí)率自適應(yīng)并附加動(dòng)量因子的最速下降法),新版默認(rèn)訓(xùn)練函數(shù)為trainlm。新版速度更快,但更占用內(nèi)存新版newff將輸入的60%用于訓(xùn)練,20%用于檢驗(yàn),20%用于驗(yàn)證,采用了提前終止的策略,防止過擬合的情況發(fā)生。對(duì)于同一個(gè)問題,往往會(huì)出現(xiàn)新版最終訓(xùn)練誤差大于舊版newff的情況。用newff逼近二次函數(shù),新版的函數(shù)誤差比舊版函數(shù)大example6_3.m5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解舊版newff默認(rèn)訓(xùn)練函數(shù)為tr245.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解feedforwardnet——?jiǎng)?chuàng)建一個(gè)BP網(wǎng)絡(luò)feedforwardnet是新版神經(jīng)網(wǎng)絡(luò)工具箱中替代newff的函數(shù)feedforwardnet(hiddenSizes,trainFcn)hiddenSizes為隱含層的神經(jīng)元節(jié)點(diǎn)個(gè)數(shù),如果有多個(gè)隱含層,則hiddenSizes是一個(gè)行向量,缺省值為10。trainFcn為訓(xùn)練函數(shù),缺省值為’trainlm’。>>[x,t]=simplefit_dataset; %MATLAB自帶數(shù)據(jù),x、t均為1*94向量>>net=feedforwardnet; >>view(net)>>net=train(net,x,t); >>view(net)>>y=net(x);>>perf=perform(net,y,t) 5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解feedforwardnet——?jiǎng)?chuàng)建255.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解26newcf——級(jí)聯(lián)的前向神經(jīng)網(wǎng)絡(luò)在新版中使用cascadeforwardnet函數(shù)代替5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解net=newcf(P,T,[S1S2...S(N-1)])P:R*Q1矩陣,每行對(duì)應(yīng)一個(gè)神經(jīng)元輸入數(shù)據(jù)的典型值。T:SN*Q2矩陣,表示創(chuàng)建的網(wǎng)絡(luò)有SN個(gè)輸出層節(jié)點(diǎn),每行是輸出值的典型值。Si:表示隱含層神經(jīng)元個(gè)數(shù),若隱含層多于一層,則寫成行向量的形式。與newff比較類似newcf——級(jí)聯(lián)的前向神經(jīng)網(wǎng)絡(luò)5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解n275.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解用newff和newcf對(duì)一段數(shù)據(jù)進(jìn)行擬合,數(shù)據(jù)輸入為向量輸出為,是一段折線。新版替代函數(shù):cascadeforwardnet>>f2=cascadeforwardnet([3,5]);>>view(f2)

5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解用newff和newcf對(duì)28>>rng(2)>>P=[012345678910]; %網(wǎng)絡(luò)輸入>>T=[01234321234]; %期望輸出>>ff=newff(P,T,20); %建立一個(gè)BP網(wǎng)絡(luò),包含一個(gè)20個(gè)節(jié)點(diǎn)的隱含層>>ff.trainParam.epochs=50;>>ff=train(ff,P,T); %訓(xùn)練>>Y1=sim(ff,P); %仿真>>cf=newcf(P,T,20); %用newcf建立前向網(wǎng)絡(luò)>>cf.trainParam.epochs=50;>>cf=train(cf,P,T); %訓(xùn)練>>Y2=sim(cf,P); %仿真>>plot(P,T,'o-'); %繪圖>>holdon;>>plot(P,Y1,'^m-');>>plot(P,Y2,'*-k');>>title('newff&newcf')>>legend('原始數(shù)據(jù)','newff結(jié)果','newcf結(jié)果',0)>>rng(2)296.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實(shí)例(1)基于BP網(wǎng)絡(luò)的性別識(shí)別.以班級(jí)中男生女生的身高、體重為輸入,經(jīng)過一定數(shù)量的樣本訓(xùn)練后,可以較好地識(shí)別出新樣本的性別。男生172人,女生88人.部分?jǐn)?shù)據(jù):學(xué)號(hào)性別身高體重學(xué)號(hào)性別身高體重111女163.452.4121男174.280.9112女163.448122男170.383.1113男170.269123女166.558114男16259.9124女165.747.5115女170.555.5125女158.247.8116女173.855.1126男182.793.9117女168.468.3127男178.681.7118男186.868128女159.249.2119男181.177.8129女163.153120男175.757.8130女16553.36.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實(shí)例(1)基于BP網(wǎng)絡(luò)的性別識(shí)別.以班306.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實(shí)例思路:隨機(jī)抽出部分學(xué)生的身高和體重作為訓(xùn)練樣本(男女生都有),然后訓(xùn)練一個(gè)BP神經(jīng)網(wǎng)絡(luò),最后將剩下的樣本輸入網(wǎng)絡(luò)進(jìn)行測(cè)試,檢驗(yàn)BP網(wǎng)絡(luò)的分類性能。6.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實(shí)例思路:隨機(jī)抽出部分學(xué)生的316.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實(shí)例1.讀入使用MATLAB的內(nèi)建函數(shù)xlsread來讀取XLS表格。function[data,label]=getdata(xlsfile)[~,label]=xlsread(xlsfile,1,'B2:B261');[height,~]=xlsread(xlsfile,'C2:C261');[weight,~]=xlsread(xlsfile,'D2:D261');data=[height,weight];l=zeros(size(label));fori=1:length(l)iflabel{i}=='男'l(i)=1;endendlabel=l;>>xlsfile='student.xls';>>[data,label]=getdata('student.xls');6.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實(shí)例1.讀入function[data326.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實(shí)例(2)劃分訓(xùn)練數(shù)據(jù)與測(cè)試數(shù)據(jù)。function[traind,trainl,testd,testl]=divide(data,label)rng(0)%男女各取30個(gè)進(jìn)行訓(xùn)練TRAIN_NUM_M=30;TRAIN_NUM_F=30;%男女分開m_data=data(label==1,:);f_data=data(label==0,:);NUM_M=length(m_data);%男生的個(gè)數(shù)%男r=randperm(NUM_M);traind(1:TRAIN_NUM_M,:)=m_data(r(1:TRAIN_NUM_M),:);testd(1:NUM_M-TRAIN_NUM_M,:)=m_data(r(TRAIN_NUM_M+1:NUM_M),:);NUM_F=length(f_data);%女生的個(gè)數(shù)%女r=randperm(NUM_F);traind(TRAIN_NUM_M+1:TRAIN_NUM_M+TRAIN_NUM_F,:)=f_data(r(1:TRAIN_NUM_F),:);testd(NUM_M-TRAIN_NUM_M+1:NUM_M-TRAIN_NUM_M+NUM_F-TRAIN_NUM_F,:)=f_data(r(TRAIN_NUM_F+1:NUM_F),:);%賦值trainl=zeros(1,TRAIN_NUM_M+TRAIN_NUM_F);trainl(1:TRAIN_NUM_M)=1;testl=zeros(1,NUM_M+NUM_F-TRAIN_NUM_M-TRAIN_NUM_F);testl(1:NUM_M-TRAIN_NUM_M)=1;6.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實(shí)例(2)劃分訓(xùn)練數(shù)據(jù)與測(cè)試數(shù)據(jù)。fu336.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實(shí)例(3)初始化BP網(wǎng)絡(luò),采用包含一個(gè)隱含層的神經(jīng)網(wǎng)絡(luò),訓(xùn)練方法采用包含動(dòng)量的最速下降法,批量方式進(jìn)行訓(xùn)練。>>[traind,trainl,testd,testl]=divide(data,label);>>whos>>net.nIn=2;>>net.nHidden=3;%3個(gè)隱含層節(jié)點(diǎn)>>net.nOut=1;%一個(gè)輸出層節(jié)點(diǎn)>>w=2*(rand(net.nHidden,net.nIn)-1/2);%nHidden*3一行代表一個(gè)隱含層節(jié)點(diǎn)>>b=2*(rand(net.nHidden,1)-1/2);>>net.w1=[w,b];>>W=2*(rand(net.nOut,net.nHidden)-1/2);>>B=2*(rand(net.nOut,1)-1/2);>>net.w2=[W,B];為加快訓(xùn)練速度,隱含層神經(jīng)元個(gè)數(shù)暫定為3。6.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實(shí)例(3)初始化BP網(wǎng)絡(luò),采用包含一個(gè)隱346.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實(shí)例(4)輸入樣本,計(jì)算誤差。mm=mean(traind);%均值平移fori=1:2traind_s(:,i)=traind(:,i)-mm(i);end%方差標(biāo)準(zhǔn)化ml(1)=std(traind_s(:,1));ml(2)=std(traind_s(:,2));fori=1:2traind_s(:,i)=traind_s(:,i)/ml(i);end計(jì)算誤差:>>nTrainNum=60;%60個(gè)訓(xùn)練樣本>>SampInEx=[traind_s';ones(1,nTrainNum)];>>expectedOut=trainl;>>hid_input=net.w1*SampInEx;%隱含層的輸入>>hid_out=logsig(hid_input);%隱含層的輸出>>ou_input1=[hid_out;ones(1,nTrainNum)];%輸出層的輸入>>ou_input2=net.w2*ou_input1;>>out_out=logsig(ou_input2);%輸出層的輸出>>err=expectedOut-out_out;%誤差>>sse=sumsqr(err);6.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實(shí)例(4)輸入樣本,計(jì)算誤差。mm=m356.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實(shí)例(5)判斷是否收斂。定義一個(gè)誤差容限,當(dāng)樣本誤差的平方和小于此容限時(shí),算法收斂;另外給定一個(gè)最大迭代次數(shù),達(dá)到這個(gè)次數(shù)即停止迭代:(6)根據(jù)誤差,調(diào)整權(quán)值。(7)測(cè)試。由于訓(xùn)練數(shù)據(jù)進(jìn)行了歸一化,因此測(cè)試數(shù)據(jù)也要采用相同的參數(shù)進(jìn)行歸一化main_batch.m6.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實(shí)例(5)判斷是否收斂。定義一個(gè)誤差容限366.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實(shí)例串行方式則將樣本逐個(gè)輸入,由于樣本輸入的隨機(jī)性,可以在一定程度上避免出現(xiàn)局部最優(yōu)。main_seral.m88.5%正確率6.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實(shí)例串行方式則將樣本逐個(gè)輸入,由于樣本輸376.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實(shí)例%main_newff.mrng('default')rng(2)xlsfile='student.xls';%%讀入數(shù)據(jù)[data,label]=getdata(xlsfile);[traind,trainl,testd,testl]=divide(data,label);%%劃分?jǐn)?shù)據(jù)net=feedforwardnet(3);%%創(chuàng)建網(wǎng)絡(luò)net.trainFcn='trainbfg';net=train(net,traind',trainl);%%訓(xùn)練網(wǎng)絡(luò)test_out=sim(net,testd');%%測(cè)試test_out(test_out>=0.5)=1;test_out(test_out<0.5)=0;rate=sum(test_out==testl)/length(testl);fprintf('正確率\n%f%%\n',rate*100);%腳本使用newff函數(shù)實(shí)現(xiàn)性別識(shí)別:90%正確率6.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實(shí)例%main_newff.m%腳本386.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實(shí)例實(shí)現(xiàn)二值邏輯——異或?qū)W習(xí)率為0.6,動(dòng)量因子為0.8,默認(rèn)最大迭代次數(shù)為1000次采用手算實(shí)現(xiàn)基于BP網(wǎng)絡(luò)的異或邏輯。訓(xùn)練時(shí)采用批量訓(xùn)練的方法,訓(xùn)練算法使用帶動(dòng)量因子的最速下降法。main_xor.m6.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實(shí)例實(shí)現(xiàn)二值邏輯——異或?qū)W習(xí)率為0.6396.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實(shí)例分類面xy6.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實(shí)例分類面xy40謝謝大家!第6章BP神經(jīng)網(wǎng)絡(luò)匯總課件第6章BP神經(jīng)網(wǎng)絡(luò)編者第6章BP神經(jīng)網(wǎng)絡(luò)編者Outline1.BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)2.BP網(wǎng)絡(luò)的學(xué)習(xí)算法3.設(shè)計(jì)BP網(wǎng)絡(luò)的方法4.BP神經(jīng)網(wǎng)絡(luò)的局限性5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解6.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實(shí)例Outline1.BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)1.BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)

BP神經(jīng)網(wǎng)絡(luò)是包含多個(gè)隱含層的網(wǎng)絡(luò),具備處理線性不可分問題的能力。誤差反向傳播算法(ErrorBackPropagtion,BP),解決了多層神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)問題。是一種多層前向網(wǎng)絡(luò),又叫多層感知器。BP網(wǎng)絡(luò)是前向神經(jīng)網(wǎng)絡(luò)的核心部分,也是整個(gè)人工神經(jīng)網(wǎng)絡(luò)體系中的精華,廣泛應(yīng)用于分類識(shí)別、逼近、回歸、壓縮等領(lǐng)域。在實(shí)際應(yīng)用中,大約80%的神經(jīng)網(wǎng)絡(luò)模型采取了BP網(wǎng)絡(luò)或BP網(wǎng)絡(luò)的變化形式。1.BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)BP神經(jīng)網(wǎng)絡(luò)是包含多個(gè)隱含層的1.BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)網(wǎng)絡(luò)由多層構(gòu)成,層與層之間全連接,同一層之間的神經(jīng)元無連接。包含一個(gè)多多個(gè)隱層,可以實(shí)現(xiàn)復(fù)雜的映射關(guān)系。1.BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)網(wǎng)絡(luò)由多層構(gòu)成,層與層之間全連1.BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)

BP網(wǎng)絡(luò)的傳遞函數(shù)必須可微。BP網(wǎng)絡(luò)一般使用Sigmoid函數(shù)或線性函數(shù)作為傳遞函數(shù)。Sigmoid函數(shù)是光滑、可微的函數(shù),在分類時(shí)它比線性函數(shù)更精確,容錯(cuò)性較好。將輸入從負(fù)無窮到正無窮的范圍映射到0~1或-1~1區(qū)間內(nèi),具有非線性的放大功能。Log-SigmoidTan-Sigmoid1.BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)BP網(wǎng)絡(luò)的傳遞函數(shù)必須可微。B1.BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)“誤差反向傳播”:誤差信號(hào)反向傳播。修正權(quán)值時(shí),網(wǎng)絡(luò)根據(jù)誤差從后向前逐層進(jìn)行修正?!胺答伾窠?jīng)網(wǎng)絡(luò)”:輸出層的輸出值又連接到輸入神經(jīng)元作為下一次計(jì)算的輸入,如此循環(huán)迭代,直到網(wǎng)絡(luò)的輸出值進(jìn)入穩(wěn)定狀態(tài)為止。在本書后面的章節(jié)中會(huì)專門介紹反饋神經(jīng)網(wǎng)絡(luò),包括Hopfield網(wǎng)絡(luò)、Elman網(wǎng)絡(luò)等。BP神經(jīng)網(wǎng)絡(luò)屬于多層前向網(wǎng)絡(luò),工作信號(hào)始終正向流動(dòng),沒有反饋結(jié)構(gòu)。

BP網(wǎng)絡(luò)采用誤差反向傳播算法(Back-PropagationAlgorithm)進(jìn)行學(xué)習(xí)。在BP網(wǎng)絡(luò)中,數(shù)據(jù)從輸入層經(jīng)隱含層逐層向后傳播,訓(xùn)練網(wǎng)絡(luò)權(quán)值時(shí),則沿著減少誤差的方向,從輸出層經(jīng)過中間各層逐層向前修正網(wǎng)絡(luò)的連接權(quán)值。1.BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)“誤差反向傳播”:誤差信號(hào)2.BP網(wǎng)絡(luò)的學(xué)習(xí)算法BP學(xué)習(xí)算法的原理與LMS算法比較類似,屬于最速下降法。最速下降法最速下降法可以求某指標(biāo)(目標(biāo)函數(shù))的極小值,若將目標(biāo)函數(shù)取為均方誤差,就得到了LMS算法。對(duì)于實(shí)值函數(shù),如果在某點(diǎn)處有定義且可微,則函數(shù)在該點(diǎn)處沿著梯度相反的方向下降最快。因此,使用梯度下降法時(shí),應(yīng)首先計(jì)算函數(shù)在某點(diǎn)處的梯度,再沿著梯度的反方向以一定的步長(zhǎng)調(diào)整自變量的值。當(dāng)步長(zhǎng)足夠小時(shí)反復(fù)迭代求得函數(shù)最小值2.BP網(wǎng)絡(luò)的學(xué)習(xí)算法BP學(xué)習(xí)算法的原理與LMS算2.BP網(wǎng)絡(luò)的學(xué)習(xí)算法最速下降法實(shí)例:求函數(shù)的最小值根據(jù)梯度值可以再函數(shù)中畫出一系列的等值線或等值面,在等值線或等值面上函數(shù)值相等。梯度下降法相當(dāng)于沿著垂直于等值線方向向最小值所在位置移動(dòng)。2.BP網(wǎng)絡(luò)的學(xué)習(xí)算法最速下降法實(shí)例:求函數(shù)的最小值2.BP網(wǎng)絡(luò)的學(xué)習(xí)算法(1)目標(biāo)函數(shù)必須可微。(2)如果最小值附近比較平坦,算法會(huì)在最小值附近停留很久,收斂緩慢。

“之”字形下降(3)對(duì)于包含多個(gè)極小值的函數(shù),所獲得的結(jié)果依賴初始值。算法有可能陷入局部極小值點(diǎn),而沒有達(dá)到全局最小值點(diǎn)。BP神經(jīng)網(wǎng)絡(luò)來說,由于傳遞函數(shù)都是可微的,因此能滿足最速下降法的使用條件。2.BP網(wǎng)絡(luò)的學(xué)習(xí)算法(1)目標(biāo)函數(shù)必須可微。502.BP網(wǎng)絡(luò)的學(xué)習(xí)算法最速下降BP法隱含層傳遞函數(shù)為Sigmoid函數(shù),輸出層傳遞函數(shù)為線性函數(shù)1.工作信號(hào)正向傳播2.誤差信號(hào)反向傳播權(quán)值調(diào)整量=學(xué)習(xí)率*局部梯度*上一層輸出信號(hào)2.BP網(wǎng)絡(luò)的學(xué)習(xí)算法最速下降BP法隱含層傳遞函數(shù)為Sig512.BP網(wǎng)絡(luò)的學(xué)習(xí)算法當(dāng)輸出層傳遞函數(shù)為線性函數(shù)時(shí),輸出層與隱含層之間權(quán)值調(diào)整的規(guī)則類似于線性神經(jīng)網(wǎng)絡(luò)的權(quán)值調(diào)整規(guī)則。BP網(wǎng)絡(luò)的復(fù)雜之處在于,隱含層與隱含層之間、隱含層與輸入層之間調(diào)整權(quán)值時(shí),局部梯度的計(jì)算需要用到上一步計(jì)算的結(jié)果。前一層的局部梯度是后一層局部梯度的加權(quán)和。因此,BP網(wǎng)絡(luò)學(xué)習(xí)權(quán)值時(shí)只能從后向前依次計(jì)算。串行方式。在線方式,網(wǎng)絡(luò)每獲得一個(gè)新樣本,就計(jì)算一次誤差并更新權(quán)值,直到樣本輸入完畢。隨機(jī)輸入樣本,不容易陷入局部最優(yōu)陷阱。批量方式:離線方式。網(wǎng)絡(luò)獲得所有的訓(xùn)練樣本,計(jì)算所有樣本均方誤差的和作為總誤差。容易并行化,速度快。2.BP網(wǎng)絡(luò)的學(xué)習(xí)算法當(dāng)輸出層傳遞函數(shù)為線性函數(shù)522.BP網(wǎng)絡(luò)的學(xué)習(xí)算法動(dòng)量BP法在標(biāo)準(zhǔn)BP算法的權(quán)值更新階段引入動(dòng)量因子,使權(quán)值修正值具有一定慣性:本次權(quán)值的更新方向和幅度不但與本次計(jì)算所得的梯度有關(guān),還與上一次更新的方向和幅度有關(guān)(1)如果前后兩次計(jì)算所得的梯度方向相同,得到的權(quán)值較大,可以加速收斂過程。(2)如果前后兩次計(jì)算所得梯度方向相反,則說明兩個(gè)位置之間可能存在一個(gè)極小值,可以得到一個(gè)較小的步長(zhǎng),更容易找到最小值點(diǎn),而不會(huì)陷入來回振蕩2.BP網(wǎng)絡(luò)的學(xué)習(xí)算法動(dòng)量BP法在標(biāo)準(zhǔn)B532.BP網(wǎng)絡(luò)的學(xué)習(xí)算法

學(xué)習(xí)率可變的BP算法:當(dāng)誤差以減小的方式趨于目標(biāo)時(shí),說明修正方向是正確的,可以增加學(xué)習(xí)率;當(dāng)誤差增加超過一定范圍時(shí),說明前一步修正進(jìn)行地不正確,應(yīng)減小步長(zhǎng),并撤銷前一步修正過程。

擬牛頓法。牛頓法具有收斂快的優(yōu)點(diǎn),但需要計(jì)算誤差性能函數(shù)的二階導(dǎo)數(shù),計(jì)算較為復(fù)雜。擬牛頓法只需要知道目標(biāo)函數(shù)的梯度,通過測(cè)量梯度的變化進(jìn)行迭代,收斂速度大大優(yōu)于最速下降法。擬牛頓法有DFP方法、BFGS方法、SR1方法和Broyden族方法。2.BP網(wǎng)絡(luò)的學(xué)習(xí)算法學(xué)習(xí)率可變的BP算法:543.設(shè)計(jì)BP網(wǎng)絡(luò)的方法1.網(wǎng)絡(luò)層數(shù)。對(duì)于大部分應(yīng)用場(chǎng)合,單個(gè)隱含層即可滿足需要2.輸入層節(jié)點(diǎn)數(shù)。輸入層節(jié)點(diǎn)數(shù)取決于輸入向量的維數(shù)。如果輸入的是的圖像,則輸入向量應(yīng)為圖像中所有的像素形成的4096維向量。如果待解決的問題是二元函數(shù)擬合,則輸入向量應(yīng)為二維向量。3.隱含層節(jié)點(diǎn)數(shù)。較多的隱含層節(jié)點(diǎn)數(shù)可以帶來更好的性能,但可能導(dǎo)致訓(xùn)練時(shí)間過長(zhǎng)。經(jīng)驗(yàn)公式:BP網(wǎng)絡(luò)的設(shè)計(jì)主要包括網(wǎng)絡(luò)層數(shù)、輸入層節(jié)點(diǎn)數(shù)、隱含層節(jié)點(diǎn)數(shù)、輸出層節(jié)點(diǎn)數(shù)及傳輸函數(shù)、訓(xùn)練方法、訓(xùn)練參數(shù)的設(shè)置等幾個(gè)方面。樣本數(shù)輸入層結(jié)點(diǎn)數(shù)3.設(shè)計(jì)BP網(wǎng)絡(luò)的方法1.網(wǎng)絡(luò)層數(shù)。對(duì)于大部分應(yīng)用場(chǎng)合,單個(gè)553.設(shè)計(jì)BP網(wǎng)絡(luò)的方法輸出層神經(jīng)元的個(gè)數(shù)同樣需要根據(jù)從實(shí)際問題中得到的抽象模型來確定。在模式分類問題中,如果共有n種類別,則輸出可以采用n個(gè)神經(jīng)元。也可以將節(jié)點(diǎn)個(gè)數(shù)設(shè)計(jì)為個(gè),表示最小的不小于的整數(shù)。由于輸出共有4種情況,因此采用二維輸出即可覆蓋整個(gè)輸出空間,00、01、10和11分別表示一種類別。輸出層神經(jīng)元個(gè)數(shù)傳遞函數(shù)的選擇一般隱含層使用Sigmoid函數(shù),而輸出層使用線性函數(shù)。如果輸出層也采用Sigmoid函數(shù),輸出值將會(huì)被限制在0~1或-1~1之間。3.設(shè)計(jì)BP網(wǎng)絡(luò)的方法輸出層神經(jīng)元的個(gè)數(shù)同樣需要563.設(shè)計(jì)BP網(wǎng)絡(luò)的方法訓(xùn)練方法的選擇使用LM算法收斂速度最快,均方誤差也較小。LM算法對(duì)于模式識(shí)別相關(guān)問題的處理能力較弱,且需要較大的存儲(chǔ)空間模式識(shí)別問題,使用RPROP算法能收到較好的效果SCG算法對(duì)于模式識(shí)別和函數(shù)逼近問題都有較好的性能表現(xiàn)。初始權(quán)值的確定通常將初始權(quán)值定義為較小的非零隨機(jī)值,經(jīng)驗(yàn)值為:權(quán)值輸入端連接的神經(jīng)元個(gè)數(shù)3.設(shè)計(jì)BP網(wǎng)絡(luò)的方法訓(xùn)練方法的選擇使用LM算法收斂速度最573.設(shè)計(jì)BP網(wǎng)絡(luò)的方法確定以上參數(shù)后,將訓(xùn)練數(shù)據(jù)進(jìn)行歸一化處理,并輸入網(wǎng)絡(luò)中進(jìn)行學(xué)習(xí),若網(wǎng)絡(luò)成功收斂,即可得到所需的神經(jīng)網(wǎng)絡(luò)。3.設(shè)計(jì)BP網(wǎng)絡(luò)的方法確定以上參數(shù)后,將訓(xùn)練數(shù)據(jù)進(jìn)584.BP神經(jīng)網(wǎng)絡(luò)的局限性BP網(wǎng)絡(luò)具有實(shí)現(xiàn)任何復(fù)雜非線性映射的能力,特別適合求解內(nèi)部機(jī)制復(fù)雜的問題,但BP網(wǎng)絡(luò)也具有一些難以克服的局限性(1)需要的參數(shù)較多,且參數(shù)的選擇沒有有效的方法。隱含層結(jié)點(diǎn)個(gè)數(shù)。(2)容易陷入局部最優(yōu)。(3)樣本依賴性。如果樣本集合代表性差、矛盾樣本多、存在冗余樣本,網(wǎng)絡(luò)就很難達(dá)到預(yù)期的性能(4)初始權(quán)重敏感性。訓(xùn)練的第一步是給定一個(gè)較小的隨機(jī)初始權(quán)重,由于權(quán)重是隨機(jī)給定的,BP網(wǎng)絡(luò)往往具有不可重現(xiàn)性。4.BP神經(jīng)網(wǎng)絡(luò)的局限性BP網(wǎng)絡(luò)具有實(shí)現(xiàn)任何復(fù)雜非線性映射的595.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解函數(shù)名稱功能logsigLog-Sigmoid函數(shù)tansigTan-Sigmoid函數(shù)newff創(chuàng)建一個(gè)BP網(wǎng)絡(luò)feedforwardnet創(chuàng)建一個(gè)BP網(wǎng)絡(luò)(推薦使用)newcf創(chuàng)建級(jí)聯(lián)的前向神經(jīng)網(wǎng)絡(luò)cascadeforwardnet創(chuàng)建級(jí)聯(lián)的前向神經(jīng)網(wǎng)絡(luò)(推薦使用)newfftd創(chuàng)建前饋輸入延遲的BP網(wǎng)絡(luò)5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解函數(shù)名稱功能logsigLog-Si605.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解

logsig——Log-Sigmoid傳輸函數(shù)Log-Sigmoid函數(shù)的特點(diǎn)是范圍的數(shù)據(jù)被映射到區(qū)間可以使用下面的代碼將神經(jīng)網(wǎng)絡(luò)節(jié)點(diǎn)的傳輸函數(shù)定義為L(zhǎng)og-Sigmoid函數(shù):net.layers{i}.transferFcn=’logsig’;5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解logsig——Log-Si615.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解

tansig——Tan-Sigmoid傳輸函數(shù)tansig是雙曲正切Sigmoid函數(shù),調(diào)用形式與logsig函數(shù)相同。取值范圍:>>x=-4:.1:4;>>y=tansig(x); %Tag-Sigmoid函數(shù)>>plot(x,y,'^-r')>>title('Tan-sig函數(shù)')>>xlabel('x')>>ylabel('y')>>gridon5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解tansig——Tan-Sigmo625.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解

dlogsig/dtansig——Sigmoid函數(shù)的導(dǎo)數(shù)>>x=-4:.1:4;>>y=logsig(x); %logsig函數(shù)>>dy=dlogsig(x,y);%logsig函數(shù)的導(dǎo)數(shù)>>subplot(211)>>plot(x,y);>>title('logsig')>>subplot(212);>>plot(x,dy);>>title('dlogsig')5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解dlogsig/dtansig——635.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解newff——?jiǎng)?chuàng)建一個(gè)BP網(wǎng)絡(luò):新版語法net=newff(P,T,S)P:R*Q1矩陣,表示創(chuàng)建的神經(jīng)網(wǎng)絡(luò)中,輸入層有R個(gè)神經(jīng)元。每行對(duì)應(yīng)一個(gè)神經(jīng)元輸入數(shù)據(jù)的典型值,實(shí)際應(yīng)用中常取其最大最小值。T:SN*Q2矩陣,表示創(chuàng)建的網(wǎng)絡(luò)有SN個(gè)輸出層節(jié)點(diǎn),每行是輸出值的典型值S:標(biāo)量或向量,用于指定隱含層神經(jīng)元個(gè)數(shù),若隱含層多于一層,則寫成行向量的形式。舊版語法格式net=newff(P,N,TF,BTF):P表示輸入向量的典型值,N為各層神經(jīng)元的個(gè)數(shù),TF為表示傳輸函數(shù)的細(xì)胞數(shù)組,BTF為訓(xùn)練函數(shù)5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解newff——?jiǎng)?chuàng)建一個(gè)BP網(wǎng)絡(luò):645.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解舊版newff默認(rèn)訓(xùn)練函數(shù)為traingdx(學(xué)習(xí)率自適應(yīng)并附加動(dòng)量因子的最速下降法),新版默認(rèn)訓(xùn)練函數(shù)為trainlm。新版速度更快,但更占用內(nèi)存新版newff將輸入的60%用于訓(xùn)練,20%用于檢驗(yàn),20%用于驗(yàn)證,采用了提前終止的策略,防止過擬合的情況發(fā)生。對(duì)于同一個(gè)問題,往往會(huì)出現(xiàn)新版最終訓(xùn)練誤差大于舊版newff的情況。用newff逼近二次函數(shù),新版的函數(shù)誤差比舊版函數(shù)大example6_3.m5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解舊版newff默認(rèn)訓(xùn)練函數(shù)為tr655.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解feedforwardnet——?jiǎng)?chuàng)建一個(gè)BP網(wǎng)絡(luò)feedforwardnet是新版神經(jīng)網(wǎng)絡(luò)工具箱中替代newff的函數(shù)feedforwardnet(hiddenSizes,trainFcn)hiddenSizes為隱含層的神經(jīng)元節(jié)點(diǎn)個(gè)數(shù),如果有多個(gè)隱含層,則hiddenSizes是一個(gè)行向量,缺省值為10。trainFcn為訓(xùn)練函數(shù),缺省值為’trainlm’。>>[x,t]=simplefit_dataset; %MATLAB自帶數(shù)據(jù),x、t均為1*94向量>>net=feedforwardnet; >>view(net)>>net=train(net,x,t); >>view(net)>>y=net(x);>>perf=perform(net,y,t) 5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解feedforwardnet——?jiǎng)?chuàng)建665.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解67newcf——級(jí)聯(lián)的前向神經(jīng)網(wǎng)絡(luò)在新版中使用cascadeforwardnet函數(shù)代替5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解net=newcf(P,T,[S1S2...S(N-1)])P:R*Q1矩陣,每行對(duì)應(yīng)一個(gè)神經(jīng)元輸入數(shù)據(jù)的典型值。T:SN*Q2矩陣,表示創(chuàng)建的網(wǎng)絡(luò)有SN個(gè)輸出層節(jié)點(diǎn),每行是輸出值的典型值。Si:表示隱含層神經(jīng)元個(gè)數(shù),若隱含層多于一層,則寫成行向量的形式。與newff比較類似newcf——級(jí)聯(lián)的前向神經(jīng)網(wǎng)絡(luò)5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解n685.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解用newff和newcf對(duì)一段數(shù)據(jù)進(jìn)行擬合,數(shù)據(jù)輸入為向量輸出為,是一段折線。新版替代函數(shù):cascadeforwardnet>>f2=cascadeforwardnet([3,5]);>>view(f2)

5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解用newff和newcf對(duì)69>>rng(2)>>P=[012345678910]; %網(wǎng)絡(luò)輸入>>T=[01234321234]; %期望輸出>>ff=newff(P,T,20); %建立一個(gè)BP網(wǎng)絡(luò),包含一個(gè)20個(gè)節(jié)點(diǎn)的隱含層>>ff.trainParam.epochs=50;>>ff=train(ff,P,T); %訓(xùn)練>>Y1=sim(ff,P); %仿真>>cf=newcf(P,T,20); %用newcf建立前向網(wǎng)絡(luò)>>cf.trainParam.epochs=50;>>cf=train(cf,P,T); %訓(xùn)練>>Y2=sim(cf,P); %仿真>>plot(P,T,'o-'); %繪圖>>holdon;>>plot(P,Y1,'^m-');>>plot(P,Y2,'*-k');>>title('newff&newcf')>>legend('原始數(shù)據(jù)','newff結(jié)果','newcf結(jié)果',0)>>rng(2)706.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實(shí)例(1)基于BP網(wǎng)絡(luò)的性別識(shí)別.以班級(jí)中男生女生的身高、體重為輸入,經(jīng)過一定數(shù)量的樣本訓(xùn)練后,可以較好地識(shí)別出新樣本的性別。男生172人,女生88人.部分?jǐn)?shù)據(jù):學(xué)號(hào)性別身高體重學(xué)號(hào)性別身高體重111女163.452.4121男174.280.9112女163.448122男170.383.1113男170.269123女166.558114男16259.9124女165.747.5115女170.555.5125女158.247.8116女173.855.1126男182.793.9117女168.468.3127男178.681.7118男186.868128女159.249.2119男181.177.8129女163.153120男175.757.8130女16553.36.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實(shí)例(1)基于BP網(wǎng)絡(luò)的性別識(shí)別.以班716.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實(shí)例思路:隨機(jī)抽出部分學(xué)生的身高和體重作為訓(xùn)練樣本(男女生都有),然后訓(xùn)練一個(gè)BP神經(jīng)網(wǎng)絡(luò),最后將剩下的樣本輸入網(wǎng)絡(luò)進(jìn)行測(cè)試,檢驗(yàn)BP網(wǎng)絡(luò)的分類性能。6.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實(shí)例思路:隨機(jī)抽出部分學(xué)生的726.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實(shí)例1.讀入使用MATLAB的內(nèi)建函數(shù)xlsread來讀取XLS表格。function[data,label]=getdata(xlsfile)[~,label]=xlsread(xlsfile,1,'B2:B261');[height,~]=xlsread(xlsfile,'C2:C261');[weight,~]=xlsread(xlsfile,'D2:D261');data=[height,weight];l=zeros(size(label));fori=1:length(l)iflabel{i}=='男'l(i)=1;endendlabel=l;>>xlsfile='student.xls';>>[data,label]=getdata('student.xls');6.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實(shí)例1.讀入function[data736.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實(shí)例(2)劃分訓(xùn)練數(shù)據(jù)與測(cè)試數(shù)據(jù)。function[traind,trainl,testd,testl]=divide(data,label)rng(0)%男女各取30個(gè)進(jìn)行訓(xùn)練TRAIN_NUM_M=30;TRAIN_NUM_F=30;%男女分開m_data=data(label==1,:);f_data=data(label==0,:);NUM_M=length(m_data);%男生的個(gè)數(shù)%男r=randperm(NUM_M);traind(1:TRAIN_NUM_M,:)=m_data(r(1:TRAIN_NUM_M),:);testd(1:NUM_M-TRAIN_NUM_M,:)=m_data(r(TRAIN_NUM_M+1:NUM_M),:);NUM_F=length(f_data);%女生的個(gè)數(shù)%女r=randperm(NUM_F);traind(TRAIN_NUM_M+1:TRAIN_NUM_M+TRAIN_NUM_F,:)=f_data(r(1:TRAIN_NUM_F),:);testd(NUM_M-TRAIN_NUM_M+1:NUM_M-TRAIN_NUM_M+NUM_F-TRAIN_NUM_F,:)=f_data(r(TRAIN_NUM_F+1:NUM_F),:);%賦值trainl=zeros(1,TRAIN_NUM_M+TRAIN_NUM_F);trainl(1:TRAIN_NUM_M)=1;testl=zeros(1,NUM_M+NUM_F-TRAIN_NUM_M-TRAIN_NUM_F);testl(1:NUM_M-TRAIN_NUM_M)=1;6.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實(shí)例(2)劃分訓(xùn)練數(shù)據(jù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論