NEGASH Berihun Mamo,YAW Atta Dennis
(馬來西亞石油大學石油工程系,斯里依斯干達 32610,馬來西亞)
現有的大部分油氣產量預測方法都要求對油氣田的儲集層和流體性質進行綜合描述,需要花費大量時間、精力去分析所研究的油氣田[1],預測結果準確性主要取決于模型輸入數據,包括地質資料、巖石物理數據和儲集層特征參數等[2]。但是,鑒于儲集層的各向異性和非均質性,數據采集和巖石、流體性質表征難度很大[3]。此外,油氣藏模擬的每一步都有諸多不確定性,既有儲集層輸入數據的不確定性,也有實驗研究的不確定性,會極大地影響油氣藏生產動態(tài)的預測。油藏工程師一般采用歷史擬合方法,運用物質平衡概念,使用硬數據來驗證模型,但不確定程度依然很高,有可能影響流體產量預測[4-5]。因此,機器學習方法受到油氣行業(yè)的關注,尤其是在快速評估和預測產量方面[6]。近年來,有學者將注入量作為輸入數據、產出量作為輸出數據,利用機器學習方法來推斷注水開發(fā)油藏的注采關系[7-8]。
油氣行業(yè)的主要挑戰(zhàn)之一是數據和信息的管理。面對大量數據,工程技術人員有時難免會忽略有用信息[9]。因此,PDA(油氣數據分析)技術受到廣泛關注,該技術利用在油氣行業(yè)中收集的數據來分析、模擬、優(yōu)化生產運營[10]。大數據分析是數據科學的一個分支,涵蓋人工智能、數據挖掘、機器學習和模式識別[11]。機器學習研究的是計算機基于數據進行學習的能力[12],用于從數據中提取預測模型。機器學習有兩種主要類型,分別是監(jiān)督學習和非監(jiān)督學習。監(jiān)督學習通過對數據進行分類或標記開展學習,該算法通過分析訓練過的數據得到能夠根據同種特征向量預測新算例的模型[13]。非監(jiān)督學習不標注所有輸入數據,而監(jiān)督學習不但標注數據而且對輸入、輸出數據繪圖[14]。人工神經網絡是油氣行業(yè)中應用最廣泛的機器學習方法之一,它是由生物神經網絡啟發(fā)的一種數學結構形式,用于依賴大量輸入數據的函數的近似[15]。人工神經網絡的名稱源自其骨架結構,在其骨架結構中,通過選擇輸入屬性來優(yōu)化具有多個隱藏層的目標函數。近年來,有研究者應用人工神經網絡根據孔隙度、滲透率、飽和度等地質參數預測原油產量,但由于各參數之間關系復雜,預測過程耗時長、費用高[16]。人工神經網絡也在油氣行業(yè)的其他領域得到應用[17-21]。然而,應用人工神經網絡并不是為了取代常規(guī)模擬手段及工作流程,而是將其作為一種輔助工具,以根據油氣田數據得到更多信息[22]。
本文提出模擬油、氣、水產量與測試壓力、注采數據間關系的人工神經網絡,使用特別設計的特征來訓練人工神經網絡,建立注水開發(fā)油藏產量預測模型。進行特征提取時,首先利用實測數據建立能提供信息而不冗余的派生值(特征),以促進后續(xù)的學習和泛化步驟。采用的特征提取方法以流體物理學和測量數據隨機組合為基礎。設計了幾個特征,并采用“蠻力”手段在最終的模型中去掉了對模型預測效果沒有太大影響的特征。本文將對提出的預測模型進行詳細闡述并進行算例分析。
在人工神經網絡中,神經信息以權重和偏差的形式儲存,權重高的輸入項在模型中的作用大[23]。經典機器學習方法中將1個數據集分為3個數據子集,即訓練數據子集、驗證數據子集和測試數據子集[24]。訓練數據子集用于計算梯度、更新網絡權重和偏差。訓練過程中要監(jiān)測驗證數據子集的誤差。和訓練數據子集的誤差一樣,驗證數據子集的誤差一般會在訓練的初始階段減小。當網絡開始過擬合數據時,驗證數據子集的誤差通常又開始增大。網絡權重和偏差在驗證數據子集誤差最小時被保存。測試數據子集用于評價經過訓練和驗證的模型。在訓練過程中不使用測試數據子集誤差,但是要用它對不同模型進行比較。可以在整個訓練過程中繪制測試數據子集誤差圖,如果測試數據子集誤差達到最小時的迭代次數與驗證數據子集誤差達到最小時的迭代次數相差很大,那么對數據集的劃分可能不合理。本文使用馬來盆地 1個真實油藏14年的生產數據訓練、驗證、測試人工神經網絡。將數據分成 4部分:80%的數據用于訓練,5%的數據用于驗證,5%的數據用于測試,其余10%的數據用于盲測模型。圖1給出了使用人工神經網絡模擬注水開發(fā)油藏流體產量的工作流程。
圖1 注水開發(fā)油藏流體產量模擬工作流程
探索性分析即對數據進行收集和分析。數據的主要來源是 Pi-ProcessBook軟件,該軟件可獲得安裝在生產井和注入井處的發(fā)送器發(fā)送的實時數據。利用Pi-ProcessBook軟件對這些數據進行分析,并提取某些特征的正態(tài)分布直方圖??蓮姆植紙D中識別可能的離群值,還可識別測量誤差。在統(tǒng)計學中,離群值是指不屬于某一數據群的數據點,是遠離其他值的異常觀測值,是分散于其他正常數據之外的觀測值。如果數據分布為近似正態(tài)分布,那么約 68%的數據值與均值的偏差在 1個標準差范圍內,約95%的數據值與均值的偏差在2個標準差范圍內,約99.7%的數據值與均值的偏差在3個標準差范圍內。因此,用3σ規(guī)則來檢測離群值,根據該規(guī)則,任何與均值的偏差達到或超過3個標準差的數據值都被視作離群值。
數據清理即發(fā)現數據集中的錯誤以及剔除或修改數據集中的噪聲數據。進行數據清理時,首先要了解數據集,例如了解注入井的注入壓力與流量之間的關系,然后利用所了解的關系來計算流量計關閉時的注入量,并剔除不準確的數據。又比如,研究海上油田生產日報,確定重大事件和生產設施的關停時間等。本文中,通過使用不同來源的數據進行交叉校驗,重新分配、微調日產出量和日注入量數據。另外,用基于窗口的檢測方法剔除、替換離群數據,即先將數據劃分到固定大小的窗口中,再檢測、替換離群數據。
特征提取與擴展即使用現有數據集來創(chuàng)建新的輸入特征,使機器學習起作用并提高其性能。López-I?esta E等[25]提出并實施了將特征提取與擴展結合起來提高機器學習效果的想法。特征提取是指將輸入數據轉換或組合成特征,通過應用該方法可以提高機器學習的效果。本文利用基于流體物理學及測量數據的隨機組合提取的特征來改進模型,例如利用注水管匯壓力與注水井注入壓力之間的關系以及采油井油管頭壓力、溫度與氣舉量之間的關系。特征中的每項都可以具有物理意義,即描述上述關系。與單獨使用某種數據(例如流量、時間)相比,使用根據流體物理學提取的幾種數據的組合,有時甚至是隨機的組合,也能使模型具有更好的預測效果。隨機組合得到的特征中的項不必具有物理意義。此外,可以通過與現有特征相乘或相除得到新的特征。
本文在訓練階段測試了 Levenberg-Marquardt、比例共軛梯度、貝葉斯正則化等 3種算法。Levenberg-Marquardt算法用于求解非線性最小二乘問題,特別是最小二乘曲線的擬合。前人開展了許多用 Levenberg-Marquardt算法訓練神經網絡的研究[26-28]。SHI Xiancheng 等[26]研究發(fā)現,Levenberg-Marquardt算法的主要局限是它只能通過在高斯-牛頓算法和梯度下降法之間進行插值來求局部最小值,當存在大量訓練樣品和節(jié)點權重時模型的準確性會受影響。比例共軛梯度算法對內存的要求低,所用的計算時間短。但它在線性方程系統(tǒng)中表現較好,在具有許多輸入特征的系統(tǒng)中可能導致過擬合[29]。因此,它不適用于注水開發(fā)油藏數據集的訓練。貝葉斯正則化算法適用于本文所開展的研究,因為這種算法應用了能夠避免過擬合的正則化方法。雖然這種方法耗時較長,但是能對嘈雜數據集進行很好的泛化[14]。貝葉斯正則化算法通過使均方誤差與權重的組合達到最小值來更新神經網絡的權重和偏差。一旦完成最小化就可以確定正確的組合,得到泛化良好的網絡。
本文中,90%的數據用于訓練、驗證和測試模型,其余 10%的數據用于盲測模型。也就是說,90%的數據用于訓練模型體系結構、監(jiān)測訓練過程,確定何時停止訓練模型,其余數據用于盲測訓練后的模型。在機器學習中,用于訓練的數據不能再用于測試[30]。
前人采用過幾種模型評價指標[24,31-32]。本文用均方誤差(MSE)、R2(決定系數)和白度測試對模型進行評價[33]。均方誤差是輸出值與目標值之間的平均平方差。R2值用于衡量輸出值與目標值之間的相關性。認為在測試階段均方誤差低、R2值接近 1的模型是合適的模型。這兩個指標能夠顯示模型是否提取了全部信息或者是否需要進一步調整。白度測試即通過繪制直方圖來確定誤差分布。對于一個好模型,誤差直方圖應顯示零均值和一定方差。此外,也可以通過繪制交會圖來對比模擬數據和驗證數據,示例如圖2所示。如果模擬數據與驗證數據交會圖位于45°線上方,說明模型低估了驗證數據,反之則說明模型高估了驗證數據。理想情況下,模擬數據與驗證數據交會圖與45°線重合。
圖2 模擬數據與驗證數據交會圖示例
采用馬來盆地 1個油藏的數據,鑒于保密原因,只保留了最小限度的細節(jié)。該油藏為飽和油藏,具有小型至中等氣頂,中等至強水體,并在一次采油 7年后通過注水補充能量開發(fā)。圖3所示的PVT物性參數表明,油藏流體的泡點壓力約為20.68 MPa。
圖3 油藏流體PVT物性參數
該油藏從1997年7月至2004年7月利用氣頂+水體自然能量驅動開采。圖4給出了這一階段的流體產量剖面。從2004年至2014年,采用注水開發(fā)方式。圖5、圖6和圖7分別給出了這一階段的產油量、產氣量、產水量與注水量對比曲線,可以看出數據非常嘈雜,導致系統(tǒng)無法正確理解和解釋。噪聲是不可避免的問題,它會影響機器學習應用中的數據收集和數據準備過程。數據噪聲由測量工具引起。
圖4 注水前油、氣、水產量
圖5 開始注水后油藏產油量
圖6 開始注水后油藏產氣量
圖7 開始注水后油藏產水量
為了獲得更多有關注水井與采油井間關系的信息,本文開發(fā)了一種基于流體物理學的特征提取技術。換言之,使用了更多特征來改善模型預測效果。將這些特征與多孔介質中流體流動的物理原理結合起來,并對各項進行簡單試錯,直到在驗證數據和模擬數據之間得到理想的擬合優(yōu)度為止。表1給出了本文模型的輸入項和輸出項。表2給出了基于物理原理及現有輸入項的隨機組合提取的7個特征(編號1—7)。根據模型的驗證結果對這些特征進行測試后,只將特征1、特征2和特征5用于油、氣、水產量模擬。表2還給出了表征延時產量的特征(編號8—13)。
表1 模擬油、氣、水產量模型的輸入項和輸出項
表2 根據現有輸入、輸出項提取的特征
圖8給出了由1個隱藏層、1個輸入層和1個輸出層組成的神經網絡的簡單結構。人工神經網絡模型中輸入參數個數和隱藏神經元個數對模型的最終預測效果有重要影響。然而,最優(yōu)人工神經網絡結構方面的研究非常少。本文設置了不同的隱藏神經元個數,并根據訓練和驗證結果確定了模型的最優(yōu)結構。在確定隱藏神經元個數時,為了避免過擬合,很重要的一點是不要有太多參數。模型的過擬合會導致預測失敗,這是因為過擬合的模型提取了一些殘差。因此,要保持盡可能少的隱藏層數,以避免過擬合。為了確定模型的最優(yōu)結構,開展了一系列數據集訓練與驗證工作。
圖8 神經網絡的簡單結構
在數據不穩(wěn)定且需要更高級神經網絡的情況下,可以考慮使用更復雜的結構,圖9、圖10、圖11所示為常用復雜結構示例。
圖9 具有3個隱藏層的前饋神經網絡結構
圖10 層遞歸神經網絡結構
圖11 串級前饋神經網絡結構
本文使用貝葉斯正則化算法訓練模型。根據驗證過程中顯示的R2值進行比較,當6次迭代的驗證誤差增加時,訓練步驟停止。貝葉斯正則化算法可以泛化嘈雜數據集,同時也可以防止過擬合[14]。當訓練數據集的R2值高于測試數據集的R2值時,可以判定為過擬合。貝葉斯正則化算法的工作流程參見文獻[34]。
比較了模型預測數據與油田實際數據,計算了模型預測數據的均方誤差、R2值,繪制了誤差分布直方圖。當均方誤差和誤差分布直方圖的均值趨近于零且R2值趨近于 1時,認為模型的準確性得到了驗證。Ramirez A M[18]認為,應通過開展誤差分析來確定新模型的準確性。因此,將本文模型與幾種已知的產量預測公式進行了對比,發(fā)現與 Standing、Vazquez-Beggs等經驗公式相比,本文模型相對誤差絕對值的平均值最低,為14.732%。對模型進行驗證后,將其用于產量預測。
選擇帶有外部輸入的非線性自回歸網絡(NARX)作為產油量預測模型結構,其中外部輸入有d個時間步的延遲。該類型網絡可在給定d個時間步前的輸出值以及其他一系列輸入值時預測輸出值。NARX網絡的結構如下。
NARX網絡以開環(huán)形式建立和訓練。開環(huán)(單步)訓練比閉環(huán)(多步)訓練更有效。開環(huán)訓練時可以使用正確的過去輸出值,進而得到正確的當前輸出值。在訓練過程中將訓練數據子集提交給網絡,并根據訓練數據子集的誤差調整網絡。用驗證數據子集測量網絡泛化程度,當泛化不再改善時停止訓練。測試數據子集對訓練過程沒有影響,因此可以在訓練過程中及訓練之后獨立測試模型預測效果。表3和表4分別給出了不同隱藏神經元個數條件下有特征提取和無特征提取的模型的預測效果??梢钥闯觯c無特征提取情況下訓練的模型相比,有特征提取情況下訓練后模型的預測效果更好。在選擇訓練算法時,由表 5可知,貝葉斯正則化算法比Levenberg-Marquardt算法和比例共軛梯度算法更好。盡管貝葉斯正則化算法需要的訓練時間更長,但是它能很好地泛化難度大、噪聲多的數據集,更適宜于處理本文實例中的產油量數據。
表3 在無特征提取情況下訓練后模型的預測效果
表4 在有特征提取情況下訓練后模型的預測效果
表5 不同訓練算法的評價
表6給出了在有特征提取情況下利用貝葉斯正則化算法訓練的產油量模型的最優(yōu)結構相關信息。
表6 預測產油量的人工神經網絡模型的最優(yōu)結構相關信息
在模型評價過程中,利用占全部數據 10%的盲測數據(訓練過程中未用的數據)模擬產油量。由圖12所示的交會圖可知,有特征提取和無特征提取時模型的R2值分別是0.947和0.463,且有特征提取時的模擬產油量與驗證產油量交會圖與 45°線更接近。這說明本文使用的特征提取方法顯著改善了模型的預測效果。由圖13可知,有特征提取時模型的模擬結果與驗證數據非常接近,而無特征提取時則不然。此外,圖14所示的誤差分布直方圖呈現正態(tài)分布趨勢,表明模型的平均誤差接近于零,且該誤差主要為測量誤差。
圖12 產油量模擬數據與驗證數據交會圖
圖13 實際產油量與模擬產油量比較
圖14 產油量模型的誤差分布直方圖
使用與建立產油量模型相同的方法建立產氣量預測模型,并使用前文提取得到的相同特征改善模型預測效果。用訓練過程中未使用的數據進行模型測試或驗證。表7給出了在有特征提取情況下產氣量模型的最優(yōu)結構相關信息。
表7 預測產氣量的人工神經網絡模型的最優(yōu)結構相關信息
由圖15所示的交會圖可知,有特征提取和無特征提取時模型的R2值分別是0.971和0.812;無特征提取時大部分模型預測結果高于實際數據,而有特征提取時多數模型預測結果與實際數據持平。這再次說明本文采取的特征提取方法提高了模型的預測效果。由圖16可知,與無特征提取時的模型相比,有特征提取時模型的模擬結果與驗證數據更接近。此外,圖17所示的誤差分布直方圖呈現正態(tài)分布趨勢,表明模型的平均誤差接近于零,且該誤差主要為測量誤差。
圖15 產氣量模擬數據與驗證數據交會圖
圖16 實際產氣量與模擬產氣量比較
圖17 產氣量模型的誤差分布直方圖
使用與建立產油量模型相同的方法建立產水量預測模型。表8給出了在有特征提取情況下產水量模型的最優(yōu)結構相關信息。
表8 預測產水量的人工神經網絡模型的最優(yōu)結構相關信息
由圖18所示的交會圖可知,有特征提取和無特征提取時模型的R2值分別是0.987和0.891。由圖19可知,與無特征提取時的模型相比,有特征提取時模型的模擬結果與驗證數據更接近。此外,圖20所示的誤差分布直方圖呈現正態(tài)分布趨勢,表明誤差主要為測量誤差。
圖18 產水量模擬數據與驗證數據交會圖
圖19 實際產水量與模擬產水量比較
圖20 產水量模型的誤差分布直方圖
開發(fā)了人工神經網絡模型來預測注水開發(fā)油藏的產油量、產氣量和產水量。與傳統(tǒng)預測模型不同,人工神經網絡模型在訓練所選結構時只需少量容易獲得的信息。用基于油藏流體物理學以及變量的隨機組合的特征提取方法來改善模型預測效果。研究發(fā)現,用貝葉斯正則化算法訓練的神經網絡結構能在訓練和驗證所選神經網絡結構的過程中得到最小的均方誤差和最高的決定系數。這種算法一般需要較長時間,但是能對產油量、產氣量、產水量等嘈雜數據集進行良好泛化。用誤差分布直方圖來分析模擬數據與驗證數據之間的差異,發(fā)現每種流體產量預測模型誤差均主要為測量誤差。
在本文提取的所有特征中,時間步長延遲項可以提高模型的預測效果。這一結論具有重要意義,因為包括油藏數值模擬在內的許多二次采油產量預測方法并沒有將過去的注入量作為影響當前產量的因素。
符號注釋:
b——偏差;d——延遲時間步數;f——NARX網絡結構;m,n——時間步個數;t——時間步序號;u(t+1),u(t),…,u(t-m)——外部輸入數據;W——權重;y(t),y(t-1),…,y(t-n)——觀測數據;y(t+1)——模型預測值;σ——標準差。