BP神經(jīng)網(wǎng)絡(luò)詳細(xì)講解_第1頁
BP神經(jīng)網(wǎng)絡(luò)詳細(xì)講解_第2頁
BP神經(jīng)網(wǎng)絡(luò)詳細(xì)講解_第3頁
BP神經(jīng)網(wǎng)絡(luò)詳細(xì)講解_第4頁
BP神經(jīng)網(wǎng)絡(luò)詳細(xì)講解_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、PS:這篇介紹神經(jīng)網(wǎng)絡(luò)是很詳細(xì)的,有一步一步的推導(dǎo)公式!神經(jīng)網(wǎng)絡(luò)是DL(深度學(xué)習(xí))的基礎(chǔ)。如果對神經(jīng)網(wǎng)絡(luò)已經(jīng)有所了解,可以直接跳到 “三、BP算法的執(zhí)行步驟“ 部分,算法框架清晰明了。另外,如果對NN 很感興趣,也可以參閱最后兩篇參考博文,也很不錯!學(xué)習(xí)是神經(jīng)網(wǎng)絡(luò)一種最重要也最令人注目的特點。在神經(jīng)網(wǎng)絡(luò)的發(fā)展進(jìn)程中,學(xué)習(xí)算法的研究有著十分重要的地位。目前,人們所提出的神經(jīng)網(wǎng)絡(luò)模型都是和學(xué)習(xí)算 法相應(yīng)的。所以,有時人們并不去祈求對模型和算法進(jìn)行嚴(yán)格的定義或區(qū)分。有的模型可以有多種算法而有的算法可能可用于多種模型。不過,有時人們也稱算法 為模型。自從40年代Hebb提出的學(xué)習(xí)規(guī)則以來,人們相繼提出

2、了各種各樣的學(xué)習(xí)算法。其中以在1986年Rumelhart等提出的誤差反向傳播法,即BP(error BackPropagation)法影響最為廣泛。直到今天,BP算法仍然是自動控制上最重要、應(yīng)用最多的有效算法。121 神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)機(jī)理和機(jī)構(gòu)在神經(jīng)網(wǎng)絡(luò)中,對外部環(huán)境提供的模式樣本進(jìn)行學(xué)習(xí)訓(xùn)練,并能存儲這種模式,則稱為感知器;對外部環(huán)境有適應(yīng)能力,能自動提取外部環(huán)境變化特征,則稱為認(rèn)知器。神經(jīng)網(wǎng)絡(luò)在學(xué)習(xí)中,一般分為有教師和無教師學(xué)習(xí)兩種。感知器采用有教師信號進(jìn)行學(xué)習(xí),而認(rèn)知器則采用無教師信號學(xué)習(xí)的。在主要神經(jīng)網(wǎng)絡(luò)如BP網(wǎng) 絡(luò),Hopfield網(wǎng)絡(luò),ART網(wǎng)絡(luò)和Kohonen網(wǎng)絡(luò)中;BP網(wǎng)絡(luò)和H

3、opfield網(wǎng)絡(luò)是需要教師信號才能進(jìn)行學(xué)習(xí)的;而ART網(wǎng)絡(luò)和 Kohonen網(wǎng)絡(luò)則無需教師信號就可以學(xué)習(xí)。所謂教師信號,就是在神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)中由外部提供的模式樣本信號。一、感知器的學(xué)習(xí)結(jié)構(gòu)感知器的學(xué)習(xí)是神經(jīng)網(wǎng)絡(luò)最典型的學(xué)習(xí)。目前,在控制上應(yīng)用的是多層前饋網(wǎng)絡(luò),這是一種感知器模型,學(xué)習(xí)算法是BP法,故是有教師學(xué)習(xí)算法。一個有教師的學(xué)習(xí)系統(tǒng)可以用圖17表示。這種學(xué)習(xí)系統(tǒng)分成三個部分:輸入部,訓(xùn)練部和輸出部。圖1-7  神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)系統(tǒng)框圖輸入部接收外來的輸入樣本X,由訓(xùn)練部進(jìn)行網(wǎng)絡(luò)的權(quán)系數(shù)W調(diào)整,然后由輸出部輸出結(jié)果。在這個過程中,期望的輸出信號可以作為教師信號輸入,由該教師信號與實際輸

4、出進(jìn)行比較,產(chǎn)生的誤差去控制修改權(quán)系數(shù)W。學(xué)習(xí)機(jī)構(gòu)可用圖18所示的結(jié)構(gòu)表示。在圖中,Xl ,X2 ,Xn ,是輸入樣本信號,W1 ,W2 ,Wn 是權(quán)系數(shù)。輸入樣本信號Xi 可以取離散值“0”或“1”。輸入樣本信號通過權(quán)系數(shù)作用,在u產(chǎn)生輸出結(jié)果 Wi Xi ,即有:u=Wi Xi =W1 X1 +W2 X2 +Wn Xn再把期望輸出信號Y(t)和u進(jìn)行比較,從而產(chǎn)生誤差信號e。即權(quán)值調(diào)整機(jī)構(gòu)根據(jù)誤差e去對學(xué)習(xí)系統(tǒng)的權(quán)系數(shù)進(jìn)行修改,修改

5、方向應(yīng)使誤差e變小,不斷進(jìn)行下去,使到誤差e為零,這時實際輸出值u和期望輸出值Y(t)完全一樣,則學(xué)習(xí)過程結(jié)束。神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)一般需要多次重復(fù)訓(xùn)練,使誤差值逐漸向零趨近,最后到達(dá)零。則這時才會使輸出與期望一致。故而神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)是消耗一定時期的,有的學(xué)習(xí)過程要重復(fù)很多次,甚至達(dá)萬次級。原因在于神經(jīng)網(wǎng)絡(luò)的權(quán)系數(shù)W有很多分量W1 ,W2 ,-Wn ;也即是一個多參數(shù)修改系統(tǒng)。系統(tǒng)的參數(shù)的調(diào)整就必定耗時耗量。目前,提高神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)速度,減少學(xué)習(xí)重復(fù)次數(shù)是十分重要的研究課題,也是實時控制中的關(guān)鍵問題。二、感知器的學(xué)習(xí)算法感知器是有單層計算單元的神經(jīng)網(wǎng)絡(luò),由線性元件及閥值

6、元件組成。感知器如圖1-9所示。圖1-9   感知器結(jié)構(gòu)感知器的數(shù)學(xué)模型:(1-12)其中:f.是階躍函數(shù),并且有(1-13) 是閥值。感知器的最大作用就是可以對輸入的樣本分類,故它可作分類器,感知器對輸入信號的分類如下:(1-14)即是,當(dāng)感知器的輸出為1時,輸入樣本稱為A類;輸出為-1時,輸入樣本稱為B類。從上可知感知器的分類邊界是:(1-15) 在輸入樣本只有兩個分量X1,X2時,則有分類邊界條件:(1-16) 即     W1 X1 +W2 X2 -=0&#

7、160;      (1-17)也可寫成(1-18)這時的分類情況如固110所示。感知器的學(xué)習(xí)算法目的在于找尋恰當(dāng)?shù)臋?quán)系數(shù)w(w1w2,Wn),使系統(tǒng)對一個特 定的樣本x(xt,x2,xn)熊產(chǎn)生期望值d。當(dāng)x分類為A類時,期望值d1;X為B類 時,d=-1。為了方便說明感知器學(xué)習(xí)算法,把閥值 并人權(quán)系數(shù)w中,同時,樣本x也相應(yīng)增加一 個分量xn+1 。故令:Wn+1 =-,Xn+1 =1      (1-19)則感知器的輸出可表示為:(1-20)感知器學(xué)

8、習(xí)算法步驟如下:1對權(quán)系數(shù)w置初值對權(quán)系數(shù)w(W1 W2 ,Wn ,Wn+1 )的各個分量置一個較小的零隨機(jī)值,但Wn+1 - 。并記為Wl (0),W2 (0),Wn (0),同時有Wn+1(0)- 。這里Wi (t)為t時刻從第i個輸入上的權(quán)系數(shù),i1,2,n。Wn+1 (t)為t時刻時的閥值。圖1-10 感知器的分類例子2輸入一樣本X(X1 ,X2 ,Xn+1 )以及它的期望輸出d。期望輸出值d在樣本的類屬不同時取值不同。如果x是A類,則取

9、d1,如果x是B類,則取-1。期望輸出d也即是教師信號。3計算實際輸出值Y4根據(jù)實際輸出求誤差eedY(t)       (1-21)5用誤差e去修改權(quán)系數(shù)i=1,2,n,n+1      (1-22)其中,稱為權(quán)重變化率,0<1在式(122)中,的取值不能太大如果1取值太大則會影響wi (t)的穩(wěn)定;的取值也不能太小,太小則會使Wi (t)的求取過程收斂速度太慢。當(dāng)實際輸出和期望值d相同時有:Wi (t+1)=Wi (t)6轉(zhuǎn)到第2點,一

10、直執(zhí)行到一切樣本均穩(wěn)定為止。從上面式(114)可知,感知器實質(zhì)是一個分類器,它的這種分類是和二值邏輯相應(yīng)的。因此,感知器可以用于實現(xiàn)邏輯函數(shù)。下面對感知器實現(xiàn)邏輯函數(shù)的情況作一些介紹。例:用感知器實現(xiàn)邏輯函數(shù)X1 VX2 的真值:X10011X20101X1 V X20111以X1VX21為A類,以X1VX2=0為B類,則有方程組(1-23) 即有:(1-24)從式(124)有:W1 ,W2 令 W1 =1,W2 =2則有:  1取   =0.5則有:X1+X2-0

11、.5=0,分類情況如圖111所示。圖1-11  邏輯函數(shù)X1 VX2 的分類122 神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的梯度算法從感如器的學(xué)習(xí)算法可知,學(xué)習(xí)的目的是在于修改網(wǎng)絡(luò)中的權(quán)系數(shù),使到網(wǎng)絡(luò)對于所輸入的模式樣本能正確分類。當(dāng)學(xué)習(xí)結(jié)束時,也即神經(jīng)網(wǎng)絡(luò)能正確分類時,顯然 權(quán)系數(shù)就反映了同類輸人模式樣本的共同特征。換句話講,權(quán)系數(shù)就是存儲了的輸人模式。由于權(quán)系數(shù)是分散存在的,故神經(jīng)網(wǎng)絡(luò)自然而然就有分布存儲的特點。前面的感知器的傳遞函數(shù)是階躍函數(shù),所以,它可以用作分類器。前面一節(jié)所講的感知器學(xué)習(xí)算法因其傳遞函數(shù)的簡單而存在局限性。感知器學(xué)習(xí)算法相當(dāng)簡單,并且當(dāng)函數(shù)線性可分時保證收斂。但它

12、也存在問題:即函數(shù)不是線性可分時,則求不出結(jié)果;另外,不能推廣到一般前饋網(wǎng)絡(luò)中。為了克服存在的問題,所以人們提出另一種算法梯度算法(也即是LMS法)。為了能實現(xiàn)梯度算法,故把神經(jīng)元的激發(fā)函數(shù)改為可微分函數(shù),例如Sigmoid函數(shù),非對稱Sigmoid函數(shù)為f(X)=1/(1+e-x ),對稱Sigmoid函數(shù)f(X)=(1-e-x )/(1+e-x );而不采用式(113)的階躍函數(shù)。對于給定的樣本集Xi (i1,2,n),梯度法的目的是尋找權(quán)系數(shù)W* ,使得fW*. Xi 與期望輸出Yi盡可能接近。設(shè)誤差e采用下式表示:(

13、1-25)其中,Yi fW* ·Xi 是對應(yīng)第i個樣本Xi 的實時輸出Yi 是對應(yīng)第i個樣本Xi 的期望輸出。要使誤差e最小,可先求取e的梯度:(對每一個樣本的期望與輸出值求導(dǎo))(1-26)其中:(1-27)令  Uk =W. Xk ,則有:(1-28) 即有:(1-29) 最后有按負(fù)梯度方向修改權(quán)系數(shù)W的修改規(guī)則:(Wk+1=Wk+W)(1-30) 也可寫成:(1-31) 在上式(130),式(131)中, 是權(quán)重變化率,它視情況不同

14、而取值不同,一般取0-1之間的小數(shù)。很明顯,梯度法比原來感知器的學(xué)習(xí)算法進(jìn)了一大步。其關(guān)鍵在于兩點:1神經(jīng)元的傳遞函數(shù)采用連續(xù)的s型函數(shù),而不是階躍函數(shù);2對權(quán)系數(shù)的修改采用誤差的梯度去控制,而不是采用誤差去控制。故而有更好的動態(tài)特能,即加強(qiáng)了收斂進(jìn)程。但是梯度法對于實際學(xué)習(xí)來說,仍然是感覺太慢;所以,這種算法仍然是不理想的。123 反向傳播學(xué)習(xí)的BP算法反向傳播算法也稱BP算法。由于這種算法在本質(zhì)上是一種神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的數(shù)學(xué)模型,所以,有時也稱為BP模型。BP算法是為了解決多層前向神經(jīng)網(wǎng)絡(luò)的權(quán)系數(shù)優(yōu)化而提出來的;所以,BP算法也通常暗示著神經(jīng)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)是一種無反饋的多層前向網(wǎng)絡(luò)。故而有時也

15、稱無反饋多層前向網(wǎng)絡(luò)為BP模型。在這里,并不要求過于嚴(yán)格去爭論和區(qū)分算法和模型兩者的有關(guān)異同。感知機(jī)學(xué)習(xí)算法是一種單層網(wǎng)絡(luò)的學(xué)習(xí)算法。在多層網(wǎng)絡(luò)中它只能改變最后權(quán)系數(shù)。因此, 感知機(jī)學(xué)習(xí)算法不能用于多層神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)。1986年,Rumelhart提出了反向傳播學(xué)習(xí)算法,即BP(backpropagation)算法。這 種算法可以對網(wǎng)絡(luò)中各層的權(quán)系數(shù)進(jìn)行修正,故適用于多層網(wǎng)絡(luò)的學(xué)習(xí)。BP算法是目前最廣泛用的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法之一,在自動控制中是最有用的學(xué)習(xí)算法。一、BP算法的原理BP算法是用于前饋多層網(wǎng)絡(luò)的學(xué)習(xí)算法,前饋多層網(wǎng)絡(luò)的結(jié)構(gòu)一般如圖112所示圖1-12  網(wǎng)絡(luò)學(xué)習(xí)結(jié)構(gòu)它含有輸

16、人層、輸出層以及處于輸入輸出層之間的中間層。中間層有單層或多層,由于它們和外界沒有直接的聯(lián)系,故也稱為隱層。在隱層中的神經(jīng)元也稱隱單元。 隱層雖然和外界不連接但是,它們的狀態(tài)則影響輸入輸出之間的關(guān)系。這也是說,改變隱層的權(quán)系數(shù),可以改變整個多層神經(jīng)網(wǎng)絡(luò)的性能。設(shè)有一個m層的神經(jīng)網(wǎng)絡(luò),并在輸入層加有樣本X;設(shè)第k層的i神經(jīng)元的輸入總和表示為Ui k ,輸出Xi k ;從第k1層的第j個神經(jīng)元到第k層的第i個神經(jīng)元的權(quán)系數(shù)為Wij 各個神經(jīng)元的激發(fā)函數(shù)為f,則各個變量的關(guān)系可用下面有關(guān)數(shù)學(xué)式表示:Xi k =f(Ui 

17、k )  (1-32)(1-33)反向傳播算法分二步進(jìn)行,即正向傳播和反向傳播。這兩個過程的工作簡述如下。1正向傳播輸入的樣本從輸入層經(jīng)過隱單元一層一層進(jìn)行處理,通過所有的隱層之后,則傳向輸出層;在逐層處理的過程中,每一層神經(jīng)元的狀態(tài)只對下一層神經(jīng)元的狀態(tài)產(chǎn)生影響。在輸出層把現(xiàn)行輸出和期望輸出進(jìn)行比較,如果現(xiàn)行輸出不等于期望輸出,則進(jìn)入反向傳播過程。2反向傳播反向傳播時,把誤差信號按原來正向傳播的通路反向傳回,并對每個隱層的各個神經(jīng)元的權(quán)系數(shù)進(jìn)行修改,以望誤差信號趨向最小。二、BP算法的數(shù)學(xué)表達(dá)BP算法實質(zhì)是求取誤差函數(shù)的最小值問題。這種算法采用非線性規(guī)劃中的最速

18、下降方法,按誤差函數(shù)的負(fù)梯度方向修改權(quán)系數(shù)。為了說明BP算法,首先定義誤差函數(shù)e。取期望輸出和實際輸出之差的平方和為誤差函數(shù),則有:(監(jiān)督類學(xué)習(xí)一般對損失函數(shù)求最小)(1-34)其中:Yi 是輸出單元的期望值;它也在這里用作教師信號;Xi m 是實際輸出;因為第m層是輸出層。由于BP算法按誤差函數(shù)e的負(fù)梯度方向修改權(quán)系數(shù),故權(quán)系數(shù)Wij 的修改量Awij ,和e(1-35)也可寫成 (1-36)其中: 為學(xué)習(xí)速率,即步長。很明顯,根據(jù)BP算法原則,求ae/aWij 最關(guān)鍵的。下面求ae/aWij ;有(1

19、-37)由于 (1-38)故而 (1-39)從而有 (1-40)令 (1-41)則有學(xué)習(xí)公式: (1-42)其中: 為學(xué)習(xí)速率,即步長,一般取0-1間的數(shù)。從上面可知,di k 實際仍末給出明顯的算法公式,下面求di k 的計算公式。(1-43)從式(1-32)可知在式(1-43)中,有 (1-44)為了方便進(jìn)行求導(dǎo),取f為連續(xù)函數(shù)。一般取非線性連續(xù)函數(shù),例如Sigmoid函數(shù)。當(dāng)取f為非對稱Sigmoid函數(shù)時,有:則有:f'(Ui k )=f'(

20、Ui k )(1-f(Ui k )             =Xi k (1-Xi k )                (1-45)再考慮式(143)中的偏微分項aeaXi k ,有兩種情況需考慮的:如果km,則是輸出層,這時有

21、Yi 是輸出期望值,它是常數(shù)。從式(1-34)有(1-46)從而有   di m =Xi m (1-Xi m )(Xi m -Yi )(1-47)2如果k<m,則該層是隱層這時應(yīng)考慮上一層對它的作用,故有: (1-48)從式(141)中,可知有: (1-49)從式(133)中,可知有: (1-50)故而有 (1-51)最后有: (1-52)從上述過程可知:多層網(wǎng)絡(luò)的訓(xùn)練方法是把一個樣本加到輸入層,并根據(jù)向前傳播的規(guī)則:&

22、#160;Xi k =f(Ui k )不斷一層一層向輸出層傳遞,最終在輸出層可以得到輸出Xi m 。把Xi m和期望輸出Yi進(jìn)行比較如果兩者不等,則產(chǎn)生誤差信號e,接著則按下面公式反向傳播修改權(quán)系數(shù): (1-53)其中 di m =Xi m (1-Xi m )(Xi m -Yi )  (m為輸出層)上面公式中,求取本層di k 時,要用到高一層的di k+1 ;可見,

23、誤差函數(shù)的求取是從輸出層開始,到輸入層的反向傳播過程。在這個過程中不斷進(jìn)行遞歸求誤差。通過多個樣本的反復(fù)訓(xùn)練,同時向誤差漸漸減小的方向?qū)?quán)系數(shù)進(jìn)行修正,以達(dá)最終消除誤差。從上面公式也可以知道,如果網(wǎng)絡(luò)的層數(shù)較多時,所用的計算量就相當(dāng)可觀,故而收斂速度不快。為了加快收斂速度,一般考慮上一次的權(quán)系數(shù),并以它作為本次修正的依據(jù)之一,故而有修正公式:(1-54)其中: 為學(xué)習(xí)速率,即步長, 0104左右 為權(quán)系數(shù)修正常數(shù),取0709左右。在上面,式(153)也稱為一般化的Delta法則。對于沒有隱層的神經(jīng)網(wǎng)絡(luò),可取(1-55)其中:,Yi 為期望輸出;Xj 為輸出層的實際輸出;Xi 為輸入層的輸入。這顯然是一種十分簡單的情況,式(155)也稱為簡單Delta法則。在實際應(yīng)用中,只有一般化的Delta法則式(153)或式(154)才有意義。簡單Delta法則式(155)只在理論推導(dǎo)上有用。三、BP算法的執(zhí)行步驟在反向傳播

溫馨提示

  • 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

提交評論