王洪亮,林霞,蔣麗維,劉宗尚
中國石油勘探開發(fā)研究院,北京 100083
準(zhǔn)確預(yù)測油田產(chǎn)量是解決油田生產(chǎn)優(yōu)化、提質(zhì)增效等問題的基礎(chǔ)。近年來,人工智能在油氣行業(yè)得到廣泛應(yīng)用[1-6]。許多學(xué)者利用人工智能技術(shù)基于油田開發(fā)動態(tài)數(shù)據(jù)進(jìn)行油氣產(chǎn)量預(yù)測[7-12]。機(jī)器學(xué)習(xí)技術(shù)作為油田產(chǎn)量智能預(yù)測常用的人工智能方法,建立產(chǎn)量預(yù)測模型需要大量訓(xùn)練樣本數(shù)據(jù)[13-16]。構(gòu)建產(chǎn)量預(yù)測模型可以利用油田生產(chǎn)數(shù)據(jù)或者油井生產(chǎn)數(shù)據(jù)。利用油田生產(chǎn)數(shù)據(jù)建立預(yù)測模型,將油田當(dāng)成一個整體,由于訓(xùn)練樣本少,泛化能力弱;利用油井生產(chǎn)數(shù)據(jù)建立模型,訓(xùn)練樣本多,但由于單井產(chǎn)量波動大,每口井遞減規(guī)律差異明顯,樣本標(biāo)注難度大,且數(shù)據(jù)處理工作費時耗力。因此,需要開發(fā)一種既準(zhǔn)確又高效的油田產(chǎn)量智能預(yù)測方法。
在油氣產(chǎn)量智能預(yù)測方面,一些學(xué)者已經(jīng)分別在油田產(chǎn)量預(yù)測和油井產(chǎn)量預(yù)測方面開展了研究工作[12,17-20]。在油田產(chǎn)量智能預(yù)測方面,吳新根[21]在1994 年利用人工神經(jīng)網(wǎng)絡(luò)預(yù)測了前蘇聯(lián)羅馬什金油田的原油年產(chǎn)量,通過與Weng旋回模型預(yù)測結(jié)果比較,證明了利用人工神經(jīng)網(wǎng)絡(luò)預(yù)測石油產(chǎn)量的可行性。王洪亮[22]提出了基于循環(huán)神經(jīng)網(wǎng)絡(luò)的油田特高含水階段產(chǎn)量預(yù)測方法,綜合考慮不同年份的投產(chǎn)井?dāng)?shù)、產(chǎn)量構(gòu)成數(shù)據(jù)、注水井?dāng)?shù)、月注入量、含水率、生產(chǎn)天數(shù)、剩余可采儲量、措施井次和措施增油量等產(chǎn)量影響因素,拓展訓(xùn)練樣本考慮因素的廣度以增加預(yù)測模型的泛化能力。張瑞[23]在井網(wǎng)分析的基礎(chǔ)上通過多變量時間序列分析對注采井組數(shù)據(jù)進(jìn)行優(yōu)選,并將井組內(nèi)不同采出井產(chǎn)油量及注入井注水量作為彼此相關(guān)的時間序列,通過建立向量自回歸模型從多個時間序列中提取出相互作用規(guī)律,挖掘注采井間流量的依賴關(guān)系從而進(jìn)行產(chǎn)量預(yù)測。黃家宸[24]等介紹了機(jī)器學(xué)習(xí)技術(shù)在油田靜態(tài)產(chǎn)量和動態(tài)產(chǎn)量預(yù)測的應(yīng)用方法并進(jìn)行實例驗證,認(rèn)為由于不同油田之間存在差異,模型復(fù)用難度大。油田產(chǎn)量預(yù)測的主要方法為基于該油田的產(chǎn)量、井?dāng)?shù)和壓力等動態(tài)數(shù)據(jù),利用機(jī)器學(xué)習(xí)算法建立預(yù)測模型,預(yù)測未來。主要優(yōu)點為油田生產(chǎn)趨勢平穩(wěn),數(shù)據(jù)量少,易于整理和加工,建模工作量小。缺點為機(jī)器學(xué)習(xí)算法需要大量樣本數(shù)據(jù)進(jìn)行模型訓(xùn)練,而以油田作為研究對象,樣本數(shù)據(jù)少,容易發(fā)生過擬合,模型遷移難度大。
在油井產(chǎn)量智能預(yù)測方面,通過分析人工神經(jīng)網(wǎng)絡(luò)在油氣工業(yè)的應(yīng)用,總結(jié)出油田開發(fā)領(lǐng)域應(yīng)用人工神經(jīng)網(wǎng)絡(luò)的方法論。主要包括特征選擇及數(shù)據(jù)采集、數(shù)據(jù)集劃分、數(shù)據(jù)標(biāo)準(zhǔn)化和模型訓(xùn)練4 個步驟。谷建偉[25]基于產(chǎn)油量變化的時間序列數(shù)據(jù)特征,提出利用長短時記憶循環(huán)神經(jīng)網(wǎng)絡(luò)模型實現(xiàn)具有長時間記憶能力的油井生產(chǎn)時間序列預(yù)測。通過對結(jié)果進(jìn)行分析,認(rèn)為該方法可以較好的預(yù)測油井產(chǎn)量變化,部分油井預(yù)測不準(zhǔn)確的原因為產(chǎn)油量突然大幅度增加、無預(yù)兆停產(chǎn)、大型作業(yè)措施和數(shù)據(jù)缺失等。油井產(chǎn)量預(yù)測的主要方法為基于油井的有效厚度、滲透率、產(chǎn)量和壓力等動靜態(tài)數(shù)據(jù),建立預(yù)測模型。主要優(yōu)點為訓(xùn)練樣本豐富多樣,模型魯棒性高,通用性強(qiáng)。缺點為單井產(chǎn)量波動大,每口井遞減規(guī)律差異明顯,逐口井分階段樣本標(biāo)注困難,數(shù)據(jù)處理工作耗時。
可以看出,前人為了建立油田或者油井產(chǎn)量智能預(yù)測模型,分別利用不同方法構(gòu)建了油田或者油井產(chǎn)量智能預(yù)測所需的訓(xùn)練樣本數(shù)據(jù),在此基礎(chǔ)上應(yīng)用機(jī)器學(xué)習(xí)算法進(jìn)行模型建立。油田樣本數(shù)量少,容易發(fā)生過擬合,遷移難度大。油井樣本數(shù)量多,模型魯棒性高,但數(shù)據(jù)處理工作量大。本文首次將油田和油井生產(chǎn)數(shù)據(jù)有機(jī)融合作為訓(xùn)練樣本,建立產(chǎn)量智能預(yù)測模型,預(yù)測油田產(chǎn)量。首先采用無監(jiān)督學(xué)習(xí)的K均值聚類算法依據(jù)有效厚度、孔隙度、滲透率、飽和度等信息對油井進(jìn)行聚類,識別油田中不同油井的產(chǎn)量遞減規(guī)律,并將每類油井轉(zhuǎn)換成一口典型油井作為該類油井的代表;其次,將典型井作為預(yù)測對象,通過從每類油井中按比例隨機(jī)抽取油井來增加訓(xùn)練樣本數(shù)量,即將典型井和油井生產(chǎn)數(shù)據(jù)進(jìn)行融合構(gòu)建訓(xùn)練樣本;最后,基于循環(huán)神經(jīng)網(wǎng)絡(luò)能夠?qū)崿F(xiàn)產(chǎn)量與壓差、儲層特征等影響因素之間的復(fù)雜映射,同時兼顧產(chǎn)量隨時間變化的趨勢和前后關(guān)聯(lián)的優(yōu)勢,利用堆疊去噪自編碼+長短時記憶循環(huán)神經(jīng)網(wǎng)絡(luò)建立模型預(yù)測典型井產(chǎn)量,進(jìn)而預(yù)測油田產(chǎn)量。
聚類是指將物理或抽象對象的集合分組為由類似的對象組成的多個類的分析過程。每類稱為一個簇,同一個簇中的對象彼此相似,不同簇中的對象彼此相異。
從油層物理角度看,聚類的同一類別內(nèi)生產(chǎn)井的儲層物性和生產(chǎn)規(guī)律差異較小,不同聚類類別間生產(chǎn)井的儲層物性和生產(chǎn)規(guī)律差異較大。給定m×n的樣本X={x1,x2,...,xn},則樣本之間的距離dij為
式中,xki和xkj分別為第i個樣本和第j個樣本的第k個特征。
定義樣本到分類中心距離的和為最終損失函數(shù),即
將多口油井轉(zhuǎn)換成一口具有代表性的典型油井。典型油井的日產(chǎn)油、日產(chǎn)液等動態(tài)指標(biāo)等于多口油井的算數(shù)平均值,有效厚度、孔隙度、滲透率、壓力等靜態(tài)指標(biāo)等于多口油井按單井控制儲量的加權(quán)平均值。
利用人工智能方法預(yù)測油井產(chǎn)量,影響因素作為預(yù)測模型的輸入,產(chǎn)量作為預(yù)測模型的輸出,屬于監(jiān)督學(xué)習(xí)。監(jiān)督學(xué)習(xí)算法需要“教材”供機(jī)器學(xué)習(xí),即訓(xùn)練樣本。油井生產(chǎn)訓(xùn)練樣本是指油藏類型、地質(zhì)條件、開發(fā)技術(shù)等影響因素與油井產(chǎn)量之間的對應(yīng)關(guān)系。機(jī)器學(xué)習(xí)算法基于訓(xùn)練樣本學(xué)習(xí)產(chǎn)量與影響因素之間的復(fù)雜映射關(guān)系,建立具有泛化能力的預(yù)測模型。
首先對油井生產(chǎn)階段進(jìn)行標(biāo)注,去除長期關(guān)井、修井、生產(chǎn)異常、數(shù)據(jù)缺失等非正常生產(chǎn)階段;其次綜合考慮開發(fā)層系、開發(fā)階段、含水階段、產(chǎn)量遞減率和含水上升率等指標(biāo),分別制定區(qū)塊/油井分組、油井生產(chǎn)階段和訓(xùn)練樣本優(yōu)選的規(guī)則,測算指標(biāo)范圍,制定油井訓(xùn)練樣本選擇標(biāo)準(zhǔn)。最后依據(jù)選擇標(biāo)準(zhǔn),標(biāo)注油井生產(chǎn)訓(xùn)練樣本。
與普通回歸任務(wù)不同,時間序列預(yù)測在時間上具有復(fù)雜的前后依賴關(guān)系。循環(huán)神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)可以讓之前時間步中的有用信息持續(xù)保留并參與后續(xù)時間步的運算。然而,如果先前的相關(guān)信息所在的位置與當(dāng)前時間的距離非常遠(yuǎn),由于不斷輸入數(shù)據(jù)的影響,模型中的記憶單元(單一的tanh層或sigmoid層)無法長期有效地保存全部歷史信息,容易產(chǎn)生梯度消失或者梯度爆炸等問題。
針對傳統(tǒng)的循環(huán)神經(jīng)網(wǎng)絡(luò)存在的問題,Hochreiter等人針對網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行改進(jìn),提出了長短期記憶神經(jīng)網(wǎng)絡(luò)(Long Short-Term Memory,簡稱LSTM)。
該模型是一種在循環(huán)網(wǎng)絡(luò)中具有4 個相互作用層的循環(huán)神經(jīng)網(wǎng)絡(luò),它改進(jìn)了傳統(tǒng)網(wǎng)格模型中的記憶模塊。通過增加門結(jié)構(gòu)和記憶單元狀態(tài),使得LSTM可以讓時間序列中的關(guān)鍵信息進(jìn)行有效的更新和傳遞,有效的將長距離信息保存在隱藏層中。由于信息可以在循環(huán)神經(jīng)網(wǎng)絡(luò)中自由流動,基于該方法預(yù)測油田產(chǎn)量綜合考慮了產(chǎn)量隨時間變化的連貫性,更加符合實際生產(chǎn)情況。
LSTM中的隱藏層的循環(huán)網(wǎng)絡(luò)包含遺忘門、輸入門、輸出門和1 個tanh層,如圖1 所示。
第1 個交互層被稱為遺忘門層,它決定當(dāng)前步驟遺忘的信息。遺忘門的計算方法可表示為:
第2 個交互層被稱為輸入門層,它決定了哪些新的信息應(yīng)該添加到處理器狀態(tài)中。輸入門層的sigmoid函數(shù)決定了要更新的數(shù)值,計算方法可表示為:
第3 個交互層被稱為tanh層,它創(chuàng)建了一個可以添加到處理器狀態(tài)中的新候選值,增加到神經(jīng)元狀態(tài)中。這一層計算得到的值經(jīng)過tanh函數(shù)運算,使結(jié)果趨于平穩(wěn)狀態(tài)。計算方法可表示為:
在上述3 層計算之后,攜帶信息的處理器狀態(tài)Ct-1與包含新信息的候選值結(jié)合求和,計算方法可表示為:
最后一層是輸出門層,它基于更新后的處理器狀態(tài)生成LSTM的輸出值,是建立在神經(jīng)元狀態(tài)基礎(chǔ)上更新的版本。
首先,sigmoid層決定哪一部分的神經(jīng)元狀態(tài)需要被輸出,然后神經(jīng)元狀態(tài)經(jīng)過tanh層并與sigmoid門的輸出相乘得到輸出結(jié)果。計算方法可表示為:
處理器狀態(tài)有選擇的保存先前時間步驟中的有用信息并貫穿整個LSTM。交互層中的門結(jié)構(gòu)可以根據(jù)上一時間步的隱藏狀態(tài)和當(dāng)前時間步驟的輸入信息對處理器狀態(tài)中的信息進(jìn)行增加、刪除和更新操作,更新后的處理器狀態(tài)和隱藏狀態(tài)向后傳遞。
方法流程主要包含油田開發(fā)現(xiàn)狀分析、油井聚類分析、訓(xùn)練樣本標(biāo)注和產(chǎn)量預(yù)測模型構(gòu)建4 個步驟,如圖2 所示。
圖2 機(jī)器學(xué)習(xí)模型技術(shù)路線圖Fig. 2 Machine learning model technology roadmap
油田開發(fā)現(xiàn)狀分析。分析油田的儲層、流體和開發(fā)歷程等基礎(chǔ)信息,重點分析油田的產(chǎn)量變化情況,確定產(chǎn)量遞減的范圍。
油井聚類分析。利用霍普金斯統(tǒng)計量進(jìn)行油井聚類趨勢評估,利用“肘方法”確定聚類,利用K均值聚類算法對油井進(jìn)行聚類分組。依據(jù)聚類分析結(jié)果,將每類油井轉(zhuǎn)換成一口油井作為該類油井生產(chǎn)規(guī)律的代表。
訓(xùn)練樣本標(biāo)注。提出油井生產(chǎn)數(shù)據(jù)訓(xùn)練樣本標(biāo)注方法與流程。依據(jù)油田開發(fā)現(xiàn)狀分析結(jié)果,刪除因套損、水淹等導(dǎo)致的長期關(guān)井及生產(chǎn)數(shù)據(jù)缺失等生產(chǎn)異常階段,將油井正常生產(chǎn)階段的生產(chǎn)狀態(tài)和與之對應(yīng)的產(chǎn)量標(biāo)注為一個訓(xùn)練樣本。從每類油井中按比例抽取一部分油井,將典型井和抽取的油井共同作為樣本進(jìn)行訓(xùn)練樣本標(biāo)注,建立樣本集合。
產(chǎn)量預(yù)測模型構(gòu)建。利用皮爾森相關(guān)分析方法分析油井產(chǎn)量的主控因素,確定模型的輸入特征;將數(shù)據(jù)集劃分為訓(xùn)練集和測試集,訓(xùn)練集用于模型訓(xùn)練,測試集用于結(jié)果驗證;利用長短時記憶循環(huán)神經(jīng)網(wǎng)絡(luò)建立產(chǎn)量預(yù)測模型。
以國內(nèi)某背斜構(gòu)造中高滲砂巖油藏作為研究對象。該油田共發(fā)育三套油層,地層厚度約500 m。具有統(tǒng)一的壓力系統(tǒng)和油水界面,底水、邊水不活躍。原油粘度從8.3 至9.2 mPa·s,地飽壓差較小。
該油田采用早期注水開發(fā),注采比大于1.1,地層壓力保持水平高。自1963 年投入開發(fā)以來,該油田經(jīng)過多次加密。目前共有生產(chǎn)井近700 口,其中采油井370 口。目前,油田年產(chǎn)油量近30 萬t,綜合含水95.3%。油田分為兩套開發(fā)層系進(jìn)行開采,A油層日產(chǎn)油530 t,自然遞減率為4.4%左右,單井日產(chǎn)油2.6 t;B油層日產(chǎn)油290 t,自然遞減率為3.1%左右,單井日產(chǎn)油1.9 t,兩套開發(fā)層系產(chǎn)量規(guī)模與遞減規(guī)律不同,如圖3 所示。
圖3 日產(chǎn)油生產(chǎn)運行曲線Fig. 3 Daily oil production running curve
由于不同投產(chǎn)批次油井生產(chǎn)時間不同,目前單井日產(chǎn)油最大值為12.5 t,最小值為0.3 t,平均值為2.3 t,方差為2.1;油井含水率最大值為96.5%,最小值為78.2%,方差為6.8%。不同投產(chǎn)批次油井之間產(chǎn)油能力差別較大。措施增油方式以調(diào)參、換泵、補(bǔ)孔和壓裂為主,其產(chǎn)量占總產(chǎn)量的7%左右。
綜上所述,該油田具有開發(fā)層系多、生產(chǎn)歷史長、油井投產(chǎn)批次多、處于特高含水后期等特點,將油田作為一個整體進(jìn)行產(chǎn)量預(yù)測無法體現(xiàn)不同投產(chǎn)批次油井的各自的生產(chǎn)特點;利用常規(guī)油藏工程方法依據(jù)儲層特性、投產(chǎn)批次、含水階段等特征對油井分組,并按分組進(jìn)行產(chǎn)量預(yù)測難度大,且工作量大。本文擬利用基于聚類及長短時記憶神經(jīng)網(wǎng)絡(luò)的油田產(chǎn)量預(yù)測方法,提高預(yù)測精度和工作效率。
3.2.1 聚類趨勢評估
霍普金斯統(tǒng)計用于通過測量給定數(shù)據(jù)集由統(tǒng)一數(shù)據(jù)分布生成的概率來評估數(shù)據(jù)集的聚類趨勢。如果數(shù)據(jù)集聚類趨勢不明顯,則霍普金斯統(tǒng)計量的值接近0.5;如果數(shù)據(jù)集有明顯的聚類趨勢,則其值接近1。計算370 口油井生產(chǎn)數(shù)據(jù)的霍普金斯統(tǒng)計量為0.88,說明數(shù)據(jù)集有明顯的聚類趨勢。
3.2.2 確定聚類數(shù)目K值
利用“肘方法”[26]確定聚類的K值,即計算數(shù)據(jù)集中所有樣本點到聚類中心的簇內(nèi)誤差平方和(within-cluster sum of squared errors , SSE),根據(jù)SSE隨K的變化選取K值。
圖4 為“肘方法”確定K值的示意圖。隨著K值的增加,SSE逐漸減小,當(dāng)K值等于3 時,SSE 減小變化緩慢,如圖4 所示,紅色圓圈內(nèi)的值為K值。因此K-Means 將把數(shù)據(jù)集分為3 個聚類類別。
圖4 “肘方法”確定聚類的K值Fig. 4 Diagram of elbow method determining value of K
3.2.3 聚類結(jié)果
按照有效厚度、滲透率、井距、日產(chǎn)油、累產(chǎn)油、采出程度、靜壓和流壓進(jìn)行油井聚類分析,聚類分析結(jié)果圖,表現(xiàn)出良好的聚類特性,如圖5 所示。數(shù)據(jù)被分到紅、黃、藍(lán)三簇,每一類內(nèi)部的油井彼此距離相近,不同類別之間的油井距離較遠(yuǎn)。
圖5 聚類分析結(jié)果Fig. 5 The result of cluster
依據(jù)聚類分析結(jié)果,不同類別油井的平均單井日產(chǎn)油差異較大,如圖6 所示。類別1 的油井產(chǎn)量較低,平均單井日產(chǎn)油水平在1 t左右,產(chǎn)量比較平穩(wěn);類別2 的平均單井日產(chǎn)油水平在2 t左右;類別3 的油井產(chǎn)量最高,平均單井日產(chǎn)油水平在5 t左右,產(chǎn)量波動明顯。將每一類油井轉(zhuǎn)換成一口典型油井。
圖6 不同類別油井平均日產(chǎn)油曲線Fig. 6 Average daily production curve of different types of wells
3.3.1 樣本標(biāo)注流程
首先,通過油田開發(fā)生產(chǎn)現(xiàn)狀分析,對油井進(jìn)行聚類分組。針對每個油井分組,按照不同含水階段,分別計算產(chǎn)量遞減率和含水上升率;其次,針對每一口油井,從單井生產(chǎn)曲線上選擇接近所屬分組生產(chǎn)規(guī)律的階段作為訓(xùn)練樣本,主要考慮的指標(biāo)為產(chǎn)量遞減率和含水上升率。為了降低模型復(fù)雜度,不考慮措施增油階段,只標(biāo)注老井遞減階段;為了保證油井生產(chǎn)有一定的連續(xù)性,且符合油井產(chǎn)量人工智能預(yù)測算法的要求,選擇連續(xù)生產(chǎn)時間不少于12 個月的生產(chǎn)階段;單井產(chǎn)量遞減率和含水上升率以所述油井分組的產(chǎn)量遞減率和含水上升率為中心上下波動,通過計算機(jī)自動標(biāo)注訓(xùn)練樣本和專家手動標(biāo)注訓(xùn)練樣本的符合率來測算波動范圍,如圖7 所示。
圖7 樣本標(biāo)注流程Fig. 7 Sample annotation flow chart
3.3.2 建立樣本集合
從每一分類中隨機(jī)抽取30%的油井進(jìn)行訓(xùn)練樣本標(biāo)注,針對抽樣的油井按照不同含水階段進(jìn)行標(biāo)注,一口井可以標(biāo)注多個樣本,共標(biāo)注樣本3500 個。按照機(jī)器學(xué)習(xí)中監(jiān)督學(xué)習(xí)算法對訓(xùn)練樣本的要求,構(gòu)建模型訓(xùn)練需要的輸入(x)和輸出(y)。輸入(x)為某一階段的油井生產(chǎn)狀態(tài)信息,包括日產(chǎn)油、含水率、流壓、動液面、累產(chǎn)油和累產(chǎn)液等數(shù)據(jù);輸出(y)為下一階段油井的日產(chǎn)油和含水率數(shù)據(jù),如圖8 所示。
圖8 油井訓(xùn)練樣本示意圖Fig. 8 Schematic diagram of oil well training sample
3.4.1 特征分析
依據(jù)水驅(qū)油田生產(chǎn)特征及油田開發(fā)歷史數(shù)據(jù),定性篩選出15 個特征:有效厚度、滲透率、井距、日產(chǎn)油、日產(chǎn)水、含水率、累產(chǎn)油、累產(chǎn)液、累產(chǎn)水、采出程度、靜壓、流壓、泵深、沖程、沖次。
采用皮爾遜相關(guān)系數(shù)度量兩個變量X和Y之間的相關(guān)程度,其值介于-1 與1 之間。相關(guān)系數(shù)的絕對值越大,相關(guān)性越強(qiáng)。絕對值在0.8 至1.0 之間表示極強(qiáng)相關(guān);絕對值在0.6 至0.8 之間表示強(qiáng)相關(guān)。基于定性分析結(jié)果,采用皮爾遜相關(guān)系數(shù)進(jìn)行定量分析。取相關(guān)性絕對值大于0.6 的特征作為模型的輸入。確定模型輸入的特征為日產(chǎn)油、日產(chǎn)水、累產(chǎn)油、含水率、流壓、累產(chǎn)液和滲透率,如圖9 所示。
圖9 特征相關(guān)性定量分析Fig. 9 Quantitative analysis of feature correlation
3.4.2 數(shù)據(jù)集劃分
本文選取2020 年1 月至2020 年12 月的數(shù)據(jù)作為驗證集,2021 年1 月至2021 年12 月的數(shù)據(jù)作為測試集,其余訓(xùn)練樣本全部作為訓(xùn)練集。
為了保證模型訓(xùn)練與產(chǎn)量預(yù)測結(jié)果的穩(wěn)定性,本文采用歸一化處理方法,將其映射到[0,1]區(qū)間,線性變換式為:
3.4.3 模型訓(xùn)練
本文實驗驗證采用Tensorflow開源平臺作為深度學(xué)習(xí)平臺,采用Python 3.7 編寫實驗程序,同時使用了一些第三方庫,如使用Sklearn、Numpy計算技術(shù)指標(biāo),使用Keras搭建網(wǎng)絡(luò)結(jié)構(gòu)。
選用長短時記憶神經(jīng)網(wǎng)絡(luò)算法作為模型的學(xué)習(xí)器。損失函數(shù)(loss function)使用均方誤差(Mean Square Error, MSE),計算方法表示為:
優(yōu)化器(optimizer)使用“adam”,用來計算神經(jīng)網(wǎng)絡(luò)每個參數(shù)的自適應(yīng)學(xué)習(xí)率。采用Dropout(按照一定的比例將神經(jīng)元暫時從網(wǎng)絡(luò)中丟棄)方法防止過擬合,Dropout的比例為30%。
由于不同油井在平面和縱向物性差異大,造成不同層系、不同開發(fā)階段產(chǎn)量差異較大,而平均絕對百分誤差(Mean Absolute Percentage Error,MAPE)通過計算相對值可以消除產(chǎn)量差異大的影響,因此本文采用相對誤差(1-MAPE )作為模型精度評價標(biāo)準(zhǔn)。
針對訓(xùn)練樣本,去掉實體名稱(油田名和井名等)和生產(chǎn)時間,只按照生產(chǎn)年月的前后順序保留每個實體的靜態(tài)數(shù)據(jù)和生產(chǎn)動態(tài)數(shù)據(jù),針對每個樣本單獨建立監(jiān)督學(xué)習(xí)算法所需的訓(xùn)練樣本。
采用文獻(xiàn)[20]中的模型訓(xùn)練與自動調(diào)優(yōu)方法,最終確定模型的主要超參數(shù)組合,如表1 所示。
表1 模型主要參數(shù)Table 1 Main parameters of the model
3.4.4 產(chǎn)量預(yù)測
將3 口典型油井2020 年的日產(chǎn)油、日產(chǎn)水、累產(chǎn)油、含水率、流壓、累產(chǎn)液和滲透率數(shù)據(jù)輸入產(chǎn)量預(yù)測模型,得到未來三年的預(yù)測產(chǎn)油量,如圖10 所示。
圖10 油井產(chǎn)量預(yù)測曲線Fig. 10 Well production prediction curve
計算3 口典型井的年產(chǎn)油量,再分別乘以所屬油井分組的井?dāng)?shù),即可得到該油井分組的年產(chǎn)油量。與2021 年實際值進(jìn)行對比分析,分組3 由于產(chǎn)量波動較大,年產(chǎn)量相對誤差較大,達(dá)到7.5%;分組1 和分組2 的年產(chǎn)量相對誤差分別為2.1%和3.9%;油田2021年產(chǎn)量的相對誤差為5.6%,2022 年與2023 年產(chǎn)量緩慢遞減,符合現(xiàn)場生產(chǎn)趨勢,如表2 所示。
表2 實際產(chǎn)量與預(yù)測產(chǎn)量誤差分析Table 2 Error analysis of actual production and prediction production
為了驗證本文方法的優(yōu)越性,與以下3 種方法的預(yù)測結(jié)果進(jìn)行對比:方法一:將該油田生產(chǎn)數(shù)據(jù)作為訓(xùn)練樣本,利用機(jī)器學(xué)習(xí)方法建立油田產(chǎn)量智能預(yù)測模型,預(yù)測2021 年產(chǎn)量;方法二:將全部油井生產(chǎn)數(shù)據(jù)作為訓(xùn)練樣本,利用機(jī)器學(xué)習(xí)方法建立油井產(chǎn)量智能預(yù)測模型,預(yù)測每口油井2021 年的產(chǎn)量,累加匯總成油田產(chǎn)量;方法三:利用水驅(qū)特征曲線預(yù)測油田2021 年產(chǎn)量。
從預(yù)測結(jié)果可以看出:方法一由于訓(xùn)練樣本數(shù)量較少,模型建立時間短,預(yù)測精度不高,為87.8%;方法二需要對所有井進(jìn)行樣本標(biāo)注,耗時最長,預(yù)測精度達(dá)到92.5%。對預(yù)測結(jié)果進(jìn)行分析,發(fā)現(xiàn)部分關(guān)井、產(chǎn)量突然大幅波動的油井預(yù)測誤差較大,從而降低了油田的預(yù)測精度;由于該油田處于特高含水階段,方法三的預(yù)測結(jié)果出現(xiàn)了“上翹”現(xiàn)象,預(yù)測精度為92.1%;本文方法通過聚類分析,雖然減少了樣本數(shù)量,但是增加了樣本的代表性,縮短了時間,卻提高預(yù)測精度,達(dá)到94.4%,如表3 所示。綜上所述,本文方法適用于具有一定規(guī)模油井的油田產(chǎn)量預(yù)測,通過油井聚類分析增加訓(xùn)練樣本數(shù)量,利用神經(jīng)網(wǎng)絡(luò)模型實現(xiàn)產(chǎn)量預(yù)測。
表3 不同方法預(yù)測結(jié)果對比Table 3 Comparison of prediction results of different methods
機(jī)器學(xué)習(xí)是一項通用技術(shù),應(yīng)用到油田產(chǎn)量預(yù)測時,應(yīng)結(jié)合油田生產(chǎn)特征和油田生產(chǎn)數(shù)據(jù)特點,靈活有效的構(gòu)建機(jī)器學(xué)習(xí)所需要的訓(xùn)練樣本數(shù)據(jù),提高模型構(gòu)建效率和預(yù)測精度。
(1)基于無監(jiān)督學(xué)習(xí)的K均值聚類算法根據(jù)油井產(chǎn)量對油井遞減趨勢進(jìn)行聚類,可以快速識別油井產(chǎn)量遞減類型,使同一類別中的油井具有相似的產(chǎn)量變化規(guī)律,不同類別之間油井產(chǎn)量變化趨勢差異較大;
(2)從每類油井中按比例隨機(jī)抽取油井進(jìn)行訓(xùn)練樣本標(biāo)注,與使用油田生產(chǎn)數(shù)據(jù)作為訓(xùn)練樣本相比,可以增加機(jī)器學(xué)習(xí)所需的訓(xùn)練樣本數(shù)量,提高模型預(yù)測精度;與使用全部油井生產(chǎn)數(shù)據(jù)作為訓(xùn)練樣本相比,在保證預(yù)測精度的同時,可以減少數(shù)據(jù)處理工作量;
(3)通過分析油田開發(fā)歷程及生產(chǎn)特征,剔除油井長期關(guān)井、數(shù)據(jù)異常等階段,建立油井某一階段的產(chǎn)量和與之對應(yīng)的生產(chǎn)制度,有助于機(jī)器學(xué)習(xí)方法尋找產(chǎn)量和影響因素之間的因果關(guān)系,提高模型的預(yù)測精度;
(4)將具有相似產(chǎn)量變化趨勢的一類油井轉(zhuǎn)換成一口典型油井,使典型井可以代表該類井的生產(chǎn)特點,又可以降低單井產(chǎn)量的波動性,提高產(chǎn)量數(shù)據(jù)的平穩(wěn)性,使產(chǎn)量預(yù)測結(jié)果更加準(zhǔn)確。