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