侯賢沐,王付勇,宰 蕓,廉培慶
1.油氣資源與探測國家重點實驗室,北京 102249 2.中國石油大學(北京)非常規(guī)油氣科學技術研究院,北京 102249 3.中石化石油勘探開發(fā)研究院,北京 100083
在評價儲層和評估油氣儲量時,測井數(shù)據(jù)具有十分重要的意義??筛鶕?jù)測井數(shù)據(jù)推斷儲層構造,構建相應油藏地質模型。傳統(tǒng)過程需要基于專家經驗,根據(jù)經驗公式、巖石物理實驗、地質沉積構造等方法綜合考慮,效率低,人為誤差較大。在當前數(shù)據(jù)驅動方法快速發(fā)展的背景下,將測井數(shù)據(jù)與機器學習相融合,實現(xiàn)測井數(shù)據(jù)的自動智能解釋與分析是未來發(fā)展的趨勢[1]。
孔隙度和滲透率是油藏儲層關鍵的物性參數(shù)。通過取心井獲取儲層天然巖心,通過實驗室測定孔隙度、滲透率等參數(shù),是獲取儲層物性參數(shù)最為準確方法,然而,取心井取心的缺點是耗時長、成本高。雖然有許多物理方法可預測孔隙度和滲透率,比如傳統(tǒng)的線性回歸方法及數(shù)字巖心等效分形介質模型預測方法[2],但是這些物理方法預測過程繁瑣或者預測條件局限性較大?;跈C器學習分析測井曲線與鉆孔中各地層物性參數(shù)、巖性以及沉積規(guī)律之間的關系和特征響應模式,為測井數(shù)據(jù)處理分析提供了新的解決途徑[3-5]。
前人基于機器學習,利用測井數(shù)據(jù)對儲層孔隙度和滲透率等物性參數(shù)進行預測。崔學慧等[6]基于聲波時差(DT)、自然電位、自然伽馬(CGR)、地層真電阻率(Rt)4種測井曲線,采用隨機森林(RF)回歸算法預測孔隙度,預測效果遠好于線性回歸預測。K-近鄰(KNN)方法在聚類分析方面具有突出的優(yōu)勢,多應用于地層屬性識別及油田數(shù)據(jù)分類[7-10],而較少應用于滲透率和孔隙度的回歸預測,但本文也將嘗試利用KNN方法進行儲層孔隙度與滲透率預測。袁偉等[11]根據(jù)測井數(shù)據(jù)劃分儲層類型,分別建立了各類儲層的滲透率預測模型,利用支持向量機(SVM)方法對每類儲層進行訓練學習,發(fā)現(xiàn)分類后的預測精度較分類前有明顯提高。用傳統(tǒng)SVM方法預測孔隙度與滲透率時,SVM高斯核函數(shù)中的參數(shù)對SVM學習預測性能的影響較大。當樣本量較小時,SVM回歸模型對孔隙度和滲透率樣本群體的大小不敏感;當樣本量較大時,預測擬合準確度又不高。最近幾年,遺傳算法和粒子群算法普遍應用于機器學習參數(shù)的選擇優(yōu)化,SVM回歸得到進一步的發(fā)展[12-14]。Elkatatny 等[15]建立了一個人工神經網絡(ANN)模型,并基于Rt、巖性密度(RHOB)和補償中子(NPHI)3種測井數(shù)據(jù)預測非均質碳酸鹽油藏的滲透率,得到一種數(shù)學方程,節(jié)省了預測時間并提高了預測滲透率精度。Ahmadi等[16]采用的數(shù)據(jù)樣本包括DT、NPHI、RHOB和總孔隙率,依據(jù)模糊算法或粒子群算法,結合機器學習的預測效果突出。張東曉等[17]研究測井曲線生成方法時發(fā)現(xiàn)長短期記憶(LSTM)方法能夠更有效地從訓練數(shù)據(jù)中提取信息,即使訓練數(shù)據(jù)較少,LSTM仍然可以實現(xiàn)有效訓練。武中原等[18]基于LSTM,以CGR、光電吸收截面指數(shù)(PE)、RHOB、DT、NPHI和Rt等6種測井參數(shù)為輸入?yún)?shù),構建了巖性識別模型,與傳統(tǒng)方法相比,LSTM方法巖性識別準確率更高。
目前研究主要針對儲層物性較好的砂巖油氣藏,而對非均質性更強、裂縫與溶孔廣泛發(fā)育的碳酸鹽巖油藏研究較少?;谥袞|某碳酸鹽巖油藏測井數(shù)據(jù),選取4種不同的機器學習方法(RF、KNN、SVM、 LSTM)預測儲層孔隙度與滲透率,并與取心實驗測試孔隙度與滲透率對比,篩選最優(yōu)機器學習方法,以期實現(xiàn)碳酸鹽巖儲層孔隙度、滲透率智能準確預測。
RF[19]是一種以決策樹為基礎的集成學習算法,算法核心是Bagging思想[20]和隨機子空間法[21]。輸入樣本,RF將內部多個決策樹的預測結果取平均得到最終的結果。能夠進行非線性反演,對高維特征數(shù)量具有很好的預測效果。此外,RF還具有操作簡單、易于實現(xiàn)、不易過擬合、計算效率高等優(yōu)點。
KNN回歸預測方法是對連續(xù)的數(shù)據(jù)標簽進行預測,依據(jù)計算數(shù)據(jù)點最臨近的k個數(shù)據(jù)點平均值而獲得預測值。
SVM的基本思想是通過核函數(shù)將樣本空間映射到一定維度的特征空間,在特征空間中求出原樣本的最優(yōu)分類面,得到輸入變量和輸出結果之間的一種線性或非線性關系,即尋找SVM進行模式分類。而SVM回歸是SVM中一個重要的應用分支,主要是通過升高維度后,在高維空間中構造線性決策函數(shù)來實現(xiàn)線性回歸。通過引進核函數(shù),既能升高維度,又能控制過擬合。同時,核函數(shù)代替線性方程中的線性項可以使原來的線性算法“非線性化”,實現(xiàn)非線性回歸。核函數(shù)種類有很多種,如線性核、多項式核、Sigmoid核和徑向基函數(shù)(RBF)核。由于特征數(shù)據(jù)維度較高,本文選用RBF核函數(shù):
(1)
式中:K為核函數(shù);x、y為特征向量;γ為核參數(shù)。
LSTM由Hochreiter等[22]于1997年首次提出,經過后續(xù)發(fā)展,形成當今應用廣泛的機器學習算法。LSTM是對常規(guī)循環(huán)神經網絡(RNN)的一種改進和完善,加入了遺忘層、輸入層、輸出層結構,能保留跨度較大序列中的有用信息,解決了RNN單元結構中一個tanh層下部分信息相關性低下的問題,避免了常規(guī)RNN中出現(xiàn)的梯度消失、梯度爆炸等問題。LSTM是目前應用最成功的RNN網絡之一。
圖1是經典的LSTM重復單元,核心公式如下:
it=σ(Wixt+Wiht-1+bi);
(2)
ft=σ(Wfxt+Wfht-1+bf);
(3)
ot=σ(Woxt+Woht-1+bo);
(4)
gt=tanh(Wgxt+Wght-1+bg);
(5)
ct=ft?ct-1+it?gt;
(6)
ht=ot?tanh(ct)。
(7)
式中:Wi、Wf、Wo和Wg分別為輸入門、遺忘門、輸出門和待選記憶細胞的權重參數(shù);bi、bf、bo和bg分別為輸入門、遺忘門、輸出門和待選記憶細胞的偏置項;t為時刻。
σ. sigmoid非線性激活函數(shù);ct-1、ct. 前一序列、當前序列隱藏層節(jié)點狀態(tài);ht-1、ht. 前一序列、當前序列隱藏層節(jié)點輸出;xt. 當前序列隱藏層節(jié)點輸入;it. 輸入門;ft. 遺忘門;ot. 輸出門;gt. 待選記憶細胞;?、⊕. 矩陣對應位置元素相乘、相加。
圖1 LSTM單元結構圖
Fig.1 LSTM unit structure diagram
由式(5)經過tanh激活,得到gt,通過式(6)和式(7)得到ct和ht。循環(huán)計算時,權重參數(shù)將不斷變更,每次都會輸出得到的一個ht和ct,通過投影矩陣解碼出對應的值。
中東某碳酸鹽巖油藏主力含油層系為白堊系F、S組,均為碳酸鹽巖沉積。S組沉積范圍為2 700~3 400 m,厚度約為680 m;F組沉積范圍為4 000~4 500 m,厚度為400~450 m。以F層測井參數(shù)作為研究對象開展研究。如表1所示,共有8口取心井,計914塊巖心在實驗室測定孔隙度與滲透率,取心深度為4 072.84~4 404.03 m。對原始測井數(shù)據(jù)進行篩選,選取CGR、無鈾伽馬(SGR)、PE、Rt、DT、RHOB和NPHI 等7種測井數(shù)據(jù),通過機器學習方法預測儲層孔隙度與滲透率。A1井的139組數(shù)據(jù)用于預測集,其余7口井的775組數(shù)據(jù)作為訓練集。
表1 各取心井取心數(shù)據(jù)統(tǒng)計
建立數(shù)據(jù)庫(8口取心井的孔隙度和滲透率),采用min-max標準化方式消除不同測井數(shù)據(jù)量綱的影響:
(8)
式中:x為測井參數(shù)原始值;x*、xmin、xmax分別為x的歸一化值、最小值、最大值。
本文展示了以A1井孔隙度為例的部分標準化樣本數(shù)據(jù)(表2)。
基于Python編程語言實現(xiàn)RF、KNN和SVM算法,基于MATLAB編程語言實現(xiàn)LSTM循環(huán)神經網絡算法,訓練預測過程如圖2所示。
因為均方根誤差(RMSE)能夠表示真實值與預測值之間存在的誤差,故選取RMSE作為評判預測效果的指標。同時,采用統(tǒng)計學中的判定系數(shù)(R2)作為輔助評判指標,其值越大,預測值越接近真實值。
使用Python編程語言,調用sklearn庫,調試超參數(shù),基于RF、KNN和SVM預測孔隙度。
實現(xiàn)基于RF預測孔隙度的過程如下。第一步,輸入樣本集,從初始樣本集中有放回地隨機抽取固定數(shù)量樣本,進行T輪采樣,得到T個訓練集。
表2 A1井部分標準化樣本數(shù)據(jù)以及對應孔隙度和滲透率
圖2 基于機器學習的儲層孔隙度和滲透率預測流程圖
第二步,決策樹選擇最優(yōu)屬性的節(jié)點分裂。在這個過程中,每一個訓練集全部子集屬性等概率被選擇,且每個樣本訓練子集相互獨立,最后生成T個決策樹,T個決策樹預測結果的均值作為最終的預測結果。反復實驗,最終確定本次回歸RF核心參數(shù)決策樹數(shù)量為90個。
實現(xiàn)基于KNN預測孔隙度過程主要為k值選取。根據(jù)經驗k一般取10,樣本數(shù)據(jù)量小的時,k可以適當調大。反復訓練模型,當KNN核心參數(shù)k為13時,預測效果達到最優(yōu)。
SVM選取核函數(shù)為RBF,根據(jù)sklearn官網給出懲罰因子與核參數(shù)γ的關系。結合實踐,在10-3~103的對數(shù)范圍內選取懲罰因子即可滿足預測精度,因此從10-3開始,最終選取合適的懲罰因子為100,γ為0.01,得到SVM模型最好的評價指標。
使用MATLAB編程語言,調試超參數(shù),實現(xiàn)LSTM預測孔隙度。將7種測井參數(shù)作為輸入?yún)?shù),創(chuàng)建具有3個隱藏層的神經網絡。優(yōu)化每層神經元數(shù),隱藏層節(jié)點數(shù)必須小于m-1(m為訓練樣本數(shù)量)。m必須大于網絡模型參數(shù)數(shù)量,一般是其2~10倍。基于本文訓練樣本為775組,神經元總數(shù)應在70~400之間,逐步調整超參數(shù)合理數(shù)值,得到LSTM模型最優(yōu)評價指標,最終設置第1層、第2層、第3層隱藏層神經元數(shù)分別為85、75、65。選用Adam優(yōu)化算法代替經典的隨機梯度下降法,其優(yōu)點是可以有效更新網絡權重,自動調整學習率。批量大小設置為20,初始學習率為0.01,進行200次訓練。因每次隨機生成的權重參數(shù)不同,生成的損失函數(shù)可能不收斂,則需再次訓練,直至水平收斂即可。為了達到理想結果,預測集重復預測5次,最終選取RMSE評價指標最高的預測模型。
孔隙度預測均基于以上設定。由于機器學習方法在機器學習擬合過程中起主導作用,超參數(shù)只起到基本調節(jié)作用,改善精度效果不明顯,因而免去重復調節(jié)超參數(shù)的過程,繼續(xù)后續(xù)研究,以提高本次研究的效率。
圖3給出了A1井測井參數(shù)與實際孔隙度的相關性,其中NPHI與孔隙度相關性最高,其余測井參數(shù)與孔隙度相關性從高到低依次為RHOB、DT、PE、Rt、SGR和CGR。
依據(jù)圖3中的相關性順序,進行特征消除選擇。首先刪除相關性最小的特征值CGR,輸入其余6種參數(shù),利用機器學習方法訓練模型;進一步刪除SGR測井數(shù)據(jù),輸入剩余5種測井數(shù)據(jù)訓練模型;后續(xù)依次刪除Rt、PE、DT和RHOB數(shù)據(jù),直至剩余NPHI的數(shù)據(jù)為止。統(tǒng)計RF、KNN、SVM、 LSTM 4種機器學習方法的RMSE,結果如圖4所示。當NPHI、RHOB和DT 3種測井參數(shù)數(shù)據(jù)作為輸入時,LSTM方法的RMSE值最低,說明預測精度最高;而且LSTM方法較其他3種機器學習方法,輸入不同參數(shù)時,預測精度普遍更高。
在輸入NPHI、RHOB、DT 3種參數(shù)數(shù)據(jù)的條件下,分別采用RF、KNN、SVM和LSTM方法預測孔隙度,預測值與真實值對比見圖5。從圖5可以看出,孔隙度小于5%或大于20%的范圍預測偏差較大。這些真實孔隙度在整個底層段是兩個極端方向的值,預測值有所偏差是正常的,整個預測值與真實值的走勢大致相同,達到了預期目的。因此,選取合適的測井參數(shù)對提高孔隙度預測效果至關重要。
表3為RF、KNN、SVM、LSTM方法NPHI、RHOB、DT 3種參數(shù)預測A1井孔隙度的RMSE和R2,可以看出:LSTM方法的RMSE最低,其值為4.536 2,R2為0.577 2,說明采用LSTM方法預測結果最好;相較其他方法,RF方法的RMSE最高,達到了5.356 3,說明RF方法不太適合預測擬合孔隙度。
分別采用LSTM、RF、KNN和SVM方法進行滲透率預測。首先給出A1井7種測井數(shù)據(jù)與實際滲透率半對數(shù)相關性,如圖6所示。從圖6可以看出:因滲透率與測井參數(shù)相關性特征選擇順序有所變化,輸入?yún)?shù)種類改變,需依次剔除CGR、Rt、SGR、DT、PE和RHOB測井數(shù)據(jù),訓練各自模型,評價最優(yōu)模型?;跐B透率的測井參數(shù)選擇,LSTM方法3個隱含層參數(shù)依次設置為90、75和70,其他程序條件未作變動。最終統(tǒng)計結果見圖7,可見4種方法擬合預測值與真實值偏差均較大。表4為4種機器學習方法僅輸入NPHI參數(shù)預測A1井滲透率的誤差,其中:RF方法最好,預測結果的RMSE為45.882 3,R2為0.407 3,效果仍不理想;KNN、SVM和LSTM方法預測偏差同樣較大,SVM預測模型的R2甚至出現(xiàn)負值,這與實際情況相差甚遠。究其原因,主要有以下兩點影響因素:第一,碳酸鹽儲集層儲集空間類型多、次生變化大這些差異導致巖心完整性不好,影響整個層位實驗參數(shù)的代表性;第二,測試巖樣體積特別小,所測得滲透率不能反映整個層位的性質,當碰到碳酸鹽巖這類非均質性較強的儲層時,微裂縫和孔洞廣泛發(fā)育,測井曲線精度會影響機器學習預測的準確性。
ft(英尺)為非法定計量單位,1 ft=0.301 8 m,下同。
圖4 基于孔隙度相關性特征參數(shù)選擇輸入的RMSE變化值
表3 4種機器學習方法預測孔隙度誤差和判定系數(shù)
NPHI與滲透率相關性最高,其余測井參數(shù)與滲透率相關性從高到低依次為RHOB、PE、DT、SGR、Rt和CGR;相較于孔隙度與測井參數(shù)數(shù)據(jù)的相關性,滲透率與測井參數(shù)數(shù)據(jù)的相關性表現(xiàn)較差,說明儲層滲透率比孔隙度難于表征。
圖5 基于RF(a)、KNN(b)、SVM(c)和LSTM(d)方法的預測值與真實值對比圖
圖6 A1井7種測井數(shù)據(jù)與實際滲透率半對數(shù)相關性圖
雖然滲透率模型評價參數(shù)表現(xiàn)不理想,圖8還是給出了本次滲透率預測精度最高的RF模型預測值與真實值對比圖,此時僅輸入NPHI參數(shù)數(shù)據(jù)。整個滲透率預測值與真實值的走勢相同,特別是深度在4 340~4 380 m之間,真實滲透率走勢先上升,然后再下降,模型預測值反映出這個趨勢。簡而言之,模型預測精度還有很大提升空間,值得進一步研究。
圖7 基于滲透率相關性特征參數(shù)選擇輸入RMSE變化值
表4 4種機器學習方法預測滲透率誤差
圖8 基于RF方法的預測值與真實值對比圖
基于4種機器學習方法,利用測井數(shù)據(jù)對碳酸鹽儲層孔隙度和滲透率進行預測,篩選機器學習預測孔隙度和滲透率最優(yōu)的方法,得到以下結論:
1)在孔隙度預測過程中,當NPHI、RHOB和DT測井數(shù)據(jù)作為輸入時,LSTM方法預測孔隙度效果最好;輸入不同的參數(shù)數(shù)據(jù)預測孔隙度時,其他方法精度從高到低依次為KNN、SVM和RF。
2)相較于孔隙度的預測效果,滲透率的預測精度較差。其原因是碳酸鹽巖儲層裂縫與溶蝕孔洞發(fā)育,非均質性強,測井曲線精度可能不高。實驗測得巖心滲透率值差異可能很大,導致預測結果很難有關聯(lián)性。依據(jù)本文預測方式,當輸入測井參數(shù)僅為NPHI時,RF方法預測精度最高。
3)輸入不同測井參數(shù)數(shù)據(jù)對孔隙度和滲透率預測效果影響較大,通過調整輸入?yún)?shù)種類與機器學習方法,可進一步提高孔隙度與滲透率預測效果。