薛永超, 袁志乾,2, 金青爽, 張春輝, 趙天龍, 劉佳, 李海龍
(1.中國石油大學(北京)石油工程學院, 北京 102249; 2.中海石油(中國)有限公司天津分公司, 天津 300452;3.中國石油長慶油田分公司, 慶陽 745100)
油井產量預測是油田開發過程中的一項重要工作,準確的油井產量預測可以評估出油井的開發潛力,有助于整體全面的認識油藏,為改善油井的工作制度和制定合理高效的油田開發方案提供依據。
近年來,大數據、人工智能技術在智能油田中的運用成為熱點話題,這些技術的實現都以機器學習算法為基礎[1-4]。相關人員利用機器學習算法對油井產量預測開展了大量研究,應用多元回歸分析、支持向量機、神經網絡等方法建立了油井產量預測模型,實現了對油井日產量、初產或平均產量的預測。線性模型應用方面,谷建偉等[5]使用lasso算法進行了油井動態日產量預測;章雨等[6]基于多元線性回歸對環江油田長6儲層各井日產油量進行預測。但各因素對油田產量的影響是非線性的,這些線性模型很難刻畫。宋宣毅等[7]用灰狼算法優化支持向量機進行單井初期日產量預測,預測誤差小于12%,但支持向量機只適用于小樣本的預測,當數據集比較大時,難以應用。神經網絡的應用方面,李彥尊等[8]以美國Eagle Ford頁巖油氣田為例,用人工神經網絡方法預測頁巖油氣動態日產量,預測精度達90%;李智超等[9]用小波神經網絡做油田年產油量預測,相對誤差很低;陳娟等[10]用遺傳算法優化了網絡層,對長寧地區壓裂后頁巖氣水平井日產氣量進行了預測,平均誤差8.76%。神經網絡模型的應用效果很好,但其可解釋性差,無法解釋那個因素是主要影響因素。還有相關學者利用長短期記憶網絡和ARIMA-Kalman濾波器等建立了對油井產量的時間序列預測模型。例如,馬承杰[11]使用長短期記憶神經網絡進行油井動態日產量預測,相對于傳統神經網絡,長短期神經網絡能更好地捕捉時間序列信息,進行動態產能預測,但仍然無法解決神經網絡類模型解釋性差的問題;2018年,谷建偉等[12]用ARIMA-Kalman濾波器數據挖掘模型進行油井動態月產油量預測,但該方法考慮的因素比較單一,只考慮產量本身;2019年,谷建偉等[13]使用長短期神經網絡進行油井動態月產油量預測,平均誤差僅為1.46%;任燕龍等[14]用果蠅算法優化長短期記憶神經網絡網絡層進行油井動態日產油量預測,為神經網絡參數調整提供了智能算法。傳統機器學習在訓練模型時忽略了輸入特征數據間的內在聯系,無法充分提取特征信息,同時模型需要擬合的參數過多,直接影響了模型的最終預測精度。針對傳統機器學習的缺點,將深度森林算法應用于油井產量預測問題中,深度森林是一種基于隨機森林的深度學習算法[15],目前多用于圖像檢測和模式識別[16-17],其特有的多粒度掃描階段可以全方位、多層次的掃描輸入的特征,最大程度地獲取特征信息,為模型準確度提供保障,同時相比于其他機器學習算法,該算法擁有參數少、調參簡單、魯棒性好等優點,因此在面對不同領域的預測問題時均能取得不錯的效果。
現將深度森林算法應用于油井產量預測問題中,以油井的地質參數、壓裂參數等數據作為輸入特征,構建基于深度森林算法的油井產量預測模型,并對模型預測結果做出評估和分析,最終建立可以準確預測研究區塊油井產能的機器學習模型,為油井產能預測提供一種新方法。
隨機森林(random forest,RF)是一種機器集成學習算法,由Breiman在2001年首次提出[18]。集成學習通過構建多個學習器來完成指定的學習任務[19],隨機森林以決策樹作為基學習器,并在決策樹的基礎上引入了隨機屬性選擇。將樣本Y輸入到隨機森林模型后,模型會從輸入的樣本數據中有放回的隨機抽取數據,訓練N個決策樹模型,每棵決策樹會根據自身的屬性獨立的做出分類預測或者回歸預測,隨后將每棵決策樹的結果放在一起進行投票匯總。對于分類問題,得票數最高的類別即為預測類別;對于回歸問題,所有決策樹預測結果的平均值即為預測數值。隨機森林的分類決策過程可表示為

(1)
式(1)中:H(x)為分類結果;hi為第i個決策樹模型;I為度量函數;N為決策樹數量;y為目標變量。
深度森林(deep forest,DF)是Zhou等[20]在2017年提出的一種深度學習方法。相比于深度神經網絡(deep neural networks,DNN),深度森林參數較少,且對參數設置的敏感度不高,無需進行復雜的調參,且模型訓練容易,易于使用,并行的結構設計使其在處理跨域問題時仍能有不錯的表現。
1.2.1 多粒度掃描階段
多粒度掃描階段的目的是為了分析輸入的數據特征,挖掘特征間的順序關系。多粒度掃描應用了類似于卷積神經網絡(convolutional neural networks,CNN)的一個滑動窗口來提取特征,窗口在原始特征向量上滑動,然后將窗口選取出的特征用隨機森林進行信息提取。完整的多粒度掃描過程如圖1所示:首先輸入完整的具有P維特征的樣本數據,應用長度為k的滑動窗口提取特征,默認滑動步長為1,那么得到的k維特征子樣本向量數量S的計算公式為

圖1 多粒度掃描流程Fig.1 The procedure of multi-grained scanning
S=(P-k)+1
(2)
將所得向量分別代入不同的森林模型(默認為隨機森林模型和完全隨機森林模型)進行計算處理后輸出類概率向量,最后將不同模型輸出的類概率向量進行拼接,最終生成轉換特征向量,作為級聯森林的輸入向量。
經過多粒度掃描階段后,原本的數據特征維數得到了擴展,使得后續算法具有了處理特征順序的能力,增強了級聯森林階段。
1.2.2 級聯森林階段
級聯森林階段是深度森林進行深度學習的過程。級聯森林的每一級都由不同類型的森林模型組成(默認是隨機森林模型和完全隨機森林模型),不同類型的森林模型可以充分提取并學習輸入特征向量的信息,提高模型的預測準確度。
級聯森林階段流程如圖2所示,首先將多粒度掃描階段得到的轉換特征向量輸入到級聯森林的第一級中,經過不同的森林模型處理后得到增強向量,將生成的增強向量與原先的轉換特征向量進行拼接,得到的新向量作為下一級的輸入向量,將最后一級生成的增強向量進行回歸取平均值得到最終結果。

圖2 級聯森林流程Fig.2 The procedure of cascade forest
模型過擬合會導致模型在面對訓練集以外的數據時表現很差,為避免該情況發生,每一個森林模型所產生的增強向量均由k折交叉驗證得到。級聯森林的級數由算法自動確定,當模型連續三級的訓練中性能沒有提升,則終止級聯森林過程。
進行特征選擇是構建預測模型前的必要工作,從多維特征中提取最重要的特征參數有利于提升模型的精度和泛化能力[21]。平均不純度減少 (mean decrease impurity,MDI)方法是一種基于隨機森林的特征選擇方法,該方法以添加該特征后預測誤差的減小程度作為特征重要性的評價依據。決策樹通過計算不純度減少程度來選擇特征生成節點,每個特征使模型減少的不純度即為這個特征的重要程度。設有n個特征,模型的初始誤差為e0,向模型中添加某個特征節點后模型的誤差為ei,那么該特征的重要性Mi可表示為

(3)
按照式(3)依次計算每個特征的重要性,并按重要性大小將特征進行排列。對于重要性高的特征予以保留;對于重要性低的特征,觀察剔除該特征后對模型精度的影響,若模型精度變化不大,則說明該特征是冗余特征可以剔除,若模型精度變化大則予以保留。
建立模型后需要借助評價指標來直觀反映評價模型的精度和泛化能力[22],常用的評價指標有均方根誤差(root mean square error,RMSE)、平均相對誤差(mean relative error,MRE)、決定系數R2等。本文中選取RMSE、MRE、R2作為模型評價指標。
均方根誤差計算公式為

(4)

平均相對誤差計算公式為

(5)
決定系數計算公式為

(6)
選取H152油藏作為研究對象,H152油藏位于鄂爾多斯盆地南部沉積中心,屬于低孔低滲透油藏。該油藏1996年投入開發,截至目前,全區動用含油面積48.7×104km2,動用地質儲量2 435×104t,綜合含水率67.6%,采出程度13.73%。研究選取該井區典型生產井242口作為產量預測研究對象,產量預測目標為每口生產井開井生產半年內的月均產油量,因為開井生產半年內一般不會采取大規模的增產措施,此時的產量最能直接反映一口井的產油能力。
完成樣本選取后,將樣本數據劃分為訓練集、驗證集、測試集三類。其中訓練集數據用于訓練模型,確定模型中的假設函數參數;驗證集數據用于優化模型超參數,選取表現最優的超參數組合,確定最優模型;測試集數據用于對模型進行性能評估。將242口樣本井數據以6∶2∶2的比例劃分訓練集、驗證集和測試集,即152口井數據用于訓練模型,45口井數據用于優選超參數,45口井數據用于評估模型。
2.3.1 缺失值處理
全面分析并選取可能影響油井產量的特征因素,包含孔隙度、滲透率、有效厚度、含水飽和度、泥質含量、電阻率、射孔厚度、井底流壓、生產壓差、井位置、入地總液量共計11種特征因素。經統計,在2 662個數據點上共有235個數據缺失,數據缺失率處于正常范圍之內,數據缺失分布如圖3所示。

圖3 缺失值分布Fig.3 Missing value distribution
針對缺失值,采取K最鄰近算法(K-nearest neighbor,KNN)填補缺失值。該方法選取與缺失數據點距離最近的K個數據點的數據平均值作為填補值,對缺失數據進行填補,這里采用的距離通常是歐氏距離。本文中K值取5,即選擇與缺失數據點最鄰近的5個數據點的平均值作為填補值。經過相關計算后,235個數據缺失均成功被填補。
2.3.2 標準化處理
在建立預測模型前,需要對數據進行標準化處理。本文中選取Z-Score標準化方法,即

(7)
式(7)中:x為個體觀測值;μ為總體數據平均值;σ為總體數據標準差。
經過標準化處理后,不同量級的數據轉化為同一量級,統一用計算出的Z-Score衡量,這有助于提升模型的收斂速度和預測精度。
應用MDI特征選擇方法對可能影響油井產量的11種特征參數進行分析,通過式(4)計算每個特征的重要性,各個特征重要性計算結果如圖4所示。

圖4 特征參數重要性柱狀圖Fig.4 Column of feature parameter importance
從計算結果可以看出入地總液量對產量的影響最大,入地總液量是描述壓裂的重要參數,H152油藏屬于低滲透油藏,油井不壓裂便沒有產能,因此影響最大,此外有效厚度和生產壓差對產量的影響也較大。井位置和射孔厚度的重要性基本為0,與產量間基本無關系。對于剩下的特征,采取逐一剔除的方式進行檢驗,若剔除后對模型的精度影響較大則保留,經過檢驗后,孔隙度、滲透率、泥質含量三個特征被保留。綜上,最終選擇孔隙度、滲透率、泥質含量、生產壓差、有效厚度、入地總液量6個特征參數作為模型的輸入變量。
2.5.1 深度森林建模流程
將訓練集中152口樣本井數據代入到深度森林模型中訓練模型,完成建模過程。根據MDI特征選擇結果,孔隙度、滲透率等6個特征被保留,因此深度森林產量預測模型的輸入特征維數為6維,使用深度森林默認的超參數建模。在多粒度掃描階段,選取3個滑動窗口對特征進行掃描提取,窗口長度分別為1、2、3,滑動步長為1,森林模型采用隨機森林和完全隨機森林模型。在級聯森林階段,每一級都包含兩個隨機森林模型和兩個完全隨機森林模型,森林模型決策樹數量和深度設置與多粒度掃描階段相同,若連續三級模型精度沒有提升,則終止級聯森林過程,深度森林產量預測模型示意圖如圖5所示。

圖5 深度森林產量預測流程Fig.5 Production forecast procedure of deep forest
2.5.2 網格化搜索優化超參數
超參數優化對提升模型精度有著重要意義。利用訓練集中152口樣本井數據訓練具有不同超參數的深度森林產量預測模型,然后將驗證集中45口樣本井數據分別代入訓練好的模型中進行預測,根據不同模型預測結果的評價指標來確定最優超參數,確定最優模型。
深度森林主要的超參數有決策樹最大深度、每個森林模型中的決策樹個數、級聯森林級數,其中級聯森林級數可以通過深度森林算法自行確定,這里對決策樹最大深度和決策樹個數進行優化。根據相關文獻和經驗,樹最大深度取值范圍為(15,30,50),決策樹數量取值范圍為(100,200,500,1 000),參數優化結果如表1所示。
根據表1的計算結果,當決策樹最大深度為30,每個森林模型決策樹個數為500時,深度森林模型在驗證集上的均方根誤差和平均相對誤差有最小值,此時的模型即為最優模型。

表1 深度森林超參數優化結果
利用測試集中的45口井數據對模型進行性能評估。為了對深度森林產量預測模型進行綜合的比對和評價,本文中同時建立了BP(back propagation)神經網絡產量預測模型和隨機森林產量預測模型,兩種模型的樣本劃分和輸入特征與深度森林相同,同樣使用網格化搜索優化超參數。
將測試集中45口井數據分別代入到深度森林產量預測模型、BP神經網絡產量預測模型和隨機森林產量預測模型中,三種模型在測試集上的產量預測擬合結果如圖6所示,利用預測產量計算模型評價指標,以模型評價指標作為模型性能評價依據。三種模型評價指標計算結果如表2所示。

圖6 三種模型產量預測擬合結果Fig.6 Production forecast results of three model

表2 各模型評價指標計算結果
從三個預測模型在測試集上的評價指標來看,BP神經網絡模型的均方根誤差25.62,平均相對誤差23.51%,決定系數0.68;隨機森林模型的均方根誤差16.74,平均相對誤差15.36%,決定系數0.82;深度森林模型的均方根誤差8.69,平均相對誤差7.97%,決定系數0.94。均方根誤差和平均相對誤差反映了模型整體的預測誤差,決定系數反映了預測值和實際值之間的擬合情況,深度森林模型有著最低的均方根誤差、平均相對誤差和最高的決定系數,說明深度森林模型在測試集上的整體誤差最小,預測產量和實際產量間的擬合情況最好,因此深度森林模型是三個模型中性能最好的模型。
繪制三種模型實際產量與預測產量的對比曲線如圖7所示,發現少數預測點的產量預測值與實際值偏差很大,這可能是兩個原因導致的:第一個原因是對部分井的缺失數據采用了KNN方法進行填補,填補值與實際值之間存在差異,這導致了預測值出現偏差;第二個原因是部分井在生產過程中采取了大型作業措施,這會導致油井產量發生大幅變化,最終造成該部分井的預測產量與實際產量相差較大。

圖7 實際產量與預測產量對比圖Fig.7 Comparison of actual production and forecast production
(1)建立了基于深度森林算法的油井產量預測模型,利用油田所提供的相關數據即可快速預測油井產量,且預測結果準確,誤差較小。
(2)應用KNN最鄰近算法填補缺失值,是處理數據缺失問題的好方法。由于各種原因,油田提供的數據難免存在部分缺失,KNN算法填補的缺失值最接近真實值,有利于提升產量預測模型的精度。
(3)MDI特征選擇方法可以快速準確的篩選出對油井產量影響最大的特征參數,同時剔除冗余特征,實現特征降維,降低模型復雜度。
(4)與傳統的BP神經網絡和隨機森林等機器學習算法相比,深度森林算法的能夠更全面準確地提取特征信息,計算效率高,預測結果更準確。基于深度森林算法的油井產量預測模型能夠有效預測油井產量,為油田生產以及開發方案的調整提供參考和依據。
(5)可以考慮將更多特征參數納入到產量預測模型中,如鉆完井方式、增產措施、生產工藝等,進一步提升預測模型的準確性和泛化性。同時可以依據產量預測模型的建立思路,構建其他生產指標的預測模型,如產水量預測、產氣量預測等,實現油田生產多指標預測。