李建平,張小慶,李 瑩
1(東北石油大學(xué) 計算機與信息技術(shù)學(xué)院,大慶 163318)
2(大慶油田有限責(zé)任公司 儲運銷售分公司,大慶 163453)
低滲透油氣田在我國油氣開發(fā)中有著重要意義[1],如何有效對低滲油田進行開發(fā),其中關(guān)鍵技術(shù)難題之一是如何摸清地層的粒度分布范圍,粒度分析的目的是研究碎屑巖的粒度大小和分布,粒度分析不僅有利于分析沉積水動力條件,而且對于儲層評價也有意義.對于低滲油田[2],因滲透率低、豐度低、單井產(chǎn)能低,比較難準確獲取儲層粒度,在以往的測井解釋中,由于主要通過機械篩選、激光衍射、薄片分析等實驗方法獲得粒度參數(shù),而這些方法耗時,且成本較高[3–5].因此,尋找一種不需要實際開采層位巖芯[6],利用聲波、電阻率等信息來預(yù)測儲層粒度的方法顯得尤為重要.目前粒度縱向剖面連續(xù)預(yù)測方法相關(guān)文獻在國外較少,2013年,Liu 等[7]通過Sarvak 油田產(chǎn)能評價和物性對產(chǎn)能的影響分析,研究了中東地區(qū)塊狀碳酸鹽巖油藏油井生產(chǎn)模式及產(chǎn)能影響因素.2015年,Hossain 等[8]利用兩個不同的油藏數(shù)據(jù),研究了人工蜂群(ABC)優(yōu)化算法的效果,為了提高神經(jīng)網(wǎng)絡(luò)的性能,2019年,Abedelrigeeb 等[9]選取了中東地區(qū)揮發(fā)性油藏2 445 個數(shù)據(jù)集和黑色油藏766 個數(shù)據(jù)集,將混合PSONN 模型與現(xiàn)有的模糊邏輯(FL)模型進行了比較,提出了一種基于粒子群算法的神經(jīng)網(wǎng)絡(luò)權(quán)值優(yōu)化算法.同年,Li 等[10]開發(fā)了兩種基于神經(jīng)網(wǎng)絡(luò)的機器學(xué)習(xí)技術(shù),長短期記憶(LSTM)網(wǎng)絡(luò)和帶有卷積層(VAEc)網(wǎng)絡(luò)的變分自編碼器,用于處理易于獲取的地層礦物和流體飽和度測井曲線.在國內(nèi),相關(guān)文獻更是稀少,楊寧等[11]提出利用伽馬測井曲線小波變換提取粒度參數(shù),在前人研究的基礎(chǔ)上,擴大了粒度信息來源,提高了測井資料使用率.2016年,王利華等[12]利用BP 神經(jīng)網(wǎng)絡(luò)將粒度縱向剖面預(yù)測精度控制在了10%以內(nèi),縮短了完井周期,但計算效率有待改進.多元分析的預(yù)測模型及數(shù)字化巖心照相技術(shù)也被許多研究人員用來預(yù)測儲層砂粒度,這些方法雖然能快速預(yù)測粒度,但也存在問題,如難以確定各類測井曲線與粒度之間的復(fù)雜關(guān)系,因此無法用解析式表示目的儲層粒度最優(yōu)擬合模型,故沒有被廣泛應(yīng)用.近年來,神經(jīng)網(wǎng)絡(luò)、機器學(xué)習(xí)在理論與實踐上都取得了重大進展[13–18],這些技術(shù)在尋求測井?dāng)?shù)據(jù)與儲層物性參數(shù)之間的線性關(guān)系也取得了一定進展,已被用于巖性識別以及儲層孔隙度、滲透率預(yù)測等.為節(jié)省測井的人力物力,不用再人工測量,故考慮將這些技術(shù)用于儲層粒度預(yù)測.經(jīng)過資料研究發(fā)現(xiàn),已有運用BP 神經(jīng)網(wǎng)絡(luò)技術(shù)預(yù)測儲層粒度的實例,但在訓(xùn)練BP 神經(jīng)網(wǎng)絡(luò)預(yù)測模型時需要上千甚至上萬的數(shù)據(jù),而本次的測井點只有80 多個.故考慮使用可用更少的數(shù)據(jù)解決相關(guān)問題的極致梯度提升,即XGBoost (extreme gradient boosting).
本文通過研究低滲油田儲層粒度與多種測井曲線的響應(yīng)關(guān)系,發(fā)現(xiàn)聲波(AC)、自然伽馬(GR)、密度(ZDEN)、電阻率(RS)及中子(CNC)與粒度中值具有很好的相關(guān)性.從而通過建立伽馬測井、聲波、密度、電阻率、中子與實測粒度特征值的樣本庫,利用機器學(xué)習(xí)技術(shù),建立起儲層粒度與測井曲線之間的非線性映射關(guān)系,訓(xùn)練出滿足工程需要的預(yù)測模型,并運用該模型預(yù)測研究區(qū)域未知的儲層粒度特征.結(jié)果表明,在使用較少訓(xùn)練數(shù)據(jù)集的情況下,基于XGBoost的粒度預(yù)測方案在計算效率、預(yù)測準確率等方面優(yōu)于普通BP 神經(jīng)網(wǎng)絡(luò).
XGBoost 極致梯度提升,是Chen 在2016年提出的一個分布式通用Gradient Boosting 庫,旨在高效、靈活且可移植[19].XGBoost 實現(xiàn)的是一種通用的Tree Boosting 算法,該算法以決策樹作為基學(xué)習(xí)器的集成模型,在梯度提升的基礎(chǔ)上改善目標(biāo)函數(shù)計算方式,提高模型的精度.
因為XGBoost 預(yù)測儲層粒度建立在測井?dāng)?shù)據(jù)的基礎(chǔ)上,所以訓(xùn)練樣本和預(yù)測樣本數(shù)據(jù)集應(yīng)由測井曲線和實測粒度數(shù)據(jù)構(gòu)成,可表示如下:
其中,Xmn為模型的輸入,即訓(xùn)練測井?dāng)?shù)據(jù)集,m為樣本量,n為測井曲線個數(shù),Ym為粒度實值向量.在確定樣本數(shù)據(jù)集后,預(yù)測模型可表示為:
其中,f0(xi)為基分類器(即初始模型),xi為第i個樣本;k=1,2,···,KX為循環(huán)迭代次數(shù),j=1,2,···,Tk為CART葉節(jié)點,Tk為第k次迭代的CART 葉節(jié)點個數(shù);wj,k為第k次迭代的第j葉節(jié)點區(qū)域的所有樣本的擬合值;η為學(xué)習(xí)率.f0(xi)一般由損失函數(shù)確定,即:
其中,yi為第i個 樣本目標(biāo)值,α為使損失函數(shù)達到最小的常數(shù).損失函數(shù)L(yi,α)確定目標(biāo)值與預(yù)測值之間的差值,表示為:
其中,l(yi,)為樣本xi的訓(xùn)練誤差,? (fk)表示第k棵樹的正則項.wj,k由下式確定:
結(jié)合XGBoost 原理和本文所應(yīng)用場景,可設(shè)計如圖1所示的實驗流程圖.首先是建立樣本庫,選取和粒度相關(guān)性較強的測井曲線作為模型的輸入,已有的粒度實值作為模型訓(xùn)練的輸出標(biāo)簽(式(1)中的Ym).其中一部分數(shù)據(jù)用來訓(xùn)練,另一部分用于驗證.為了防止過擬合,訓(xùn)練達到一定次數(shù)就停止迭代計算.
圖1 XGBoost 計算流程圖
根據(jù)已有的低滲油田儲層測井資料可知,必須借助各類測井曲線才能實現(xiàn)粒度縱向連續(xù)預(yù)測,對儲層響應(yīng)比較明顯的測井曲線通常包括聲波(AC)、中子(CNC)、自然伽馬(GR)、電阻率(RS)、密度(ZDEN)等.經(jīng)作圖(圖2,紅色曲線:伽馬測井,藍色曲線:粒度實值)比較分析可以看出低滲油田中伽馬測井曲線較好地反映了粒度大小的變化趨勢,這是因為伽馬測井值主要由泥質(zhì)含量決定,伽馬測井值隨泥質(zhì)含量增加而變化.泥質(zhì)含量越高,粒度越小,伽馬測井值越高.故伽馬測井可作為樣本庫的一個子項,以預(yù)測粒度分布特征.
圖2 伽馬測井與粒度特征相關(guān)性分析圖
在同一圖里作密度和粒度測試實值變化趨勢圖(圖3,紅色曲線:粒度實值,藍色曲線:密度測井),可以看出低滲油田中密度測井項較好地反映了粒度中值的變化趨勢.這是由于密度越高,壓實程度越好,孔隙度越小,孔隙度小正好可反映出儲層粒度小.故可將密度測井作為樣本庫的一個子項,以預(yù)測粒度縱向分布特征.
圖3 密度測井與粒度特征相關(guān)性分析圖
通過測井曲線與粒度實值相關(guān)性分析發(fā)現(xiàn),AC、CNC、GR、RS、ZDEN 測井曲線可以很好反應(yīng)低滲油田儲層粒度的大小變化,故選用這5 條曲線作為訓(xùn)練模型的輸入.
樣本庫的建立直接關(guān)系到XGBoost 訓(xùn)練誤差的精度以及最終粒度預(yù)測的精確度.因此,樣本庫的建立以測井資料與粒度實測數(shù)據(jù)為基礎(chǔ),其建立過程與XGBoost的學(xué)習(xí)過程是一個循環(huán)分析的過程,樣本點的選取以訓(xùn)練學(xué)習(xí)后的誤差為依據(jù).一旦學(xué)習(xí)誤差過大,重新選取樣本點進行學(xué)習(xí),直到誤差控制在工程需要的精度內(nèi)才建立最終預(yù)測模型.
以Ⅲ井的實測粒度數(shù)據(jù)與其余測井資料為例建立樣本庫,共82 個樣本.選取樣本庫的80%數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)集,剩余的20% 作為驗證數(shù)據(jù)集.最終選取AC(μs/m)、CNC(g/m3)、GR(A PI)、RS(O MM)、ZDEN(g /m3)這5 個測井參數(shù)來訓(xùn)練模型,分析誤差,對比實驗結(jié)果,建立測井資料預(yù)測縱向剖面粒度的方法.表1展示了部分訓(xùn)練樣本數(shù)據(jù).
表1 粒度預(yù)測樣本庫(82 個樣本)
由于相關(guān)性分析后選作特征值預(yù)測的參數(shù)有5 個,故本次使用的對比BP 網(wǎng)絡(luò)(1 個輸入層,1 個輸出層以及1 個隱藏層),輸入層神經(jīng)元個數(shù)為5 個,輸出層神經(jīng)元個數(shù)為1 個,隱藏層包含3 個節(jié)點.為突出對比效果,本次對比實驗使用同一的數(shù)據(jù)集,兩種預(yù)測方式使用同樣的誤差函數(shù)—絕對誤差(MAE)損失函數(shù),同樣的學(xué)習(xí)速率、收縮步長、迭代次數(shù).兩種預(yù)測模型的部分參數(shù)設(shè)置如表2所示.
表2 預(yù)測模型參數(shù)設(shè)置
對歸一化后的數(shù)據(jù),模型訓(xùn)練時記錄相同訓(xùn)練次數(shù)下不同模型訓(xùn)練的損失,從表3可以看出,對于此次實驗用得數(shù)據(jù),XGBoost 在正確率方面約為BP 神經(jīng)網(wǎng)絡(luò)的2 倍.模型訓(xùn)練完成后對全井段數(shù)據(jù)進行預(yù)測,在兩種模型預(yù)測開始時都添加計時器,預(yù)測結(jié)束統(tǒng)計用時,從表3可以看出,預(yù)測同一批數(shù)據(jù),在使用相同的迭代次數(shù)的模型的情況下,本文提出的基于XGBoost的粒度預(yù)測方案計算用時遠遠低于BP 神經(jīng)網(wǎng)絡(luò)的計算用時,計算速度方面約為BP 神經(jīng)網(wǎng)絡(luò)的60 倍.并且,在使用的模型訓(xùn)練次數(shù)達到50 次后,預(yù)測全井段用時波動不大.
表3 BP和XGBoost 訓(xùn)練、預(yù)測結(jié)果統(tǒng)計表
對全井段預(yù)測完成后,將BP和XGBoost的預(yù)測結(jié)果放在同一圖里進行對比(紅色:DUIBI_1.MD_MD_1為粒度實值,黑色:DUIBI.MD_XGBOOST_1為XGBoost 預(yù)測值,藍色:DUIBI.MD_BP_1為BP 預(yù)測值),圖4為訓(xùn)練50 次的模型預(yù)測的結(jié)果對比圖,圖5為訓(xùn)練100 次的模型預(yù)測的結(jié)果對比圖.以縱向表示井深度(m),橫向表示粒度大小(mm),范圍為1–360 mm,觀察圖4、圖5中的曲線,可發(fā)現(xiàn):對于同一樣本庫,在使用同樣的誤差函數(shù)、學(xué)習(xí)速率、收縮步長、迭代次數(shù)的情況下,在邊界值設(shè)置相同時,當(dāng)把BP 預(yù)測值,XGBoost 預(yù)測值和粒度實值三者放一起進行對比,可明顯發(fā)現(xiàn),BP 預(yù)測的結(jié)果和XGBoost 預(yù)測的結(jié)果,在整體趨勢變化上一致,都和粒度實質(zhì)走勢吻合,但是在具體的層位上,XGBoost 預(yù)測的粒度值比BP 預(yù)測的粒度值和粒度實值的吻合度更高,BP 預(yù)測的結(jié)果偏低.在某些層位XGBoost 預(yù)測的結(jié)果突變較高,而BP 結(jié)果更趨于平緩.使用訓(xùn)練50 次和訓(xùn)練100 次的模型預(yù)測結(jié)果波動不大.表明在只有82 個粒度真實值的情況下,選取該井?dāng)?shù)據(jù)來進行模型訓(xùn)練,BP 神經(jīng)網(wǎng)絡(luò)訓(xùn)練結(jié)果達不到工程要求的精度,不適用于工程預(yù)測,而XGBoost 具有良好的學(xué)習(xí)效率,可以滿足工程預(yù)測精度要求.
圖4 模型訓(xùn)練50 次預(yù)測對比圖
圖5 模型訓(xùn)練100 次預(yù)測對比圖
(1)本文將XGBoost 技術(shù)引入低滲油田儲層測井解釋,實現(xiàn)了粒度特征值縱向剖面連續(xù)預(yù)測.該方法克服了常規(guī)粒度測試方法巖芯數(shù)量少,取芯成本高的缺點.
(2)在真實數(shù)據(jù)較少的情況下,粒度縱向剖面預(yù)測誤差較小,在可接受范圍之內(nèi),利用該方法對低滲油田進行開發(fā),降低了耗時,節(jié)約了成本.
(3)由于數(shù)據(jù)樣本較少,使用的模型在訓(xùn)練次數(shù)達到50 次后,預(yù)測結(jié)果波動不大.