人工智能(59)–BP算法

人工智能機(jī)器學(xué)習(xí)有關(guān)算法內(nèi)容,請(qǐng)參見公眾號(hào)“科技優(yōu)化生活”之前相關(guān)文章。人工智能之機(jī)器學(xué)習(xí)主要有三大類:1)分類;2)回歸;3)聚類。今天我們重點(diǎn)探討一下BP算法。

之前介紹的多層網(wǎng)絡(luò)的訓(xùn)練需要一種強(qiáng)大的學(xué)習(xí)算法,其中成功的代表就是BP反向傳播算法。

1974年Werboss第一次提出了一個(gè)訓(xùn)練多層神經(jīng)網(wǎng)絡(luò)的BP反向傳播算法,由于該算法是在一般網(wǎng)絡(luò)中描述的,它只是將神經(jīng)網(wǎng)絡(luò)作為一個(gè)特例。因此,在神經(jīng)網(wǎng)絡(luò)研究領(lǐng)域內(nèi)沒有得到廣泛傳播。直到20世紀(jì)80年代中期,BP反向傳播算法才被重新發(fā)現(xiàn)并廣泛宣揚(yáng)。特別是RumelhartMcClelland等提出了訓(xùn)練多層神經(jīng)網(wǎng)絡(luò)的BP學(xué)習(xí)算法,為解決多層神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)提供了保證。

BP網(wǎng)絡(luò)是一種按誤差逆?zhèn)鞑ニ惴ㄓ?xùn)練的多層前饋網(wǎng)絡(luò),是目前應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò)模型之一,也是ANN人工神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)。BP反向傳播算法在多層神經(jīng)網(wǎng)絡(luò)訓(xùn)練中扮演著舉足輕重的作用,也是迄今最成功的ANN人工神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法。非常有必要值得研究,今天就跟大家介紹一下BP算法。

BP算法概念:

BP算法(error Back Propagation)是由學(xué)習(xí)過程由信號(hào)的正向傳播與誤差的反向傳播兩個(gè)過程組成。由于多層前饋網(wǎng)絡(luò)的訓(xùn)練經(jīng)常采用誤差反向傳播算法,人們也常把將多層前饋網(wǎng)絡(luò)直接稱為BP網(wǎng)絡(luò)。

BP網(wǎng)絡(luò)能學(xué)習(xí)存貯大量的輸入/輸出模式映射關(guān)系,而無需事前揭示描述這種映射關(guān)系的數(shù)學(xué)方程。

BP算法激活函數(shù)

激活函數(shù)的作用是將非線性引入神經(jīng)元的輸出。因?yàn)榇蠖鄶?shù)現(xiàn)實(shí)世界的數(shù)據(jù)都是非線性的,希望神經(jīng)元能夠?qū)W習(xí)非線性的函數(shù)表示,所以這種應(yīng)用至關(guān)重要

通常選可導(dǎo)奇函數(shù)作為激活函數(shù),譬如非線性sigmoid函數(shù),有兩種形式:1)邏輯函數(shù);2)雙曲正切函數(shù)。

1)邏輯函數(shù)圖如下:

2)雙曲正切函數(shù)圖如下:

BP算法原理:

BP算法由信號(hào)的正向傳播和誤差的反向傳播兩個(gè)過程組成。

1)正向傳播:輸入樣本從輸入層進(jìn)入網(wǎng)絡(luò),經(jīng)隱層逐層傳遞至輸出層,如果輸出層的實(shí)際輸出與期望輸出不同,則轉(zhuǎn)至誤差反向傳播;如果輸出層的實(shí)際輸出與期望輸出相同,結(jié)束學(xué)習(xí)算法。

2)反向傳播:將輸出誤差(期望輸出與實(shí)際輸出之差)按原通路反傳計(jì)算,通過隱層反向,直至輸入層,在反傳過程中將誤差分?jǐn)偨o各層的各個(gè)單元,獲得各層各單元的誤差信號(hào),并將其作為修正各單元權(quán)值的根據(jù)。這一計(jì)算過程使用梯度下降法完成,在不停地調(diào)整各層神經(jīng)元的權(quán)值閾值后,使誤差信號(hào)減小到最低限度。

權(quán)值和閾值不斷調(diào)整的過程,就是BP網(wǎng)絡(luò)的學(xué)習(xí)與訓(xùn)練過程,經(jīng)過信號(hào)正向傳播與誤差反向傳播,權(quán)值和閾值的調(diào)整反復(fù)進(jìn)行,一直進(jìn)行到預(yù)先設(shè)定的學(xué)習(xí)訓(xùn)練次數(shù),或輸出誤差減小到允許的程度。

BP算法思想:

BP算法是一種有監(jiān)督式的學(xué)習(xí)算法,其主要思想是:輸入學(xué)習(xí)樣本,使用反向傳播算法對(duì)網(wǎng)絡(luò)的權(quán)值閾值進(jìn)行反復(fù)調(diào)整訓(xùn)練,使輸出的向量與期望向量盡可能地接近,當(dāng)網(wǎng)絡(luò)輸出層的誤差平方和小于指定的誤差時(shí),訓(xùn)練完成,保存網(wǎng)絡(luò)的權(quán)值閾值

BP算法推導(dǎo):

BP訓(xùn)練過程:

BP網(wǎng)絡(luò)采用有指導(dǎo)的學(xué)習(xí)方式,其訓(xùn)練過程大致如下:

1)組成輸入模式由輸入層經(jīng)過隱含層向輸出層的“模式順傳播”過程。

2)網(wǎng)絡(luò)的期望輸出與實(shí)際輸出之差的誤差信號(hào)由輸出層經(jīng)過隱含層逐層調(diào)整權(quán)值閾值的“誤差逆?zhèn)鞑?/strong>”過程。

3)由“模式順傳播”與“誤差逆?zhèn)鞑ァ狈磸?fù)進(jìn)行的網(wǎng)絡(luò)記憶訓(xùn)練過程。

4)網(wǎng)絡(luò)趨向收斂即網(wǎng)絡(luò)的總體誤差趨向極小值的學(xué)習(xí)收斂過程。

在訓(xùn)練階段中,訓(xùn)練實(shí)例重復(fù)通過網(wǎng)絡(luò),同時(shí)修正各個(gè)權(quán)值和閾值,改變的目的是最小化訓(xùn)練集誤差率。繼續(xù)網(wǎng)絡(luò)訓(xùn)練直到滿足一個(gè)特定條件為止,終止條件可以使網(wǎng)絡(luò)收斂到最小的誤差總數(shù),可以是一個(gè)特定的時(shí)間標(biāo)準(zhǔn),也可以是最大重復(fù)次數(shù)。

BP算法步驟:

BP算法步驟大致如下:

1)初始化,用小的隨機(jī)數(shù)給各權(quán)值和閾值賦初值。

2)讀取網(wǎng)絡(luò)參數(shù)和訓(xùn)練樣本集。

3)歸一化處理。

4)對(duì)訓(xùn)練集中每一樣本進(jìn)行計(jì)算:a) 前向計(jì)算:計(jì)算隱層、輸出層各神經(jīng)元的輸出;b) 誤差計(jì)算:計(jì)算期望輸出與網(wǎng)絡(luò)輸出的誤差;c) 反向計(jì)算:計(jì)算修正網(wǎng)絡(luò)權(quán)值和閾值。

5)若滿足精度要求或其他退出條件,則結(jié)束訓(xùn)練,否則轉(zhuǎn)步驟4)繼續(xù)。

6)結(jié)果分析與輸出。

BP算法優(yōu)點(diǎn):

1)具有實(shí)現(xiàn)任何復(fù)雜非線性映射的功能;

2)適合于求解內(nèi)部機(jī)制復(fù)雜的問題;

3)尋優(yōu)具有精確性;

4)具有自適應(yīng)和自學(xué)習(xí)能力;

5)泛化和容錯(cuò)能力強(qiáng);

6)具有一定的推廣、概括能力。

BP算法缺點(diǎn):

1)收斂速度緩慢;

2)容易陷入局部極小值,且對(duì)于較大的搜索空間,多峰值和不可微函數(shù)不能搜索到全局最優(yōu);

3)訓(xùn)練結(jié)果可能未達(dá)到預(yù)定精度;

4)可能會(huì)出現(xiàn)“過擬合”現(xiàn)象;

5)隱含層的層數(shù)和單元數(shù)的選擇尚無理論上的指導(dǎo),一般根據(jù)經(jīng)驗(yàn)值或反復(fù)實(shí)驗(yàn)確定;

6)訓(xùn)練過程中,學(xué)習(xí)新樣本時(shí)有遺忘舊樣本的趨勢。

針對(duì)BP算法的缺陷,目前已有許多學(xué)者對(duì)其進(jìn)行改進(jìn)。如采用增量可調(diào)法,即在誤差曲面曲率較高處,選取較小值,在誤差曲面較平坦處,選取較大值。采用此增量可調(diào)法可明顯提高其收斂速度。然而針對(duì)其易陷入局部極小的缺陷,目前尚無較好的解決方法。為了擺脫BP算法易于陷入局部極值,學(xué)者們已經(jīng)嘗試了遺傳算法模擬退火算法、蟻群算法等與BP算法相結(jié)合進(jìn)行研究。

BP算法應(yīng)用:

BP反向傳播算法可以逼近任意連續(xù)函數(shù),具有很強(qiáng)的非線性映射能力,而且網(wǎng)絡(luò)的中間層數(shù)、各層的處理單元數(shù)及網(wǎng)絡(luò)的學(xué)習(xí)系數(shù)等參數(shù)可根據(jù)具體情況設(shè)定,靈活性很大,所以它在許多應(yīng)用領(lǐng)域中起到重要作用。它在信息處理、模式識(shí)別、智能控制及系統(tǒng)建模等領(lǐng)域得到越來越廣泛的應(yīng)用。

結(jié)語:

BP反向傳播算法在多層神經(jīng)網(wǎng)絡(luò)訓(xùn)練中扮演著舉足輕重的作用,也是迄今最成功的人工神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法,值得深入研究。BP算法是由學(xué)習(xí)過程由信號(hào)的正向傳播與誤差的反向傳播兩個(gè)過程組成。BP算法應(yīng)用范圍廣泛,靈活性大,擴(kuò)展性強(qiáng)。它在信息處理、模式識(shí)別、智能控制及系統(tǒng)建模等領(lǐng)域得到越來越廣泛的應(yīng)用。

(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )

贊助商
2018-06-20
人工智能(59)–BP算法
人工智能機(jī)器學(xué)習(xí)有關(guān)算法內(nèi)容,請(qǐng)參見公眾號(hào)“科技優(yōu)化生活”之前相關(guān)文章。人工智能之機(jī)器學(xué)習(xí)主要有三大類:1)分類;2)回歸;3)聚類。今天我們重點(diǎn)探討一下BP算法。

長按掃碼 閱讀全文