趙洪濤,李金澤,楊 毅,趙洪緒,房鑫磊,于偉強
(1.中法渤海地質(zhì)服務(wù)有限公司,天津 300457;2.中海石油(中國)有限公司天津分公司,天津 300459)
掌握油井產(chǎn)量變化規(guī)律是實現(xiàn)油田高效生產(chǎn)與管理的關(guān)鍵[1]。由于油藏地質(zhì)、舉升工藝、作業(yè)措施、管理水平等均具有復(fù)雜性,油井產(chǎn)量的影響因素眾多,為準確預(yù)測油井產(chǎn)量帶來巨大挑戰(zhàn)[2]。傳統(tǒng)的產(chǎn)量預(yù)測多采用基于滲流理論的油藏工程方法或者油藏數(shù)值模擬方法[3-5],然而,這些傳統(tǒng)方法或者因基于理想滲流情況而不能反映實際儲層滲流情況,或者因需要大量地質(zhì)、流體物性和開發(fā)動態(tài)等方面的數(shù)據(jù),致使結(jié)果受歷史擬合和地質(zhì)建模的影響[6]。
近年來,隨著人工智能技術(shù)發(fā)展,機器學(xué)習(xí)方法被大量用于油井產(chǎn)量預(yù)測,并取得了良好的預(yù)測效果[7-12]。2018年,Loh等人[13]將長短期記憶神經(jīng)網(wǎng)絡(luò)(LSTM)用于短期產(chǎn)量預(yù)測,可以準確捕捉生產(chǎn)動態(tài)并預(yù)測短期生產(chǎn)。周于浩等[14]構(gòu)建了基于門控遞歸單元(GRU)的神經(jīng)網(wǎng)絡(luò)產(chǎn)量預(yù)測模型,相比于長短期記憶神經(jīng)網(wǎng)絡(luò)而言,門控遞歸單元方法可大幅減少運行參數(shù),提高運算及記憶性能。2021年,Cheng & Yang[15]研究指出,長短期記憶神經(jīng)網(wǎng)絡(luò)適合用于特征參數(shù)多和數(shù)據(jù)量多的開發(fā)區(qū),而門控遞歸單元適用于數(shù)據(jù)較少的開發(fā)區(qū)。2019年,谷建偉等[16]選取排量、泵深、生產(chǎn)時間、含水率、動液面、氣油比、鄰井注水量和鄰井產(chǎn)液量作為影響油井產(chǎn)量的參數(shù),建立長短期記憶神經(jīng)網(wǎng)絡(luò)油井產(chǎn)量預(yù)測模型,實現(xiàn)油井產(chǎn)量準確預(yù)測。2020年,劉巍等[1]考慮油井和周圍注水井的油藏靜態(tài)資料和開發(fā)動態(tài)參數(shù),建立了一種利用機器學(xué)習(xí)模型實現(xiàn)油井日產(chǎn)油量的快速預(yù)測方法。王洪亮等[17]在對32個產(chǎn)量影響因素分析的基礎(chǔ)上,采用長短期記憶神經(jīng)網(wǎng)絡(luò)模型進行產(chǎn)量預(yù)測,發(fā)現(xiàn)該方法的預(yù)測結(jié)果優(yōu)于傳統(tǒng)水驅(qū)曲線方法和全連接神經(jīng)網(wǎng)絡(luò)(FCNN)方法。2021年,張瑞和賈虎[18]將井組內(nèi)不同生產(chǎn)井產(chǎn)油量和注水井注水量作為相關(guān)時間序列,建立基于多變量時間序列(MTS)和向量自回歸(VAR)機器學(xué)習(xí)模型的油井產(chǎn)量預(yù)測方法。2022年,Ng等[19]利用元啟發(fā)式算法(MA)和機器學(xué)習(xí)算法對Volve油田生產(chǎn)數(shù)據(jù)進行產(chǎn)量預(yù)測研究,并對7種數(shù)據(jù)驅(qū)動模型的預(yù)測性能進行評價,發(fā)現(xiàn)長短期記憶神經(jīng)網(wǎng)絡(luò)在訓(xùn)練結(jié)果和預(yù)測準確性方面均優(yōu)于其他6個模型。
從現(xiàn)有研究來看,采用長短期記憶神經(jīng)網(wǎng)絡(luò)方法可以獲得較好的油井產(chǎn)量預(yù)測效果。但大多數(shù)研究方法所需的參數(shù)較多,數(shù)據(jù)收集困難,并且往往將注水井總注入量作為一個特征參數(shù)來考慮,未考慮分層注水對油井產(chǎn)量的影響。本文以分層注水區(qū)塊為研究對象,首先采用平均不純度減少(MDI)方法分析區(qū)塊中所有分注層段對單井產(chǎn)量和含水率的影響程度;然后,根據(jù)重要性確定出主要的分注層段,實現(xiàn)數(shù)據(jù)降維;最后,利用篩選出的分注層段的注水?dāng)?shù)據(jù)以及油井日產(chǎn)量和含水率數(shù)據(jù)對長短期記憶神經(jīng)網(wǎng)絡(luò)模型進行訓(xùn)練和優(yōu)化,得到最終的單口油井產(chǎn)量和含水率預(yù)測模型。為簡便、快捷、準確預(yù)測油井產(chǎn)量和含水率變化提供一種新的手段。
油井產(chǎn)量受儲量、儲層物性、舉升工藝、儲層措施、油水井?dāng)?shù)量、采油速度、生產(chǎn)時間等因素影響[1,20],其最終關(guān)系表現(xiàn)在注入井和生產(chǎn)井的參數(shù)上。本文將中間影響因素作為“黑盒子”,僅考慮注入量與采出量之間的關(guān)聯(lián)關(guān)系。對于一個分層注水的井組來講,距離和層位不同的注水層段對生產(chǎn)井的貢獻不同。為了降低計算維度、提高計算精度,有必要對影響油井產(chǎn)量和含水率的主要注水層段特征參數(shù)進行篩選。
目前機器學(xué)習(xí)中常用的特征參數(shù)提取方法主要有過濾法、包裹法和嵌入法。三種方法的優(yōu)缺點如表1所示。
表1 特征參數(shù)提取方法比較
由表1可以看出,嵌入法在解決過擬合、參數(shù)忽略等方面具有較大優(yōu)勢,而基于正則項的特征選擇方法不利于優(yōu)化求解[21],因此本文最終采用了基于隨機森林的特征選擇方法。隨機森林是一種集成學(xué)習(xí)算法,被廣泛應(yīng)用于研究各種分類、預(yù)測、特征選擇等問題[19]。算法提供了平均不純度減少(MDI)和平均精確度減少(MDA)兩種特征選擇方法。平均不純度減少表示每個特征對誤差的平均減少程度,常用于確定特征的重要性。對于每一個特征,計算其在每棵決策樹中減少的不純度,然后求其平均值,得到該特征減少的平均不純度。平均不純度減少越多,說明在決策樹訓(xùn)練過程中的作用越大,則該特征的重要程度越大[22]。平均精確度減少是通過打亂某個特征的特征值順序,度量順序變動對于模型精確率的影響。對于不重要的特征,打亂順序?qū)δP偷木_率影響不會太大;但是對于重要的特征,打亂順序就會降低模型的精確率[23]。這兩種特征重要性評估方法對異常值和噪聲具有很好的容忍度,不易出現(xiàn)過度擬合等現(xiàn)象[24]。本文選用平均不純度減少方法篩選影響油井產(chǎn)量和含水率的主要注水層段特征參數(shù)[1]。
遞歸神經(jīng)網(wǎng)絡(luò)(RNN)具有自循環(huán)結(jié)構(gòu),可以將前一時刻的信息傳遞到下一時刻的計算中,使遞歸神經(jīng)網(wǎng)絡(luò)的輸出同時受當(dāng)前時刻輸入和過去所有時刻輸入的共同影響[25]。因此遞歸神經(jīng)網(wǎng)絡(luò)在解決時間序列問題方面具有明顯優(yōu)勢。遞歸神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)如圖1所示。
圖1 遞歸神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
在t=0時刻,對U、V、W進行隨機初始化,該時刻的狀態(tài)h0通常初始化為0;在t=1時刻,其隱藏狀態(tài)h1和輸出o1表示為:
h1=f(Ux1+Wh0)
(1)
o1=g(Vh1)
(2)
式中:h0,h1分別為t=0,1時刻的隱藏狀態(tài);f為輸入層激活函數(shù),通常為tanh、ReLU、logistic;g為輸出層激活函數(shù),通常為softmax;U為從輸入層到隱藏層的權(quán)重;V為從隱藏層到輸出層的權(quán)重;W為從隱藏層到隱藏層的權(quán)重;x1為t=1時刻的輸入;o1為t=1時刻的輸出。
當(dāng)t=2時,隱藏狀態(tài)h1作為記憶狀態(tài)參與本時刻的預(yù)測活動,即:
h2=f(Ux2+Wh1)
(3)
o2=g(Vh2)
(4)
式中:h2為t=2時刻的隱藏狀態(tài);x2為t=2時刻的輸入;o2為t=2時刻的輸出。
以此類推,遞歸神經(jīng)網(wǎng)絡(luò)的計算公式為:
ht=f(Uxt+Wht-1)
(5)
ot=g(Vht)
(6)
式中:ht、ht-1為t、t-1時刻的隱藏狀態(tài);xt為t時刻的輸入;ot為t時刻的輸出。
長短期記憶神經(jīng)網(wǎng)絡(luò)是一種改進的遞歸神經(jīng)網(wǎng)絡(luò),其準確性、計算速度和可靠性優(yōu)于遞歸神經(jīng)網(wǎng)絡(luò),因此適用于油田生產(chǎn)的長時時序預(yù)測。長短期記憶神經(jīng)網(wǎng)絡(luò)在遞歸神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上增加了輸入門、輸出門和遺忘門,其結(jié)構(gòu)如圖2所示。
圖2 長短期記憶神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
在t時刻,長短期記憶神經(jīng)網(wǎng)絡(luò)單元通過處理輸入狀態(tài)xt、短期隱藏狀態(tài)ht-1和長期隱藏狀態(tài)ct-1來生成輸出狀態(tài)yt。長期隱藏狀態(tài)ct-1包含t時刻之前時間步的相關(guān)信息,短期隱藏狀態(tài)ht-1包含上一個時間步的信息。
遺忘門決定t時刻ct-1被遺忘的部分,通過執(zhí)行ft和ct-1之間的數(shù)組元素相乘來實現(xiàn),當(dāng)ct-1里的元素被0相乘則全部遺忘,被1相乘則全部保留。輸入門通過執(zhí)行g(shù)t和it之間的數(shù)組元素相乘來決定在長期隱藏狀態(tài)中g(shù)t被保存的部分。遺忘門信息(ft?ct-1)和輸入門信息(gt?it)相結(jié)合得到時刻t的長期隱藏狀態(tài)(ct),表達式為:
ct=ft?ct-1+gt?it
(7)
式中:?表示數(shù)組元素依次相乘。
輸出門處理新的長期隱藏狀態(tài)ct和輸出向量ot來生成新的短期隱藏狀態(tài)ht,表達式為:
ht=ot?f(ct)
(8)
輸入狀態(tài)xt和短期隱藏狀態(tài)ht-1通過全連接層FC進行處理,其中g(shù)t、ft、it、ot分別為:
(9)
(10)
(11)
(12)
式中:l為非線性激活函數(shù),一般為tanh或ReLU;σ為激活函數(shù),通常為Sigmoid;ft、gt及it、ot分別為控制遺忘門、輸入門和輸出門,值由激活函數(shù)σ和l決定,取值范圍[0~1];Wxg、Wxf、Wxi、Wxo分別為四個全連接層處理輸入xt的權(quán)重矩陣;Whg、Whf、Whi、Who分別為四個全連接層處理短期隱藏狀態(tài)ht-1的權(quán)重矩陣;bg、bf、bi、bo為偏置項。
長短期記憶神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練的好壞采用決定系數(shù)和平均相對誤差來評價。
對數(shù)據(jù)進行歸一化可以提升長短期記憶神經(jīng)網(wǎng)絡(luò)模型計算精度,讓不同維度之間的特征在數(shù)值上有一定的可比性。同時,數(shù)據(jù)歸一化還可以提升長短期記憶神經(jīng)網(wǎng)絡(luò)模型的收斂速度,更容易收斂得到最優(yōu)解。
本文采取最大最小歸一化方法將數(shù)據(jù)映射到[0,1]區(qū)間[1],計算公式如下:
(13)
式中:X為某特征(如分層注水量、油井產(chǎn)量、含水率)歸一化后的數(shù)據(jù);x為某特征(如分層注水量、油井產(chǎn)量、含水率)待歸一化的數(shù)據(jù);xmin為該特征的最小值;xmax為該特征的最大值。
基于長短期記憶神經(jīng)網(wǎng)絡(luò)的油井產(chǎn)液量和含水率預(yù)測步驟包括:①確定數(shù)據(jù)集并將數(shù)據(jù)集劃分為訓(xùn)練集和測試集;②利用平均不純度減少方法分析井組中所有注水井的各個注水層段對每口油井產(chǎn)液量和含水率的重要程度,篩選出影響每口油井產(chǎn)液量和含水率的主要注水層段;③對各個注水層段注水量、油井產(chǎn)液量和含水率分別進行歸一化處理,建立歸一化的機器學(xué)習(xí)數(shù)據(jù)集;④利用訓(xùn)練集數(shù)據(jù)訓(xùn)練長短期記憶神經(jīng)網(wǎng)絡(luò)模型,得到預(yù)測模型;⑤利用測試集數(shù)據(jù)測試長短期記憶神經(jīng)網(wǎng)絡(luò)模型的預(yù)測效果。
以海上某區(qū)塊作為研究對象,該區(qū)塊描述含油砂體16個、潛力含油砂體18個,探明石油地質(zhì)儲量750×104t、潛力石油地質(zhì)儲量近1 000×104t[17]。目前共有生產(chǎn)井60口、分層注水井44口。根據(jù)斷層情況,該區(qū)塊劃分成10個注采井組。選取其中一個井組作為預(yù)測油井產(chǎn)液量和含水率的研究對象。該井組于2015年11月30日投產(chǎn),最初采用合注方式生產(chǎn),2019年8月16日開始采取分注措施,目前包括20口生產(chǎn)井和13口注水井。本文以研究分層注水量對油井產(chǎn)液量和含水率的影響為目的,選取注水井各分層注水量為特征參數(shù),不考慮油井之間的相互影響,收集和整理自分注開始至2021年2月13日的分層注水量、油井日產(chǎn)液量和油井含水率數(shù)據(jù),并進行研究。該區(qū)塊生產(chǎn)井產(chǎn)液量和含水率波動大,采用傳統(tǒng)的油藏工程方法難以進行生產(chǎn)預(yù)測。
利用平均不純度減少方法進行特征選擇的目的是分析井組內(nèi)各個注水井層段注水量對每口生產(chǎn)井產(chǎn)液量和含水率的影響程度,剔除影響較小的注水井層段,實現(xiàn)特征參數(shù)空間維數(shù)的壓縮,以提高長短期記憶神經(jīng)網(wǎng)絡(luò)訓(xùn)練模型的準確度。以生產(chǎn)井B29井為例,利用隨機森林分類函數(shù)進行平均不純度減少分析,計算各個注水井層段的重要性,結(jié)果如圖3所示。
圖3 B29井平均不純度減少特征重要性桿狀圖
圖3橫坐標(biāo)為井組內(nèi)所有注水井各個注水層段的平均不純度減少值(即特征重要性),平均不純度減少值越大說明該層段的注水量對B29井產(chǎn)液量和含水率的影響越大。從圖中可以看出:S-4、S-3和R-2三個層段對B29井產(chǎn)液量和含水率的影響大。剔除排序靠后的、累計值為15%的16個注水層段,保留前24個注水層段作為LSTM的輸入特征參數(shù)。
長短期記憶神經(jīng)網(wǎng)絡(luò)的邏輯是輸入前n天某口生產(chǎn)井的產(chǎn)液量和含水率以及篩選出的注水層段的注水量,預(yù)測第n+1天產(chǎn)液量和含水率;接著按照一定步長移動這個n天時間步,來預(yù)測下一個n+1天產(chǎn)液量和含水率,從而實現(xiàn)整個數(shù)據(jù)集的迭代計算。為了防止過度擬合,長短期記憶神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練過程中添加忽略層,在每次訓(xùn)練時隨機忽略一些神經(jīng)元(比例一般為20%~40%)。長短期記憶神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練過程中的其他網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)取值分別為:時間步長5 d、批次大小128、第一層內(nèi)神經(jīng)元數(shù)目128、第二層內(nèi)神經(jīng)元數(shù)目128、隨機忽略的神經(jīng)元比例20%、訓(xùn)練次數(shù)為480次。
根據(jù)B29井特征選擇結(jié)果剔除冗余特征后,剩余特征與B29井產(chǎn)液量和含水率構(gòu)成數(shù)據(jù)集,歸一化數(shù)據(jù)集后以82的比例將數(shù)據(jù)集劃分為訓(xùn)練集和測試集;然后利用選擇的超參數(shù)進行長短期記憶神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練,選擇均方誤差作為損失函數(shù);訓(xùn)練結(jié)束后反歸一化處理,計算決定系數(shù)和平均相對誤差來判斷訓(xùn)練模型的好壞。模型訓(xùn)練過程中訓(xùn)練集和測試集的損失函數(shù)隨訓(xùn)練次數(shù)的變化如圖4所示??梢钥闯觯?xùn)練集和測試集的損失函數(shù)隨訓(xùn)練次數(shù)的增加逐漸減小并趨于穩(wěn)定,且兩者非常接近,說明長短期記憶神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練過程中沒有出現(xiàn)過擬合或欠擬合現(xiàn)象。產(chǎn)液量和含水率擬合的決定系數(shù)分別為0.866和0.953、平均相對誤差分別為3.05%和2.15%,說明模型具有較高精度。
圖4 B29井訓(xùn)練集和測試集損失函數(shù)隨訓(xùn)練次數(shù)的變化
根據(jù)建立的長短期記憶神經(jīng)網(wǎng)絡(luò)模型,B29井產(chǎn)液量和含水率預(yù)測結(jié)果如圖5、圖6所示,產(chǎn)液量和含水率預(yù)測的決定系數(shù)分別為0.745和0.829,平均相對誤差分別為12.68%和4.45%。從預(yù)測結(jié)果可以看出,B29井長短期記憶神經(jīng)網(wǎng)絡(luò)模型的預(yù)測結(jié)果準確掌握了該井產(chǎn)液量和含水率的變化趨勢,部分日期的預(yù)測結(jié)果與實際結(jié)果對比,二者吻合度較高,相對誤差較小(表2)。
圖5 B29井測試集產(chǎn)液量預(yù)測結(jié)果
圖6 B29井測試集含水率預(yù)測結(jié)果
表2 B29井產(chǎn)液量和含水率預(yù)測值與實際值統(tǒng)計
采用相同的方法對井組內(nèi)其余生產(chǎn)井進行產(chǎn)液量和含水率預(yù)測,平均相對誤差統(tǒng)計結(jié)果如圖7所示。井組產(chǎn)液量和含水率平均誤差分別為6.22%和2.97%,能夠滿足現(xiàn)場工程應(yīng)用要求。利用訓(xùn)練好的模型,可以用于井組分層注水優(yōu)化,為現(xiàn)場注采方案調(diào)整提供依據(jù)。
圖7 井組所有生產(chǎn)井產(chǎn)液量和含水率平均相對誤差統(tǒng)計
(1)考慮油井生產(chǎn)動態(tài)數(shù)據(jù)的變化趨勢和前后關(guān)聯(lián)性,利用現(xiàn)場易得到的分層注水?dāng)?shù)據(jù)以及油井產(chǎn)量和含水率數(shù)據(jù),建立了一種基于長短期記憶神經(jīng)網(wǎng)絡(luò)的油井產(chǎn)量和含水率預(yù)測方法。
(2)現(xiàn)場實例應(yīng)用結(jié)果表明,基于注水井分層注水量為特征的LSTM模型可以很好地預(yù)測油井產(chǎn)液量和含水率變化,井組產(chǎn)液量和含水率平均誤差分別為6.22%和2.97%,預(yù)測精度能滿足現(xiàn)場工程應(yīng)用要求。
(3)基于平均不純度減少的特征選擇方法能夠有效篩選出影響油井產(chǎn)液量和含水率的主要注水層段,有助于認識生產(chǎn)井與注水層段之間的相互關(guān)系,同時為降低預(yù)測模型復(fù)雜度、提高計算效率奠定基礎(chǔ)。
(4)基于目前研究成果,可以進一步將區(qū)塊中各口油井之間的相互影響引入MDI分析和LSTM模型中,以考慮油井之間的干擾影響;此外,也可將建立的方法用于油井沉沒度、系統(tǒng)能耗、舉升效率等生產(chǎn)指標(biāo)的預(yù)測。