訂閱
糾錯(cuò)
加入自媒體

BP神經(jīng)網(wǎng)絡(luò)算法

BP(Back Propagation)網(wǎng)絡(luò)是1986年由Rumelhart和McCelland為首的科學(xué)家小組提出,是一種按誤差逆?zhèn)鞑ニ惴ㄓ?xùn)練的多層前饋網(wǎng)絡(luò),是應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò)模型之一。BP網(wǎng)絡(luò)能學(xué)習(xí)和存貯大量的輸入-輸出模式映射關(guān)系,而無需事前揭示描述這種映射關(guān)系的數(shù)學(xué)方程。它的學(xué)習(xí)規(guī)則是使用最速下降法,通過反向傳播來不斷調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值,使網(wǎng)絡(luò)的誤差平方和最小。BP神經(jīng)網(wǎng)絡(luò)模型拓?fù)浣Y(jié)構(gòu)包括輸入層(input)、隱層(hide layer)和輸出層(output layer)。

人工神經(jīng)網(wǎng)絡(luò)(artificial neural networks, ANN)系統(tǒng)是20世紀(jì)40年代后出現(xiàn)的,它是由眾多的神經(jīng)元可調(diào)的連接權(quán)值連接而成,具有大規(guī)模并行處理、分布式信息存儲、良好的自組織自學(xué)習(xí)能力等特點(diǎn),在信息處理、模式識別、智能控制及系統(tǒng)建模等領(lǐng)域得到越來越廣泛的應(yīng)用。尤其誤差反向傳播算法(Error Back-propagation Training,簡稱BP網(wǎng)絡(luò))可以逼近任意連續(xù)函數(shù),具有很強(qiáng)的非線性映射能力,而且網(wǎng)絡(luò)的中間層數(shù)、各層的處理單元數(shù)及網(wǎng)絡(luò)的學(xué)習(xí)系數(shù)等參數(shù)可根據(jù)具體情況設(shè)定,靈活性很大,所以它在許多應(yīng)用領(lǐng)域中起到重要作用。為了解決BP神經(jīng)網(wǎng)絡(luò)收斂速度慢、不能保證收斂到全局最點(diǎn),網(wǎng)絡(luò)的中間層及它的單元數(shù)選取無理論指導(dǎo)及網(wǎng)絡(luò)學(xué)習(xí)和記憶的不穩(wěn)定性等缺陷,提出了許多改進(jìn)算法。

傳統(tǒng)的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ò)輸出層的誤差平方和小于指定的誤差時(shí)訓(xùn)練完成,保存網(wǎng)絡(luò)的權(quán)值和偏差。具體步驟如下:

(1)初始化,隨機(jī)給定各連接權(quán)[w],[v]及閾值θi,rt。

(2)由給定的輸入輸出模式對計(jì)算隱層、輸出層各單元輸出

bj=f(■wijai-θj) ct=f(■vjtbj-rt)

式中:bj為隱層第j個(gè)神經(jīng)元實(shí)際輸出;ct為輸出層第t個(gè)神經(jīng)元的實(shí)際輸出;wij為輸入層至隱層的連接權(quán);vjt為隱層至輸出層的連接權(quán)。

dtk=(ytk-ct)ct(1-ct) ejk=[■dtvjt] bj(1-bj)

(3)選取下一個(gè)輸入模式對返回第2步反復(fù)訓(xùn)練直到網(wǎng)絡(luò)設(shè)輸出誤差達(dá)到要求結(jié)束訓(xùn)練。

傳統(tǒng)的BP算法,實(shí)質(zhì)上是把一組樣本輸入/輸出問題轉(zhuǎn)化為一個(gè)非線性優(yōu)化問題,并通過負(fù)梯度下降算法,利用迭代運(yùn)算求解權(quán)值問題的一種學(xué)習(xí)方法,但其收斂速度慢且容易陷入局部極小,為此提出了一種新的算法,即高斯消元法。

改進(jìn)的BP網(wǎng)絡(luò)算法

2.1 改進(jìn)算法概述

此前有人提出:任意選定一組自由權(quán),通過對傳遞函數(shù)建立線性方程組,解得待求權(quán)。本文在此基礎(chǔ)上將給定的目標(biāo)輸出直接作為線性方程等式代數(shù)和來建立線性方程組,不再通過對傳遞函數(shù)求逆來計(jì)算神經(jīng)元的凈輸出,簡化了運(yùn)算步驟。沒有采用誤差反饋原理,因此用此法訓(xùn)練出來的神經(jīng)網(wǎng)絡(luò)結(jié)果與傳統(tǒng)算法是等效的。其基本思想是:由所給的輸入、輸出模式對通過作用于神經(jīng)網(wǎng)絡(luò)來建立線性方程組,運(yùn)用高斯消元法解線性方程組來求得未知權(quán)值,而未采用傳統(tǒng)BP網(wǎng)絡(luò)的非線性函數(shù)誤差反饋尋優(yōu)的思想。

2.2 改進(jìn)算法的具體步驟

對給定的樣本模式對,隨機(jī)選定一組自由權(quán),作為輸出層和隱含層之間固定權(quán)值,通過傳遞函數(shù)計(jì)算隱層的實(shí)際輸出,再將輸出層與隱層間的權(quán)值作為待求量,直接將目標(biāo)輸出作為等式的右邊建立方程組來求解。

現(xiàn)定義如下符號(見圖1):x (p)輸入層的輸入矢量;y (p)輸入層輸入為x (p)時(shí)輸出層的實(shí)際輸出矢量;t (p)目標(biāo)輸出矢量;n,m,r分別為輸入層、隱層和輸出層神經(jīng)元個(gè)數(shù);W為隱層與輸入層間的權(quán)矩陣;V為輸出層與隱層間的權(quán)矩陣。具體步驟如下:

(1)隨機(jī)給定隱層和輸入層間神經(jīng)元的初始權(quán)值wij。

(2)由給定的樣本輸入xi(p)計(jì)算出隱層的實(shí)際輸出aj(p)。為方便起見將圖1網(wǎng)絡(luò)中的閾值寫入連接權(quán)中去,令:隱層閾值θj=wnj,x(n)=-1,則:

aj(p)=f(■wijxi(p)) (j=1,2…m-1)。

(3)計(jì)算輸出層與隱層間的權(quán)值vjr。以輸出層的第r個(gè)神經(jīng)元為對象,由給定的輸出目標(biāo)值tr(p)作為等式的多項(xiàng)式值建立方程,用線性方程組表示為:

a0(1)v1r+a1(1)v2r+…+am(1)vmr=tr(1)a0(2)v1r+a1(2)v2r+…+am(2)vmr=tr(2) ……a0(p)v1r+a1(p)v2r+…+am(p)vmr=tr(p) 簡寫為: Av=T

為了使該方程組有唯一解 [1]  ,方程矩陣A為非奇異矩陣,其秩等于其增廣矩陣的秩,即:r(A)=r(A┊B),且方程的個(gè)數(shù)等于未知數(shù)的個(gè)數(shù),故取m=p,此時(shí)方程組的唯一解為: Vr=[v0r,v2r,…vmr](r=0,1,2…m-1)

(4)重復(fù)第三步就可以求出輸出層m個(gè)神經(jīng)元的權(quán)值,以求的輸出層的權(quán)矩陣加上隨機(jī)固定的隱層與輸入層的權(quán)值就等于神經(jīng)網(wǎng)絡(luò)最后訓(xùn)練的權(quán)矩陣。

計(jì)算機(jī)運(yùn)算實(shí)例

現(xiàn)以神經(jīng)網(wǎng)絡(luò)最簡單的XOR問題用VC編程運(yùn)算進(jìn)行比較(取神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)為2-4-1型),傳統(tǒng)算法和改進(jìn)BP算法的誤差(取動量因子α=0.001 5,步長η=1.653)

聲明: 本網(wǎng)站所刊載信息,不代表OFweek觀點(diǎn)?帽菊靖寮瑒(wù)經(jīng)書面授權(quán)。未經(jīng)授權(quán)禁止轉(zhuǎn)載、摘編、復(fù)制、翻譯及建立鏡像,違者將依法追究法律責(zé)任。

發(fā)表評論

0條評論,0人參與

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

請輸入評論/評論長度6~500個(gè)字

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

  • 看不清,點(diǎn)擊換一張  刷新

暫無評論

暫無評論

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

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