?

基于FL-XGBoost算法的砂泥巖識別方法
——以勝利油田牛莊地區為例

2023-02-17 12:29李克文朱應科徐志峰楊澎濤孫秀玲
油氣地質與采收率 2023年1期
關鍵詞:決策樹泥巖測井

彭 英,李克文,朱應科,徐志峰,楊澎濤,孫秀玲

(1.中國石化勝利油田分公司物探研究院,山東東營257000;2.中國石油大學(華東)計算機科學與技術學院,山東青島266580;3.山東勝軟科技股份有限公司,山東東營257000)

巖性識別對石油勘探開發具有重要意義,已成為眾多學者關注的焦點。砂泥巖識別是儲層預測工作中非常重要的環節[1],也是諸多研究的基礎,其所需的測井資料通常由專家按經驗解釋完成,因此識別結果存在一定的主觀性。在常規的砂泥巖識別方法中[2-6],地震反演作為砂體預測的常規技術已得到廣泛應用,但不論是疊后反演還是疊前反演,均受限于地震的縱向分辨率,井間預測結果分辨率較低、可靠性較弱,準確率有待進一步提高。對于巖性信息的獲取多依靠實地巖心取樣、交會圖和聚類分析[7]等傳統方法和數理統計方法,但這些方法仍存在人力和時間成本較高等局限,因此有必要提出更可靠、穩定的學習算法以解決地質應用中砂泥巖自動識別分類的問題。

近年來,隨著計算機硬件性能的高速提升以及大數據技術的不斷發展,對石油工業的發展產生了巨大的推動作用[8]。因此,將迅速發展的大數據技術與測井曲線相結合識別砂泥巖,已成為目前儲層研究砂泥巖識別的重要手段[9-14]。機器學習算法從井點出發,充分挖掘地震屬性與測井巖性敏感曲線之間的數據關系,最大限度地發揮地震屬性的利用價值,其預測結果的縱向分辨率高于確定性反演,井間可靠性優于地質統計學反演。隨機森林算法[15-17]的訓練速度快、準確率較高,能夠有效地運行于大型數據集,且引入隨機性,不易過擬合;該算法對于不平衡的數據集可以平衡誤差,但對于小型數據或低維數據(測井數據),則難以產生較好的分類,易出現很多相似的決策樹,導致真實的預測結果被掩蓋。深度神經網絡算法[18-22]可以較好地解決非線性問題,進而實現面向相關專業領域的遷移學習,這是建立在充足訓練數據量的基礎之上,但若在巖性識別任務的訓練過程中,面對較為稀少的測井數據,神經網絡在推理過程中無法提取足夠的測井特征,易導致過擬合問題[23],使得模型無法獲得較高的準確率。XGBoost 是一種基于迭代決策樹模型的集成學習算法[24-26],是基于利用一階導數相關信息的迭代決策樹(Gradient Boosting Decision Tree,簡稱GBDT)的改進算法,在很大程度上提高了模型的訓練速度和預測的準確度。對于深度學習算法而言,XGBoost 算法只適用于處理結構化的特征數據,而直接對測井、錄井曲線等數據進行處理則較為困難,且XGBoost算法的參數過多,調參復雜。

由以上分析可以得出,諸如隨機森林、深度神經網絡等機器學習算法可以較好的解決相關地質問題,已經獲得了顯著的效果,為提升地質工作效率提供了新的思路和方法,然而在砂泥巖識別領域仍存在關鍵技術難點:①樣本集的選取以及預處理對于機器學習算法的性能具有較大影響。②砂泥巖巖性數據復雜多樣,根據測井參數與巖性的分析,選取合適的測井曲線參數是影響砂泥巖識別準確性的關鍵之一。因此,需基于特定樣本數據設計相關人工智能算法與超參數調優策略,充分發揮智能算法的優勢,以滿足砂泥巖識別準確性的需求。

為此,筆者以測井和錄井資料為基礎,考慮砂泥巖識別的關鍵技術難點,對測井參數進行敏感性分析,以明確影響因素;通過多項預處理操作構建完整的訓練數據集,根據測井標簽稀疏性的特點,將Focal Loss 函數引入XGBoost 算法(FL-XGBoost算法),對勝利油田牛莊地區構建砂泥巖識別模型;并將隨機森林、深度神經網絡算法的訓練結果作為對照,以最終砂泥巖識別分類結果的準確率作為評價標準,驗證FL-XGBoost算法應用于測井砂泥巖識別的可行性;最后通過5 種公開分類數據集設計對比實驗,驗證FL-XGBoost算法在識別分類領域上的強泛化能力。研究成果可以為FL-XGBoost 算法對砂泥巖識別的可行性提供理論依據,為傳統的測井巖性識別提供新的思路。

1 相關理論

GBDT 算法是一個樹結構(可以是二叉樹或非二叉樹)[27],由多棵決策樹組成,以所有決策樹的結論累加起來作為最終答案,具體原理為:每個非葉子節點表示一個特征屬性的測試,每個分支代表這個特征屬性在某個值域的輸出,而每個葉子節點存放一個類別,迭代決策的過程是從根節點開始,測試待分類項中相應的特征屬性,并按照其值選擇輸出分支,直到到達葉子節點,將葉子節點存放的類別作為決策結果[27]。GBDT 算法的思路是不斷地添加決策樹,進行特征分裂以生長一棵決策樹,且每次添加一個決策樹,為學習一個新函數,進而擬合上次預測的殘差。當訓練完成得到k棵決策樹,則要預測一個樣本的分數,其實就是根據這個樣本的特征,在每棵決策樹中落到對應的一個葉子節點,每個葉子節點即對應一個分數,最后只需將每棵決策樹對應的分數相加即為該樣本的預測值。

XGBoost 算法是基于二階泰勒展開式將損失函數展開,并且將正則項置于目標函數之外,這降低了模型的復雜度,更易于獲得最優解,通過控制目標函數的不斷下降,使得模型能夠更好地收斂,有效避免過擬合,從而提高了預測準確率。該算法在訓練前對數據進行預處理,將其結果保存,在后面的迭代中可以重復使用,從而降低計算復雜度,實現并行化,提高整體計算效率。

2 基于FL-XGBoost 算法的砂泥巖識別模型構建

基于GBDT與XGBoost算法,將不平衡樣本分類思想引入訓練損失函數,構建基于FL-XGBoost算法的砂泥巖識別模型。結合砂泥巖識別存在的關鍵技術難點,首先對測井參數進行敏感性分析,以明確影響因素,通過多項預處理操作構建完整的訓練數據集并將其輸送至FL-XGBoost模型中進行訓練,迭代計算FL損失并判斷是否繼續收斂,期間進行超參數調優,最終獲得訓練完備的砂泥巖識別模型?;贔L-XGBoost算法的砂泥巖識別流程如圖1所示。

圖1 基于FL-XGBoost算法的砂泥巖識別流程Fig.1 Flow chart of sandstone and mudstone identification based on FL-XGBoost algorithm

Focal Loss 是LIN 等于2017 年專門為解決不平衡分類問題提出的損失函數[28]。其從2個方面解決數據類別不平衡的問題:①損失函數更加傾向于關注少數類樣本。②避免易分類樣本主導模型訓練過程而導致的性能降低。相對于龐大的地震數據體,測井與錄井標簽數據存在稀疏性,基于機器學習算法的砂泥巖識別可視為非平衡樣本訓練問題。

FL-XGBoost算法的思路與集成學習中的GBDT算法的類似。FL-XGBoost 算法訓練時每一次迭代會增加一棵決策樹來擬合上一次迭代過程中的真實值與預測值之間的FL 殘差,進而逐漸逼近真實值,其訓練過程中的目標函數為:

在(2)式中,通過引入系數α來調整測井標簽中不同參數在損失函數中的權重,引入聚焦稀疏系數β來調整易分類樣本和難分類樣本的損失權重。

將Ω(fi)展開得到:

新生成的決策樹需擬合上一迭代預測的殘差,即第t次迭代目標函數,其砂泥巖識別結果可以表示為:

將損失函數使用泰勒二階展開,引入正則項并去除常數項后得到:

將(5)式中表示的所有訓練樣本按照葉子節點進行分組得到:

FL-XGBoost 算法中經過k次迭代后,形成的決策樹模型對第c個樣本的輸出結果為:

3 應用實例分析

3.1 研究區概況

牛莊洼陷為濟陽坳陷東營凹陷中南部的次級洼陷,為渤海灣盆地油氣最豐富的地區之一。其南北兩側均受斷層控制,構造活動較為頻繁,沉積巖性主要為深灰色的厚層泥巖、灰質砂巖和泥質粉砂巖等。牛莊洼陷發育多種類型的油氣藏,對其地層巖性的準確識別可為后期的油氣預測奠定基礎。

3.2 數據獲取及預處理

本次研究數據來源于牛莊洼陷220口井的測井及錄井數據,其中200 口井的測井曲線為las 文件格式,20 口井的測井曲線為文本文檔,采樣間隔均為0.125 m。目標任務為完成純泥巖、砂巖、其他泥巖(除純泥巖之外的泥巖)、其他巖層(除純泥巖、砂巖、其他泥巖三者之外的巖層)4 類巖性的識別。利用實際采集到的測井和錄井數據,檢查標簽數據,建立樣本庫,并對樣本數據進行預處理,包括:①異常值處理。根據業務專家制定的不同特征的合理取值范圍,對數據中的特征值設置閾值并進行過濾,對超過閾值的不合理值依據臨近數據或單井平均數據進行修正。②缺失值處理。對于測井曲線中的缺失數據,利用貝葉斯估計插補缺失值。③重采樣。將測井數據采樣間隔為0.1 m 的井應用插值進行重采樣,采樣間隔為0.125 m;對標簽數據進行上采樣,以保證標簽類別均衡。④數據歸一化。在機器學習領域中,不同特征向量往往具有不同的量綱和單位,這樣會影響數據分析的結果。為了消除特征向量的量綱影響,需進行數據標準化處理,以解決數據指標之間的可比性。而原始數據經過數據歸一化處理后,各指標處于同一數量級,適合進行綜合對比評價(圖2)。

圖2 數據重采樣和歸一化示例Fig.2 Diagram of data resampling and normalization

最終將整個數據劃分為訓練集、測試集和驗證集。訓練集和測試集數據是利用巖屑錄井資料確定,為避免巖屑錄井資料的錯誤,在巖屑錄井圖上,顯示4條巖性曲線,即自然電位曲線(SP)、自然伽馬曲線(GR)、井徑曲線(CAL)和聲波時差曲線(AC)。業務專家現場對巖性分類進行審定,去除不可靠的巖性分類,最終完成純泥巖、砂巖、其他泥巖、其他巖層4 類樣本的標定工作,按點構建1 048 575 條樣本數據。4 個點構建1 個深度段,按深度段構建28 619條樣本數據(表1)。

表1 樣本數據的樣式Table 1 Sample data style

3.3 特征參數提取

針對測井曲線數據進行多維度表征,測井曲線按點構建以及按0.5 m 每段提取特征參數。牛莊洼陷主要為砂泥巖沉積,且該區測井資料大多是2010年以前測得,9條基礎測井曲線齊全,其他測井曲線較少,其中與巖性相關的測井曲線有GR,SP,AC和CAL曲線,而CAL曲線受鉆井和裂縫的影響較大,因此選取AC,GR和SP這3條測井曲線作為巖性識別的基礎數據。錄井資料的采樣間隔為0.5 m,測井資料的采樣間隔為0.125 m,為了匹配錄井數據,將測井資料按照0.5 m 進行特征參數提取,特征參數有最大值、最小值、平均值、標準差、中位數、累加值、數值排序的百分比;經過特征參數與巖性參數交匯分析,優選最大值、最小值、中位數、平均值作為測井曲線特征,分別提取每條測井曲線同一時窗內的最大值、最小值、中位數和平均值作為曲線的特征。

將處理后的特征數據與錄井數據按深度進行匹配構建樣本數據,并將樣本數據劃分為訓練集和驗證集,其中訓練集樣本占樣本總數的80%,驗證集樣本占樣本總數的20%。標簽共包含4 類,分別為純泥巖、砂巖、其他泥巖和其他巖層。

3.4 砂泥巖識別結果對比

分別使用FL-XGBoost 和XGBoost、隨機森林、深度神經網絡算法學習勝利油田牛莊洼陷的砂泥巖樣本數據,并進行超參數設置、模型性能以及應用效果的對比分析。

3.4.1 FL-XGBoost算法

為契合砂泥巖識別,改進目標函數的計算方式,進一步提高模型的精確度,并將目標函數的優化問題轉化為求二次函數的最小值問題,利用損失函數的二階導數信息訓練決策樹模型,同時將樹復雜度作為正則化項加入到目標函數中,以提升模型的泛化能力。XGBoost 模型中有多個超參數,選出對模型影響較大的超參數作為網格搜索法遍歷尋優的參數,其余超參數為默認值。在本次應用實例中,分別對以FL-XGBoost 算法和XGBoost 算法為基礎設計的30棵決策樹構建對比實驗,即初始迭代30次。初始學習率采用0.01,控制每次迭代更新權重時的步長,設置每棵決策樹的初始深度為3,最大值為20,并且設置早停輪數,防止模型過擬合。

由表2 可知模型學習率、決策樹的最大深度和迭代產生決策樹超參數的數量分別為10,10和5,將以上參數進行組合得到500條超參數組合。運用網格搜索法,遍歷網格中的500條超參數組合,尋找最優超參數組合。隨機取80%的訓練集數據分批輸入到XGBoost 模型中,用剩余20%的數據集對模型的精度進行評估。根據評估結果的精確度調整模型所用樣本和超參數。利用訓練好的XGBoost 模型,按照0.5 m 為一段對新井的測井數據進行預測,并輸出預測結果,將預測結果與標簽值進行比較,只統計純泥巖和砂巖預測正確的數量,其他泥巖和其他巖性不參與統計。其中,預測準確率=(純泥巖預測為泥巖+砂巖預測為砂巖)/(泥巖樣本總數+砂巖樣本總數)。

表2 FL-XGBoost算法參數設置Table 2 Parameter settings of FL-XGBoost algorithm

表3 顯示在1 000 條超參數組合中具有代表性的組合與預測準確率,當決策樹的最大深度為20、最優迭代次數為487 次,FL-XGBoost 模型的預測準確率達到最高值,為0.827,其在測試集下的推理速度為0.192 0 s,在迭代超過487 次以后,預測準確率出現持續的下降,推測模型出現過擬合現象。由此得到,當FL-XGBoost模型在更加側重于測井資料方面訓練,而非無關(負)樣本訓練時,模型的預測精度將會得到顯著提高。

表3 XGBoost模型與FL-XGBoost模型迭代及識別結果Table 3 Iteration and identification results of XGBoost and FL-XGBoost models

3.4.2 隨機森林算法

隨機森林算法通過集成學習的方法集成多棵決策樹,每一棵都是一個分類器,對于每一個輸入樣本,每棵決策樹與分類結果是一一對應的,通過集成分類投票結果,將投票次數最多的類別指定為最終的輸出。筆者將測井數據集作為輸入,在基尼指數與交叉熵2 種標準下,對隨機森林算法進行訓練,并展示了迭代產生數、評判標準、決策樹的最大深度等超參數對砂泥巖識別結果的影響(圖3)。

由圖3可知,隨著迭代次數的增加,隨機森林算法對砂泥巖的識別精度也在提高,但對于諸如測井數據的小樣本數據,識別效果并不是最優的。在多參數設置最優的情況下,測試集的識別精度僅為74.13%,其在測試集下的推理速度為0.214 6 s。

圖3 隨機森林算法結果分析Fig.3 Result analysis of random forest algorithm

3.4.3 深度神經網絡算法

深度神經網絡算法是機器學習的分支,是一種試圖使用包含復雜結構或由多重非線性變換構成的多個處理層對數據進行高層抽象的算法。筆者將測井數據集作為輸入,設計對應的深度神經網絡模型,通過控制不同的隱含層數目與迭代次數進行訓練,最終得到不同的砂泥巖識別結果(表4),在多參數設置最優的情況下,測試集的識別精度僅為0.745,其在測試集下的推理速度為1.453 1 s。

表4 深度神經網絡模型及識別結果Table 4 Deep neural network model and identification results

深度神經網絡算法雖然具有強大的非線性擬合能力,但這是建立在充足訓練數據量基礎之上的。面對較為稀少的測井數據量,該模型在推理過程中無法提取足夠的測井特征,導致模型無法獲得較高的準確率。

綜合來看,采用FL-XGBoost算法的砂泥巖識別結果與采用隨機森林、深度神經網絡算法所得到的識別結果進行比較(圖4),結果表明在使用交叉驗證測試模型精度及相同訓練數據下,使用FL-XGBoost 模型的訓練速度最快,識別準確率有明顯提升,同時計算復雜度更低,為砂泥巖的測井識別提供了新的思路。

圖4 不同算法的識別結果對比Fig.4 Comparison of identification effects of different algorithms

3.5 公共數據集及實驗對比分析

在通用的分類識別問題中,業內常采用準確率、F1 值、AUC等作為評估指標,其計算所需的混淆矩陣如表5所示。

表5 混淆矩陣Table 5 Confusion matrix

利用混淆矩陣可計算相應的準確率、召回率、F1值和AUC等評估指標,其計算式如下:

KEEL 是一種集成海量標準分類數據集的綜合庫,為驗證FL-XBoost 算法的有效性以及不同智能算法之間的性能差異,采用KEEL中的mushroom(蘑菇是否有毒的分類數據集)、magic(魔法射線望遠鏡數據集)、spambase(電子郵件分類數據集)、titanic(泰坦尼克輪船乘客的幸存分類數據集)、phoneme(聲音分類數據集)等5 種公共數據集,其分別為特征數不同、樣本量不同的代表性數據集。利用訓練完備的隨機森林、深度神經網絡、XGBoost 和FLXGBoost算法分別對這5個數據集進行預測,并以準確率、F1 值和AUC作為評價指標,其數據集信息與預測結果如表6所示。

由表6 可知,FL-XGBoost 算法在5 種公開數據集中的預測結果均優于隨機森林、深度神經網絡和XGBoost算法,由于XGBoost算法中的正則化項可在一定程度上解決稀疏測井數據過擬合問題,不僅使用一階導數,還推理二階導數,使得損失函數更加精確。在此基礎之上,FL-XGBoost 算法的損失函數相比于均方根誤差、交叉熵等損失,Focal Loss 更加適用于難訓練的樣本,如測井曲線、錄井數據等。因此,FL-XGBoost 算法的預測準確率相對于隨機森林、深度神經網絡、XGBoost 算法具有明顯提升,具備更好的泛化能力。

表6 5種公共數據集及預測結果Table 6 Five public datasets and prediction results

4 結論

以測井、錄井資料為基礎,結合砂泥巖識別任務存在的關鍵技術難點,對測井參數進行敏感性分析,以選取適當的影響因素。通過多項預處理操作構建完整的訓練數據集,根據測井標簽稀疏性的特點,將Focal Loss 函數引入XGBoost 算法,并對勝利油田牛莊洼陷構建砂泥巖識別模型,相比于隨機森林和深度神經網絡算法,FL-XGBoost 算法可以解決常規測井砂泥巖識別過擬合和準確率較低的問題。

FL-XGBoost 算法應用于砂泥巖識別任務的準確率達到0.827,構建智能化工作流程,同時形成測井巖性識別樣本庫,具有一定的泛化能力,可以在砂巖油藏中推廣應用。FL-XGBoost 算法在KEEL中5 種公開數據集的預測效果均優于隨機森林、深度神經網絡和XGBoost 算法,證明該算法的有效性與泛化性。

符號解釋

AUC——數據集中任取一個正樣本和負樣本,預測正例排在負例前面的概率,%;

c——地震道的道數,個;

f——F中的某棵決策樹,棵;

fi——F中的第i棵決策樹,棵;

fk——F中的第k棵決策樹,棵;

ft——F中的第t棵決策樹,棵;

F——特征空間;

F1——準確率與召回率的調和平均值,%;

FN——錯誤的負例,即錯誤的將樣本中的正例識別為負例,%;

FP——錯誤的正例,即錯誤的將樣本中的負例識別為正例,%;

gi——損失函數的一階導數;

hi——損失函數的二階導數;

i——當前決策樹的棵樹,棵;

j——當前的葉子節點,個;

k——當前的迭代次數,次;

K——總的迭代次數,次;

l——損失函數;

LFL——Focal Loss誤差項,%,

n——FL-XGBoost算法的決策樹數量,棵;

N——負樣本,%;

NN——負樣本(多數類)總數,%;

NP——正樣本(少數類)總數,%;

obj——目標函數;

P——正樣本,%;

Pre——準確率,%;

Pc——正樣本的類別,無單位;

q——表示樣本xc被預測后落入在對應節點上的概率,%;

ranki——正樣本的置信度排序,%;

R——每個節點的分值集合;

Rd——每個節點的集合;

Rec——召回率,%;

t——當前迭代次數,次;

T——葉子節點的總個數,個;

TN——被預測為負類的負樣本,%;

TP——被預測為正類的正樣本,%;

w——葉子節點的分值,%;

wj——第j個葉子節點的分值,%;

wq——第q個葉子節點的分值,%;

xc——多地震道訓練數據,個;

yc——與xc對應的測井和錄井曲線標簽數據;%;

——訓練數據xc經所有預測后得到的估計值,%;

α——系數,%;

β——聚焦稀疏系數,%;

γ——可以控制葉子節點的個數,個;

λ——分數控制系數,可以控制葉子節點的分數不會過大,防止過擬合,%;

Ω(fi)——決策樹的正則化項。

猜你喜歡
決策樹泥巖測井
本期廣告索引
八扇區水泥膠結測井儀刻度及測井數據處理
一種針對不均衡數據集的SVM決策樹算法
風化泥巖地質斷層水疏排工藝探討
決策樹和隨機森林方法在管理決策中的應用
高孔低滲泥巖滲流-損傷耦合模型與數值模擬
基于決策樹的出租車乘客出行目的識別
基于測井響應評價煤巖結構特征
中石油首個全國測井行業標準發布
基于肺癌CT的決策樹模型在肺癌診斷中的應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合