蘇興華 孫俊明 高 翔 王 敏
1(中石油川慶鉆探工程有限公司 陜西 西安 710018)2(西北工業(yè)大學(xué)計(jì)算機(jī)學(xué)院 陜西 西安 710072)
隨著經(jīng)濟(jì)的快速發(fā)展,自然資源的消耗逐年增大,石油、天然氣等自然能源的使用量急劇增長[1]。全球鉆井勘探也從陸地到海洋,從淺層到深層、超深層發(fā)展以求滿足日常的社會(huì)需求。中國是一個(gè)貧油國家,淺層和中淺層石油儲(chǔ)量已經(jīng)基本探勘清楚,遠(yuǎn)遠(yuǎn)無法滿足社會(huì)需要[2]。因此,提高機(jī)械鉆速、增大石油產(chǎn)量是當(dāng)今國內(nèi)外研究的熱點(diǎn)課題[3]。石油鉆井是一項(xiàng)投資巨大的工程并且具有很強(qiáng)的風(fēng)險(xiǎn)性,在鉆井過程中,鉆井費(fèi)消耗巨大[4]。如果能有效地提高鉆井機(jī)械鉆速、減少鉆井周期,就能達(dá)到增大石油產(chǎn)量、減少成本目的,這對(duì)于企業(yè)降低鉆井施工成本、減少鉆井風(fēng)險(xiǎn)、增強(qiáng)市場(chǎng)競(jìng)爭(zhēng)力等,對(duì)于國家解決能源緊缺問題、減少社會(huì)矛盾等均有重大意義[5]。
隨著大數(shù)據(jù)技術(shù)的快速發(fā)展以及數(shù)據(jù)的急速增長,用機(jī)器學(xué)習(xí)的方法對(duì)數(shù)據(jù)進(jìn)行挖掘并應(yīng)用到鉆井工業(yè)中的情況已有多例,在鉆頭優(yōu)選、巖性識(shí)別等領(lǐng)域中已經(jīng)得到了有效的應(yīng)用[6-7]。但是在用機(jī)器學(xué)習(xí)的方法預(yù)測(cè)機(jī)械鉆速方面卻鮮有研究和報(bào)道。長慶公司經(jīng)過多年的鉆井實(shí)踐,收集了大量的關(guān)于鉆井液、鉆井地質(zhì)、泥餅等鉆井?dāng)?shù)據(jù)。研究表明,這些數(shù)據(jù)是影響機(jī)械鉆速的重要因素。如果能合理利用這些數(shù)據(jù),充分分析和挖掘數(shù)據(jù)中影響機(jī)械鉆速的重要特征并建立機(jī)器學(xué)習(xí)模型,則能夠在現(xiàn)有人力和設(shè)備條件基礎(chǔ)上大大提高機(jī)械鉆速,從而達(dá)到優(yōu)化整合設(shè)備、提高資源輸出、減少巨額成本的重大效果。本文以同區(qū)塊鉆頭尺寸、鉆壓、泵壓等字段為特征,以機(jī)械鉆速為標(biāo)簽進(jìn)行了一系列的監(jiān)督學(xué)習(xí)實(shí)驗(yàn),建立該區(qū)塊的鉆速預(yù)測(cè)模型。嘗試了包括Linear Regression(線性回歸)[8]、Support Vector Regression(支持向量回歸)[9]、Gradient Boosting Decision Tree(梯度增量決策樹)[10]等建模方法,通過對(duì)比這些模型,最終選擇了效果最優(yōu)的GBDT作為鉆速模型。本文的主要貢獻(xiàn)如下:
1) 率先使用了機(jī)器學(xué)習(xí)的方法和策略對(duì)特定區(qū)塊的機(jī)械鉆速預(yù)測(cè)方法進(jìn)行了研究,建立了有效的鉆速預(yù)測(cè)模型。實(shí)際運(yùn)行效果表明,該模型預(yù)測(cè)準(zhǔn)確,為設(shè)計(jì)和優(yōu)化鉆井方案提供了科學(xué)有力的支持,有助于實(shí)現(xiàn)提升機(jī)械鉆速的目的,大大減少了成本,節(jié)約了開支,具有良好的經(jīng)濟(jì)效益。
2) 率先提出了基于GBDT算法的鉆速預(yù)測(cè),通過與KNN、SVM、LR等一系列算法的對(duì)比實(shí)驗(yàn),結(jié)果表明該模型有平均90%的可決定系數(shù),效果最優(yōu),令人滿意。
機(jī)械鉆速指的是單位純鉆進(jìn)時(shí)間內(nèi)的進(jìn)尺量,鉆速越大則鉆井效率越高,能更快到達(dá)油層。不同地區(qū)條件下由于地質(zhì)條件的不同、巖石層軟硬不同、泥層的含沙量不同等都能影響到鉆頭鉆進(jìn)速度。在安全施工條件下巖石層越硬,則鉆速越低[11]。同時(shí),機(jī)械鉆速還受到鉆井液的影響。鉆井液在鉆井過程中起到了清潔井底、攜帶巖屑、減少鉆頭磨損、提高鉆井效率的作用[12]。此外,地質(zhì)條件、鉆井液成分、設(shè)備好壞、鉆井工藝先進(jìn)與否等都是影響機(jī)械鉆速的重要原因。
研究顯示,鉆速預(yù)測(cè)由來已久。從20世紀(jì)50年代開始,一些學(xué)者利用如鉆壓井眼直徑、排量等主要因素,利用回歸分析的方法得出一些鉆速方程,然后再通過考慮底層巖性、鉆井液參數(shù)等設(shè)置系數(shù)優(yōu)化方程[13]。隨著計(jì)算機(jī)功能提高,仿真技術(shù)的興起。有學(xué)者通過設(shè)計(jì)實(shí)驗(yàn),建立動(dòng)力學(xué)模型、鉆頭仿真模型等,進(jìn)行了鉆井沖擊力和機(jī)械鉆速仿真設(shè)計(jì),不僅提高了擬合效果,還起到了鉆井參數(shù)優(yōu)化、省人力物力的作用[14]。近年,Liu等[15]研究深水底孔噴射鉆井的機(jī)械鉆速與地層強(qiáng)度、鉆頭結(jié)構(gòu)、水力參數(shù)等密切相關(guān),通過對(duì)模擬試驗(yàn)數(shù)據(jù)的分析和處理,建立了適用于白云地區(qū)的鉆壓與機(jī)械鉆速之間的相互關(guān)系模型。隨著人工智能的發(fā)展,神經(jīng)網(wǎng)絡(luò)[16]、多元回歸[17]等機(jī)器學(xué)習(xí)方法也應(yīng)用到鉆速預(yù)測(cè)之中,但是目前國內(nèi)的這類研究報(bào)道較少。
真實(shí)的數(shù)據(jù)不可避免會(huì)收到一些“污染”,變成“臟“數(shù)據(jù),而有些機(jī)器學(xué)習(xí)的方法對(duì)數(shù)據(jù)比較敏感,如果原始數(shù)據(jù)處理不合理,則最終得到的結(jié)論往往也是不能使用的。此外,沒有一種機(jī)器學(xué)習(xí)的方法是萬能通用的,都有各自的缺點(diǎn),比如神經(jīng)網(wǎng)絡(luò),就有容易陷入局部最小化問題。
本文提出采用以GBDT算法為核心的機(jī)器學(xué)習(xí)的方法研究影響機(jī)械鉆速的關(guān)鍵因素。GBDT算法因預(yù)測(cè)準(zhǔn)確率高、對(duì)原始數(shù)據(jù)不敏感等優(yōu)勢(shì)逐步在機(jī)器學(xué)習(xí)的眾多算法中大放異彩。采用機(jī)器學(xué)習(xí)算法預(yù)測(cè)機(jī)械鉆速,優(yōu)勢(shì)是能夠在當(dāng)前設(shè)備和資源條件下準(zhǔn)確地找尋影響機(jī)械鉆速的若干個(gè)核心因素,不僅實(shí)驗(yàn)成本低、周期短,而且效果極好。同時(shí),如今的鉆速模型往往受限于十幾個(gè)甚至幾十個(gè)條件的約束,在高維度特征的條件下,傳統(tǒng)的方法已經(jīng)不能很好地去解決實(shí)際問題。而采用機(jī)器學(xué)習(xí)的方法恰能處理好上述問題。除此以外,機(jī)器學(xué)習(xí)的方法可復(fù)制性強(qiáng),可以在多個(gè)地區(qū)進(jìn)行推廣使用。
GBDT是一種集成學(xué)習(xí)算法,它是由Decision Tree(決策樹)和Gradient Boosting(梯度提升)兩部分組成。
決策樹算法是機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘中的一個(gè)重要的算法,它主要用來處理給定規(guī)則條件下的一些問題。和大多數(shù)算法模型一樣,該算法可以用來對(duì)數(shù)據(jù)進(jìn)行分類和回歸處理,從而建立有效的數(shù)據(jù)模型來處理相關(guān)問題。在該算法模型中,常見的有ID3、C4.5和CART[18]等,其中C4.5決策樹算法是在ID3決策樹算法的基礎(chǔ)上改進(jìn)發(fā)展而來的。
提升(Boosting)算法[19]是一種集成學(xué)習(xí)的算法,它的目標(biāo)就是讓一類弱學(xué)習(xí)器提升為強(qiáng)學(xué)習(xí)器的集成學(xué)習(xí)過程??傮w思路是,通過不斷改變訓(xùn)練樣本每個(gè)點(diǎn)的權(quán)值,學(xué)習(xí)得到多個(gè)弱分類器,然后線性組合這些分類器組成一個(gè)強(qiáng)分類器。梯度提升(Gradient Boosting)算法是提升算法的一種,它的特點(diǎn)是,在每次進(jìn)行訓(xùn)練過程中,都是為了減少上一次過程中的殘差。在減少殘差的過程中使用梯度下降法來優(yōu)化模型,使得每一個(gè)損失函數(shù)最小。
GBDT算法是通過采用加法模型(即基函數(shù)的線性組合),以及不斷減小訓(xùn)練過程產(chǎn)生的殘差來達(dá)到將數(shù)據(jù)分類或者回歸的算法。圖1為GBDT算法的訓(xùn)練過程。
圖1 GBDT算法的訓(xùn)練過程
GBDT算法中每輪迭代使用的弱分類器為CART TREE(分類回歸樹),由于這種樹的特點(diǎn)是高偏差和低方差,而且樹的深度不深,非常適合作為該算法的每一輪迭代中的弱分類器。通過加法模型得到的總的分類器模型如下:
(1)
式中:T(x;θm)表示弱分類器。弱分類器損失函數(shù)表達(dá)式如下:
(2)
式中:L(·)表示損失函數(shù)。
每個(gè)分類器都是在上一輪分類器的殘差基礎(chǔ)上進(jìn)行訓(xùn)練的,在迭代過程中使用的梯度下降法,即利用損失函數(shù)的負(fù)梯度在當(dāng)前模型的值作為回歸問題提升樹算法中的殘差的近似值去擬合一個(gè)回歸樹。常見的損失函數(shù)有:平方損失 (squared loss)、絕對(duì)值損失 (absolute loss)、Huber損失(huber loss),如表1所示。
表1 常見的損失函數(shù)
GBDT從誕生以來一直備受青睞,它有幾個(gè)重要特點(diǎn):(1) 預(yù)測(cè)精度高;(2) 能處理連續(xù)值和離散值兩種類型數(shù)據(jù);(3) 使用一些健壯的損失函數(shù),對(duì)異常值的魯棒性非常強(qiáng);(4) 對(duì)數(shù)據(jù)不敏感,在數(shù)據(jù)預(yù)處理階段可以不進(jìn)行歸一化處理等。本節(jié)對(duì)GBDT算法進(jìn)行了實(shí)驗(yàn)。為了突出該算法的優(yōu)勢(shì)和保證科學(xué)實(shí)驗(yàn)的嚴(yán)謹(jǐn)性,以SVR、LR、KNN等一些算法為參照設(shè)計(jì)了相關(guān)的對(duì)比實(shí)驗(yàn)。
步驟一導(dǎo)入數(shù)據(jù)。本次實(shí)驗(yàn)的數(shù)據(jù)來自大慶公司某特定區(qū)塊下鉆井?dāng)?shù)據(jù),真實(shí)有效。數(shù)據(jù)包括鉆井時(shí)間、鉆井區(qū)塊、鉆頭尺寸、鉆壓等60余個(gè)字段,通過與領(lǐng)域?qū)<医涣骱笞侄尉S度精簡為23個(gè)。本次實(shí)驗(yàn)全部數(shù)據(jù)有2 927條,表2和表3列舉了部分?jǐn)?shù)據(jù)資料。
表2 部分鉆井資料1
表3 部分鉆井資料2
步驟二劃分訓(xùn)練集和測(cè)試集。由于GBDT得天獨(dú)厚的優(yōu)勢(shì),原始數(shù)據(jù)不用進(jìn)行歸一化預(yù)處理,可以直接劃分測(cè)試集和訓(xùn)練集。這里采用了10折交叉驗(yàn)證。即將原數(shù)據(jù)平均分成了10份,依次取1份作為測(cè)試集,剩下的9份作為訓(xùn)練集。然后保持不重不漏地進(jìn)行10次實(shí)驗(yàn),計(jì)算出每次實(shí)驗(yàn)的可決系數(shù)R2[20]。
步驟三建立GBRT模型。本次實(shí)驗(yàn)使用的是Python中sklearn包。該包功能強(qiáng)大,支持分類、回歸、降維和聚類四大機(jī)器學(xué)習(xí)算法。同時(shí)完美支持GBDT算法操作。核心參數(shù)代碼如下:
params={′n_estimators′:500,′max_depth′:4,′min_samples_split′:1,21′learning_rate′:0.01,′loss′:′ls′}
其中:n_estimators表示迭代次數(shù),也就是弱學(xué)習(xí)器個(gè)數(shù);max_depth表示每一個(gè)學(xué)習(xí)器的最大深度,限制回歸樹的節(jié)點(diǎn)數(shù)目;min_samples_split表示可以劃分為內(nèi)部節(jié)點(diǎn)的最小樣本數(shù);learning_rate表示學(xué)習(xí)率;loss表示選擇損失函數(shù),默認(rèn)值為ls(least squres)。
步驟四模型的評(píng)估。我們以可決系數(shù)R2作為模型的評(píng)價(jià)標(biāo)準(zhǔn),10次實(shí)驗(yàn)的R2如表4所示,實(shí)驗(yàn)的平均R2為0.90。該實(shí)驗(yàn)平均可決系數(shù)接近1,表明該實(shí)驗(yàn)對(duì)觀測(cè)值的擬合度很好。
表4 GBDT模型下10次實(shí)驗(yàn)的R2值
為了直觀地顯示結(jié)果,以橫坐標(biāo)為預(yù)測(cè)值,縱坐標(biāo)為測(cè)試值做出了預(yù)測(cè)值和真實(shí)值的關(guān)系圖,如圖2所示。
圖2 GBDT模型下預(yù)測(cè)值和真實(shí)值關(guān)系
圖中橫坐標(biāo)為機(jī)械鉆速的預(yù)測(cè)值,即在訓(xùn)練集上通過輸入特征向量而得到的預(yù)測(cè)值,縱坐標(biāo)表示記錄的機(jī)械鉆速的真實(shí)值,也成為觀察值。它們的單位均為m/h,表示每小時(shí)的進(jìn)尺量。45°線表示預(yù)測(cè)值和真實(shí)值的接近程度,如果點(diǎn)均落在了該直線上,說明預(yù)測(cè)值完美等于真實(shí)值,則模型的預(yù)測(cè)準(zhǔn)確率為100%;當(dāng)點(diǎn)落在了直線附近,而且越緊致,表示預(yù)測(cè)的準(zhǔn)確率較高,模型的擬合效果不錯(cuò);當(dāng)點(diǎn)偏離該直線較遠(yuǎn)距離時(shí),表明該模型擬合效果很差。圖2中大部分點(diǎn)落在了直線附近,且緊致收縮于45°線,少部分偏離該直線,印證了基于GBDT算法的預(yù)測(cè)模型效果優(yōu)良。
將原數(shù)據(jù)以相同的處理方式進(jìn)行同類型操作,設(shè)計(jì)并進(jìn)行對(duì)比實(shí)驗(yàn)。
LR(線性回歸)模型下的可決系數(shù)R2如表5所示。
表5 LR模型下10次實(shí)驗(yàn)的R2值
平均可決系數(shù)R2為0.61。
LR模型下預(yù)測(cè)值和真實(shí)值的關(guān)系圖如圖3所示。
圖3 LR模型下預(yù)測(cè)值和真實(shí)值的關(guān)系圖
可以看出,線性模型的擬合效果非常不好,甚至給出了負(fù)的預(yù)測(cè)值,這與事實(shí)嚴(yán)重背離。除此以外,線性模型在預(yù)處理階段需要對(duì)數(shù)據(jù)進(jìn)行歸一化等相關(guān)處理,以求減少數(shù)值量度對(duì)模型的影響規(guī)律。而在GBDT模型中,這個(gè)步驟完全可以省略。這一結(jié)果大大體現(xiàn)了GBDT算法在建立機(jī)械鉆速模型中的優(yōu)勢(shì)。
SVR(支持向量回歸)也是比較流行的、效果不錯(cuò)的一種回歸模型。本實(shí)驗(yàn)中同樣采用sklearn包中的SVM類。其核心代碼如下所示:
sklearn.svm.SVR(kernel=′rbf′,degree=3,gamma=′auto_deprecated′,coef0=0.0,tol=0.001,C=1.0,epsilon=0.1,shrinking=True,cache_size=200,verbose=False,max_iter=-1)
其中需要調(diào)整的參數(shù)如下:
Kernel:表示核函數(shù)的種類,通常的核函數(shù)有“l(fā)inear”、“poly”、“rbf”和“sigmod”。
Gamma:表示核函數(shù)系數(shù)。
C:表示懲罰系數(shù)。它的作用是平衡樣本復(fù)雜度和誤分類率這兩者的關(guān)系。
Epsilon: 表示損失距離度量。
在核函數(shù)的選擇過程中,“rbf”方式是最常用的方式,通過后來的比較選擇,也發(fā)現(xiàn)這個(gè)方式最優(yōu)。在“rbf”方式下,只需要調(diào)整“Gamma”、“C”和“Epsilon”這三個(gè)參數(shù)值。在擇優(yōu)選擇過程中,選擇使用了“網(wǎng)格搜索”的方式,選擇模型R2最好的“[Gamma=0.3,C=1,Epsilon=0.1]”作為實(shí)驗(yàn)結(jié)果。SVR模型下的可決系數(shù)R2如表6所示。
表6 SVM模型下10次實(shí)驗(yàn)的R2值
平均可決系數(shù)R2為0.86。
SVM模型下預(yù)測(cè)值和真實(shí)值的關(guān)系如圖4所示??梢钥闯?,SVR模型下實(shí)驗(yàn)效果還可以,但通過R2的比較,發(fā)現(xiàn)與GBDT模型相對(duì)比仍然不是最優(yōu)的。
圖4 SVM模型下測(cè)值和真實(shí)值的關(guān)系
對(duì)于相同的數(shù)據(jù),使用不同的機(jī)器學(xué)習(xí)方法進(jìn)行訓(xùn)練,所有對(duì)比實(shí)驗(yàn)結(jié)果如表7所示。實(shí)驗(yàn)結(jié)果表明,這些對(duì)比實(shí)驗(yàn)的結(jié)果相較于GBDT方法還是有不小差距,說明GBDT算法在這一數(shù)據(jù)條件下模型的匹配度更高。
表7 不同機(jī)器學(xué)習(xí)算法平均R2值
為了使GBDT的模型擬合能力越強(qiáng),模型的效果更好,必要的調(diào)參過程必不可少。在實(shí)驗(yàn)中按照網(wǎng)格搜索的方法,分別從參數(shù)步長、弱分類器個(gè)數(shù)、決策樹最大深度、內(nèi)部節(jié)點(diǎn)入手,選擇出更優(yōu)的模型參數(shù),然后再在新的數(shù)據(jù)(3號(hào)井和4號(hào)井)中驗(yàn)證結(jié)果,比較各個(gè)參數(shù)下的模型的泛化能力。由于在測(cè)試集表現(xiàn)好的模型不一定泛化能力更好,因此模型參數(shù)的最優(yōu)選擇應(yīng)統(tǒng)籌考慮模型在測(cè)試集中的效果和模型的泛化能力,參數(shù)結(jié)果如表8所示。調(diào)整后的模型在測(cè)試井中R2值并不是最高的,但泛化效果是最好的,有效地減少了過擬合的風(fēng)險(xiǎn)。表9為調(diào)參前和調(diào)參后模型R2比較,可以看出,雖然在測(cè)試集調(diào)參前后模型的R2沒有明顯變化,但是最終的模型泛化能力更好,調(diào)參起到了一定的效果。
表8 調(diào)整前后模型參數(shù)的選擇
表9 調(diào)參前和調(diào)參后模型比較
本文提出采用機(jī)器學(xué)習(xí)的方法研究影響機(jī)械鉆速的關(guān)鍵因素,這種策略的優(yōu)勢(shì)是能夠在當(dāng)前設(shè)備和資源條件下找尋影響機(jī)械鉆速的若干個(gè)核心因素。設(shè)計(jì)并實(shí)現(xiàn)了一系列的關(guān)于預(yù)測(cè)機(jī)械鉆速的模型算法,通過對(duì)比擇優(yōu)選擇了GBDT模型作為最終的模型。該模型相對(duì)其他模型來說,具有較高的平均可決系數(shù),說明該模型的回歸直線對(duì)觀測(cè)值的擬合程度更好。同時(shí),該模型能夠選擇影響機(jī)械鉆速的若干個(gè)核心因素,給施工現(xiàn)場(chǎng)提供高效有力的指導(dǎo)依據(jù)。相對(duì)于傳統(tǒng)提升鉆井設(shè)備、改進(jìn)鉆井工藝、根據(jù)經(jīng)驗(yàn)改變參數(shù)等方法來提高鉆井效率,使用機(jī)器學(xué)習(xí)方法能從海量的數(shù)據(jù)中找到影響機(jī)械鉆速的若干個(gè)有意義的參數(shù),并且能夠建立高效而又準(zhǔn)確的模型,這將大大減少設(shè)計(jì)實(shí)驗(yàn)的周期和成本。另外,這種方法可復(fù)制性強(qiáng),可以在多個(gè)地區(qū)進(jìn)行推廣使用。
由于拿到的數(shù)據(jù)有限,本文只能考慮文中提及的幾個(gè)特征作為影響機(jī)械鉆速的因素,還有其他特征,比如鉆井液具體成分等,對(duì)機(jī)械鉆速的影響規(guī)律未能夠進(jìn)行有效的實(shí)驗(yàn)探索,如果后續(xù)能拿到這些數(shù)據(jù)則有望做進(jìn)一步深入研究。