基于BPNN 算法的儲(chǔ)層預(yù)測(cè)
時(shí)間:2016-06-13 14:06
來(lái)源:
作者:劉海軍
BPNN 算法是一種基于經(jīng)驗(yàn)風(fēng)險(xiǎn)最小化的模式識(shí)別經(jīng)典算法。在使用BPNN 算法的過(guò)程中,人們主要關(guān)心的是該算法對(duì)訓(xùn)練樣本集的預(yù)測(cè)準(zhǔn)確率,但是卻忽略了其推廣能力較差的缺點(diǎn)。本文通過(guò)實(shí)驗(yàn)證明了BPNN 算法不適用于小樣本儲(chǔ)層預(yù)測(cè)。
基本原理及實(shí)現(xiàn)步驟
神經(jīng)網(wǎng)絡(luò)是模擬生物神經(jīng)網(wǎng)絡(luò)系統(tǒng)的特點(diǎn)而構(gòu)成的計(jì)算模型。它具有自組織、自學(xué)習(xí)功能,能通過(guò)對(duì)大量外界事物的接觸進(jìn)行自主學(xué)習(xí)并將學(xué)習(xí)結(jié)果保存,最后用于其它事物的鑒別上。由于前饋型神經(jīng)網(wǎng)絡(luò)具有算法復(fù)雜、中間隱層不與外界連接的弊端,為解決這一問(wèn)題,D.Rumelhart 和McClelland提出了一種反向傳播(Back-Propogation,BP)算法。
該算法分為兩個(gè)階段:第一階段為正向傳播過(guò)程,輸入信息從輸入層經(jīng)隱層逐層計(jì)算各單元的輸出值;第二階段為反向傳播過(guò)程,輸出誤差逐層向前算出隱層各單元的誤差,并用此誤差修正前層權(quán)值。典型的BP 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖所示。誤差反向傳播算法是最小均方算法的一種廣義形式,BP 算法使用梯度搜索技術(shù),按代價(jià)函數(shù)最小的準(zhǔn)則遞歸地求解網(wǎng)絡(luò)的權(quán)值,代價(jià)函數(shù)為網(wǎng)絡(luò)的實(shí)際輸出和期待輸出的均方誤差。
在BP 神經(jīng)網(wǎng)絡(luò)中,神經(jīng)元是神經(jīng)網(wǎng)絡(luò)的組成單元。在反向傳播算法中,通常采用梯度法修正權(quán)值,為此要求輸出函數(shù)可微,通常采用 函數(shù)作為輸出函數(shù)。標(biāo)準(zhǔn)BP 神經(jīng)網(wǎng)絡(luò)算法采用了最速下降法作為訓(xùn)練函數(shù),但是最速下降法本身帶有收斂速度慢、容易進(jìn)入局部最小等缺點(diǎn),后來(lái)經(jīng)過(guò)Hagan 等的改進(jìn), 把數(shù)值優(yōu)化的Levenberg-Marquardt 訓(xùn)練方法應(yīng)用到神經(jīng)網(wǎng)絡(luò)的訓(xùn)練函數(shù)中,在很大程度上改進(jìn)了神經(jīng)網(wǎng)絡(luò)的收斂速度。算法實(shí)現(xiàn)步驟首先選定權(quán)系數(shù)初始值,通常選取較小的隨機(jī)數(shù)作為權(quán)值的初始值; 其次重復(fù)下列過(guò)程直至收斂( 對(duì)各樣本依次計(jì)算)。參數(shù)選取隱層節(jié)點(diǎn)個(gè)數(shù):當(dāng)輸入節(jié)點(diǎn)個(gè)數(shù)為M 時(shí), 隱層節(jié)點(diǎn)個(gè)數(shù)l≤2M+1。根據(jù)劉耦耕提出的隱層計(jì)算經(jīng)驗(yàn)公式:l=int(N(p-1))/(M+N+1)+α;l≤2M+1, 式中M為輸入層節(jié)點(diǎn)數(shù),N 為輸出層節(jié)點(diǎn)個(gè)數(shù),p 為訓(xùn)練樣本個(gè)數(shù),α 為1~10 之間的常數(shù)。步長(zhǎng)η 對(duì)收斂性影響很大,而且對(duì)于不同的問(wèn)題其最佳值相差也很大,通常可以在0.1~3 之間試探,對(duì)于較復(fù)雜的問(wèn)題應(yīng)采用較大的值。慣性項(xiàng)系數(shù)α 影響收斂速度,在很多問(wèn)題中可以考慮在0.9~1 之間進(jìn)行選擇,當(dāng)α≥1 時(shí)不收斂,有些情況下也可不使用慣性項(xiàng),即α=0。
實(shí)驗(yàn)結(jié)果及分析
在利用模式識(shí)別方法進(jìn)行儲(chǔ)層預(yù)測(cè)的過(guò)程中,神經(jīng)網(wǎng)絡(luò)方法是最常用也是最傳統(tǒng)的方法。隨著人們對(duì)經(jīng)驗(yàn)風(fēng)險(xiǎn)最小化及結(jié)構(gòu)風(fēng)險(xiǎn)最小化的認(rèn)識(shí)逐步深入,經(jīng)驗(yàn)風(fēng)險(xiǎn)最小化并不能滿(mǎn)足人們對(duì)學(xué)習(xí)機(jī)外推效果的期望,神經(jīng)網(wǎng)絡(luò)方法已經(jīng)不再成為模式識(shí)別儲(chǔ)層預(yù)測(cè)的首選方法。
實(shí)驗(yàn)用于驗(yàn)證BP 神經(jīng)網(wǎng)絡(luò)在儲(chǔ)層預(yù)測(cè)中的泛化推廣能力。同時(shí)經(jīng)過(guò)反復(fù)實(shí)驗(yàn),最后選定參數(shù):步長(zhǎng)η=0.5,慣性系數(shù)α=0.95,收斂誤差е=0.005。測(cè)井符合率預(yù)測(cè)外推結(jié)果。雖然BPNN 在訓(xùn)練過(guò)程中收斂誤差較?。?.005),即BPNN 基本能夠記住每個(gè)訓(xùn)練樣本的分類(lèi)情況,但是在實(shí)際的泛化預(yù)測(cè)過(guò)程中的測(cè)井符合率僅為66.7%。
這一結(jié)果說(shuō)明,在訓(xùn)練樣本較少的情況下,BPNN并不適用于儲(chǔ)層預(yù)測(cè)。對(duì)某區(qū)塊進(jìn)行儲(chǔ)層預(yù)測(cè)外推, 區(qū)塊范圍為:Inline(350~900),Xline(550~920),典型 BP 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖 顯然不適于小樣本。