日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

BP算法详谈

發(fā)布時(shí)間:2023/12/20 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BP算法详谈 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

反向傳播BP模型

學(xué)習(xí)是神經(jīng)網(wǎng)絡(luò)一種最重要也最令人注目的特點(diǎn)。在神經(jīng)網(wǎng)絡(luò)的發(fā)展進(jìn)程中,學(xué)習(xí)算法的研究有著十分重要的地位。目前,人們所提出的神經(jīng)網(wǎng)絡(luò)模型都是和學(xué)習(xí)算法相應(yīng)的。所以,有時(shí)人們并不去祈求對(duì)模型和算法進(jìn)行嚴(yán)格的定義或區(qū)分。有的模型可以有多種算法.而有的算法可能可用于多種模型。不過(guò),有時(shí)人們也稱算法 為模型。

自從40年代Hebb提出的學(xué)習(xí)規(guī)則以來(lái),人們相繼提出了各種各樣的學(xué)習(xí)算法。其中以在1986年Rumelhart等提出的誤差反向傳播法,即BP(error BackPropagation)法影響最為廣泛。直到今天,BP算法仍然是自動(dòng)控制上最重要、應(yīng)用最多的有效算法。

1.2.1 神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)機(jī)理和機(jī)構(gòu)

在神經(jīng)網(wǎng)絡(luò)中,對(duì)外部環(huán)境提供的模式樣本進(jìn)行學(xué)習(xí)訓(xùn)練,并能存儲(chǔ)這種模式,則稱為感知器;對(duì)外部環(huán)境有適應(yīng)能力,能自動(dòng)提取外部環(huán)境變化特征,則稱為認(rèn)知器

神經(jīng)網(wǎng)絡(luò)在學(xué)習(xí)中,一般分為有教師和無(wú)教師(有監(jiān)督和無(wú)監(jiān)督)學(xué)習(xí)兩種。感知器采用有教師信號(hào)進(jìn)行學(xué)習(xí),而認(rèn)知器則采用無(wú)教師信號(hào)學(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ò)和Hopfield網(wǎng)絡(luò)是需要教師信號(hào)才能進(jìn)行學(xué)習(xí)的;而ART網(wǎng)絡(luò)和 Kohonen網(wǎng)絡(luò)則無(wú)需教師信號(hào)就可以學(xué)習(xí)。所謂教師信號(hào),就是在神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)中由外部提供的模式樣本信號(hào)。

一、感知器的學(xué)習(xí)結(jié)構(gòu)

感知器的學(xué)習(xí)是神經(jīng)網(wǎng)絡(luò)最典型的學(xué)習(xí)。

目前,在控制上應(yīng)用的是多層前饋網(wǎng)絡(luò),這是一種感知器模型,學(xué)習(xí)算法是BP法,故是有教師學(xué)習(xí)算法。

一個(gè)有教師的學(xué)習(xí)系統(tǒng)可以用圖1—7表示。這種學(xué)習(xí)系統(tǒng)分成三個(gè)部分:輸入部,訓(xùn)練部和輸出部。

圖1-7? 神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)系統(tǒng)框圖

輸入部接收外來(lái)的輸入樣本X,由訓(xùn)練部進(jìn)行網(wǎng)絡(luò)的權(quán)系數(shù)W調(diào)整,然后由輸出部輸出結(jié)果。在這個(gè)過(guò)程中,期望的輸出信號(hào)可以作為教師信號(hào)輸入,由該教師信號(hào)與實(shí)際輸出進(jìn)行比較,產(chǎn)生的誤差去控制修改權(quán)系數(shù)W。

學(xué)習(xí)機(jī)構(gòu)可用圖1—8所示的結(jié)構(gòu)表示。

在圖中,Xl?,X2?,…,Xn?,是輸入樣本信號(hào),W1?,W2?,…,Wn?是權(quán)系數(shù)。輸入樣本信號(hào)Xi?可以取離散值“0”或“1”。輸入樣本信號(hào)通過(guò)權(quán)系數(shù)作用,在u產(chǎn)生輸出結(jié)果 ∑Wi?Xi?,即有:

u=∑Wi?Xi?=W1?X1?+W2?X2?+…+Wn?Xn

再把期望輸出信號(hào)Y(t)和u進(jìn)行比較,從而產(chǎn)生誤差信號(hào)e。權(quán)值調(diào)整機(jī)構(gòu)根據(jù)誤差e去對(duì)學(xué)習(xí)系統(tǒng)的權(quán)系數(shù)進(jìn)行修改,修改方向應(yīng)使誤差e變小,不斷進(jìn)行下去,使到誤差e為零,這時(shí)實(shí)際輸出值u和期望輸出值Y(t)完全一樣,則學(xué)習(xí)過(guò)程結(jié)束。

神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)一般需要多次重復(fù)訓(xùn)練,使誤差值逐漸向零趨近,最后到達(dá)零。則這時(shí)才會(huì)使輸出與期望一致。故而神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)是消耗一定時(shí)期的,有的學(xué)習(xí)過(guò)程要重復(fù)很多次,甚至達(dá)萬(wàn)次級(jí)。原因在于神經(jīng)網(wǎng)絡(luò)的權(quán)系數(shù)W有很多分量W1?,W2,----Wn?;也即是一個(gè)多參數(shù)修改系統(tǒng)。系統(tǒng)的參數(shù)的調(diào)整就必定耗時(shí)耗量。目前,提高神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)速度,減少學(xué)習(xí)重復(fù)次數(shù)是十分重要的研究課題,也是實(shí)時(shí)控制中的關(guān)鍵問(wèn)題。

二、感知器的學(xué)習(xí)算法

感知器是有單層計(jì)算單元的神經(jīng)網(wǎng)絡(luò),由線性元件及閥值元件組成。感知器如圖1-9所示。

圖1-9?? 感知器結(jié)構(gòu)

感知器的數(shù)學(xué)模型:

(1-12)

其中:f[.]是階躍函數(shù),并且有

(1-13)

θ是閥值。

感知器的最大作用就是可以對(duì)輸入的樣本分類,故它可作分類器,感知器對(duì)輸入信號(hào)的分類如下:

(1-14)

即是,當(dāng)感知器的輸出為1時(shí),輸入樣本稱為A類;輸出為-1時(shí),輸入樣本稱為B類。從上可知感知器的分類邊界是:

(1-15)

在輸入樣本只有兩個(gè)分量X1,X2時(shí),則有分類邊界條件:

(1-16)

???? W1?X1?+W2?X2?-θ=0?????? (1-17)

也可寫成

(1-18)

這時(shí)的分類情況如圖1—10所示。

感知器的學(xué)習(xí)算法目的在于找尋恰當(dāng)?shù)臋?quán)系數(shù)w=(w1.w2,…,Wn),使系統(tǒng)對(duì)一個(gè)特 定的樣本x=(xt,x2,…,xn)能產(chǎn)生期望值d。當(dāng)x分類為A類時(shí),期望值d=1;X為B類 時(shí),d=-1。為了方便說(shuō)明感知器學(xué)習(xí)算法,把閥值θ并入權(quán)系數(shù)w中,同時(shí),樣本x也相應(yīng)增加一 個(gè)分量xn+1?。故令:

Wn+1?=-θ,Xn+1?=1????? (1-19)

則感知器的輸出可表示為:

(1-20)

感知器學(xué)習(xí)算法步驟如下:
1.對(duì)權(quán)系數(shù)w置初值
對(duì)權(quán)系數(shù)w=(W1?.W2?,…,Wn?,Wn+1?)的各個(gè)分量置一個(gè)較小的零隨機(jī)值,但Wn+1?=
—g。并記為Wl?(0),W2?(0),…,Wn?(0),同時(shí)有Wn+1(0)=-θ?。這里Wi?(t)為t時(shí)刻從第i個(gè)
輸入上的權(quán)系數(shù),i=1,2,…,n。Wn+1?(t)為t時(shí)刻時(shí)的閥值。

圖1-10 感知器的分類例子

2.輸入一樣本X=(X1?,X2?,…,Xn+1?)以及它的期望輸出d。

期望輸出值d在樣本的類屬不同時(shí)取值不同。如果x是A類,則取d=1,如果x是B類,則取-1。期望輸出d也即是教師信號(hào)。

3.計(jì)算實(shí)際輸出值Y

4.根據(jù)實(shí)際輸出求誤差e

e=d—Y(t)?????? (1-21)

5.用誤差e去修改權(quán)系數(shù)

i=1,2,…,n,n+1????? (1-22)

其中,η稱為權(quán)重變化率,0<η≤1

在式(1—22)中,η的取值不能太大.如果1取值太大則會(huì)影響wi?(t)的穩(wěn)定;的取值也不能太小,太小則會(huì)使Wi?(t)的求取過(guò)程收斂速度太慢。

當(dāng)實(shí)際輸出和期望值d相同時(shí)有:

Wi?(t+1)=Wi?(t)

6.轉(zhuǎn)到第2點(diǎn),一直執(zhí)行到一切樣本均穩(wěn)定為止。

從上面式(1—14)可知,感知器實(shí)質(zhì)是一個(gè)分類器,它的這種分類是和二值邏輯相應(yīng)的。因此,感知器可以用于實(shí)現(xiàn)邏輯函數(shù)。下面對(duì)感知器實(shí)現(xiàn)邏輯函數(shù)的情況作一些介紹。

例:用感知器實(shí)現(xiàn)邏輯函數(shù)X1?VX2?的真值:


X10011
X20101
X1?V X20111

以X1VX2=1為A類,以X1VX2=0為B類,則有方程組

(1-23)

即有:
(1-24)

從式(1—24)有:

W1?≥θ,W2?≥θ

令 W1?=1,W2?=2

則有:?θ?≤1

取???θ=0.5

則有:X1+X2-0.5=0,分類情況如圖1—11所示。

圖1-11? 邏輯函數(shù)X1?VX2?的分類

1.2.2 神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的梯度算法

從感如器的學(xué)習(xí)算法可知,學(xué)習(xí)的目的是在于修改網(wǎng)絡(luò)中的權(quán)系數(shù),使到網(wǎng)絡(luò)對(duì)于所輸入的模式樣本能正確分類。當(dāng)學(xué)習(xí)結(jié)束時(shí),也即神經(jīng)網(wǎng)絡(luò)能正確分類時(shí),顯然 權(quán)系數(shù)就反映了同類輸人模式樣本的共同特征。換句話講,權(quán)系數(shù)就是存儲(chǔ)了的輸入模式由于權(quán)系數(shù)是分散存在的,故神經(jīng)網(wǎng)絡(luò)自然而然就有分布存儲(chǔ)的特點(diǎn)。

前面的感知器的傳遞函數(shù)是階躍函數(shù),所以,它可以用作分類器。前面一節(jié)所講的感知器學(xué)習(xí)算法因其傳遞函數(shù)的簡(jiǎn)單而存在局限性。

感知器學(xué)習(xí)算法相當(dāng)簡(jiǎn)單,并且當(dāng)函數(shù)線性可分時(shí)保證收斂。但它也存在問(wèn)題:即函數(shù)不是線性可分時(shí),則求不出結(jié)果;另外,不能推廣到一般前饋網(wǎng)絡(luò)中。

為了克服存在的問(wèn)題,所以人們提出另一種算法——梯度算法(也即是LMS(最小均方誤差)法)

為了能實(shí)現(xiàn)梯度算法,故把神經(jīng)元的激發(fā)函數(shù)改為可微分函數(shù),例如Sigmoid函數(shù),非對(duì)稱Sigmoid函數(shù)為f(X)=1/(1+e-x?),導(dǎo)數(shù)f(x)*(1-f(x))對(duì)稱Sigmoid函數(shù)f(X)=(1-e-x?)/(1+e-x?);而不采用式(1—13)的階躍函數(shù)。

對(duì)于給定的樣本集Xi?(i=1,2,,n),梯度法的目的是尋找權(quán)系數(shù)W*?,使得f[W*.?Xi?]與期望輸出Yi盡可能接近。

設(shè)誤差e采用下式表示:

(1-25)

其中,Yi?^=f〔W*?·Xi?]是對(duì)應(yīng)第i個(gè)樣本Xi?的實(shí)時(shí)輸出

Yi?是對(duì)應(yīng)第i個(gè)樣本Xi?的期望輸出。

要使誤差e最小,可先求取e的梯度:

(1-26)

其中:

(1-27)

令? Uk?=W.?Xk?,則有:

(1-28)

即有:

(1-29)

最后有按負(fù)梯度方向修改權(quán)系數(shù)W的修改規(guī)則:

(1-30)

也可寫成:

(1-31)

在上式(1—30),式(1—31)中,μ?是權(quán)重變化率,它視情況不同而取值不同,一般取0-1之間的小數(shù)。
很明顯,梯度法比原來(lái)感知器的學(xué)習(xí)算法進(jìn)了一大步。其關(guān)鍵在于兩點(diǎn):

1.神經(jīng)元的傳遞函數(shù)采用連續(xù)的s型函數(shù),容易求導(dǎo),而不是階躍函數(shù);

2.對(duì)權(quán)系數(shù)的修改采用誤差的梯度去控制,而不是采用誤差去控制。故而有更好的動(dòng)態(tài)特能,即加強(qiáng)了收斂進(jìn)程。

但是梯度法對(duì)于實(shí)際學(xué)習(xí)來(lái)說(shuō),仍然是感覺(jué)太慢;所以,這種算法仍然是不理想的。

1.2.3 反向傳播學(xué)習(xí)的BP算法

反向傳播算法也稱BP算法。由于這種算法在本質(zhì)上是一種神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的數(shù)學(xué)模型,所以,有時(shí)也稱為BP模型。

BP算法是為了解決多層前向神經(jīng)網(wǎng)絡(luò)的權(quán)系數(shù)優(yōu)化而提出來(lái)的;所以,BP算法也通常暗示著神經(jīng)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)是一種無(wú)反饋的多層前向網(wǎng)絡(luò)。故而.有時(shí)也稱無(wú)反饋多層前向網(wǎng)絡(luò)為BP模型。

在這里,并不要求過(guò)于嚴(yán)格去爭(zhēng)論和區(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)算法。這 種算法可以對(duì)網(wǎng)絡(luò)中各層的權(quán)系數(shù)進(jìn)行修正,故適用于多層網(wǎng)絡(luò)的學(xué)習(xí)。BP算法是目前最廣泛用的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法之一,在自動(dòng)控制中是最有用的學(xué)習(xí)算法。

一、BP算法的原理

BP算法是用于前饋多層網(wǎng)絡(luò)的學(xué)習(xí)算法,前饋多層網(wǎng)絡(luò)的結(jié)構(gòu)一般如圖1—12所示

圖1-12? 網(wǎng)絡(luò)學(xué)習(xí)結(jié)構(gòu)

它含有輸人層、輸出層以及處于輸入輸出層之間的中間層。中間層有單層或多層,由于它們和外界沒(méi)有直接的聯(lián)系,故也稱為隱層。在隱層中的神經(jīng)元也稱隱單元。 隱層雖然和外界不連接.但是,它們的狀態(tài)則影響輸入輸出之間的關(guān)系。這也是說(shuō),改變隱層的權(quán)系數(shù),可以改變整個(gè)多層神經(jīng)網(wǎng)絡(luò)的性能。

1.正向傳播

輸入的樣本從輸入層經(jīng)過(guò)隱單元一層一層進(jìn)行處理,通過(guò)所有的隱層之后,則傳向輸出層;在逐層處理的過(guò)程中,每一層神經(jīng)元的狀態(tài)只對(duì)下一層神經(jīng)元的狀態(tài)產(chǎn)生影響。在輸出層把現(xiàn)行輸出和期望輸出進(jìn)行比較,如果現(xiàn)行輸出不等于期望輸出,則進(jìn)入反向傳播過(guò)程。

2.反向傳播

反向傳播時(shí),把誤差信號(hào)按原來(lái)正向傳播的通路反向傳回,并對(duì)每個(gè)隱層的各個(gè)神經(jīng)元的權(quán)系數(shù)進(jìn)行修改,以望誤差信號(hào)趨向最小。

二、BP算法的數(shù)學(xué)表達(dá)

一. 網(wǎng)絡(luò)結(jié)構(gòu)


?經(jīng)典的BP網(wǎng)絡(luò),其具體結(jié)構(gòu)如下:

? ?

?請(qǐng)?zhí)貏e注意上面這個(gè)圖的一些符號(hào)說(shuō)明如下:




二. ?學(xué)習(xí)算法


? ? ?1. 信號(hào)的前向傳遞過(guò)程 ? ? ? ? ?? ? ? ? ? ? ? ? 請(qǐng)?zhí)貏e注意上述公式中的下標(biāo),這里,權(quán)值矩陣包含了神經(jīng)元節(jié)點(diǎn)本身的偏置,所以權(quán)值矩陣多了一列。
? ?2. ? 誤差反向傳導(dǎo)過(guò)程 ? ? ? ? ? ? ? ? ? ? ?











三. ?小結(jié)

? ? ? ?信號(hào)的前向傳遞和誤差反向傳遞過(guò)程都可以用遞歸公式描述。其實(shí),就幾個(gè)公式而已,把相關(guān)的幾個(gè)重要公式再次總結(jié)如下: ? ? ??

總結(jié)

以上是生活随笔為你收集整理的BP算法详谈的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。