最新反向傳播神經(jīng)網(wǎng)絡(luò)_第1頁(yè)
最新反向傳播神經(jīng)網(wǎng)絡(luò)_第2頁(yè)
最新反向傳播神經(jīng)網(wǎng)絡(luò)_第3頁(yè)
最新反向傳播神經(jīng)網(wǎng)絡(luò)_第4頁(yè)
最新反向傳播神經(jīng)網(wǎng)絡(luò)_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第06講 反向傳播網(wǎng)絡(luò) 反向傳播網(wǎng)絡(luò)(backpropagation network,簡(jiǎn)稱bp網(wǎng)絡(luò))是將wh學(xué)習(xí)規(guī)則一般化,對(duì)非線性可微分函數(shù)進(jìn)行權(quán)值訓(xùn)練的多層網(wǎng)絡(luò)。 bp網(wǎng)絡(luò)是一種多層前向反饋神經(jīng)網(wǎng)絡(luò),其神經(jīng)元的變換函數(shù)是s型函數(shù),因此輸出量為0到1之間的連續(xù)量,它可以實(shí)現(xiàn)從輸入到輸出的任意的非線性映射。由于其權(quán)值的調(diào)整采用反向傳播(backpropagation)的學(xué)習(xí)算法,因此被稱為bp網(wǎng)絡(luò)。 bp網(wǎng)絡(luò)主要用于:1)函數(shù)逼近:用輸入矢量和相應(yīng)的輸出矢量訓(xùn)練一個(gè)網(wǎng)絡(luò)逼近個(gè)函數(shù);2)模式識(shí)別:用一個(gè)特定的輸出矢量將它與輸入矢量聯(lián)系起來;3)分類:把輸入矢量以所定義的合適方式進(jìn)行分類; 4)數(shù)

2、據(jù)壓縮:減少輸出矢量維數(shù)以便于傳輸或存儲(chǔ)。 61 bp網(wǎng)絡(luò)模型與結(jié)構(gòu) 一個(gè)具有r個(gè)輸入和一個(gè)隱含層的神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu) 感知器和自適應(yīng)線性元件的主要差別在激活函數(shù)上:前者是二值型的,后者是線性的。 bp網(wǎng)絡(luò)具有一層或多層隱含層,除了在多層網(wǎng)絡(luò)上與前面已介紹過的模型有不同外,其主要差別也表現(xiàn)在激活函數(shù)上。bp網(wǎng)絡(luò)的激活函數(shù)必須是處處可微的,所以它就不能采用二值型的閥值函數(shù)0,1或符號(hào)函數(shù)1,1,bp網(wǎng)絡(luò)經(jīng)常使用的是s型的對(duì)數(shù)或正切激活函數(shù)和線性函數(shù)。 圖6. 2 bp網(wǎng)絡(luò)s型激活函數(shù) 因?yàn)閟型函數(shù)具有非線性放大系數(shù)功能,它可以把輸入從負(fù)無窮大到正無窮大的信號(hào),變換成-1到l之間輸出,對(duì)較大的輸入信

3、號(hào),放大系數(shù)較小;而對(duì)較小的輸入信號(hào),放大系數(shù)則較大,所以采用s型激活函數(shù)可以去處理和逼近非線性的輸入/輸出關(guān)系。 只有當(dāng)希望對(duì)網(wǎng)絡(luò)的輸出進(jìn)行限制,如限制在0和1之間,那么在輸出層應(yīng)當(dāng)包含s型激活函數(shù),在一般情況下,均是在隱含層采用s型激活函數(shù),而輸出層采用線性激活函數(shù)。bp網(wǎng)絡(luò)的特點(diǎn):1、輸入和輸出是并行的模擬量;2、網(wǎng)絡(luò)的輸入輸出關(guān)系是各層連接的權(quán)因子決定,沒有固定的算法;3、權(quán)因子是通過學(xué)習(xí)信號(hào)調(diào)節(jié)的,這樣學(xué)習(xí)越多,網(wǎng)絡(luò)越聰明;4、隱含層越多,網(wǎng)絡(luò)輸出精度越高,且個(gè)別權(quán)因子的損壞不會(huì)對(duì)網(wǎng)絡(luò)輸出產(chǎn)生大的影響62 bp學(xué)習(xí)規(guī)則 bp算法屬于算法,是一種監(jiān)督式的學(xué)習(xí)算法。 其主要思想為:對(duì)于q

4、個(gè)輸入學(xué)習(xí)樣本:p1,p2,pq,已知與其對(duì)應(yīng)的輸出樣本為:t1,t2,tq。學(xué)習(xí)的目的是用網(wǎng)絡(luò)的實(shí)際輸出a1,a2,aq,與目標(biāo)矢量t1,t2,tq,之間的誤差來修改其權(quán)值,使al,(ll,2,q)與期望的tl盡可能地接近;即:使網(wǎng)絡(luò)輸出層的誤差平方和達(dá)到最小。 bp算法是由兩部分組成:信息的正向傳遞與誤差的反向傳播。在正向傳播過程中,輸入信息從輸入經(jīng)隱含層逐層計(jì)算傳向輸出層,每一層神經(jīng)元的狀態(tài)只影響下一層神經(jīng)元的狀態(tài)。如果在輸出層沒有得到期望的輸出,則計(jì)算輸出層的誤差變化值,然后轉(zhuǎn)向反向傳播,通過網(wǎng)絡(luò)將誤差信號(hào)沿原來的連接通路反傳回來修改各層神經(jīng)元的權(quán)值直至達(dá)到期望目標(biāo)。 圖63 具有一個(gè)

5、隱含層的簡(jiǎn)化網(wǎng)絡(luò)圖 設(shè)輸入為p,輸入神經(jīng)元有r個(gè),隱含層內(nèi)有s1個(gè)神經(jīng)元,激活函數(shù)為f1,輸出層內(nèi)有s2個(gè)神經(jīng)元,對(duì)應(yīng)的激活函數(shù)為f2,輸出為a,目標(biāo)矢量為t。 621信息的正向傳遞1)隱含層中第i個(gè)神經(jīng)元的輸出為: 2)輸出層第k個(gè)神經(jīng)元的輸出為: 3)定義誤差函數(shù)為: (6.1)(6.2) (6.3) 622利用梯度下降法求權(quán)值變化及誤差的反向傳播 (1)輸出層的權(quán)值變化對(duì)從第i個(gè)輸入到第k個(gè)輸出的權(quán)值有:其中: 同理可得: (6.4) (6.5)(6.6) (6.7) (2)隱含層權(quán)值變化 對(duì)從第j個(gè)輸入到第i個(gè)輸出的權(quán)值,有: 其中: 同理可得: (6.8) (6.9) (6.10)

6、通過matlab的實(shí)現(xiàn)過程:1)對(duì)于(61)式所表示的隱含層輸出,若采用對(duì)數(shù)s型激活函數(shù),則用函數(shù)logsig.m;若采用雙曲正切s型激活函數(shù),則用函數(shù)tansig.m;2)對(duì)于(62)式所表示的輸出層輸出,若采用線性激活函數(shù)有purelin.m與之對(duì)應(yīng);3)對(duì)于(63)式所表示的誤差函數(shù),可用函數(shù)sumsqr.m求之;4)有l(wèi)earnbp.m函數(shù)專門求(64)、(67)、(68)和(610)式所表示的輸出層以及隱含層中權(quán)值與偏差的變化量; 5)由(6.5)和(6.9)式所表示的誤差的變化有函數(shù)deltalin.m、deltatan.m、deltalog.m來解決。它們分別用于線性層、雙曲正切

7、層和對(duì)數(shù)層。 623 誤差反向傳播的流程圖與圖形解釋 誤差反向傳播過程實(shí)際上是通過計(jì)算輸出層的誤差ek,然后將其與輸出層激活函數(shù)的一階導(dǎo)數(shù)f2相乘來求得ki。由于隱含層中沒有直接給出目標(biāo)矢量,所以利用輸出層的ki反向傳遞來求出隱含層權(quán)值的變化量w2ki。然后計(jì)算并同樣通過將ei與該層激活函數(shù)的一階導(dǎo)數(shù)f1相乘,而求得ij,以此求出前層權(quán)值的變化量w1ij。如果前面還有隱含層,沿用上述同樣方法依此類推,一直將輸出誤差ek一層一層的反推算到第一層為止。 圖64 誤差反向傳播法的圖形解釋 6.3 bp網(wǎng)絡(luò)的訓(xùn)練過程 為了訓(xùn)練一個(gè)bp網(wǎng)絡(luò),需要計(jì)算網(wǎng)絡(luò)加權(quán)輸入矢量以及網(wǎng)絡(luò)輸出和誤差矢量,然后求得誤差平

8、方和。當(dāng)所訓(xùn)練矢量的誤差平方和小于誤差目標(biāo),訓(xùn)練則停止,否則在輸出層計(jì)算誤差變化,且采用反向傳播學(xué)習(xí)規(guī)則來調(diào)整權(quán)值,并重復(fù)此過程。當(dāng)網(wǎng)絡(luò)完成訓(xùn)練后,對(duì)網(wǎng)絡(luò)輸入一個(gè)不是訓(xùn)練集合中的矢量,網(wǎng)絡(luò)將以泛化方式給出輸出結(jié)果。 為了能夠較好地掌握bp網(wǎng)絡(luò)的訓(xùn)練過程,我們用兩層網(wǎng)絡(luò)為例來敘述bp網(wǎng)絡(luò)的訓(xùn)練步驟。 1)用小的隨機(jī)數(shù)對(duì)每一層的權(quán)值w和偏差b初始化,以保證網(wǎng)絡(luò)不被大的加權(quán)輸入飽和;并進(jìn)行以下參數(shù)的設(shè)定或初始化: a)期望誤差最小值error_goal; b)最大循環(huán)次數(shù)max_epoch; c)修正權(quán)值的學(xué)習(xí)速率1r,一般情況下k00l07; d)從1開始的循環(huán)訓(xùn)練:for epoch1:max_

9、epoch;2)計(jì)算網(wǎng)絡(luò)各層輸出矢量a1和a2以及網(wǎng)絡(luò)誤差e:a1tansig(w1*p,b1);a2purelin(w2*a1,b2);et-a;3)計(jì)算各層反傳的誤差變化d2和d1并計(jì)算各層權(quán)值的修正值以及新權(quán)值:d2deltalin(a2,e);d1deltatan(a1,d2,w2);dlwl,dbllearnbp(p,d1,lr);dw2,db21earnbp(a1,d2,1r);w1w1十dw1;b1b1十dbl;w2w2十dw2;b2b2十db2;4)再次計(jì)算權(quán)值修正后誤差平方和:ssesumsqr(t-purelin(w2*tansig(w1*p,b1),b2);5)檢查sse

10、是否小于err_goal,若是,訓(xùn)練結(jié)束;否則繼續(xù)。以上所有的學(xué)習(xí)規(guī)則與訓(xùn)練的全過程,仍然可以用函數(shù)trainbp.m來完成。它的使用同樣只需要定義有關(guān)參數(shù):顯示間隔次數(shù),最大循環(huán)次數(shù),目標(biāo)誤差,以及學(xué)習(xí)速率,而調(diào)用后返回訓(xùn)練后權(quán)值,循環(huán)總數(shù)和最終誤差: tpdisp_freq max_epoch err_goal 1r;w,b,epochs,errorstrainbp(w,b,f,p,t,tp); 例61用于函數(shù)逼近的bp網(wǎng)絡(luò)的設(shè)計(jì)。p=-1:0.1:1;t=-0.96 0.577 -0.0729 0.377 0.641 0.66 0.461 0.1336 -0.201 -0.434 -0.

11、5 -0.393 -0.1647 0.0988 0.3072 0.396 0.3449 0.1816 -0.0312 -0.2183 -0.3201;比較trainbpx和trainbp的速度差別。exc4.m泛化性能:使網(wǎng)絡(luò)平滑地學(xué)習(xí)函數(shù),使網(wǎng)絡(luò)能夠合理地響應(yīng)被訓(xùn)練以外的輸入。 要注意的是,泛化性能只對(duì)被訓(xùn)練的輸入輸出對(duì)最大值范圍內(nèi)的數(shù)據(jù)有效,即網(wǎng)絡(luò)具有內(nèi)插值特性,不具有外插值性。超出最大訓(xùn)練值的輸入必將產(chǎn)生大的輸出誤差。 64 bp網(wǎng)絡(luò)的設(shè)計(jì) 641網(wǎng)絡(luò)的層數(shù)理論上已經(jīng)證明:具有偏差和至少一個(gè)s型隱含層加上一個(gè)線性輸出層的網(wǎng)絡(luò),能夠逼近任何有理函數(shù)。 增加層數(shù)主要可以更進(jìn)一步的降低誤差,提

12、高精度,但同時(shí)也使網(wǎng)絡(luò)復(fù)雜化,從而增加了網(wǎng)絡(luò)權(quán)值的訓(xùn)練時(shí)間。 一般情況下,應(yīng)優(yōu)先考慮增加隱含層中的神經(jīng)元數(shù)。 能不能僅用具有非線性激活函數(shù)的單層網(wǎng)絡(luò)來解決問題呢?結(jié)論是:沒有必要或效果不好。 642 隱含層的神經(jīng)元數(shù)網(wǎng)絡(luò)訓(xùn)練精度的提高,可以通過采用一個(gè)隱含層,而增加其神經(jīng)元數(shù)的方法來獲得。這在結(jié)構(gòu)實(shí)現(xiàn)上,要比增加更多的隱含層要簡(jiǎn)單得多。 在具體設(shè)計(jì)時(shí),比較實(shí)際的做法是通過對(duì)不同神經(jīng)元數(shù)進(jìn)行訓(xùn)練對(duì)比,然后適當(dāng)?shù)丶由弦稽c(diǎn)余量。 643初始權(quán)值的選取一般取初始權(quán)值在(1,1)之間的隨機(jī)數(shù)。威得羅等人在分析了兩層網(wǎng)絡(luò)是如何對(duì)一個(gè)函數(shù)進(jìn)行訓(xùn)練后,提出一種選定初始權(quán)值的策略。在matlab工具箱中可采用函

13、數(shù)nwlog.m或nwtan.m來初始化隱含層權(quán)值w1和b1。其方法僅需要使用在第一隱含層的初始值的選取上,后面層的初始值仍然采用隨機(jī)取數(shù)。 644 學(xué)習(xí)速率學(xué)習(xí)速率決定每一次循環(huán)訓(xùn)練中所產(chǎn)生的權(quán)值變化量。大的學(xué)習(xí)速率可能導(dǎo)致系統(tǒng)的不穩(wěn)定。小的學(xué)習(xí)速率導(dǎo)致較長(zhǎng)的訓(xùn)練時(shí)間,可能收斂很慢,不過能保證網(wǎng)絡(luò)的誤差值不跳出誤差表面的低谷而最終趨于最小誤差值。所以在一般情況下,傾向于選取較小的學(xué)習(xí)速率以保證系統(tǒng)的穩(wěn)定性。學(xué)習(xí)速率的選取范圍在00108之間。 645 期望誤差的選取在設(shè)計(jì)網(wǎng)絡(luò)的訓(xùn)練過程中,期望誤差值也應(yīng)當(dāng)通過對(duì)比訓(xùn)練后確定一個(gè)合適的值。這個(gè)所謂的“合適”,是相對(duì)于所需要的隱含層的節(jié)點(diǎn)數(shù)來確定

14、,因?yàn)檩^小的期望誤差值是要靠增加隱含層的節(jié)點(diǎn),以及訓(xùn)練時(shí)間來獲得的。一般情況下,作為對(duì)比,可以同時(shí)對(duì)兩個(gè)不同期望誤差值的網(wǎng)絡(luò)進(jìn)行訓(xùn)練,最后通過綜合因素的考慮來確定采用其中一個(gè)網(wǎng)絡(luò)。 65 限制與不足 (1)需要較長(zhǎng)的訓(xùn)練時(shí)間 (2)完全不能訓(xùn)練 通常為了避免這種現(xiàn)象的發(fā)生,一是選取較小的初始權(quán)值,二是采用較小的學(xué)習(xí)速率,但這又增加了訓(xùn)練時(shí)間。 (3)局部極小值 bp算法可以使網(wǎng)絡(luò)權(quán)值收斂到一個(gè)解,但它并不能保證所求為誤差超平面的全局最小解,很可能是一個(gè)局部極小解。 66 反向傳播法的改進(jìn)方法 主要目標(biāo)是為了加快訓(xùn)練速度,避免陷入局部極小值。661 附加動(dòng)量法 附加動(dòng)量法使網(wǎng)絡(luò)在修正其權(quán)值時(shí),不

15、僅考慮誤差在梯度上的作用,而且考慮在誤差曲面上變化趨勢(shì)的影響,其作用如同一個(gè)低通濾波器,它允許網(wǎng)絡(luò)忽略網(wǎng)絡(luò)上的微小變化特性。 利用附加動(dòng)量的作用則有可能滑過局部極小值。 該方法是在反向傳播法的基礎(chǔ)上在每一個(gè)權(quán)值的變化上加上一項(xiàng)正比于前次權(quán)值變化量的值,并根據(jù)反向傳播法來產(chǎn)生新的權(quán)值變化。帶有附加動(dòng)量因子的權(quán)值調(diào)節(jié)公式為: 其中k為訓(xùn)練次數(shù),mc為動(dòng)量因子,一般取095左右。 附加動(dòng)量法的實(shí)質(zhì)是將最后一次權(quán)值變化的影響,通過一個(gè)動(dòng)量因子來傳遞。當(dāng)動(dòng)量因子取值為零時(shí),權(quán)值的變化僅是根據(jù)梯度下降法產(chǎn)生;當(dāng)動(dòng)量因子取值為1時(shí),新的權(quán)值變化則是設(shè)置為最后一次權(quán)值的變化,而依梯度法產(chǎn)生的變化部分則被忽略掉

16、了。 在matlab工具箱中,帶有動(dòng)量因子的權(quán)值修正法是用函數(shù)learnbpm.m來實(shí)現(xiàn)的。 trainbpm.m可以訓(xùn)練一層直至三層的帶有附加動(dòng)量因子的反向傳播網(wǎng)絡(luò)。 下面是對(duì)單層網(wǎng)絡(luò)使用函數(shù)trainbpm.m的情形:w,b,epochs,errorstrainbpm(w,b,f,p,t,tp); 662 誤差函數(shù)的改進(jìn) 包穆(baum)等人于1988年提出一種誤差函數(shù)為: 不會(huì)產(chǎn)生不能完全訓(xùn)練的麻痹現(xiàn)象。 663 自適應(yīng)學(xué)習(xí)速率 通常調(diào)節(jié)學(xué)習(xí)速率的準(zhǔn)則是:檢查權(quán)值的修正值是否真正降低了誤差函數(shù),如果確實(shí)如此,則說明所選取的學(xué)習(xí)速率值小了,可以對(duì)其增加一個(gè)量;若不是這樣,而產(chǎn)生了過調(diào),那么

17、就應(yīng)該減小學(xué)習(xí)速率的值。下式給出了一種自適應(yīng)學(xué)習(xí)速率的調(diào)整公式:matlab工具箱中帶有自適應(yīng)學(xué)習(xí)速率進(jìn)行反向傳播訓(xùn)練的函數(shù)為:trainbpa.m。它可以訓(xùn)練直至三層網(wǎng)絡(luò)。使用方法為:w,b,epochs,tetrainbpa(w,b,f,p,t,tp)可以將動(dòng)量法和自適應(yīng)學(xué)習(xí)速率結(jié)合起來以利用兩方面的優(yōu)點(diǎn)。這個(gè)技術(shù)已編入了函數(shù)trainbpx.m之中。這個(gè)函數(shù)的調(diào)用和其他函數(shù)一樣,只是需要更多的初始參數(shù)而已:tpdisp_freq max_epoch error_goal lr 1r_inc 1r_dec mom_const err_ratio;w,b,epochs,error; lrtrainbpx(w,b,f,p,t,tp)47 本章小結(jié) 1)反向傳播法可以用來訓(xùn)練具有可微激活函數(shù)的多層前向網(wǎng)絡(luò)以進(jìn)行函數(shù)逼近,模式分類等工作;2)反向傳播網(wǎng)絡(luò)的結(jié)構(gòu)不完全受所要解決的問題所限制。網(wǎng)絡(luò)的輸入神經(jīng)元數(shù)目及輸出層神經(jīng)元的數(shù)目是由問題的要求所決定的,而輸入和輸出層之間的隱含層數(shù)以及每層的神經(jīng)元數(shù)是由設(shè)計(jì)者來決定的;3)已證明,兩層s型線性網(wǎng)絡(luò),如果s型層有足夠的神經(jīng)元,則能夠訓(xùn)練出

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論