人工智能(59)–BP算法
人工智能機(jī)器學(xué)習(xí)有關(guān)算法內(nèi)容,請參見公眾號“科技優(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第一次提出了一個訓(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)并廣泛宣揚(yáng)。特別是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)元的輸出。因?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算法由信號的正向傳播和誤差的反向傳播兩個過程組成。
1)正向傳播:輸入樣本從輸入層進(jìn)入網(wǎng)絡(luò),經(jīng)隱層逐層傳遞至輸出層,如果輸出層的實(shí)際輸出與期望輸出不同,則轉(zhuǎn)至誤差反向傳播;如果輸出層的實(shí)際輸出與期望輸出相同,結(jié)束學(xué)習(xí)算法。
2)反向傳播:將輸出誤差(期望輸出與實(shí)際輸出之差)按原通路反傳計算,通過隱層反向,直至輸入層,在反傳過程中將誤差分?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ò)的期望輸出與實(shí)際輸出之差的誤差信號由輸出層經(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ò),同時修正各個權(quán)值和閾值,改變的目的是最小化訓(xùn)練集誤差率。繼續(xù)網(wǎng)絡(luò)訓(xùn)練直到滿足一個特定條件為止,終止條件可以使網(wǎng)絡(luò)收斂到最小的誤差總數(shù),可以是一個特定的時間標(biāo)準(zhǔn),也可以是最大重復(fù)次數(shù)。
BP算法步驟:
BP算法步驟大致如下:
1)初始化,用小的隨機(jī)數(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)點(diǎn):
1)具有實(shí)現(xiàn)任何復(fù)雜非線性映射的功能;
2)適合于求解內(nèi)部機(jī)制復(fù)雜的問題;
3)尋優(yōu)具有精確性;
4)具有自適應(yīng)和自學(xué)習(xí)能力;
5)泛化和容錯能力強(qiáng);
6)具有一定的推廣、概括能力。
BP算法缺點(diǎn):
1)收斂速度緩慢;
2)容易陷入局部極小值,且對于較大的搜索空間,多峰值和不可微函數(shù)不能搜索到全局最優(yōu);
3)訓(xùn)練結(jié)果可能未達(dá)到預(yù)定精度;
4)可能會出現(xiàn)“過擬合”現(xiàn)象;
5)隱含層的層數(shù)和單元數(shù)的選擇尚無理論上的指導(dǎo),一般根據(jù)經(jīng)驗(yàn)值或反復(fù)實(shí)驗(yàn)確定;
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ù),具有很強(qiáng)的非線性映射能力,而且網(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)用范圍廣泛,靈活性大,擴(kuò)展性強(qiáng)。它在信息處理、模式識別、智能控制及系統(tǒng)建模等領(lǐng)域得到越來越廣泛的應(yīng)用。

請輸入評論內(nèi)容...
請輸入評論/評論長度6~500個字
最新活動更多
推薦專題
- 1 UALink規(guī)范發(fā)布:挑戰(zhàn)英偉達(dá)AI統(tǒng)治的開始
- 2 北電數(shù)智主辦酒仙橋論壇,探索AI產(chǎn)業(yè)發(fā)展新路徑
- 3 降薪、加班、裁員三重暴擊,“AI四小龍”已折戟兩家
- 4 “AI寒武紀(jì)”爆發(fā)至今,五類新物種登上歷史舞臺
- 5 國產(chǎn)智駕迎戰(zhàn)特斯拉FSD,AI含量差幾何?
- 6 光計算迎來商業(yè)化突破,但落地仍需時間
- 7 東陽光:2024年扭虧、一季度凈利大增,液冷疊加具身智能打開成長空間
- 8 地平線自動駕駛方案解讀
- 9 封殺AI“照騙”,“淘寶們”終于不忍了?
- 10 優(yōu)必選:營收大增主靠小件,虧損繼續(xù)又逢關(guān)稅,能否乘機(jī)器人東風(fēng)翻身?