王洪亮,林霞,蔣麗維,劉宗尚
中國石油勘探開發(fā)研究院,北京 100083
準確預測油田產量是解決油田生產優(yōu)化、提質增效等問題的基礎。近年來,人工智能在油氣行業(yè)得到廣泛應用[1-6]。許多學者利用人工智能技術基于油田開發(fā)動態(tài)數據進行油氣產量預測[7-12]。機器學習技術作為油田產量智能預測常用的人工智能方法,建立產量預測模型需要大量訓練樣本數據[13-16]。構建產量預測模型可以利用油田生產數據或者油井生產數據。利用油田生產數據建立預測模型,將油田當成一個整體,由于訓練樣本少,泛化能力弱;利用油井生產數據建立模型,訓練樣本多,但由于單井產量波動大,每口井遞減規(guī)律差異明顯,樣本標注難度大,且數據處理工作費時耗力。因此,需要開發(fā)一種既準確又高效的油田產量智能預測方法。
在油氣產量智能預測方面,一些學者已經分別在油田產量預測和油井產量預測方面開展了研究工作[12,17-20]。在油田產量智能預測方面,吳新根[21]在1994 年利用人工神經網絡預測了前蘇聯(lián)羅馬什金油田的原油年產量,通過與Weng旋回模型預測結果比較,證明了利用人工神經網絡預測石油產量的可行性。王洪亮[22]提出了基于循環(huán)神經網絡的油田特高含水階段產量預測方法,綜合考慮不同年份的投產井數、產量構成數據、注水井數、月注入量、含水率、生產天數、剩余可采儲量、措施井次和措施增油量等產量影響因素,拓展訓練樣本考慮因素的廣度以增加預測模型的泛化能力。張瑞[23]在井網分析的基礎上通過多變量時間序列分析對注采井組數據進行優(yōu)選,并將井組內不同采出井產油量及注入井注水量作為彼此相關的時間序列,通過建立向量自回歸模型從多個時間序列中提取出相互作用規(guī)律,挖掘注采井間流量的依賴關系從而進行產量預測。黃家宸[24]等介紹了機器學習技術在油田靜態(tài)產量和動態(tài)產量預測的應用方法并進行實例驗證,認為由于不同油田之間存在差異,模型復用難度大。油田產量預測的主要方法為基于該油田的產量、井數和壓力等動態(tài)數據,利用機器學習算法建立預測模型,預測未來。主要優(yōu)點為油田生產趨勢平穩(wěn),數據量少,易于整理和加工,建模工作量小。缺點為機器學習算法需要大量樣本數據進行模型訓練,而以油田作為研究對象,樣本數據少,容易發(fā)生過擬合,模型遷移難度大。
在油井產量智能預測方面,通過分析人工神經網絡在油氣工業(yè)的應用,總結出油田開發(fā)領域應用人工神經網絡的方法論。主要包括特征選擇及數據采集、數據集劃分、數據標準化和模型訓練4 個步驟。谷建偉[25]基于產油量變化的時間序列數據特征,提出利用長短時記憶循環(huán)神經網絡模型實現(xiàn)具有長時間記憶能力的油井生產時間序列預測。通過對結果進行分析,認為該方法可以較好的預測油井產量變化,部分油井預測不準確的原因為產油量突然大幅度增加、無預兆停產、大型作業(yè)措施和數據缺失等。油井產量預測的主要方法為基于油井的有效厚度、滲透率、產量和壓力等動靜態(tài)數據,建立預測模型。主要優(yōu)點為訓練樣本豐富多樣,模型魯棒性高,通用性強。缺點為單井產量波動大,每口井遞減規(guī)律差異明顯,逐口井分階段樣本標注困難,數據處理工作耗時。
可以看出,前人為了建立油田或者油井產量智能預測模型,分別利用不同方法構建了油田或者油井產量智能預測所需的訓練樣本數據,在此基礎上應用機器學習算法進行模型建立。油田樣本數量少,容易發(fā)生過擬合,遷移難度大。油井樣本數量多,模型魯棒性高,但數據處理工作量大。本文首次將油田和油井生產數據有機融合作為訓練樣本,建立產量智能預測模型,預測油田產量。首先采用無監(jiān)督學習的K均值聚類算法依據有效厚度、孔隙度、滲透率、飽和度等信息對油井進行聚類,識別油田中不同油井的產量遞減規(guī)律,并將每類油井轉換成一口典型油井作為該類油井的代表;其次,將典型井作為預測對象,通過從每類油井中按比例隨機抽取油井來增加訓練樣本數量,即將典型井和油井生產數據進行融合構建訓練樣本;最后,基于循環(huán)神經網絡能夠實現(xiàn)產量與壓差、儲層特征等影響因素之間的復雜映射,同時兼顧產量隨時間變化的趨勢和前后關聯(lián)的優(yōu)勢,利用堆疊去噪自編碼+長短時記憶循環(huán)神經網絡建立模型預測典型井產量,進而預測油田產量。
聚類是指將物理或抽象對象的集合分組為由類似的對象組成的多個類的分析過程。每類稱為一個簇,同一個簇中的對象彼此相似,不同簇中的對象彼此相異。
從油層物理角度看,聚類的同一類別內生產井的儲層物性和生產規(guī)律差異較小,不同聚類類別間生產井的儲層物性和生產規(guī)律差異較大。給定m×n的樣本X={x1,x2,...,xn},則樣本之間的距離dij為
式中,xki和xkj分別為第i個樣本和第j個樣本的第k個特征。
定義樣本到分類中心距離的和為最終損失函數,即
將多口油井轉換成一口具有代表性的典型油井。典型油井的日產油、日產液等動態(tài)指標等于多口油井的算數平均值,有效厚度、孔隙度、滲透率、壓力等靜態(tài)指標等于多口油井按單井控制儲量的加權平均值。
利用人工智能方法預測油井產量,影響因素作為預測模型的輸入,產量作為預測模型的輸出,屬于監(jiān)督學習。監(jiān)督學習算法需要“教材”供機器學習,即訓練樣本。油井生產訓練樣本是指油藏類型、地質條件、開發(fā)技術等影響因素與油井產量之間的對應關系。機器學習算法基于訓練樣本學習產量與影響因素之間的復雜映射關系,建立具有泛化能力的預測模型。
首先對油井生產階段進行標注,去除長期關井、修井、生產異常、數據缺失等非正常生產階段;其次綜合考慮開發(fā)層系、開發(fā)階段、含水階段、產量遞減率和含水上升率等指標,分別制定區(qū)塊/油井分組、油井生產階段和訓練樣本優(yōu)選的規(guī)則,測算指標范圍,制定油井訓練樣本選擇標準。最后依據選擇標準,標注油井生產訓練樣本。
與普通回歸任務不同,時間序列預測在時間上具有復雜的前后依賴關系。循環(huán)神經網絡的結構可以讓之前時間步中的有用信息持續(xù)保留并參與后續(xù)時間步的運算。然而,如果先前的相關信息所在的位置與當前時間的距離非常遠,由于不斷輸入數據的影響,模型中的記憶單元(單一的tanh層或sigmoid層)無法長期有效地保存全部歷史信息,容易產生梯度消失或者梯度爆炸等問題。
針對傳統(tǒng)的循環(huán)神經網絡存在的問題,Hochreiter等人針對網絡結構進行改進,提出了長短期記憶神經網絡(Long Short-Term Memory,簡稱LSTM)。
該模型是一種在循環(huán)網絡中具有4 個相互作用層的循環(huán)神經網絡,它改進了傳統(tǒng)網格模型中的記憶模塊。通過增加門結構和記憶單元狀態(tài),使得LSTM可以讓時間序列中的關鍵信息進行有效的更新和傳遞,有效的將長距離信息保存在隱藏層中。由于信息可以在循環(huán)神經網絡中自由流動,基于該方法預測油田產量綜合考慮了產量隨時間變化的連貫性,更加符合實際生產情況。
LSTM中的隱藏層的循環(huán)網絡包含遺忘門、輸入門、輸出門和1 個tanh層,如圖1 所示。
第1 個交互層被稱為遺忘門層,它決定當前步驟遺忘的信息。遺忘門的計算方法可表示為:
第2 個交互層被稱為輸入門層,它決定了哪些新的信息應該添加到處理器狀態(tài)中。輸入門層的sigmoid函數決定了要更新的數值,計算方法可表示為:
第3 個交互層被稱為tanh層,它創(chuàng)建了一個可以添加到處理器狀態(tài)中的新候選值,增加到神經元狀態(tài)中。這一層計算得到的值經過tanh函數運算,使結果趨于平穩(wěn)狀態(tài)。計算方法可表示為:
在上述3 層計算之后,攜帶信息的處理器狀態(tài)Ct-1與包含新信息的候選值結合求和,計算方法可表示為:
最后一層是輸出門層,它基于更新后的處理器狀態(tài)生成LSTM的輸出值,是建立在神經元狀態(tài)基礎上更新的版本。
首先,sigmoid層決定哪一部分的神經元狀態(tài)需要被輸出,然后神經元狀態(tài)經過tanh層并與sigmoid門的輸出相乘得到輸出結果。計算方法可表示為:
處理器狀態(tài)有選擇的保存先前時間步驟中的有用信息并貫穿整個LSTM。交互層中的門結構可以根據上一時間步的隱藏狀態(tài)和當前時間步驟的輸入信息對處理器狀態(tài)中的信息進行增加、刪除和更新操作,更新后的處理器狀態(tài)和隱藏狀態(tài)向后傳遞。
方法流程主要包含油田開發(fā)現(xiàn)狀分析、油井聚類分析、訓練樣本標注和產量預測模型構建4 個步驟,如圖2 所示。

圖2 機器學習模型技術路線圖Fig. 2 Machine learning model technology roadmap
油田開發(fā)現(xiàn)狀分析。分析油田的儲層、流體和開發(fā)歷程等基礎信息,重點分析油田的產量變化情況,確定產量遞減的范圍。
油井聚類分析。利用霍普金斯統(tǒng)計量進行油井聚類趨勢評估,利用“肘方法”確定聚類,利用K均值聚類算法對油井進行聚類分組。依據聚類分析結果,將每類油井轉換成一口油井作為該類油井生產規(guī)律的代表。
訓練樣本標注。提出油井生產數據訓練樣本標注方法與流程。依據油田開發(fā)現(xiàn)狀分析結果,刪除因套損、水淹等導致的長期關井及生產數據缺失等生產異常階段,將油井正常生產階段的生產狀態(tài)和與之對應的產量標注為一個訓練樣本。從每類油井中按比例抽取一部分油井,將典型井和抽取的油井共同作為樣本進行訓練樣本標注,建立樣本集合。
產量預測模型構建。利用皮爾森相關分析方法分析油井產量的主控因素,確定模型的輸入特征;將數據集劃分為訓練集和測試集,訓練集用于模型訓練,測試集用于結果驗證;利用長短時記憶循環(huán)神經網絡建立產量預測模型。
以國內某背斜構造中高滲砂巖油藏作為研究對象。該油田共發(fā)育三套油層,地層厚度約500 m。具有統(tǒng)一的壓力系統(tǒng)和油水界面,底水、邊水不活躍。原油粘度從8.3 至9.2 mPa·s,地飽壓差較小。
該油田采用早期注水開發(fā),注采比大于1.1,地層壓力保持水平高。自1963 年投入開發(fā)以來,該油田經過多次加密。目前共有生產井近700 口,其中采油井370 口。目前,油田年產油量近30 萬t,綜合含水95.3%。油田分為兩套開發(fā)層系進行開采,A油層日產油530 t,自然遞減率為4.4%左右,單井日產油2.6 t;B油層日產油290 t,自然遞減率為3.1%左右,單井日產油1.9 t,兩套開發(fā)層系產量規(guī)模與遞減規(guī)律不同,如圖3 所示。

圖3 日產油生產運行曲線Fig. 3 Daily oil production running curve
由于不同投產批次油井生產時間不同,目前單井日產油最大值為12.5 t,最小值為0.3 t,平均值為2.3 t,方差為2.1;油井含水率最大值為96.5%,最小值為78.2%,方差為6.8%。不同投產批次油井之間產油能力差別較大。措施增油方式以調參、換泵、補孔和壓裂為主,其產量占總產量的7%左右。
綜上所述,該油田具有開發(fā)層系多、生產歷史長、油井投產批次多、處于特高含水后期等特點,將油田作為一個整體進行產量預測無法體現(xiàn)不同投產批次油井的各自的生產特點;利用常規(guī)油藏工程方法依據儲層特性、投產批次、含水階段等特征對油井分組,并按分組進行產量預測難度大,且工作量大。本文擬利用基于聚類及長短時記憶神經網絡的油田產量預測方法,提高預測精度和工作效率。
3.2.1 聚類趨勢評估
霍普金斯統(tǒng)計用于通過測量給定數據集由統(tǒng)一數據分布生成的概率來評估數據集的聚類趨勢。如果數據集聚類趨勢不明顯,則霍普金斯統(tǒng)計量的值接近0.5;如果數據集有明顯的聚類趨勢,則其值接近1。計算370 口油井生產數據的霍普金斯統(tǒng)計量為0.88,說明數據集有明顯的聚類趨勢。
3.2.2 確定聚類數目K值
利用“肘方法”[26]確定聚類的K值,即計算數據集中所有樣本點到聚類中心的簇內誤差平方和(within-cluster sum of squared errors , SSE),根據SSE隨K的變化選取K值。
圖4 為“肘方法”確定K值的示意圖。隨著K值的增加,SSE逐漸減小,當K值等于3 時,SSE 減小變化緩慢,如圖4 所示,紅色圓圈內的值為K值。因此K-Means 將把數據集分為3 個聚類類別。

圖4 “肘方法”確定聚類的K值Fig. 4 Diagram of elbow method determining value of K
3.2.3 聚類結果
按照有效厚度、滲透率、井距、日產油、累產油、采出程度、靜壓和流壓進行油井聚類分析,聚類分析結果圖,表現(xiàn)出良好的聚類特性,如圖5 所示。數據被分到紅、黃、藍三簇,每一類內部的油井彼此距離相近,不同類別之間的油井距離較遠。

圖5 聚類分析結果Fig. 5 The result of cluster
依據聚類分析結果,不同類別油井的平均單井日產油差異較大,如圖6 所示。類別1 的油井產量較低,平均單井日產油水平在1 t左右,產量比較平穩(wěn);類別2 的平均單井日產油水平在2 t左右;類別3 的油井產量最高,平均單井日產油水平在5 t左右,產量波動明顯。將每一類油井轉換成一口典型油井。

圖6 不同類別油井平均日產油曲線Fig. 6 Average daily production curve of different types of wells
3.3.1 樣本標注流程
首先,通過油田開發(fā)生產現(xiàn)狀分析,對油井進行聚類分組。針對每個油井分組,按照不同含水階段,分別計算產量遞減率和含水上升率;其次,針對每一口油井,從單井生產曲線上選擇接近所屬分組生產規(guī)律的階段作為訓練樣本,主要考慮的指標為產量遞減率和含水上升率。為了降低模型復雜度,不考慮措施增油階段,只標注老井遞減階段;為了保證油井生產有一定的連續(xù)性,且符合油井產量人工智能預測算法的要求,選擇連續(xù)生產時間不少于12 個月的生產階段;單井產量遞減率和含水上升率以所述油井分組的產量遞減率和含水上升率為中心上下波動,通過計算機自動標注訓練樣本和專家手動標注訓練樣本的符合率來測算波動范圍,如圖7 所示。

圖7 樣本標注流程Fig. 7 Sample annotation flow chart
3.3.2 建立樣本集合
從每一分類中隨機抽取30%的油井進行訓練樣本標注,針對抽樣的油井按照不同含水階段進行標注,一口井可以標注多個樣本,共標注樣本3500 個。按照機器學習中監(jiān)督學習算法對訓練樣本的要求,構建模型訓練需要的輸入(x)和輸出(y)。輸入(x)為某一階段的油井生產狀態(tài)信息,包括日產油、含水率、流壓、動液面、累產油和累產液等數據;輸出(y)為下一階段油井的日產油和含水率數據,如圖8 所示。

圖8 油井訓練樣本示意圖Fig. 8 Schematic diagram of oil well training sample
3.4.1 特征分析
依據水驅油田生產特征及油田開發(fā)歷史數據,定性篩選出15 個特征:有效厚度、滲透率、井距、日產油、日產水、含水率、累產油、累產液、累產水、采出程度、靜壓、流壓、泵深、沖程、沖次。
采用皮爾遜相關系數度量兩個變量X和Y之間的相關程度,其值介于-1 與1 之間。相關系數的絕對值越大,相關性越強。絕對值在0.8 至1.0 之間表示極強相關;絕對值在0.6 至0.8 之間表示強相關。基于定性分析結果,采用皮爾遜相關系數進行定量分析。取相關性絕對值大于0.6 的特征作為模型的輸入。確定模型輸入的特征為日產油、日產水、累產油、含水率、流壓、累產液和滲透率,如圖9 所示。

圖9 特征相關性定量分析Fig. 9 Quantitative analysis of feature correlation
3.4.2 數據集劃分
本文選取2020 年1 月至2020 年12 月的數據作為驗證集,2021 年1 月至2021 年12 月的數據作為測試集,其余訓練樣本全部作為訓練集。
為了保證模型訓練與產量預測結果的穩(wěn)定性,本文采用歸一化處理方法,將其映射到[0,1]區(qū)間,線性變換式為:
3.4.3 模型訓練
本文實驗驗證采用Tensorflow開源平臺作為深度學習平臺,采用Python 3.7 編寫實驗程序,同時使用了一些第三方庫,如使用Sklearn、Numpy計算技術指標,使用Keras搭建網絡結構。
選用長短時記憶神經網絡算法作為模型的學習器。損失函數(loss function)使用均方誤差(Mean Square Error, MSE),計算方法表示為:
優(yōu)化器(optimizer)使用“adam”,用來計算神經網絡每個參數的自適應學習率。采用Dropout(按照一定的比例將神經元暫時從網絡中丟棄)方法防止過擬合,Dropout的比例為30%。
由于不同油井在平面和縱向物性差異大,造成不同層系、不同開發(fā)階段產量差異較大,而平均絕對百分誤差(Mean Absolute Percentage Error,MAPE)通過計算相對值可以消除產量差異大的影響,因此本文采用相對誤差(1-MAPE )作為模型精度評價標準。
針對訓練樣本,去掉實體名稱(油田名和井名等)和生產時間,只按照生產年月的前后順序保留每個實體的靜態(tài)數據和生產動態(tài)數據,針對每個樣本單獨建立監(jiān)督學習算法所需的訓練樣本。
采用文獻[20]中的模型訓練與自動調優(yōu)方法,最終確定模型的主要超參數組合,如表1 所示。

表1 模型主要參數Table 1 Main parameters of the model
3.4.4 產量預測
將3 口典型油井2020 年的日產油、日產水、累產油、含水率、流壓、累產液和滲透率數據輸入產量預測模型,得到未來三年的預測產油量,如圖10 所示。

圖10 油井產量預測曲線Fig. 10 Well production prediction curve
計算3 口典型井的年產油量,再分別乘以所屬油井分組的井數,即可得到該油井分組的年產油量。與2021 年實際值進行對比分析,分組3 由于產量波動較大,年產量相對誤差較大,達到7.5%;分組1 和分組2 的年產量相對誤差分別為2.1%和3.9%;油田2021年產量的相對誤差為5.6%,2022 年與2023 年產量緩慢遞減,符合現(xiàn)場生產趨勢,如表2 所示。

表2 實際產量與預測產量誤差分析Table 2 Error analysis of actual production and prediction production
為了驗證本文方法的優(yōu)越性,與以下3 種方法的預測結果進行對比:方法一:將該油田生產數據作為訓練樣本,利用機器學習方法建立油田產量智能預測模型,預測2021 年產量;方法二:將全部油井生產數據作為訓練樣本,利用機器學習方法建立油井產量智能預測模型,預測每口油井2021 年的產量,累加匯總成油田產量;方法三:利用水驅特征曲線預測油田2021 年產量。
從預測結果可以看出:方法一由于訓練樣本數量較少,模型建立時間短,預測精度不高,為87.8%;方法二需要對所有井進行樣本標注,耗時最長,預測精度達到92.5%。對預測結果進行分析,發(fā)現(xiàn)部分關井、產量突然大幅波動的油井預測誤差較大,從而降低了油田的預測精度;由于該油田處于特高含水階段,方法三的預測結果出現(xiàn)了“上翹”現(xiàn)象,預測精度為92.1%;本文方法通過聚類分析,雖然減少了樣本數量,但是增加了樣本的代表性,縮短了時間,卻提高預測精度,達到94.4%,如表3 所示。綜上所述,本文方法適用于具有一定規(guī)模油井的油田產量預測,通過油井聚類分析增加訓練樣本數量,利用神經網絡模型實現(xiàn)產量預測。

表3 不同方法預測結果對比Table 3 Comparison of prediction results of different methods
機器學習是一項通用技術,應用到油田產量預測時,應結合油田生產特征和油田生產數據特點,靈活有效的構建機器學習所需要的訓練樣本數據,提高模型構建效率和預測精度。
(1)基于無監(jiān)督學習的K均值聚類算法根據油井產量對油井遞減趨勢進行聚類,可以快速識別油井產量遞減類型,使同一類別中的油井具有相似的產量變化規(guī)律,不同類別之間油井產量變化趨勢差異較大;
(2)從每類油井中按比例隨機抽取油井進行訓練樣本標注,與使用油田生產數據作為訓練樣本相比,可以增加機器學習所需的訓練樣本數量,提高模型預測精度;與使用全部油井生產數據作為訓練樣本相比,在保證預測精度的同時,可以減少數據處理工作量;
(3)通過分析油田開發(fā)歷程及生產特征,剔除油井長期關井、數據異常等階段,建立油井某一階段的產量和與之對應的生產制度,有助于機器學習方法尋找產量和影響因素之間的因果關系,提高模型的預測精度;
(4)將具有相似產量變化趨勢的一類油井轉換成一口典型油井,使典型井可以代表該類井的生產特點,又可以降低單井產量的波動性,提高產量數據的平穩(wěn)性,使產量預測結果更加準確。