人工智能機器學(xué)習(xí)有關(guān)算法內(nèi)容,請參見公眾號“科技優(yōu)化生活”之前相關(guān)文章。人工智能之機器學(xué)習(xí)主要有三大類:1)分類;2)回歸;3)聚類。今天我們重點探討一下BP算法。
之前介紹的多層網(wǎng)絡(luò)的訓(xùn)練需要一種強大的學(xué)習(xí)算法,其中成功的代表就是BP反向傳播算法。
1974年Werboss第一次提出了一個訓(xùn)練多層神經(jīng)網(wǎng)絡(luò)的BP反向傳播算法,由于該算法是在一般網(wǎng)絡(luò)中描述的,它只是將神經(jīng)網(wǎng)絡(luò)作為一個特例。因此,在神經(jīng)網(wǎng)絡(luò)研究領(lǐng)域內(nèi)沒有得到廣泛傳播。直到20世紀(jì)80年代中期,BP反向傳播算法才被重新發(fā)現(xiàn)并廣泛宣揚。特別是Rumelhart和McClelland等提出了訓(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í)過程由信號的正向傳播與誤差的反向傳播兩個過程組成。由于多層前饋網(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)元的輸出。因為大多數(shù)現(xiàn)實世界的數(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算法由信號的正向傳播和誤差的反向傳播兩個過程組成。
1)正向傳播:輸入樣本從輸入層進(jìn)入網(wǎng)絡(luò),經(jīng)隱層逐層傳遞至輸出層,如果輸出層的實際輸出與期望輸出不同,則轉(zhuǎn)至誤差反向傳播;如果輸出層的實際輸出與期望輸出相同,結(jié)束學(xué)習(xí)算法。
2)反向傳播:將輸出誤差(期望輸出與實際輸出之差)按原通路反傳計算,通過隱層反向,直至輸入層,在反傳過程中將誤差分?jǐn)偨o各層的各個單元,獲得各層各單元的誤差信號,并將其作為修正各單元權(quán)值的根據(jù)。這一計算過程使用梯度下降法完成,在不停地調(diào)整各層神經(jīng)元的權(quán)值和閾值后,使誤差信號減小到最低限度。
權(quán)值和閾值不斷調(diào)整的過程,就是BP網(wǎng)絡(luò)的學(xué)習(xí)與訓(xùn)練過程,經(jīng)過信號正向傳播與誤差反向傳播,權(quán)值和閾值的調(diào)整反復(fù)進(jìn)行,一直進(jìn)行到預(yù)先設(shè)定的學(xué)習(xí)訓(xùn)練次數(shù),或輸出誤差減小到允許的程度。
BP算法思想:
BP算法是一種有監(jiān)督式的學(xué)習(xí)算法,其主要思想是:輸入學(xué)習(xí)樣本,使用反向傳播算法對網(wǎng)絡(luò)的權(quán)值和閾值進(jìn)行反復(fù)調(diào)整訓(xùn)練,使輸出的向量與期望向量盡可能地接近,當(dāng)網(wǎng)絡(luò)輸出層的誤差平方和小于指定的誤差時,訓(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ò)的期望輸出與實際輸出之差的誤差信號由輸出層經(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)練實例重復(fù)通過網(wǎng)絡(luò),同時修正各個權(quán)值和閾值,改變的目的是最小化訓(xùn)練集誤差率。繼續(xù)網(wǎng)絡(luò)訓(xùn)練直到滿足一個特定條件為止,終止條件可以使網(wǎng)絡(luò)收斂到最小的誤差總數(shù),可以是一個特定的時間標(biāo)準(zhǔn),也可以是最大重復(fù)次數(shù)。
BP算法步驟:
BP算法步驟大致如下:
1)初始化,用小的隨機數(shù)給各權(quán)值和閾值賦初值。
2)讀取網(wǎng)絡(luò)參數(shù)和訓(xùn)練樣本集。
3)歸一化處理。
4)對訓(xùn)練集中每一樣本進(jìn)行計算:a) 前向計算:計算隱層、輸出層各神經(jīng)元的輸出;b) 誤差計算:計算期望輸出與網(wǎng)絡(luò)輸出的誤差;c) 反向計算:計算修正網(wǎng)絡(luò)權(quán)值和閾值。
5)若滿足精度要求或其他退出條件,則結(jié)束訓(xùn)練,否則轉(zhuǎn)步驟4)繼續(xù)。
6)結(jié)果分析與輸出。
BP算法優(yōu)點:
1)具有實現(xiàn)任何復(fù)雜非線性映射的功能;
2)適合于求解內(nèi)部機制復(fù)雜的問題;
3)尋優(yōu)具有精確性;
4)具有自適應(yīng)和自學(xué)習(xí)能力;
5)泛化和容錯能力強;
6)具有一定的推廣、概括能力。
BP算法缺點:
1)收斂速度緩慢;
2)容易陷入局部極小值,且對于較大的搜索空間,多峰值和不可微函數(shù)不能搜索到全局最優(yōu);
3)訓(xùn)練結(jié)果可能未達(dá)到預(yù)定精度;
4)可能會出現(xiàn)“過擬合”現(xiàn)象;
5)隱含層的層數(shù)和單元數(shù)的選擇尚無理論上的指導(dǎo),一般根據(jù)經(jīng)驗值或反復(fù)實驗確定;
6)訓(xùn)練過程中,學(xué)習(xí)新樣本時有遺忘舊樣本的趨勢。
針對BP算法的缺陷,目前已有許多學(xué)者對其進(jìn)行改進(jìn)。如采用增量可調(diào)法,即在誤差曲面曲率較高處,選取較小值,在誤差曲面較平坦處,選取較大值。采用此增量可調(diào)法可明顯提高其收斂速度。然而針對其易陷入局部極小的缺陷,目前尚無較好的解決方法。為了擺脫BP算法易于陷入局部極值,學(xué)者們已經(jīng)嘗試了遺傳算法、模擬退火算法、蟻群算法等與BP算法相結(jié)合進(jìn)行研究。
BP算法應(yīng)用:
BP反向傳播算法可以逼近任意連續(xù)函數(shù),具有很強的非線性映射能力,而且網(wǎng)絡(luò)的中間層數(shù)、各層的處理單元數(shù)及網(wǎng)絡(luò)的學(xué)習(xí)系數(shù)等參數(shù)可根據(jù)具體情況設(shè)定,靈活性很大,所以它在許多應(yīng)用領(lǐng)域中起到重要作用。它在信息處理、模式識別、智能控制及系統(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í)過程由信號的正向傳播與誤差的反向傳播兩個過程組成。BP算法應(yīng)用范圍廣泛,靈活性大,擴展性強。它在信息處理、模式識別、智能控制及系統(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)確性及可靠性,讀者在使用前請進(jìn)一步核實,并對任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實內(nèi)容時,應(yīng)及時向本網(wǎng)站提出書面權(quán)利通知或不實情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實,溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )