訂閱
糾錯
加入自媒體

人工智能(59)–BP算法

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

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

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

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

BP算法概念:

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

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

BP算法激活函數(shù)

激活函數(shù)的作用是將非線性引入神經(jīng)元的輸出。因為大多數(shù)現(xiàn)實世界的數(shù)據(jù)都是非線性的,希望神經(jīng)元能夠學習非線性的函數(shù)表示,所以這種應用至關重要

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

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

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

BP算法原理:

BP算法由信號的正向傳播和誤差的反向傳播兩個過程組成。

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

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

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

BP算法思想:

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

BP算法推導:

BP訓練過程:

BP網(wǎng)絡采用有指導的學習方式,其訓練過程大致如下:

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

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

3)由“模式順傳播”與“誤差逆?zhèn)鞑ァ狈磸瓦M行的網(wǎng)絡記憶訓練過程。

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

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

BP算法步驟:

BP算法步驟大致如下:

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

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

3)歸一化處理。

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

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

6)結果分析與輸出。

BP算法優(yōu)點:

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

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

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

4)具有自適應和自學習能力;

5)泛化和容錯能力強;

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

BP算法缺點:

1)收斂速度緩慢;

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

3)訓練結果可能未達到預定精度;

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

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

6)訓練過程中,學習新樣本時有遺忘舊樣本的趨勢。

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

BP算法應用:

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

結語:

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

聲明: 本文由入駐維科號的作者撰寫,觀點僅代表作者本人,不代表OFweek立場。如有侵權或其他問題,請聯(lián)系舉報。

發(fā)表評論

0條評論,0人參與

請輸入評論內(nèi)容...

請輸入評論/評論長度6~500個字

您提交的評論過于頻繁,請輸入驗證碼繼續(xù)

暫無評論

暫無評論

人工智能 獵頭職位 更多
掃碼關注公眾號
OFweek人工智能網(wǎng)
獲取更多精彩內(nèi)容
文章糾錯
x
*文字標題:
*糾錯內(nèi)容:
聯(lián)系郵箱:
*驗 證 碼:

粵公網(wǎng)安備 44030502002758號