神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)之BP神經(jīng)網(wǎng)絡(luò)_第1頁
神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)之BP神經(jīng)網(wǎng)絡(luò)_第2頁
神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)之BP神經(jīng)網(wǎng)絡(luò)_第3頁
神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)之BP神經(jīng)網(wǎng)絡(luò)_第4頁
神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)之BP神經(jīng)網(wǎng)絡(luò)_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)之BP神經(jīng)網(wǎng)絡(luò)目錄第一章概述第二章BP算法的基本思想第三章BP網(wǎng)絡(luò)特性分析BP網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)BP網(wǎng)絡(luò)的傳遞函數(shù)BP網(wǎng)絡(luò)的學(xué)習(xí)算法第四章BP網(wǎng)絡(luò)的訓(xùn)練分解前向傳輸(Feed-Forward 前向反饋) 逆向反饋(Backpropagation ) 訓(xùn)練終止條件第五章BP網(wǎng)絡(luò)運行的具體流程 網(wǎng)絡(luò)結(jié)構(gòu)變量定義誤差函數(shù):第六章 BP網(wǎng)絡(luò)的設(shè)計網(wǎng)絡(luò)的層數(shù) 隱層神經(jīng)元的個數(shù) 初始權(quán)值的選取 學(xué)習(xí)速率BP網(wǎng)絡(luò)的局限性BP網(wǎng)絡(luò)的改進(jìn)第一章概述神經(jīng)網(wǎng)絡(luò)是1986年由Rumelhart和McCelland 為首的科研小組提出,參見他們發(fā)表在Nature 上的論文?Learning representa

2、tions by back-propagating errors?。BP神經(jīng)網(wǎng)絡(luò)是一種按誤差逆?zhèn)鞑ニ惴ㄓ?xùn)練的多層前饋網(wǎng)絡(luò),是目前應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò) 模型之一。BP網(wǎng)絡(luò)能學(xué)習(xí)和存貯大量的 輸入-輸出模式映射關(guān)系,而無需事前揭示描述這種映射關(guān)系的數(shù)學(xué)方程。它的學(xué)習(xí)規(guī)則是使用最速下降法,通過反向傳播來不斷調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值,使網(wǎng)絡(luò)的誤差平方和最小。第二章BP算法的基本思想多層感知器在如何獲取隱層的權(quán)值的問題上遇到了瓶頸。既然我們無法直接得到隱層的權(quán)值,能否先通過輸出層得到輸出結(jié)果和期望輸出的誤差來間接調(diào)整隱層的權(quán)值呢?BP算法就是采用這樣的思想設(shè)計出來的算法,它的基本思想是,學(xué)習(xí)過程由信號的正向

3、傳播與誤差的反向傳播兩個過程組成。? 正向傳播時,輸入樣本從輸入層傳入,經(jīng)各隱層逐層處理后,傳向輸出層。若輸出層的實際輸出與期望的輸出(教師信號)不符,則轉(zhuǎn)入誤差的反向傳播階段。? 反向傳播時,將輸出以某種形式通過隱層向輸入層逐層反傳,并將誤差分?jǐn)偨o各層的所有單元,從而獲得各層單元的誤差信號,此誤差信號即作為修正各單元權(quán)值的依據(jù)。這兩個過程的具體流程會在后文介紹。BP算法的信號流向圖如下圖所示X第三章of除層一輸出層VXY)1)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu);2)傳遞函數(shù);X第三章of除層一輸出層VXY)1)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu);2)傳遞函數(shù);?3)學(xué)習(xí)算法。我們分析一個 ANN時,通常都是從它的三要素入手,即JL每一

4、個要素的特性加起來就決定了這個ANN的功能特性。所以,我們也從這三要素入手對BP網(wǎng)絡(luò)的研究。BP網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)上一次已經(jīng)說了, BP網(wǎng)絡(luò)實際上就是多層感知器,因此它的拓?fù)浣Y(jié)構(gòu)和多層感知器的拓?fù)浣Y(jié)構(gòu)相同。由于單隱層(三層)感知器已經(jīng)能夠解決簡單的非線性問題,因此應(yīng)用最為普遍。三層感知器的拓?fù)浣Y(jié)本如下圖所示。?一個最簡單的三層 BP: ?BP網(wǎng)絡(luò)的傳遞函數(shù)BP網(wǎng)絡(luò)采用的傳遞函數(shù)是非線性變換函數(shù)一一Sigmoid函數(shù)(又稱S函數(shù))。其特點是函數(shù)本身及其導(dǎo)數(shù)都是連續(xù)的,因而在處理上十分方便。為什么要選擇這個函數(shù),等下在介紹BP網(wǎng)絡(luò)的學(xué)習(xí)算法的時候會進(jìn)行進(jìn)一步的介紹。? /(X)=八1+6-1單極性S型

5、函數(shù)曲線如下圖所示。?雙極性S型函數(shù)曲線如下圖所示。BP網(wǎng)絡(luò)的學(xué)習(xí)算法BP網(wǎng)絡(luò)的學(xué)習(xí)算法就是 BP算法,又叫 8算法(在ANN的學(xué)習(xí)過程中我們會發(fā)現(xiàn)不少具 TOC o 1-5 h z 有多個名稱的術(shù)語),以三層感知器為例,當(dāng)網(wǎng)絡(luò)輸出與期望輸出不等時,存在輸出誤差E ,定義如下:E=*0)2 = :二弧。.尸將以上誤差定義式展開至隱層,有?進(jìn)一步展開至入層,有 ?由上式可以看出,網(wǎng)絡(luò)輸入誤差是各層權(quán)值3隊也的函數(shù),因此調(diào)整權(quán)值可改變誤差 ?E。顯然,調(diào)整權(quán)值的原則是使誤差不斷減小,因此應(yīng)使權(quán)值與誤差的梯度下降成正比,即?:對于一般多層感知器,設(shè)共有 ?h?個隱層,按前向順序各隱層節(jié)點數(shù)分別記為?

6、mi,m2, mh,各隱層輸出分別記為 ?yi,y2, yh,各層權(quán)值矩陣分別記為?Wi,W2, Wh,Wh+i,則各層權(quán)值調(diào)整公式為輸出層第?h?隱層按以上規(guī)律逐層類推,則第一隱層權(quán)值調(diào)整公式容易看出,BP學(xué)習(xí)算法中,各層權(quán)值調(diào)整公式形式上都是一樣的,均由 3個因素決定,即:.學(xué)習(xí)率?刀.本層輸出的誤差信號5.本層輸入信號?Y (或X)其中輸入層誤差信號與網(wǎng)絡(luò)的期望輸出與實際輸出之差有關(guān),直接反應(yīng)了輸出誤差,而各隱層的誤差信號與前面各層的誤差信號有關(guān),是從輸出層開始逐層反傳過來的??梢钥闯鯞P算法屬于8學(xué)習(xí)規(guī)則類,這類算法常被稱為誤差的梯度下降算法。8學(xué)習(xí)規(guī)則可以看成是Widrow-Hoff

7、(LMS) 學(xué)習(xí)規(guī)則的一般化(generalize)情況。LMS學(xué)習(xí)規(guī)則與神經(jīng)元采用的變換函數(shù)無關(guān),因而不需要對變換函數(shù)求導(dǎo),8學(xué)習(xí)規(guī)則則沒有這個性質(zhì),要求變換函數(shù)可導(dǎo)。這就是為什么我們前面采用Sigmoid函數(shù)的原因。綜上所述,BP三要素如下圖所示。第四章BP網(wǎng)絡(luò)的訓(xùn)練分解訓(xùn)練一個BP神經(jīng)網(wǎng)絡(luò),實際上就是調(diào)整網(wǎng)絡(luò)的權(quán)重和偏置這兩個參數(shù),BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程分兩部分:? 前向傳輸,逐層波浪式的傳遞輸出值;? 逆向反饋,反向逐層調(diào)整權(quán)重和偏置;?? 我們先來看前向傳輸。前向傳輸(Feed-Forward前向反饋)在訓(xùn)練網(wǎng)絡(luò)之前,我們需要隨機(jī)初始化權(quán)重和偏置,對每一個權(quán)重取?1,1的一個隨機(jī)實數(shù)

8、,每一個偏置取0,1的一個隨機(jī)實數(shù),之后就開始進(jìn)行前向傳輸。神經(jīng)網(wǎng)絡(luò)的訓(xùn)練是由多趟迭代完成的,每一趟迭代都使用訓(xùn)練集的所有記錄,而每一次訓(xùn)練 網(wǎng)絡(luò)只使用一條記錄,抽象的描述如下:首先設(shè)置輸入II哧怖F 隨屬性的個數(shù)為100,那我們就設(shè)置輸入層的神經(jīng)單元個數(shù)為2 for zecard:dataset:100 ,前入層的結(jié)點十N&訝幅上等3的屬性值 Xi。對輸入層的操作就這么簡單,之后的每層 就要復(fù)雜一些了,除輸入層外,其他各層的輸入值是上一層輸入值按權(quán)重累加的結(jié)果值加上偏置, 每個結(jié)點的輸出值等該結(jié)點的輸入值作變換?前向傳輸?shù)妮敵鰧拥挠嬎氵^程公式如下:?對隱藏層和輸出層的每一個結(jié)點都按照如上圖的

9、方式計算輸出值,就完成前向傳播的過程, 緊接著是進(jìn)行逆向反饋。逆向反饋(Backpropagation )逆向反饋從最后一層即輸出層開始,我們訓(xùn)練神經(jīng)網(wǎng)絡(luò)作分類的目的往往是希望最后一層的輸出能夠描述數(shù)據(jù)記錄的類別,比如對于一個二分類的問題,我們常常用兩個神經(jīng)單元作為輸出層, 如果輸出層的第一個神經(jīng)單元的輸出值比第二個神經(jīng)單元大,我們認(rèn)為這個數(shù)據(jù)記錄屬于第一類,否則屬于第二類。還記得我們第一次前向反饋時,整個網(wǎng)絡(luò)的權(quán)重和偏置都是我們隨機(jī)取,因此網(wǎng)絡(luò)的輸出肯定還 不能描述記錄的類別,因此需要調(diào)整網(wǎng)絡(luò)的參數(shù),即權(quán)重值和偏置值,而調(diào)整的依據(jù)就是網(wǎng)絡(luò)的 輸出層的輸出值與類別之間的差異,通過調(diào)整參數(shù)來縮小

10、這個差異,這就是神經(jīng)網(wǎng)絡(luò)的優(yōu)化目標(biāo)。對于輸出層:?Ej =。式1 -(刀_。,)其中Ej表示第j個結(jié)點的誤差值,Oj表示第j個結(jié)點的輸出值,Tj記錄輸出值,比如對于 2分類問題,我們用01表示類標(biāo)1,10表示類別2,如果一個記錄屬于類別 1,那么其Ti=0, T2=1 。中間的隱藏層并不直接與數(shù)據(jù)記錄的類別打交道,而是通過下一層的所有結(jié)點誤差按權(quán)重累加,計算公式如下:?% =。式1 %)%*其中 Wjk表示當(dāng)前層的結(jié)點j到下一層的結(jié)點 k的權(quán)重值,Ek下一層的結(jié)點k的誤差率。計算完誤差率后,就可以利用誤差率對權(quán)重和偏置進(jìn)行更新,首先看權(quán)重的更新:?其中入表示表示學(xué)習(xí)速率,取值為A0%Pi二帶M

11、設(shè)置得大,訓(xùn)練收斂更快,但容易陷入 局部最優(yōu)解,學(xué)習(xí)速率設(shè)置得比較小的話顯效速述細(xì),十漓巧步逼近全局最優(yōu)解。更新完權(quán)重后,還有最后一項參數(shù)需要更新,即偏置:?至此,我們完成了一次神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程,通過不斷的使用所有數(shù)據(jù)記錄進(jìn)行訓(xùn)練,從而 得到一個分類模型。不斷地迭代,不可能無休止的下去,總歸有個終止條件。訓(xùn)練終止條件每一輪訓(xùn)練都使用數(shù)據(jù)集的所有記錄,但什么時候停止,停止條件有下面兩種:.設(shè)置最大迭代次數(shù),比如使用數(shù)據(jù)集迭代 100次后停止訓(xùn)練.計算訓(xùn)練集在網(wǎng)絡(luò)上的預(yù)測準(zhǔn)確率,達(dá)到一定門限值后停止訓(xùn)練第五章BP網(wǎng)絡(luò)運行的具體流程網(wǎng)絡(luò)結(jié)構(gòu)輸入層有n個神經(jīng)元,E1含層有 p個神經(jīng)元,輸出層有 q個

12、神經(jīng)元。變量定義輸入變量:X=(X1,X2, - Xn)隱含層輸入變量:hi=(hi 1 ,hi2, - hip)隱含層輸出變量:ho=(hoi,ho2, - hop)輸出層輸入變量:yi=(yi i,yi2, - ylq)輸出層輸出變量:yo=(yoi,yo2, yoq)期望輸出向量:do=(dl,d2,dq)輸入層與中間層的連接權(quán)值:Wih隱含層與輸出層的連接權(quán)值:Who隱含層各神經(jīng)元的閾值:bh輸出層各神經(jīng)元的閾值:bo樣本數(shù)據(jù)個數(shù):k=1,2,刀激活函數(shù):f(?)I ?e = - (國產(chǎn)G=1誤差函數(shù):第一步:網(wǎng)絡(luò)初始化和最大學(xué)給各連接權(quán)值分別賦一個區(qū)間 (?1,1)內(nèi)的隨機(jī)數(shù),設(shè)定誤

13、差函數(shù) e,給定計算精度值 習(xí)次數(shù)M。和最大學(xué)第二步:隨機(jī)選取隨機(jī)選取第k個輸入樣本以及對應(yīng)的期望輸出 ?x(k)=(xi(k),x2(k),xn(k)do(k)=(di(k),d2(k),dq(k)第三部:隱含層計算 TOC o 1-5 h z 計算隱含層各神經(jīng)元的輸入和輸出?n第四步:求偏導(dǎo)數(shù) 蚓=2g由4i=L利用網(wǎng)絡(luò)期望輸出和實際輸出,計算誤差函數(shù)對輸出層的各神經(jīng)元的偏導(dǎo)數(shù)&(k)?第六步:修正權(quán)值利用輸出層各神經(jīng)元的諷k)和隱含層各神經(jīng)元的輸出來修正連接權(quán)值who(k)。?第七部:修正權(quán)值利用隱含層各神經(jīng)元的&(k)和輸入層各神經(jīng)元的輸入修正連接權(quán)值。?第八步:計算全局誤差第九步:判

14、斷模型而他嬴區(qū)-垢陽產(chǎn)&=1 0=1判斷網(wǎng)絡(luò)誤差是否滿足要求。?當(dāng)誤差達(dá)到預(yù)設(shè)精度或者學(xué)習(xí)次數(shù)大于設(shè)計的最大次數(shù),則結(jié)束算法。?否則,選取下一個學(xué)習(xí)樣本以及對應(yīng)的輸出期望,返回第三部,進(jìn)入下一輪學(xué)習(xí)。第六章BP網(wǎng)絡(luò)的設(shè)計在進(jìn)行BP網(wǎng)絡(luò)的設(shè)計是,一般應(yīng)從網(wǎng)絡(luò)的層數(shù)、每層中的神經(jīng)元個數(shù)和激活函數(shù)、初始值以及學(xué)習(xí)速率等幾個方面來進(jìn)行考慮,下面是一些選取的原則。網(wǎng)絡(luò)的層數(shù)理論已經(jīng)證明,具有偏差和至少一個s型隱層加上一個線性輸出層的網(wǎng)絡(luò),能夠逼近任何有理函數(shù),增加層數(shù)可以進(jìn)一步降低誤差,提高精度,但同時也是網(wǎng)絡(luò)復(fù)雜化。另外不能用僅具有非線性激活函數(shù)的單層網(wǎng)絡(luò)來解決問題,因為能用單層網(wǎng)絡(luò)解決的問題,用自適

15、應(yīng)線性網(wǎng)絡(luò)也一定 能解決,而且自適應(yīng)線性網(wǎng)絡(luò)的運算速度更快,而對于只能用非線性函數(shù)解決的問題,單層精度又不夠高,也只有增加層數(shù)才能達(dá)到期望的結(jié)果。隱層神經(jīng)元的個數(shù)網(wǎng)絡(luò)訓(xùn)練精度的提高,可以通過采用一個隱含層,而增加其神經(jīng)元個數(shù)的方法來獲得,這在 結(jié)構(gòu)實現(xiàn)上要比增加網(wǎng)絡(luò)層數(shù)簡單得多。一般而言,我們用精度和訓(xùn)練網(wǎng)絡(luò)的時間來恒量一個神經(jīng)網(wǎng)絡(luò)設(shè)計的好壞:?(1)神經(jīng)元數(shù)太少時,網(wǎng)絡(luò)不能很好的學(xué)習(xí), 訓(xùn)練迭代的次數(shù)也比較多,訓(xùn)練精度也不高。?(2)神經(jīng)元數(shù)太多時,網(wǎng)絡(luò)的功能越強(qiáng)大,精確度也更高,訓(xùn)練迭代的次數(shù)也大,可能會出現(xiàn)過擬合(over fitting) 現(xiàn)象。?由此,我們得到神經(jīng)網(wǎng)絡(luò)隱層神經(jīng)元個數(shù)的

16、選取原則是:在能夠解決問題的前提下,再 加上一兩個神經(jīng)元,以加快誤差下降速度即可。初始權(quán)值的選取一般初始權(quán)值是取值在 (?i,i)之間的隨機(jī)數(shù)。另外威得羅等人在分析了兩層網(wǎng)絡(luò)是如何對一個函數(shù)進(jìn)行訓(xùn)練后,提出選擇初始權(quán)值量級為s,r的策略,其中r為輸入個數(shù),s為第一層神經(jīng)元個數(shù)。學(xué)習(xí)速率學(xué)習(xí)速率一般選取為 0.01?0.8 ,大的學(xué)習(xí)速率可能導(dǎo)致系統(tǒng)的不穩(wěn)定,但小的學(xué)習(xí)速率導(dǎo)致收斂太慢,需要較長的訓(xùn)練時間。對于較復(fù)雜的網(wǎng)絡(luò),在誤差曲面的不同位置可能需要不同的學(xué)習(xí)速率,為了減少尋找學(xué)習(xí)速率的訓(xùn)練次數(shù)及時間,比較合適的方法是采用變化的自適應(yīng)學(xué)習(xí) 速率,使網(wǎng)絡(luò)在 不同的階段設(shè)置不同大小的學(xué)習(xí)速率。期望

17、誤差的選取在設(shè)計網(wǎng)絡(luò)的過程中,期望誤差值也應(yīng)當(dāng)通過對比訓(xùn)練后確定一個合適的值,這個合適的值是相對于所需要的隱層節(jié)點數(shù)來確定的。一般情況下,可以同時對兩個不同的期望誤差值的網(wǎng)絡(luò)進(jìn)行訓(xùn)練,最后通過綜合因素來確定其中一個網(wǎng)絡(luò)。BP網(wǎng)絡(luò)的局限性BP網(wǎng)絡(luò)具有以下的幾個問題:?(1)需要較長的訓(xùn)練時間:這主要是由于學(xué)習(xí)速率太小所造成的,可采用變化的或自適應(yīng)的學(xué)習(xí)速率來加以改進(jìn)。? (2)完全不能訓(xùn)練:這主要表現(xiàn)在網(wǎng)絡(luò)的麻痹上,通常為了避免這種情況的產(chǎn)生,一是選 取較小的初始權(quán)值,而是采用較小的學(xué)習(xí)速率。?(3)局部最小值:這里采用的梯度下降法可能收斂到局部最小值,采用多層網(wǎng)絡(luò)或較多的神經(jīng)元,有可能得到更好的結(jié)果。B

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論