貝葉斯正規(guī)化算法在油藏參數(shù)擬合方面的應(yīng)用
掃描二維碼
隨時隨地手機(jī)看文章
引言
油藏參數(shù)擬合主要就是非線性函數(shù)擬合的過程。非線性函數(shù)擬合方法有很多種,主要分為等值線圖法、解析內(nèi)插法、曲面擬合法及神經(jīng)網(wǎng)絡(luò)方法等。使用神經(jīng)網(wǎng)絡(luò)方法要達(dá)到好的擬合效果,主要要解決三個問題:一是樣本的選擇;二是網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計;三是訓(xùn)練策略的選擇。其中網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計和訓(xùn)練策略的選擇是難點。本文給出的就是基于收斂速度快、泛化能力較強(qiáng)的貝葉斯正規(guī)化算法的神經(jīng)網(wǎng)絡(luò)進(jìn)行設(shè)計的具體方法。
1 油藏參數(shù)擬合中需要解決的問題
假定油藏儲量與測井資料中的數(shù)據(jù)存在以下數(shù)學(xué)模型:
式中,f(xi , yi)為對應(yīng)輸入與輸出之間的關(guān)系式,fi為誤差。現(xiàn)假定:
那么,對于每個樣本值,都可以列出以上方程,并在∑ε2min=條件下,求解出ai的值,最終求出待求點的油藏儲量。
假設(shè)區(qū)域內(nèi)有6個公共點。此時有:
這樣,我們需要解決的問題就是按某種方法求出模型待定參數(shù)a0a1a2a3a4a5的數(shù)值。
2 BP網(wǎng)絡(luò)與貝葉斯正規(guī)化算法
人工神經(jīng)網(wǎng)絡(luò)是生物神經(jīng)系統(tǒng)的一種高度簡化后的近似。它具有非線性映射能力和無模型估計的特征,是處理非線性映射問題的有效工具。BP網(wǎng)絡(luò)是應(yīng)用最為廣泛的神經(jīng)網(wǎng)絡(luò)。它具有輸入層、輸出層、隱含層(一層或多層),相鄰層之間通過權(quán)值全連接。它包括信息的正向傳播和誤差的反向傳播兩個過程,輸入時由輸入層經(jīng)中間層向輸出層順向傳播;實際輸出與期望輸出之差值(即誤差)由輸出層經(jīng)中間層向輸入層逐漸修正連接權(quán)的方式逆向傳播。兩個過程反復(fù)交替,就可以使網(wǎng)絡(luò)趨向收斂。該網(wǎng)絡(luò)的結(jié)構(gòu)、學(xué)習(xí)樣本與訓(xùn)練策略對網(wǎng)絡(luò)性能影響很大,為了解決其訓(xùn)練速度慢和易于陷入局部最小值的缺點,設(shè)計可以采用Levenberg-Marquardt(LM)算法;為了防止過擬合,設(shè)計采取在訓(xùn)練樣本中隨機(jī)添加噪聲的方法;為了提高泛化能力,則可采用貝葉斯正規(guī)化法來解決。下面介紹實現(xiàn)擬合的具體過程。在介紹之前,下面先介紹一下神經(jīng)網(wǎng)絡(luò)的基本知識。
3 神經(jīng)網(wǎng)絡(luò)介紹
3.1 人工神經(jīng)元模型
圖1所示是一個人工神經(jīng)元的基本模型圖。
圖1中的作用可分別以下面的數(shù)學(xué)式表達(dá):
其中,xj(j=l,2,...n)為神經(jīng)元i的輸入信號;為突出強(qiáng)度或連接權(quán);u是由輸入信號線性組合后的輸出;i為人工神經(jīng)元的閾值或稱偏差(用b,表示);V,為經(jīng)偏差調(diào)整后的值,也稱為神經(jīng)元的局部感應(yīng)區(qū);{(.)為激勵函數(shù);y是神經(jīng)元i的輸出。這樣,則有:
典型的BP神經(jīng)網(wǎng)絡(luò)是含有一個隱含層的三層網(wǎng)絡(luò)結(jié)構(gòu),其中包括一個輸入層,一個輸出層,一個隱含層。圖2所示是一個三層BP網(wǎng)絡(luò)結(jié)構(gòu)圖。
這個網(wǎng)絡(luò)輸入層有n個神經(jīng)元,輸出層有q個神經(jīng)元,隱含層有p個神經(jīng)元。輸入信號從輸入層節(jié)點依次傳過各隱層節(jié)點,然后傳到輸出層,每一層節(jié)點的輸出只影響下一層節(jié)點的輸出,相鄰層每個節(jié)點通過適當(dāng)?shù)倪B接權(quán)值向前連接。
3.3 神經(jīng)網(wǎng)絡(luò)模型在軟件中的設(shè)計與實現(xiàn)
采用貝葉斯正規(guī)化BP神經(jīng)網(wǎng)絡(luò)的三層網(wǎng)絡(luò)設(shè)計模型,應(yīng)首先確定各層神經(jīng)元的個數(shù){Var_num,M,1}(Var_num為輸入?yún)?shù)的個數(shù),隱藏層神經(jīng)元個數(shù)可通過計算得出);為了計算方便,這里首先把網(wǎng)絡(luò)變量設(shè)置如下:
輸入模式向量:Ak=(aik,a2,???,a:);期望輸出向量:Z=3討,;中間層各單元輸入向量:S*=(詩,履,…,sp);中間層各單元輸出向量:Bk=(bt,b2,???,bp);輸出層各單元輸入向量:Lt=仏將,?,iq);輸出實際值向量:Ck=(c"c2,?,c;)。
輸入層至中間層的連接權(quán)為WiJ;中間層至輸出層的連接權(quán)為v;中間層各單元的閾值為傷;輸出層各單元的閾值為*。其中:
學(xué)習(xí)算法采用L-M優(yōu)化算法。L-M算法又稱阻尼最小二乘算法,其權(quán)值調(diào)整公式為:
其中,?/為誤差對權(quán)值微分的雅克比矩陣,e為誤差向量,M為阻尼因子,/為單位矩陣。
標(biāo)準(zhǔn)神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的目的是找出使誤差函數(shù)E為最小的網(wǎng)絡(luò)參數(shù)W,而使上述目標(biāo)函數(shù)達(dá)到最小的函數(shù)有無限多個,即式子的解并不唯一。因此,由有限數(shù)據(jù)點恢復(fù)其背后隱含的規(guī)律問題往往不太合適,而應(yīng)采用正規(guī)化理論,即加入一個約束性項使問題的解穩(wěn)定,從而得到有用的解。依據(jù)正規(guī)化的理論設(shè)置的目標(biāo)函數(shù)為:
其中,Ew代表正規(guī)化方法中網(wǎng)絡(luò)的復(fù)雜性和平滑性,P代表平滑性約束算子控制著其他參數(shù)(權(quán)與閾值)的分布形式,被稱為超參數(shù)。正規(guī)化法通過采用新的性能函數(shù),可以在保證網(wǎng)絡(luò)訓(xùn)練誤差盡可能小的情況下,使網(wǎng)絡(luò)的有效權(quán)值盡可能少,從而有利于提高神經(jīng)網(wǎng)絡(luò)的泛化能力。超參數(shù)a,P的大小決定著網(wǎng)絡(luò)訓(xùn)練誤差和網(wǎng)絡(luò)結(jié)構(gòu)的復(fù)雜性,常規(guī)的正規(guī)化方法很難確定超參數(shù)a,P的大小,所以,應(yīng)采用貝葉斯方法
來確定超參數(shù),可以在網(wǎng)絡(luò)的訓(xùn)練過程中自適應(yīng)地調(diào)節(jié)超參數(shù)的大小,使其達(dá)到最優(yōu)。采用貝葉斯方法計算超參數(shù)的公式如下:
其中,c=N-2atr(A)-1,A是F(w)的Hessian陣,z表示有效的網(wǎng)絡(luò)參數(shù)的數(shù)目,可用于反映網(wǎng)絡(luò)的實際規(guī)模,N是網(wǎng)絡(luò)所有參數(shù)的數(shù)目。
在軟件中實現(xiàn)神經(jīng)網(wǎng)絡(luò)模型的步驟如下:
第一步:初始化a、及權(quán)值w、%以及閾值i、c,設(shè)a=0,b=1,并用Nguyen-Widrow法初始化權(quán)值。
第二步:利用L-M算法最小化目標(biāo)函數(shù)Fw=bE+aEw。
LM算法步驟如下[5'1]:
首先,應(yīng)將所有樣本歸一化值輸入到網(wǎng)絡(luò)并用公式計算出網(wǎng)絡(luò)輸出,再用誤差函數(shù)計算出訓(xùn)練集中所有目標(biāo)的誤差平方和。計算過程如下:
(1)用輸入樣本歸一化值A(chǔ)k=(*',ak,???,an)、連接權(quán)Wj及閾值i計算中間層各單元的輸入j然后用勇通過傳遞函數(shù)計算中間層各單元的輸出:
(1)同理計算輸出層各單元的輸入l,以及輸出層單元的響應(yīng)C:
(3)計算訓(xùn)練集中所有目標(biāo)的誤差平方和:
之后,再計算出誤差對權(quán)值微分的雅可比矩陣。雅可比矩陣元素計算公式如下:
式中,Sm代表誤差對m層輸入的第i個元素的敏感性,n為每層網(wǎng)絡(luò)的加權(quán)和。
然后再用公式Dw=(尸J+nI尸尸e,求出Dw。最后,用w+Dw重復(fù)計算誤差平方和。如果新的和小于第一步中計算的和,則用n除以>1),并轉(zhuǎn)入第Q)步;否則,直接用n除以i。當(dāng)誤差平方和減小到某一目標(biāo)時,算法即被認(rèn)為收斂。
第三步:計算有效參數(shù)的數(shù)目c=N_2atr(A)T,其中海森矩陣A利用Gauss-Newton逼近。
第四步:計算目標(biāo)函數(shù)的新參數(shù)值。
第五步:迭代進(jìn)行第二到第四步,直到收斂為止。
在訓(xùn)練過程中,可以根據(jù)有效參數(shù)c,E,Ew的取值來確定隱藏神經(jīng)元的個數(shù)(記為M)及網(wǎng)絡(luò)是否收斂。對于給定的M,當(dāng)經(jīng)過若干步迭代后,如果這三個參數(shù)處于恒值或變化較小,則脫明網(wǎng)絡(luò)訓(xùn)練收斂,可以停止訓(xùn)練。
4 結(jié)語
實驗證明,通過采用拉丁超立方抽樣方法選取樣本后,再通過以上貝葉斯正規(guī)化和L-M算法設(shè)計神經(jīng)網(wǎng)絡(luò),即可最終達(dá)到對油藏歷史數(shù)據(jù)進(jìn)行輔助擬合之目的。
20210904_6132500ed4e51__貝葉斯正規(guī)化算法在油藏參數(shù)擬合方面的應(yīng)用