羅剛,肖立志,史燕青,邵蓉波
中國石油大學(北京)人工智能學院,北京 102249
測井是研究地下儲集層巖性及物性、識別儲層流體性質(zhì)的有效途徑。通過對測井資料的分析解釋可以極大加深對地下情況的認知,測井資料是輔助專家尋找和評價儲集層的重要資源。但是,由于測井資料的處理及解釋以巖石物理機理模型為基礎,需要許多先驗條件,在實際應用中會出現(xiàn)不適應性從而引起誤差。測井數(shù)據(jù)和地層模型的不確定性及不適定性,使資料處理解釋具有多解性。隨著大數(shù)據(jù)時代的到來,學者相繼嘗試通過數(shù)據(jù)驅(qū)動的方法實現(xiàn)測井資料的處理與解釋,提高生產(chǎn)效率[1]。
源于 20 世紀 50 年代初的機器學習依次經(jīng)歷了推理期、知識期和學習期3個歷史階段,1943 年,神經(jīng)科學家麥卡洛克和數(shù)學邏輯學家皮茲提出了MCP模型[2],使人工神經(jīng)網(wǎng)絡迎來發(fā)展時期,在夯實了神經(jīng)網(wǎng)絡模型理論基礎的同時也標志著深度學習的開端。21世紀以來,面對信息化、大數(shù)據(jù)的時代,傳統(tǒng)的機器學習算法在語音識別、圖像識別、目標檢測等領域的發(fā)展遇到了瓶頸,而計算能力的提升使深度學習突破了機器學習所面臨的局限,與此同時也擴充了人工智能所涉及的領域,將機器學習相關理論應用到測井資料處理和解釋,進一步提高解釋結果的精度和可靠性,將具有重要的實際意義和研究價值。越來越多的學者提出使用KNN、委員會機器、支持向量機、分布式梯度提升(XGBoost)等傳統(tǒng)機器學習方法完成測井數(shù)據(jù)的處理與解釋。Bestagini等人(2017)應用XGBoost模型根據(jù)測井數(shù)據(jù)預測巖相[3];Ao 等人(2018)提出用隨機森林法解決巖相分類問題[4],Zhou等人(2020)提出用合成少數(shù)過采樣技術(SMOTE)平衡已標記的測井數(shù)據(jù),并使用梯度提升決策樹法識別巖相[5]。白洋等人(2021)選用分類委員會機器預測致密砂巖氣藏流體類別,提升預測精度和泛化能力[6]。這些傳統(tǒng)機器學習方法可解釋性強,訓練速度快,但模型結構相對簡單、參數(shù)量少,難以表征復雜非均質(zhì)情況下的地層環(huán)境。
1986年Rumelhart等人提出了BP神經(jīng)網(wǎng)絡,解決了單層感知器網(wǎng)絡模型無法處理線性不可分的問題,從而掀起了人工神經(jīng)網(wǎng)絡研究的熱潮[7]。Hinton和Salakhutdinov提出利用深度自動編碼網(wǎng)絡學習得到初始權值的方法,有效地實現(xiàn)深層網(wǎng)絡的數(shù)據(jù)降維,開啟了深度學習廣泛研究的序幕[8]。深度神經(jīng)網(wǎng)絡通過使用包含復雜結構或多重非線性變換從更高維度擬合多變量之間的非線性映射關系,有利于表征復雜非均質(zhì)的地層環(huán)境。近年來已提出一系列網(wǎng)絡模型,其中卷積神經(jīng)網(wǎng)絡在圖形圖像處理領域已取得巨大成功,也是目前應用較為廣泛的網(wǎng)絡模型[9]。最近,卷積神經(jīng)網(wǎng)絡也被應用于測井資料的處理與解釋。廖廣志(2020)等人結合智能聚類、主成分分析等預處理方法對毛管壓力數(shù)據(jù)進行處理,通過卷積神經(jīng)網(wǎng)絡(CNN)實現(xiàn)儲層微觀孔隙結構的預測并應用于儲集層的劃分[10]。傳統(tǒng)的機器學習方法和卷積神經(jīng)網(wǎng)絡在處理測井數(shù)據(jù)時將每一個采樣點視作獨立的樣本,每個隱藏層的多個神經(jīng)元互不相連,而多個隱藏層的神經(jīng)元可以相互傳遞參數(shù),因此無法獲取數(shù)據(jù)前后采樣點的內(nèi)在聯(lián)系,難以表征測井數(shù)據(jù)的序列特征。
循環(huán)神經(jīng)網(wǎng)絡(RNN)通過構建循環(huán)體結構使隱藏神經(jīng)單元的數(shù)據(jù)與當前輸入和過去輸出均有關,從而學習序列數(shù)據(jù)前后采樣點的關聯(lián)特征。Hochreiter和Schmidhuber在常規(guī)循環(huán)神經(jīng)網(wǎng)絡的基礎上進行優(yōu)化改進,提出了長短期記憶(LSTM)神經(jīng)網(wǎng)絡,并由Graves(2012)進行了改良和推廣[11]。LSTM網(wǎng)絡改進了常規(guī)循環(huán)神經(jīng)網(wǎng)絡簡單的循環(huán)體結構,增加了3個門限(輸入、遺忘和輸出),使模型的權重可變,訓練過程中避免梯度消失和爆炸的問題。安鵬等人(2019)將多條測井數(shù)據(jù)作為輸入,應用LSTM網(wǎng)絡進行泥質(zhì)含量和孔隙度預測,結果表明基于長短期記憶網(wǎng)絡模型的穩(wěn)定性和準確度要明顯優(yōu)于傳統(tǒng)全連接神經(jīng)網(wǎng)絡[12];張東曉等人(2018)證明LSTM能夠在序列數(shù)據(jù)中充分提取信息,并在合成測井曲線時優(yōu)于其他模
型[13]。
隨著油氣田勘探開發(fā)的不斷深入,機器學習算法在測井資料處理和解釋方面已有了進一步結合,也取得了相應成果[14]。但是,大部分研究都將算法應用于儲層參數(shù)預測,在此基礎上對測井曲線進行分析得到分層解釋結論。對于儲層流體識別任務而言,依舊沒有規(guī)避解釋精度不高、儲層物性相近容易混淆的問題。本文目的在于充分利用機器學習方法的最新理論和成果,用測井數(shù)據(jù)特征工程及試油解釋結論實現(xiàn)儲層流體的自動識別。本文結合卷積神經(jīng)網(wǎng)絡和長短期記憶神經(jīng)網(wǎng)絡表征測井數(shù)據(jù)隨深度域變化的時序特征以及多條測井曲線之間的相關性。針對目前存在的問題,采用加權交叉熵損失函數(shù)克服實際應用場景中類別分布不均衡的問題;基于儲層物性差異和相似度設計了多層級儲層流體識別方法,提升易混淆儲層的識別準確度,最終用真實油田的測井數(shù)據(jù)驗證本文提出方法的有效性。
測井數(shù)據(jù)是典型的序列式數(shù)據(jù),隨著井的深度增加,相鄰采樣點測井響應存在相關性,后續(xù)采樣點受到前序采樣點的影響[15]。由于地質(zhì)條件復雜多變,地質(zhì)運動導致褶皺、斷層等構造,地下層位局部重疊,其對應的物理、化學性質(zhì)也會相應改變,反映在測井曲線上的響應值也會隨之變化,這就導致局部深度空間中的測井曲線呈現(xiàn)劇烈變化。地下儲層厚度不一,不同深度區(qū)間測井響應值對單一深度尺度下地質(zhì)特征具有明顯易變性[16];同時測井曲線特征相互依賴關聯(lián),例如自然電位與聲波特征對地下巖層特征描述的共同作用等。本節(jié)將討論用以表征測井數(shù)據(jù)時序特征以及多條測井曲線相互關聯(lián)關系的機器學習算法。
長短期記憶網(wǎng)絡(LSTM)是一種適用于處理序列數(shù)據(jù)x(1),…,x(n),表征數(shù)據(jù)時序關系的神經(jīng)網(wǎng)絡,其可以處理變長度的序列,因此長短期記憶網(wǎng)絡適用于處理測井數(shù)據(jù),可以對蘊含的層位信息進行更充分的挖掘。
LSTM 網(wǎng)絡主要由遺忘門(f)、輸入門(i)、輸出門(o),以及與隱藏狀態(tài)形狀相同的記憶細胞(c)構成,從而記錄額外的信息,主要結構如圖1所示。
圖1 LSTM 網(wǎng)絡的循環(huán)結構Fig. 1 LSTM recurrent structure
LSTM神經(jīng)元的輸入向量為xt;遺忘門的激活向量為ft;輸入門的激活向量為it;輸出門的激活向量為ot;LSTM神經(jīng)元的輸出向量為ht;神經(jīng)元細胞狀態(tài)向量為Ct;權重矩陣為W;偏置項為b;σ表示sigmoid函數(shù);tanh表示雙曲正切函數(shù);下標t表示當前時刻,t-1表示上一時刻。
遺忘門查看上一輸入和當前輸入,選擇性丟棄部分信息,表達式為
輸入門將新信息存放到單元狀態(tài)中,表達式為
單元狀態(tài)包含小的線性相互作用使信息穩(wěn)定向下傳輸,這種鏈式結構是長短時記憶網(wǎng)絡的關鍵,表達式為
輸出門決定本時刻需要輸出的信息,表達式為
輸入層、卷積層、池化層、全連接層和輸出層構成了卷積神經(jīng)網(wǎng)絡(CNN)的基本結構,卷積池化層一般為多組且交替設置,多個特征平面(Feature Map)組成卷積層,卷積核用于卷積操作提取特征,將上一層特征面的局部區(qū)域與每個神經(jīng)元相連,在卷積層中每個神經(jīng)元通過局部加權傳遞給飽和非線性ReLU函數(shù)輸出,解決梯度膨脹或梯度消失的問題,加快收斂速度。
在CNN中,經(jīng)過多個卷積池化層組后往往連接1個或多個全連接層。上一層所有神經(jīng)元與全連接層進行全連接,整合卷積池化層組中具有類別區(qū)分性的關鍵局部信息,輸出層接受最后一個全連接層的輸出值,通過激活函數(shù)(softmax)使得輸出結果在[0,1]之間,其中w為網(wǎng)絡權值,M表示儲層類別數(shù),最終輸出為不同類別的概率向量P,如公式7所示:
測井曲線的卷積過程如圖2所示,卷積核橫向滑動學習多條測井曲線關聯(lián)性,同時縱向滑動學習測井曲線局部深度響應特征。因此卷積神經(jīng)網(wǎng)絡適用于處理測井數(shù)據(jù),在表征多條曲線關聯(lián)性和深度局部變化上具有顯著優(yōu)勢。
圖2 卷積神經(jīng)網(wǎng)絡在多條測井曲線上的卷積過程Fig. 2 Convolution process of convolutional neural network on multiple logging curves
設置CNN和LSTM并行網(wǎng)絡,其中卷積神經(jīng)網(wǎng)絡設置為8通道卷積,卷積核大小為 3×3,步長為2,使用SAME卷積方式,應用ReLU激活函數(shù)輸出8個8×60的矩陣,將8個矩陣展開成一維向量并連接,送入隱藏層,通過Dropout隨機丟棄一些神經(jīng)元,不更新其網(wǎng)絡權值,再輸入一層隱藏層,通過全連接后得到長度為60的向量。LSTM層中每個單元中隱藏層數(shù)量設置為128,數(shù)據(jù)通過LSTM輸出為長度128的一維向量,再輸入一層具有64個神經(jīng)元的隱藏層,輸出為長度64的一維向量。
將LSTM與CNN輸出的一維向量拼接,通過全連接層后用softmax函數(shù)輸出儲層類型標簽向量P,具體流程如圖3所示。
圖3 基于LSTM+CNN儲層預測流程圖Fig. 3 Flow chart of reservoir identification based on LSTM + CNN
傳統(tǒng)分類任務中,通過最小化交叉熵損失函數(shù)Lori來優(yōu)化模型,提升模型預測準確度。
其中,訓練集總樣本數(shù)以及油氣儲集層類別數(shù)用M和N表示,類別真實值和模型對該類別的預測值用ym和表示。
對于油氣儲集層識別任務而言,水層和干層占比較大,而油層、油水同層、含油水層的占比較小,類別分布不均衡性十分突出;另一方面,由于不同儲層經(jīng)濟效益有所差異,其準確度的要求也不同,例如對于油層具有開采價值的儲集層準確度要求就會高于對于水層、干層等開采價值較低的儲集層?;诖?,本文將采用基于類別加權的優(yōu)化函數(shù),在模型訓練中提高少樣本類別的權重。
本文設計的加權交叉熵優(yōu)化函數(shù)L如下所示:
其中,αm表示m類別的權重,默認將權重設置為m類別占總體樣本比例的倒數(shù)。
在儲層流體識別任務中,部分儲層的油水性質(zhì)難以根據(jù)其流體飽和度界定,例如水層、油水同層和含油水層的含油飽和度差異較小,難以用數(shù)值準確區(qū)分。為此本文提出多層級儲層流體識別方法,以克服部分儲層流體物性相似,反應在測井曲線上的響應差異較小,導致流體識別過程中容易混淆的問題。
儲層具有連通孔隙,油水在其中儲存,而非儲層相反,因此儲層與非儲層差異較大,層級I對兩類進行識別。根據(jù)儲層含水和含油量差異可將其分為3大類:含水儲層(水層、含油水層)、干層、含油儲層(油層、差油層、油水同層),因此層級II對3類進行劃分;最后對含水儲層和含油儲層進行精細劃分,由此構成了層級III?;诖颂岢龅亩鄬蛹墐恿黧w識別方法如圖4所示。
圖4 多層級儲層流體識別方法流程圖Fig. 4 Flow chart of multi-layer reservoir fluid identification method
實現(xiàn)方法與主要步驟如下:
層級I:以多條測井曲線作為輸入,用XGBoost建立儲層、非儲層的分類模型,確定儲層位置和厚度。其中,XGBoost是一種基于回歸樹的傳統(tǒng)機器學習算法,該算法具有運算速度快、效果好等特點。
層級II:建立含水儲層、含油儲層和干層的LSTM+ CNN分類模型,將層級I中預測為儲層的采樣點作為輸入,對儲層進行分類。
層級III:
(1)建立油層、差油層、油水同層的LSTM + CNN分類模型,將層級II中預測為含油的儲層作為輸入,進一步劃分儲層類型。
(2)建立水層、含油水層的LSTM + CNN分類模型,將層級II中預測為含水的儲層作為輸入,進一步劃分儲層類型。
實驗選取某致密砂巖油田173口井作為數(shù)據(jù)集。致密砂巖儲層存在低孔低滲、物性較差、孔隙結構及油水關系復雜、束縛水飽和度高、流體性質(zhì)及飽和度難以確定等問題。因此,準確識別致密砂巖儲層的流體類型,尤其是找到地層中的含油儲層存在一定的難度。此外,在該區(qū)域數(shù)據(jù)集中,水層和干層占比91%,含油儲層占比9%,數(shù)據(jù)分布不均衡,在模型訓練時往往容易忽略少樣本類別的特征,導致儲層預測時難以識別含油儲層?;谝陨蠁栴},分別從網(wǎng)絡結構和多層級儲層識別流程驗證本文提出方法的有效性。
選取聲波時差(AC)、自然伽馬(GR)、密度(DEN)、自然電位(SP)、補償中子(CNL)、電阻率(RT)、感應電導率(CILD)、側向電導率(CLL8) 等八條測井曲線,刪除含有異常值的采樣點并對每口井進行歸一化,建立多層級標簽數(shù)據(jù)集(表1)。實驗選取3口井為測試井,剩余井按照3:1的比例劃分訓練集和驗證集。
表1 多層級標簽數(shù)據(jù)集Table 1 Multi scale label data set
本實驗均使用python和Tensorflow實現(xiàn),為提升神經(jīng)網(wǎng)絡的訓練效率,采用批訓練法進行模型訓練,批次(Batch size)設置為512,即每次訓練隨機抽取512組訓練數(shù)據(jù),學習率設置為0.001,選用Adam優(yōu)化器。
本實驗根據(jù)混淆矩陣計算出精確率Pr、召回率Re和F1?;煜仃囈卜Q為誤差矩陣,是精度評價最常用的方法。需要指出的是在數(shù)據(jù)極度不均衡場景任務中,高召回率Re比高精確率Pr更有意義,即可以更多地找到所有樣本中的含油儲層,但相對會將部分其他儲層(如水層等)誤分為油層。這是由于油層具備更高的開采價值,相比較其他類儲層被誤分為油層,遺漏地層中的油層往往損失更大,而前者可以通過取巖心試油來進一步排除非油層。因此,在本文中,召回率Re將作為的主要評價指標。
3.3.1基于CNN和LSTM的單層級儲層流體識別方法
本實驗將驗證基于長短期記憶網(wǎng)絡(LSTM)和卷積神經(jīng)網(wǎng)絡(CNN)在儲層流體識別任務中的有效性,對比以下3種單層級儲層分類方法:
(1)基于長短期記憶網(wǎng)絡的單層級儲層分類方法:模型輸入為多段測井數(shù)據(jù)序列數(shù)據(jù)通過LSTM輸出為長度128的一維向量,再輸入兩層隱藏層,最后輸出預測的儲層類型。
(2)基于長短期記憶與卷積神經(jīng)網(wǎng)絡并行架構的單層級儲層流體識別方法:多段測井曲線作為輸入,CNN和LSTM分別提取特征,將輸出的一維向量拼接后再經(jīng)過兩層全連接,最終輸出儲層類型。
(3)在CNN和LSTM并行網(wǎng)絡架構的基礎上引入加權交叉熵損失函數(shù)。
以上3種實驗方案在驗證集上的預測結果(召回率)如表2所示。
表2 CNN+LSTM網(wǎng)絡結構有效性證明實驗結果Table 2 Experimental results of reservoir classification method after introducing weighted cross entropy optimization function
從表中可以看到基于LSTM的儲層流體識別方法對于水層和干層的預測效果較好,召回率Re相對較高,油層、差油層、油水同層、含油水層的預測效果較差,這是由于在儲層流體類別中,水層和干層的占比過大,樣本的不均衡性導致模型在訓練時忽略了含油儲層的特征;引入CNN后,油層、含油水層、油水同層和差油層的召回率均有提升,其中油層提升23%,差油層提升5%。由此可以證明基于CNN 和LSTM并行的網(wǎng)絡模型架構可以有效表征測井數(shù)據(jù)的時序特征以及多條測井曲線之間的相互關系。
對損失函數(shù)改進后,雖然水層和干層的識別效果降低,但對于高價值儲層的識別效果有所增強,油層召回率提升29%,含油水層提升22%,油水同層提升34%,差油層提升26%。由此可以證明改進模型的優(yōu)化函數(shù)可以有效克服儲層流體識別任務中類別不均衡性的問題,進一步提升含油儲層的識別效果。
3.3.2多層級儲層流體識別方法
本實驗將基于已有結論驗證多層級儲層流體識別方法的有效性?;谧顑?yōu)的LSTM 和 CNN并行網(wǎng)絡架構,采用加權交叉熵損失函數(shù)訓練3個模型:
(1)含油儲層、含水儲層、干層分類模型;
(2)油層、油水同層、差油層分類模型;
(3)水層、含油水層分類模型。
將3個模型集成在一起實現(xiàn)層級II和層級III的多層級儲層流體劃分,并與CNN+LSTM單層級直接判別六種儲層流體類型的方法進行比較,在驗證集上的預測效果(召回率)如表3所示。
表3 多層級儲層流體識別方法效果對比Table 3 Results of multi-layer reservoir fluid identification method
多層級儲層流體識別方法相比較單層級直接判別的方法,干層召回率提升13%,水層提升2%,含油水層提升12%,對于物性相近、較易混淆的儲層(水層和含油水層)的識別效果較好,由此驗證了多層級儲層流體識別方法可以充分考慮到不同儲層由于物性不同,反應在測井曲線上的響應差異,從而提升整體的識別準確度。
3.3.3測試井實驗結果與分析
層級I訓練劃分儲層和非儲層的XGBoost模型,在此基礎上將3個LSTM+CNN模型集成在一起,完成層級II和層級III的劃分,實現(xiàn)圖4完整的多層級儲層流體識別流程。選取測試集中的井驗證預測效果,并與多種基于機器學習的儲層流體識別方法對比。實驗結果如表4和圖5所示。
圖5 多方案在測試井的解釋成果圖Fig. 5 Interpretation results of multiple schemes in test wells
表4 多方案在測試井的儲層預測效果對比Table 4 Comparison of reservoir identification results of multiple schemes in test wells
可以看出,XGBoost算法和單層級CNN+LSTM網(wǎng)絡模型對于含油儲層的預測效果較差,將大部分含油儲層識別為水層。使用加權交叉熵損失函數(shù)可以有效識別出含油儲層,但是對于含油飽和度相近的儲層(油層、含油水層、油水同層)難以劃分準確。本文提出的多層級儲層流體識別方法比單層級直接判別具有更高的準確度,可以找到地層中的含油儲層,對于油層、油水同層和含油水層的區(qū)分效果有進一步提升。然而,針對部分儲層流體的識別仍會出現(xiàn)混淆的情況,因此在未來的研究中將對測井數(shù)據(jù)做進一步分析,通過特征工程提升儲層的可分離性,對易混淆儲層做更準確的劃分。
本文利用機器學習對基于測井數(shù)據(jù)的儲層流體識別進行了研究,針對不同儲層物性差異,提出多層級儲層流體識別方法;采用長短期記憶網(wǎng)絡學習測井數(shù)據(jù)的序列特征;引入卷積神經(jīng)網(wǎng)絡表征多條測井曲線間的相互關系以及測井曲線隨深度的局部變化特征;考慮到油氣儲集層識別任務的類別不均衡性以及價值排序差異,引入加權交叉熵損失函數(shù),在模型訓練中增加含油儲層的權重。提出的多層級儲層流體識別方法提升了油層、油水同層和含油水層的識別準確度,證明該網(wǎng)絡模型結構可以適應測井數(shù)據(jù)和地層條件特性,在儲集層預測任務中表現(xiàn)優(yōu)異,可以幫助地質(zhì)學家和工程師利用測井資料開展沉積巖石學的研究及尋找地下儲層和實現(xiàn)儲層評價,具有理論意義和實用價值。
致謝 郭云龍、陳夢玲、羅嗣慧、廖廣志教授等給予多方面幫助,評審專家給出建設性修改意見和建議,在此一并致謝。