




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第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è)計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)用實例 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ò)是包含多個隱含層的網(wǎng)絡(luò),具備處理線性不可分問題的能力。 誤差反向傳播算法(Error Back Propagtion,BP),解決了多層神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)問題。 是一種多層前向網(wǎng)絡(luò),又叫多層感知器 。 BP網(wǎng)絡(luò)是前向神經(jīng)網(wǎng)絡(luò)的核心部分,也是整個人工神經(jīng)網(wǎng)絡(luò)體系中的精華,廣泛應(yīng)用于分類識別、逼近、回歸、壓縮等領(lǐng)
2、域。在實際應(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ò)是包含多個隱含層的1.BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu) 網(wǎng)絡(luò)由多層構(gòu)成,層與層之間全連接,同一層之間的神經(jīng)元無連接 。 包含一個多多個隱層,可以實現(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ù)更精確,容錯性較好。 將輸入從負(fù)無窮到正無窮的范圍映射到01或-11區(qū)間內(nèi),具有非線性的放大功能。 Log-S
3、igmoid Tan-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) “誤差反向傳播” :誤差信號反向傳播。修正權(quán)值時,網(wǎng)絡(luò)根據(jù)誤差從后向前逐層進(jìn)行修正。 “反饋神經(jīng)網(wǎng)絡(luò)” :輸出層的輸出值又連接到輸入神經(jīng)元作為下一次計算的輸入,如此循環(huán)迭代,直到網(wǎng)絡(luò)的輸出值進(jìn)入穩(wěn)定狀態(tài)為止。在本書后面的章節(jié)中會專門介紹反饋神經(jīng)網(wǎng)絡(luò),包括Hopfield網(wǎng)絡(luò)、Elman網(wǎng)絡(luò)等。 BP神經(jīng)網(wǎng)絡(luò)屬于多層前向網(wǎng)絡(luò),工作信號始終正向流動,沒有反饋結(jié)構(gòu)。 BP網(wǎng)絡(luò)采用誤差反向傳播算法(Back-Propagation Algorithm)進(jìn)行學(xué)習(xí)。在BP網(wǎng)絡(luò)中,數(shù)據(jù)從輸入層經(jīng)
4、隱含層逐層向后傳播,訓(xùn)練網(wǎng)絡(luò)權(quán)值時,則沿著減少誤差的方向,從輸出層經(jīng)過中間各層逐層向前修正網(wǎng)絡(luò)的連接權(quán)值。1.BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu) “誤差反向傳播” :誤差信號2.BP網(wǎng)絡(luò)的學(xué)習(xí)算法 BP學(xué)習(xí)算法的原理與LMS算法比較類似,屬于最速下降法。 最速下降法 最速下降法可以求某指標(biāo)(目標(biāo)函數(shù))的極小值,若將目標(biāo)函數(shù)取為均方誤差,就得到了LMS算法。 對于實值函數(shù) ,如果在某點 處有定義且可微,則函數(shù)在該點處沿著梯度相反的方向 下降最快。因此,使用梯度下降法時,應(yīng)首先計算函數(shù)在某點處的梯度,再沿著梯度的反方向以一定的步長調(diào)整自變量的值。 當(dāng)步長足夠小時 反復(fù)迭代求得函數(shù)最小值2.BP網(wǎng)絡(luò)的學(xué)習(xí)算法 BP
5、學(xué)習(xí)算法的原理與LMS算2.BP網(wǎng)絡(luò)的學(xué)習(xí)算法最速下降法 實例:求函數(shù)的最小值 根據(jù)梯度值可以再函數(shù)中畫出一系列的等值線或等值面,在等值線或等值面上函數(shù)值相等。梯度下降法相當(dāng)于沿著垂直于等值線方向向最小值所在位置移動。 2.BP網(wǎng)絡(luò)的學(xué)習(xí)算法最速下降法 實例:求函數(shù)的最小值 2.BP網(wǎng)絡(luò)的學(xué)習(xí)算法(1)目標(biāo)函數(shù)必須可微 。(2)如果最小值附近比較平坦,算法會在最小值附近停留很久,收斂緩慢。 “之”字形下降(3)對于包含多個極小值的函數(shù),所獲得的結(jié)果依賴初始值。算法有可能陷入局部極小值點,而沒有達(dá)到全局最小值點。 BP神經(jīng)網(wǎng)絡(luò)來說,由于傳遞函數(shù)都是可微的,因此能滿足最速下降法的使用條件。2.BP
6、網(wǎng)絡(luò)的學(xué)習(xí)算法(1)目標(biāo)函數(shù)必須可微 。2.BP網(wǎng)絡(luò)的學(xué)習(xí)算法最速下降BP法 隱含層傳遞函數(shù)為Sigmoid函數(shù),輸出層傳遞函數(shù)為線性函數(shù) 1.工作信號正向傳播 2.誤差信號反向傳播 權(quán)值調(diào)整量=學(xué)習(xí)率 * 局部梯度 * 上一層輸出信號2.BP網(wǎng)絡(luò)的學(xué)習(xí)算法最速下降BP法 隱含層傳遞函數(shù)為Sig2.BP網(wǎng)絡(luò)的學(xué)習(xí)算法 當(dāng)輸出層傳遞函數(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)值時,局部梯度的計算需要用到上一步計算的結(jié)果。前一層的局部梯度是后一層局部梯度的加權(quán)和。 因此,BP網(wǎng)絡(luò)學(xué)習(xí)權(quán)值時
7、只能從后向前依次計算。 串行方式 。在線方式,網(wǎng)絡(luò)每獲得一個新樣本,就計算一次誤差并更新權(quán)值,直到樣本輸入完畢。 隨機(jī)輸入樣本,不容易陷入局部最優(yōu)陷阱。 批量方式 :離線方式。網(wǎng)絡(luò)獲得所有的訓(xùn)練樣本,計算所有樣本均方誤差的和作為總誤差 。 容易并行化,速度快。2.BP網(wǎng)絡(luò)的學(xué)習(xí)算法 當(dāng)輸出層傳遞函數(shù)為線性函數(shù)2.BP網(wǎng)絡(luò)的學(xué)習(xí)算法 動量BP法 在標(biāo)準(zhǔn)BP算法的權(quán)值更新階段引入動量因子 ,使權(quán)值修正值具有一定慣性:本次權(quán)值的更新方向和幅度不但與本次計算所得的梯度有關(guān),還與上一次更新的方向和幅度有關(guān)(1)如果前后兩次計算所得的梯度方向相同,得到的權(quán)值較大,可以加速收斂過程 。(2)如果前后兩次計算
8、所得梯度方向相反,則說明兩個位置之間可能存在一個極小值,可以得到一個較小的步長,更容易找到最小值點,而不會陷入來回振蕩 2.BP網(wǎng)絡(luò)的學(xué)習(xí)算法 動量BP法 在標(biāo)準(zhǔn)B2.BP網(wǎng)絡(luò)的學(xué)習(xí)算法 學(xué)習(xí)率可變的BP算法: 當(dāng)誤差以減小的方式趨于目標(biāo)時,說明修正方向是正確的,可以增加學(xué)習(xí)率; 當(dāng)誤差增加超過一定范圍時,說明前一步修正進(jìn)行地不正確,應(yīng)減小步長,并撤銷前一步修正過程。 擬牛頓法 。牛頓法具有收斂快的優(yōu)點,但需要計算誤差性能函數(shù)的二階導(dǎo)數(shù),計算較為復(fù)雜。擬牛頓法只需要知道目標(biāo)函數(shù)的梯度,通過測量梯度的變化進(jìn)行迭代,收斂速度大大優(yōu)于最速下降法。擬牛頓法有DFP方法、BFGS方法、SR1方法和Bro
9、yden族方法。 2.BP網(wǎng)絡(luò)的學(xué)習(xí)算法 學(xué)習(xí)率可變的BP算法: 3.設(shè)計BP網(wǎng)絡(luò)的方法1.網(wǎng)絡(luò)層數(shù)。對于大部分應(yīng)用場合,單個隱含層即可滿足需要 2.輸入層節(jié)點數(shù)。輸入層節(jié)點數(shù)取決于輸入向量的維數(shù)。如果輸入的是的圖像,則輸入向量應(yīng)為圖像中所有的像素形成的4096維向量。 如果待解決的問題是二元函數(shù)擬合,則輸入向量應(yīng)為二維向量。3.隱含層節(jié)點數(shù) 。較多的隱含層節(jié)點數(shù)可以帶來更好的性能,但可能導(dǎo)致訓(xùn)練時間過長 。經(jīng)驗公式:BP網(wǎng)絡(luò)的設(shè)計主要包括網(wǎng)絡(luò)層數(shù)、輸入層節(jié)點數(shù)、隱含層節(jié)點數(shù)、輸出層節(jié)點數(shù)及傳輸函數(shù)、訓(xùn)練方法、訓(xùn)練參數(shù)的設(shè)置等幾個方面。 樣本數(shù)輸入層結(jié)點數(shù)3.設(shè)計BP網(wǎng)絡(luò)的方法1.網(wǎng)絡(luò)層數(shù)。對
10、于大部分應(yīng)用場合,單個3.設(shè)計BP網(wǎng)絡(luò)的方法 輸出層神經(jīng)元的個數(shù)同樣需要根據(jù)從實際問題中得到的抽象模型來確定。在模式分類問題中,如果共有n種類別,則輸出可以采用n個神經(jīng)元 。也可以將節(jié)點個數(shù)設(shè)計為 個, 表示最小的不小于 的整數(shù)。由于輸出共有4種情況,因此采用二維輸出即可覆蓋整個輸出空間,00、01、10和11分別表示一種類別。 輸出層神經(jīng)元個數(shù) 傳遞函數(shù)的選擇 一般隱含層使用Sigmoid函數(shù),而輸出層使用線性函數(shù)。如果輸出層也采用Sigmoid函數(shù),輸出值將會被限制在 01或-11之間。3.設(shè)計BP網(wǎng)絡(luò)的方法 輸出層神經(jīng)元的個數(shù)同樣需要3.設(shè)計BP網(wǎng)絡(luò)的方法訓(xùn)練方法的選擇 使用LM算法收斂
11、速度最快,均方誤差也較小。 LM算法對于模式識別相關(guān)問題的處理能力較弱,且需要較大的存儲空間 模式識別問題,使用RPROP算法能收到較好的效果 SCG算法對于模式識別和函數(shù)逼近問題都有較好的性能表現(xiàn)。初始權(quán)值的確定 通常將初始權(quán)值定義為較小的非零隨機(jī)值,經(jīng)驗值為 :權(quán)值輸入端連接的神經(jīng)元個數(shù) 3.設(shè)計BP網(wǎng)絡(luò)的方法訓(xùn)練方法的選擇 使用LM算法收斂速度最3.設(shè)計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è)計BP網(wǎng)絡(luò)的方法 確定以上參數(shù)后,將訓(xùn)練數(shù)據(jù)進(jìn)4.BP神經(jīng)網(wǎng)絡(luò)的局限性BP網(wǎng)絡(luò)具有實現(xiàn)任何復(fù)雜非線性映射的能力
12、,特別適合求解內(nèi)部機(jī)制復(fù)雜的問題 ,但BP網(wǎng)絡(luò)也具有一些難以克服的局限性 (1)需要的參數(shù)較多,且參數(shù)的選擇沒有有效的方法。隱含層結(jié)點個數(shù)。(2)容易陷入局部最優(yōu)。 (3)樣本依賴性。如果樣本集合代表性差、矛盾樣本多、存在冗余樣本,網(wǎng)絡(luò)就很難達(dá)到預(yù)期的性能 (4)初始權(quán)重敏感性。訓(xùn)練的第一步是給定一個較小的隨機(jī)初始權(quán)重,由于權(quán)重是隨機(jī)給定的,BP網(wǎng)絡(luò)往往具有不可重現(xiàn)性。 4.BP神經(jīng)網(wǎng)絡(luò)的局限性BP網(wǎng)絡(luò)具有實現(xiàn)任何復(fù)雜非線性映射的5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解函數(shù)名稱功能logsigLog-Sigmoid函數(shù)tansigTan-Sigmoid函數(shù)newff創(chuàng)建一個BP網(wǎng)絡(luò)feedforwardnet
13、創(chuàng)建一個BP網(wǎng)絡(luò)(推薦使用)newcf創(chuàng)建級聯(lián)的前向神經(jīng)網(wǎng)絡(luò)cascadeforwardnet創(chuàng)建級聯(lián)的前向神經(jīng)網(wǎng)絡(luò)(推薦使用)newfftd創(chuàng)建前饋輸入延遲的BP網(wǎng)絡(luò)5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解函數(shù)名稱功能logsigLog-Si5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解 logsigLog-Sigmoid傳輸函數(shù) Log-Sigmoid函數(shù)的特點是 范圍的數(shù)據(jù)被映射到區(qū)間 可以使用下面的代碼將神經(jīng)網(wǎng)絡(luò)節(jié)點的傳輸函數(shù)定義為Log-Sigmoid函數(shù):net.layersi.transferFcn=logsig;5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解 logsigLog-Si5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解 tansigTan-Sigm
14、oid傳輸函數(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) grid on5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解 tansigTan-Sigmo5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解 dlogsig/dtansigSigmoid函數(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(
15、x,y); title(logsig) subplot(212); plot(x,dy); title(dlogsig)5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解 dlogsig/dtansig5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解newff創(chuàng)建一個BP網(wǎng)絡(luò):新版語法net=newff(P,T,S) P:R*Q1矩陣,表示創(chuàng)建的神經(jīng)網(wǎng)絡(luò)中,輸入層有R個神經(jīng)元。每行對應(yīng)一個神經(jīng)元輸入數(shù)據(jù)的典型值,實際應(yīng)用中常取其最大最小值。T:SN*Q2矩陣,表示創(chuàng)建的網(wǎng)絡(luò)有SN個輸出層節(jié)點,每行是輸出值的典型值 S:標(biāo)量或向量,用于指定隱含層神經(jīng)元個數(shù),若隱含層多于一層,則寫成行向量的形式。舊版語法格式net=newff(P,N,TF,BT
16、F) :P表示輸入向量的典型值,N為各層神經(jīng)元的個數(shù),TF為表示傳輸函數(shù)的細(xì)胞數(shù)組,BTF為訓(xùn)練函數(shù) 5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解newff創(chuàng)建一個BP網(wǎng)絡(luò):5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解 舊版newff默認(rèn)訓(xùn)練函數(shù)為traingdx(學(xué)習(xí)率自適應(yīng)并附加動量因子的最速下降法),新版默認(rèn)訓(xùn)練函數(shù)為trainlm。新版速度更快,但更占用內(nèi)存 新版newff將輸入的60%用于訓(xùn)練,20%用于檢驗,20%用于驗證,采用了提前終止的策略,防止過擬合的情況發(fā)生。對于同一個問題,往往會出現(xiàn)新版最終訓(xùn)練誤差大于舊版newff的情況。 用newff逼近二次函數(shù),新版的函數(shù)誤差比舊版函數(shù)大 example6_3.m5.BP
17、網(wǎng)絡(luò)相關(guān)函數(shù)詳解 舊版newff默認(rèn)訓(xùn)練函數(shù)為tr5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解feedforwardnet創(chuàng)建一個BP網(wǎng)絡(luò) feedforwardnet是新版神經(jīng)網(wǎng)絡(luò)工具箱中替代newff的函數(shù) feedforwardnet(hiddenSizes,trainFcn) hiddenSizes為隱含層的神經(jīng)元節(jié)點個數(shù),如果有多個隱含層,則hiddenSizes是一個行向量,缺省值為10。trainFcn為訓(xùn)練函數(shù),缺省值為trainlm。 x,t = simplefit_dataset;% MATLAB自帶數(shù)據(jù),x、t均為1*94向量net = feedforwardnet; view(net) n
18、et = train(net,x,t); view(net) y = net(x); perf = perform(net,y,t) 5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解feedforwardnet創(chuàng)建5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解newcf級聯(lián)的前向神經(jīng)網(wǎng)絡(luò) 在新版中使用cascadeforwardnet函數(shù)代替 5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解net = newcf(P,T,S1 S2.S(N-1)P:R*Q1矩陣,每行對應(yīng)一個神經(jīng)元輸入數(shù)據(jù)的典型值。 T:SN*Q2矩陣,表示創(chuàng)建的網(wǎng)絡(luò)有SN個輸出層節(jié)點,每行是輸出值的典型值。Si:表示隱含層神經(jīng)元個數(shù),若隱含層多于一層,則寫成行向量的形式
19、。 與newff比較類似 newcf級聯(lián)的前向神經(jīng)網(wǎng)絡(luò) 5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解n5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解 用newff和newcf對一段數(shù)據(jù)進(jìn)行擬合,數(shù)據(jù)輸入為向量輸出為 ,是一段折線。新版替代函數(shù):cascadeforwardnet f2=cascadeforwardnet(3,5); view(f2) 5.BP網(wǎng)絡(luò)相關(guān)函數(shù)詳解 用newff和newcf對 rng(2) P = 0 1 2 3 4 5 6 7 8 9 10;% 網(wǎng)絡(luò)輸入 T = 0 1 2 3 4 3 2 1 2 3 4;% 期望輸出 ff=newff(P,T,20); % 建立一個BP網(wǎng)絡(luò),包含一個20個節(jié)點的隱含層 f
20、f.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-);% 繪圖 hold on; plot(P,Y1,m-); plot(P,Y2,*-k); title(newff & newcf) legend(原始數(shù)據(jù),newff結(jié)果,newcf結(jié)果,0) rng(2)6.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實
21、例(1)基于BP網(wǎng)絡(luò)的性別識別 .以班級中男生女生的身高、體重為輸入,經(jīng)過一定數(shù)量的樣本訓(xùn)練后,可以較好地識別出新樣本的性別。男生172人,女生88人 .部分?jǐn)?shù)據(jù): 學(xué)號性別身高體重學(xué)號性別身高體重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
22、男181.177.8129女163.153120男175.757.8130女16553.36.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實例(1)基于BP網(wǎng)絡(luò)的性別識別 .以班6.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實例 思路:隨機(jī)抽出部分學(xué)生的身高和體重作為訓(xùn)練樣本(男女生都有),然后訓(xùn)練一個BP神經(jīng)網(wǎng)絡(luò),最后將剩下的樣本輸入網(wǎng)絡(luò)進(jìn)行測試,檢驗BP網(wǎng)絡(luò)的分類性能。 6.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實例 思路:隨機(jī)抽出部分學(xué)生的6.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實例1.讀入使用MATLAB的內(nèi)建函數(shù)xlsread來讀取XLS表格。 function data,label=getdata(xlsfile),label=xlsread(xlsfile,1,B2:B26
23、1);height,=xlsread(xlsfile,C2:C261);weight,=xlsread(xlsfile,D2:D261);data=height,weight;l=zeros(size(label);for i=1:length(l) if labeli= 男 l(i)=1; endendlabel=l; xlsfile=student.xls; data,label=getdata(student.xls);6.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實例1.讀入function data6.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實例(2)劃分訓(xùn)練數(shù)據(jù)與測試數(shù)據(jù)。 function traind,trainl,testd
24、,testl=divide(data,label)rng(0)% 男女各取30個進(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); % 男生的個數(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=leng
25、th(f_data); % 女生的個數(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
26、+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)用實例(2)劃分訓(xùn)練數(shù)據(jù)與測試數(shù)據(jù)。 fu6.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實例(3)初始化BP網(wǎng)絡(luò),采用包含一個隱含層的神經(jīng)網(wǎng)絡(luò),訓(xùn)練方法采用包含動量的最速下降法,批量方式進(jìn)行訓(xùn)練。 traind,trainl,testd,testl=divide(data,label); whos net.nIn=2; net.nHidden = 3; % 3個隱含層節(jié)點 net.nOut = 1; % 一個輸出層節(jié)點 w = 2*(rand(net.nHidden,net.nIn
27、)-1/2); % nHidden * 3 一行代表一個隱含層節(jié)點 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)元個數(shù)暫定為3。6.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實例(3)初始化BP網(wǎng)絡(luò),采用包含一個隱6.BP神經(jīng)網(wǎng)絡(luò)應(yīng)用實例(4)輸入樣本,計算誤差。 mm=mean(traind); % 均值平移for i=1:2 traind_s(:,i)=traind(:,i)-
28、mm(i); end% 方差標(biāo)準(zhǔn)化ml(1) = std(traind_s(:,1);ml(2) = std(traind_s(:,2);for i=1:2 traind_s(:,i)=traind_s(:,i)/ml(i); end計算誤差: nTrainNum = 60; % 60個訓(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 = sums
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 南京耐磨地坪合同范例
- 公司汽車合同范本
- 勞務(wù)雇傭種菜合同范本
- 農(nóng)商銀行授權(quán)推廣合同范本
- 聲勢在小學(xué)音樂教學(xué)中的應(yīng)用策略
- 賣米合同范本
- 養(yǎng)老機(jī)構(gòu)合同范本
- 單位食堂設(shè)施采購合同范本
- 廠屋出租合同范本
- 2025年青海省安全員考試題庫及答案
- 細(xì)菌群體感應(yīng)系統(tǒng)及其應(yīng)用課件
- 司法鑒定程序通則(試行)
- 內(nèi)襯修復(fù)用HTPO管材企標(biāo)
- 部編教材一年級下冊生字筆順筆畫
- 通達(dá)信指標(biāo)——江恩輪
- 二維火收銀使用手冊
- 神經(jīng)電生理檢查ppt課件
- 管路滑脫風(fēng)險評估表
- 塑鋼板樁專項施工方案
- EN12680.3中文
- 歐科模塊化風(fēng)冷冷水熱泵機(jī)組報警代碼和維修步驟
評論
0/150
提交評論