資源描述:
《BP算法程序?qū)崿F(xiàn)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、BP網(wǎng)絡(luò)隱層可以有多個,多隱層的BP網(wǎng)絡(luò)模型對一般多層前饋網(wǎng)模型如圖所示。圖3.3多層BP網(wǎng)絡(luò)結(jié)構(gòu)設(shè)有h個隱層,按前饋順序各隱層節(jié)點數(shù)為m1,m2,…,mh;各隱層輸出為y1,y2,…,yh;各層權(quán)值矩陣分別為W1,W2,…,Wh,Wh+1,則,各層權(quán)值調(diào)整計算公式為:輸出層第h隱層按上述規(guī)律逐層類推,可得到第一隱層權(quán)值調(diào)整計算公式為三層前饋網(wǎng)的BP學(xué)習(xí)算法也可寫成向量形式:對輸出層式中,對于隱層式中,看出,BP算法中,各層權(quán)值調(diào)整公式形式上都是一樣的,均由3個因素決定,學(xué)習(xí)率η,本層輸出的誤差信號
2、δ及本層輸入信號Y(或X)。其中輸出層誤差信號同網(wǎng)絡(luò)的期望輸出與實際輸出之差有關(guān),直接反映了輸出誤差,而各隱層的誤差信號與前面各層的誤差信號都有關(guān),是從輸出層開始逐層反傳過來的。反傳過程可以簡述為:與比較得到輸出層誤差信號→計算輸出層權(quán)值調(diào)整量ΔW;通過隱層各節(jié)點反傳→計算各隱層權(quán)值的調(diào)整量ΔV.例采用BP網(wǎng)絡(luò)映射下圖曲線規(guī)律。設(shè)計BP網(wǎng)絡(luò)結(jié)構(gòu)如下:權(quán)系數(shù)隨機(jī)選取為:w12=0.2,w13=0.3,w14=0.4,w15=0.5,w26=0.5,w36=0.2,w46=0.1,w56=0.4。取學(xué)習(xí)
3、率η=1。按圖中曲線確定學(xué)習(xí)樣本數(shù)據(jù)如下表(每0.05取一學(xué)習(xí)數(shù)據(jù),共80對)x(輸入信號)y(教師信號)…x(輸入信號)y(教師信號)0.00000.5000…3.00000.0000……………1.00001.0000…4.00000.5000按表中數(shù)據(jù)開始進(jìn)行學(xué)習(xí):第一次學(xué)習(xí),輸入=0.0000(1節(jié)點第1次學(xué)習(xí)),,計算2、3、4、5單元狀態(tài):=2,3,4,5計算2、3、4、5各隱層單元輸出(=2,3,4,5)計算輸出層單元6的狀態(tài)值及輸出值反推確定第二層權(quán)系數(shù)變化:第一次反傳修正的輸出層權(quán)為
4、:反推第一層權(quán)系數(shù)修正:第二次學(xué)習(xí),,計算6單元狀態(tài):按表中數(shù)據(jù)依次訓(xùn)練學(xué)習(xí),學(xué)習(xí)次數(shù)足夠高時,可能達(dá)到學(xué)習(xí)目的,實現(xiàn)權(quán)值成熟。一般網(wǎng)絡(luò)學(xué)習(xí)訓(xùn)練次數(shù)很高,采用手工計算是不可能的,需要用計算機(jī)程序求解。3.4.3BP算法的程序?qū)崿F(xiàn)前面推導(dǎo)的BP網(wǎng)絡(luò)算法是BP算法基礎(chǔ),稱標(biāo)準(zhǔn)BP算法。目前神經(jīng)網(wǎng)絡(luò)的實現(xiàn)仍以軟件編程為主。現(xiàn)以如圖的三層BP網(wǎng)絡(luò)為例,說明標(biāo)準(zhǔn)BP算法的編程步驟:圖3.2三層BP網(wǎng)絡(luò)結(jié)構(gòu)——輸出層輸出向量;——輸入層到隱層間的權(quán)值矩陣;——隱層第j個神經(jīng)元對應(yīng)的權(quán)列向量;——隱層到輸出層間的
5、權(quán)值矩陣;——輸出層第k個神經(jīng)元對應(yīng)的權(quán)列向量;d=——網(wǎng)絡(luò)期望輸出向量。程序可用一般高級語言編寫,如C等,但考慮方便,最好采用MATLAB語言,特別是MATLAB環(huán)境中開發(fā)了工具箱(Toolboxes),其中神經(jīng)網(wǎng)絡(luò)開發(fā)工具(NeuralNetwork)提供很豐富的手段來完成BP等ANN設(shè)計與分析。NeuralNetwork中提供了網(wǎng)絡(luò)初始化函數(shù)用語構(gòu)建基本網(wǎng)絡(luò),可自動生成權(quán)值,提供各種轉(zhuǎn)移函數(shù),提供各種訓(xùn)練或?qū)W習(xí)方法與手段,并實現(xiàn)仿真運算,監(jiān)視網(wǎng)絡(luò)訓(xùn)練誤差等。BP網(wǎng)絡(luò)的訓(xùn)練,可概括歸納為輸入已知
6、數(shù)據(jù),權(quán)值初始化,訓(xùn)練網(wǎng)絡(luò)三大步。用神經(jīng)網(wǎng)絡(luò)工具箱訓(xùn)練BP網(wǎng)絡(luò),權(quán)值初始化和訓(xùn)練網(wǎng)絡(luò)都可調(diào)用BP網(wǎng)絡(luò)的相應(yīng)工具函數(shù)。調(diào)用時,用戶只需要將這些工具函數(shù)視為黑箱,知道輸入什么得到什么即可,不必考慮工具函數(shù)內(nèi)部究竟如何。BP網(wǎng)絡(luò)的一些重要函數(shù)和功能(與版本有關(guān))如表3.1。表3.1BP網(wǎng)絡(luò)的一些函數(shù)及功能函數(shù)功能newff創(chuàng)建一前饋BP網(wǎng)絡(luò)(網(wǎng)絡(luò)初始化函數(shù))Initff前饋網(wǎng)絡(luò)初始化(不超3層初始化函數(shù))purelin線性傳遞(轉(zhuǎn)移)函數(shù)tansig正切S型傳遞函數(shù)(雙極性S函數(shù))logsig對數(shù)正切S型
7、傳遞函數(shù)(單極性S函數(shù))deltalinpurelin神經(jīng)元的δ函數(shù)deltatantansig神經(jīng)元的δ函數(shù)deltaloglogsig神經(jīng)元的δ函數(shù)trainbpBP算法訓(xùn)練函數(shù)(標(biāo)準(zhǔn))trainbpx快速BP算法訓(xùn)練函數(shù)trainlmLevenberg-Marquardt訓(xùn)練函數(shù)traingd梯度下降訓(xùn)練函數(shù)traingdm梯度下降、動量訓(xùn)練函數(shù)traingda梯度下降、自適應(yīng)學(xué)習(xí)率訓(xùn)練函數(shù)traingdx梯度下降、動量和自適應(yīng)學(xué)習(xí)訓(xùn)練函數(shù)simuff前饋網(wǎng)絡(luò)仿真函數(shù)(網(wǎng)絡(luò)計算和測試網(wǎng)絡(luò))er
8、rsurf計算誤差曲面函數(shù)plotes繪制誤差曲面函數(shù)ploterr繪制網(wǎng)絡(luò)誤差相對訓(xùn)練步曲線現(xiàn)行MATLAB工具中,神經(jīng)元及網(wǎng)絡(luò)模型表達(dá)略有差別?;旧窠?jīng)元模型:傳遞函數(shù)(轉(zhuǎn)移函數(shù)):線性傳遞函數(shù)purelin(s)即y=s;對數(shù)S型傳遞函數(shù)logsig(s),即y=1/(1+e-s);雙曲正切S型傳遞函數(shù)tansig(s)即=tansigs,即y=(1-e-s)/(1+e-s)曲線。3.4.4多層前饋網(wǎng)絡(luò)的主要能力多層前饋網(wǎng)絡(luò)是目前應(yīng)用最多的神經(jīng)網(wǎng)絡(luò),這主要歸結(jié)于