薛亮 顧少華 王嘉寶 劉月田 涂彬
1. 中國石油大學(xué) ( 北京 ) 石油工程學(xué)院;2. 中國石油化工股份有限公司石油勘探開發(fā)研究院
氣井生產(chǎn)動態(tài)分析是油藏工程研究的主要內(nèi)容之一,是氣井產(chǎn)量規(guī)劃、開發(fā)方案編制及生產(chǎn)制度動態(tài)調(diào)整的重要依據(jù),對于認識油藏、改造油藏,科學(xué)開發(fā)氣藏具有重要的指導(dǎo)意義。目前主要有3種產(chǎn)能評價方法:第1種是基于統(tǒng)計分析的典型曲線方法[1],例如 Arps 產(chǎn)量遞減分析方法,該類方法一般通過統(tǒng)計分析油氣井生產(chǎn)數(shù)據(jù)得到,簡單明了,但一般都建立在一定的假設(shè)條件上,適用條件苛刻,且不能考慮到開發(fā)后期生產(chǎn)情況的變化,具有一定局限性[2];第2種是基于流體滲流原理的數(shù)值解析方法,這種方法將實際油藏轉(zhuǎn)化為物理模型,再轉(zhuǎn)化為數(shù)學(xué)模型并對模型進行求解,數(shù)值解析方法一般適用于模型較為簡單的油氣藏;第3種是數(shù)值模擬方法,數(shù)值模擬方法依靠計算機的運算能力來模擬油氣藏的實際生產(chǎn)情況和流體滲流規(guī)律,這需要地層資料、巖石流體資料、生產(chǎn)動態(tài)資料等來建立地質(zhì)模型、數(shù)值模型并進行歷史匹配等工作。如果想要得到一個符合實際生產(chǎn)情況的數(shù)值模擬結(jié)果,就需要建立一個精確的數(shù)值模型,但精確的數(shù)值模型往往是十分復(fù)雜的,建立模型耗費時間長,工作量大。
目前實際工程應(yīng)用中最常使用的是油藏數(shù)值模擬方法和典型曲線方法[3-4],但復(fù)雜的氣水井產(chǎn)量變化以及現(xiàn)場生產(chǎn)措施的調(diào)整,使得目前的常規(guī)方法難以精準描述產(chǎn)量變化。近年來,機器學(xué)習(xí)理論得到了迅速發(fā)展,出現(xiàn)了許多種新的機器學(xué)習(xí)算法,包括BP神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò)、支持向量機、自回歸模型等算法,并且在搜索技術(shù)、機器翻譯、自然語言處理、圖形識別等各個技術(shù)領(lǐng)域取得了很大的進展,也逐漸受到了石油領(lǐng)域的關(guān)注。機器學(xué)習(xí)方法由于其能夠很好地處理非線性問題,通過對數(shù)據(jù)進行深度學(xué)習(xí),捕捉生產(chǎn)數(shù)據(jù)與產(chǎn)量之間的隱藏規(guī)律,能夠克服常規(guī)生產(chǎn)動態(tài)分析方法的缺點,依靠現(xiàn)場易獲得的油氣生產(chǎn)動態(tài)數(shù)據(jù)實現(xiàn)產(chǎn)量的準確預(yù)測,與傳統(tǒng)方法相比預(yù)測結(jié)果更加可靠。
目前,許多學(xué)者通過使用BP神經(jīng)網(wǎng)絡(luò)方法實現(xiàn)油氣產(chǎn)量的預(yù)測[5-7],此外,諸多學(xué)者也采用了支持向量機(SVM)、自回歸模型(AR)和滑動平均自回歸模型(ARIMA)等算法[8-10]來預(yù)測油氣產(chǎn)量,且都得到了較為準確的預(yù)測結(jié)果,說明了此類基于機器學(xué)習(xí)的產(chǎn)量預(yù)測方法具有可行性。但應(yīng)用這些方法處理數(shù)據(jù)時,都是對某個時間點產(chǎn)量的計算,沒有充分考慮到各時間點產(chǎn)量的前后關(guān)系及變化趨勢。基于油氣產(chǎn)量具有時間序列的關(guān)系,且近幾年發(fā)展的長短期記憶神經(jīng)網(wǎng)絡(luò)(LSTM)可以很好地處理時間序列數(shù)據(jù)的前后關(guān)系,提出使用長短期記憶神經(jīng)網(wǎng)絡(luò)模型對天然氣藏產(chǎn)量進行預(yù)測。長短期記憶神經(jīng)網(wǎng)絡(luò)(LSTM)是基于循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)改進而來的[11],它具有自循環(huán)的網(wǎng)絡(luò)結(jié)構(gòu),將上一時間步的信息傳遞至當前時間步,并通過LSTM的輸入門、輸出門和遺忘門來控制信息的輸入輸出以及哪些不重要的信息將被遺忘,以保持神經(jīng)網(wǎng)絡(luò)在較長時間內(nèi)具有對數(shù)據(jù)的記憶功能。長短期記憶神經(jīng)網(wǎng)絡(luò)不僅可以考慮相關(guān)因素對產(chǎn)量的影響,還能反映出產(chǎn)量數(shù)據(jù)的變化趨勢,預(yù)測精度高,更適用于油氣產(chǎn)量時序預(yù)測。粒子群算法具有全局尋優(yōu)能力強、收斂速度快的特點,使用粒子群算法對LSTM模型超參數(shù)進行優(yōu)化,既能夠提高模型預(yù)測精度,也可以避免繁瑣的、專業(yè)性強的模型調(diào)參過程,便于現(xiàn)場工作人員使用。
循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)是長短期記憶神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)。傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)只能對輸入和輸出構(gòu)建直接的映射關(guān)系,而循環(huán)神經(jīng)網(wǎng)絡(luò)在每個循環(huán)神經(jīng)網(wǎng)絡(luò)隱藏層單元中可以將上一步計算的狀態(tài)信息加入到當前時間步的運算中,使得神經(jīng)網(wǎng)絡(luò)可以保留先前時間步的信息,即具有記憶能力。其中循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。圖1中,xt為t時刻的輸入數(shù)據(jù);ht為t時刻包含隱藏層狀態(tài)信息的數(shù)據(jù);yt為t時刻的輸出數(shù)據(jù);W、V、U分別為各層權(quán)重參數(shù)。與傳統(tǒng)的人工神經(jīng)網(wǎng)絡(luò)相比,循環(huán)神經(jīng)網(wǎng)絡(luò)在計算過程中共享相同的權(quán)重參數(shù),極大地減少了需要學(xué)習(xí)的網(wǎng)絡(luò)參數(shù)。在前向傳播過程中,t時刻隱含層的狀態(tài)信息為
圖1 循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig. 1 Structure of recurrent neural network
輸出層的輸出值為式中,W、V、U分別為RNN輸入層、隱藏層和輸出層的權(quán)重參數(shù);b、c為RNN隱藏層和輸出層的偏置項;f為激活函數(shù),一般采用tanh函數(shù)或Relu函數(shù)。
循環(huán)神經(jīng)網(wǎng)絡(luò)的權(quán)值更新采用隨時間反向傳播(Back-propagation through time, BPTT)的方法,基于梯度下降法,沿著權(quán)值的負梯度方向不斷尋優(yōu)直至收斂。在循環(huán)神經(jīng)網(wǎng)絡(luò)中,在誤差的反向傳播計算過程中會出現(xiàn)早期時間步的梯度消失或者梯度爆炸現(xiàn)象,即循環(huán)神經(jīng)網(wǎng)絡(luò)對較早時期的數(shù)據(jù)無法學(xué)習(xí),導(dǎo)致預(yù)測誤差增大[12],使其不適用于處理長時間的序列數(shù)據(jù)。在建立氣藏產(chǎn)量預(yù)測模型時,輸入數(shù)據(jù)往往是數(shù)年,甚至數(shù)十年的每日生產(chǎn)數(shù)據(jù),大量數(shù)據(jù)點的輸入使得循環(huán)神經(jīng)網(wǎng)絡(luò)不適用于氣藏的產(chǎn)量預(yù)測問題。
為了解決循環(huán)神經(jīng)網(wǎng)絡(luò)的梯度問題,有學(xué)者提出了RNN的改進結(jié)構(gòu)——長短期記憶神經(jīng)網(wǎng)絡(luò)(LSTM),它是循環(huán)神經(jīng)網(wǎng)絡(luò)的一種變體,能夠解決RNN的梯度問題。與RNN相比,LSTM在神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中引入了記憶單元和控制神經(jīng)網(wǎng)絡(luò)隱藏層之間信息傳遞的控制門,其網(wǎng)絡(luò)結(jié)構(gòu)見圖2。
圖2 長短期記憶神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig. 2 Structure of LSTM
在LSTM的神經(jīng)網(wǎng)絡(luò)隱藏層中,加入了輸入門、輸出門和遺忘門以控制記憶單元,t時刻時,首先通過輸入門輸入數(shù)據(jù)xt和上一時間步輸出數(shù)據(jù)ht-1計算記憶單元遺忘門的值,輸出一個0~1之間的值傳遞給單元狀態(tài)信息Ct?1,確定前期單元狀態(tài)Ct?1應(yīng)該丟棄哪些信息(0表示完全舍棄,1表示完全保留)
更新輸入信息it和候選單元狀態(tài)
式中,ft為t時間步時的遺忘門信息;σ為sigmoid函數(shù);it為t時間 步時 的 輸 入 信 息;Wf、Uf為LSTM遺忘門的權(quán)重參數(shù);bf為LSTM遺忘門的偏置項;Wi、Ui為LSTM輸入門的權(quán)重參數(shù);bi為LSTM輸入門的偏置項;Wc、Uc為LSTM單元狀態(tài)的權(quán)重參數(shù);bc為LSTM單元狀態(tài)的偏置項;為t時間步時的候選單元狀態(tài)。
此時,根據(jù)更新得到的候選單元狀態(tài)和上一時間步的單元狀態(tài)Ct?1, 更新得到t時間步的單元狀態(tài)Ct
最后在輸出門中使用輸出門ot輸出單元狀態(tài)Ct和輸出數(shù)據(jù)ht
式中,Ct為t時間步時的單元狀態(tài);Wo、Uo為LSTM輸出門的權(quán)重參數(shù);bo為LSTM輸出門的偏置項;ot為輸出門信息; tanh為雙曲正切函數(shù)。
圖2中,σ為輸入門、輸出門和遺忘門3個門的主動函數(shù),是變量在0~1之間的sigmoid函數(shù)。激活函數(shù)tanh是將值壓縮在?1~1之間的雙曲正切函數(shù)。利用這兩個激活函數(shù)來增強網(wǎng)絡(luò)的非線性
根據(jù)長短期記憶神經(jīng)網(wǎng)絡(luò)的運算結(jié)構(gòu),采用LSTM神經(jīng)網(wǎng)絡(luò)對時間序列數(shù)據(jù)進行學(xué)習(xí)并捕獲、提取數(shù)據(jù)特征,可以得到更加精準的預(yù)測模型。
構(gòu)建基于長短期記憶神經(jīng)網(wǎng)絡(luò)的產(chǎn)量預(yù)測模型時,模型超參數(shù)對產(chǎn)量預(yù)測的準確性有很大的影響,超參數(shù)影響著產(chǎn)量預(yù)測模型準確性和模型訓(xùn)練時的收斂速度,需要避免模型訓(xùn)練時陷入局部最優(yōu)解。粒子群優(yōu)化算法具有良好的自我學(xué)習(xí)能力,對最優(yōu)參數(shù)的全局搜索能力很強,因此在建立預(yù)測模型時,使用粒子群算法對長短期記憶神經(jīng)網(wǎng)絡(luò)算法模型的超參數(shù)進行優(yōu)選。
粒子群算法是由Kennedy和Eberhart提出的啟發(fā)式優(yōu)化算法,該算法通過模仿鳥群的覓食過程尋找最優(yōu)解。在粒子群優(yōu)化過程中,通過個體極值和群體極值更新粒子本身的位置和速度,粒子位置記為,個體極值即為單個粒子在自身移動軌跡中誤差最小時所處位置,記為,群體極值即為所有粒子在移動軌跡中誤差最小時某一個粒子的所處位置,記為g*。迭代更新粒子自身的更新速度和更新位置
通過迭代更新粒子位置,直到達到最小誤差標準或達到粒子更新的最大迭代次數(shù)為止。
在氣藏開采中,隨著地層壓力的不斷下降,氣藏物性和驅(qū)動能量逐漸發(fā)生變化,從而使得氣井開發(fā)方式也隨之改變,因此,根據(jù)氣井生產(chǎn)階段分別設(shè)計氣井穩(wěn)產(chǎn)期生產(chǎn)動態(tài)預(yù)測模型和氣井遞減期生產(chǎn)動態(tài)預(yù)測模型,采用python進行代碼編寫。根據(jù)氣井油壓自動識別氣井生產(chǎn)階段,并應(yīng)用相應(yīng)的生產(chǎn)動態(tài)預(yù)測模型。
根據(jù)國內(nèi)氣井實際生產(chǎn)情況,氣井在穩(wěn)產(chǎn)期時一般采用配產(chǎn)降壓方式進行開發(fā),因此選擇天然氣累計產(chǎn)量的時間序列數(shù)據(jù)為LSTM神經(jīng)網(wǎng)絡(luò)的輸入數(shù)據(jù),預(yù)測未來井底壓力隨天然氣累計產(chǎn)量的變化規(guī)律;氣井在遞減期時一般采取定壓降產(chǎn)方式進行開發(fā),氣井日產(chǎn)量的主控因素是自身的遞減趨勢,因此以氣井日產(chǎn)量的時間序列數(shù)據(jù)預(yù)測未來氣井日產(chǎn)量數(shù)據(jù)。
氣井生產(chǎn)過程中往往會由于各種因素而使得氣井的產(chǎn)量、壓力等動態(tài)參數(shù)數(shù)值產(chǎn)生震蕩波動,所以需要對原始數(shù)據(jù)進行處理以去除數(shù)據(jù)的噪音影響。
首先采用Savitzky-Golay濾波器對數(shù)據(jù)進行處理,Savitzky-Golay濾波器(通常簡稱為S-G濾波器)最初由Savitzky和Golay于1964年提出,之后被廣泛運用于數(shù)據(jù)流平滑除噪,是一種在時域內(nèi)基于多項式最小二乘法擬合的濾波方法。這種濾波器的最大特點在于濾除噪聲的同時可以確保信號的形狀、寬度不變。
S-G濾波器基本公式為
式中,Yi、分別為原始數(shù)據(jù)、平滑后數(shù)值;Ci為SG多項式擬合系數(shù);N為濾波器長度,取值2m+1。
將需要預(yù)測的目標參數(shù)和其他相關(guān)參數(shù)的生產(chǎn)歷史數(shù)據(jù)進行歸一化處理。歸一化是一種無量綱處理手段,使物理系統(tǒng)數(shù)值的絕對值變成某種相對值關(guān)系。歸一化是簡化計算、縮小量值的有效辦法,其實質(zhì)是一種線性變換。線性變換有很多良好的性質(zhì),這些性質(zhì)決定了對數(shù)據(jù)轉(zhuǎn)換后不會造成“失效”,反而能提高數(shù)據(jù)在模型中的預(yù)測效果。
歸一化的作用有以下幾點:(1)把數(shù)據(jù)映射到0~1范圍之內(nèi)處理,可以使數(shù)據(jù)處理更加便捷快速;(2)把有量綱表達式變成無量綱表達式,便于不同單位或量級的指標能夠進行比較和加權(quán)計算;(3)避免太大的數(shù)在計算中引發(fā)數(shù)值問題。
歸一化的計算公式如下
式中,xnew為歸一化后的數(shù)值;xold為原始數(shù)值;xmin為數(shù)據(jù)最小值;xmax為數(shù)據(jù)最大值。
將歸一化的生產(chǎn)數(shù)據(jù)轉(zhuǎn)化為序列數(shù)據(jù),也就是將生產(chǎn)數(shù)據(jù)轉(zhuǎn)化為多個短時間序列的歷史生產(chǎn)數(shù)據(jù)和對應(yīng)的已知目標值,每一個短時間序列數(shù)據(jù)即一個樣本,每個樣本內(nèi)包含的時間步的數(shù)量即時間窗口的長度,最后轉(zhuǎn)換為三維矩陣(樣本數(shù)×?xí)r間窗口×特征數(shù)量)作為長短期記憶深度神經(jīng)網(wǎng)絡(luò)模型的輸入?yún)?shù),并利用長短期記憶深度神經(jīng)網(wǎng)絡(luò)算法計算得到需要預(yù)測的生產(chǎn)動態(tài)數(shù)據(jù)。
式中,Y(t)為第t個時間步需要預(yù)測的生產(chǎn)動態(tài)數(shù)據(jù);X(t)為第t個時間步的生產(chǎn)控制參數(shù);n為時間窗口長度,即每個樣本包含的時間步數(shù)量。
將預(yù)處理好的數(shù)據(jù)分為兩部分,前70%的數(shù)據(jù)用作訓(xùn)練集,對模型進行訓(xùn)練;之后10%的數(shù)據(jù)用作測試集,在測試集上對模型進行測試,驗證模型的效果并根據(jù)測試結(jié)果優(yōu)化模型;最后20%的數(shù)據(jù)作為模型預(yù)測集。在完成模型訓(xùn)練后,根據(jù)模型訓(xùn)練集上的擬合效果和模型在測試集上的預(yù)測誤差,使用粒子群算法優(yōu)化時間窗口長度和長短期記憶網(wǎng)絡(luò)層的神經(jīng)元數(shù)量,最后將訓(xùn)練并優(yōu)化好的模型應(yīng)用在預(yù)測集,對未來生產(chǎn)動態(tài)進行預(yù)測。
設(shè)置粒子群算法的適應(yīng)度函數(shù)為預(yù)測值與實際值的均方根誤差,將搜索維度設(shè)置為4,4個維度分別為時間窗口長度、第1層長短期記憶網(wǎng)絡(luò)層的神經(jīng)元數(shù)量、第2層長短期記憶網(wǎng)絡(luò)層的神經(jīng)元數(shù)量和長短期記憶神經(jīng)網(wǎng)絡(luò)模型的迭代次數(shù),根據(jù)粒子群計算公式不斷迭代尋優(yōu),可以使該點所對應(yīng)的損失函數(shù)不斷變小,在粒子群的搜索空間內(nèi)損失函數(shù)達到最小值,這樣便同時得到了最優(yōu)長短期記憶深度學(xué)習(xí)模型超參數(shù),其所對應(yīng)的LSTM神經(jīng)網(wǎng)絡(luò),即為訓(xùn)練得到的最優(yōu)生產(chǎn)動態(tài)分析模型。
生產(chǎn)動態(tài)分析模型是利用歷史生產(chǎn)動態(tài)來預(yù)測未來某個或某段時期的氣層壓力或日產(chǎn)油數(shù)據(jù)。預(yù)測時由于t時間步后面的日產(chǎn)油量未知,因此,后面每預(yù)測一個時間步,需要將該時間步的預(yù)測值Y(t)更新加入到下一個時間步的預(yù)測模型輸入數(shù)據(jù),使用預(yù)測值Y(t)去預(yù)測下一時刻的值Y(t+1),實現(xiàn)對后續(xù)產(chǎn)量的預(yù)測。
為了驗證模型的可靠性,使用平均絕對百分比誤差e1、 平均絕對誤差e2和 均方根誤差e3評價模型。平均絕對百分比誤差以百分比的方式表示誤差,平均絕對誤差則給出預(yù)測值與實際值的平均差值,均方根誤差表示誤差結(jié)果的穩(wěn)定性,均方根誤差越小表示模型性能越好,其計算方法如下。
式 中,yi,y?i分別為第i個實際值和預(yù)測值。
1號井目前油壓12 MPa,處于穩(wěn)產(chǎn)期,氣井采用配產(chǎn)降壓的方式開發(fā),因此采用穩(wěn)產(chǎn)期產(chǎn)量預(yù)測模型,通過預(yù)測未來井底壓力隨天然氣累計產(chǎn)量的變化規(guī)律來指導(dǎo)未來生產(chǎn)措施調(diào)整。采用2010年3月24日—2020年3月31日未關(guān)井有效數(shù)據(jù)輸入模型,其中2018年2月10日—5月30日數(shù)據(jù)作為訓(xùn)練集和測試集,2018年5月31日—2020年3月31日數(shù)據(jù)作為預(yù)測集進行未來生產(chǎn)動態(tài)預(yù)測。
采用未經(jīng)粒子群優(yōu)化時的模型預(yù)測效果和經(jīng)過粒子群優(yōu)化時的模型預(yù)測效果如圖3所示,虛線左側(cè)為訓(xùn)練段和測試段,虛線右側(cè)為預(yù)測段。
從圖3(a)中可看出,采用未經(jīng)粒子群優(yōu)化時的模型在預(yù)測段擬合效果不佳,預(yù)測值普遍低于實際值,模型在預(yù)測段的預(yù)測誤差隨著累計產(chǎn)量的增加慢慢擴大,預(yù)測效果較差。模型超參數(shù)未經(jīng)粒子群優(yōu)化時,超參數(shù)主要依靠經(jīng)驗選擇,而依靠經(jīng)驗選擇的超參數(shù)很難直接適用于模型,往往需要繁瑣的調(diào)參過程。經(jīng)過粒子群優(yōu)化后,選擇時間窗口大小為10個時間步,第1層LSTM神經(jīng)網(wǎng)絡(luò)神經(jīng)元數(shù)量為11,第2層LSTM神經(jīng)網(wǎng)絡(luò)神經(jīng)元數(shù)量為10,LSTM模型迭代次數(shù)為83。從圖3(b)中可看出經(jīng)過粒子群優(yōu)化的模型預(yù)測效果良好。
圖3 粒子群優(yōu)化前后的1號井模型預(yù)測結(jié)果對比Fig. 3 Comparison of prediction result of No.1 well model before and after particle swarm optimization
對模型在預(yù)測集上的預(yù)測結(jié)果進行了進一步分析。圖4為2種預(yù)測模型預(yù)測值偏離實際值的分布情況,可以看出,經(jīng)過粒子群優(yōu)化后的模型預(yù)測值更加接近斜率為1的直線,說明預(yù)測值更加接近實際值,而未經(jīng)過粒子群優(yōu)化后的模型預(yù)測值更加偏離實際值,預(yù)測效果較差。
圖4 模型預(yù)測值和實際值的偏離情況Fig. 4 Deviation of model prediction from actual value
可以觀察到計算模型在預(yù)測集上的預(yù)測結(jié)果與實際值的均方根誤差、平均絕對誤差和平均絕對百分比誤差在粒子群優(yōu)化后都發(fā)生下降,均方根誤差從1.72256降至0.52508,平均絕對誤差從1.56841降至0.38646,平均絕對百分比誤差從11.857%降至2.911%。研究認為,經(jīng)過粒子群優(yōu)化的LSTM模型預(yù)測效果更好,且能很好地預(yù)測未來生產(chǎn)動態(tài)。
2號井目前油壓8.3 MPa,處于遞減期,氣井采用定壓降產(chǎn)的方式開發(fā),因此采用遞減期產(chǎn)量預(yù)測模型,預(yù)測未來日產(chǎn)氣量隨生產(chǎn)時間的變化規(guī)律,以指導(dǎo)未來生產(chǎn)措施調(diào)整。采用2017年8月31日—2019年5月12日中的未關(guān)井的有效數(shù)據(jù)作為輸入數(shù)據(jù),其中2017年8月31日—2018年10月18日的數(shù)據(jù)作為訓(xùn)練集和測試集,訓(xùn)練并優(yōu)化模型,2018年10月19日—2019年5月12日的數(shù)據(jù)作為預(yù)測集對氣井未來生產(chǎn)動態(tài)進行預(yù)測。
采用未經(jīng)粒子群優(yōu)化的模型預(yù)測效果和經(jīng)過粒子群優(yōu)化的模型預(yù)測效果如圖5所示,虛線左側(cè)為訓(xùn)練段和測試段,虛線右側(cè)為預(yù)測段。
圖5 粒子群優(yōu)化前后的2號井模型預(yù)測結(jié)果對比Fig. 5 Comparison of prediction result of No.2 well model before and after particle swarm optimization
從圖5可以看出,應(yīng)用未經(jīng)粒子群優(yōu)化時的模型在訓(xùn)練集擬合效果較好,但在預(yù)測段預(yù)測效果較差,說明模型的泛化能力較弱,而采用經(jīng)過粒子群優(yōu)化的模型預(yù)測值更貼合實際值。經(jīng)過粒子群優(yōu)化后,優(yōu)化的時間窗大小為4個時間步,第1層LSTM神經(jīng)網(wǎng)絡(luò)神經(jīng)元數(shù)量為6,第2層LSTM神經(jīng)網(wǎng)絡(luò)神經(jīng)元數(shù)量為3,LSTM模型迭代次數(shù)為272次??梢园l(fā)現(xiàn)優(yōu)化的參數(shù)值除迭代次數(shù)外都相對較小,且從圖5中可以看到模型的預(yù)測值在訓(xùn)練集和測試集上的極值點表現(xiàn)較差,分析數(shù)據(jù)后得出結(jié)論,由于2號井已進入見水期,氣井見水后產(chǎn)量波動較大,使模型很難預(yù)測到精確的產(chǎn)氣量,而粒子群優(yōu)化后選擇的較小的超參數(shù),降低了模型的復(fù)雜程度,可以使預(yù)測模型具有更好的泛化能力,從而使預(yù)測效果在整體上表現(xiàn)更加良好。
計算在預(yù)測集上實際值與預(yù)測值的均方根誤差、平均絕對誤差和平均絕對百分比誤差后發(fā)現(xiàn),由于2號井見水后產(chǎn)量波動較大,數(shù)據(jù)的不穩(wěn)定程度大幅度增加,導(dǎo)致誤差增大,但在粒子群優(yōu)化后,均方根誤差從2.12160降至1.14898,平均絕對誤差從1.76625降至0.77692,平均絕對百分比誤差從21.153%降至9.425%。分析兩種條件下在預(yù)測段的誤差大小,可以明顯觀察到經(jīng)過粒子群優(yōu)化后的LSTM模型預(yù)測效果更好,且能夠很好地預(yù)測未來生產(chǎn)動態(tài)。
(1)將機器學(xué)習(xí)中的長短期記憶神經(jīng)網(wǎng)絡(luò)應(yīng)用到生產(chǎn)動態(tài)分析中,并采用粒子群算法優(yōu)化神經(jīng)網(wǎng)絡(luò),實現(xiàn)了對氣井生產(chǎn)動態(tài)的準確預(yù)測。
(2)使用粒子群優(yōu)化算法對建立的長短期記憶神經(jīng)網(wǎng)絡(luò)模型進行優(yōu)化,實現(xiàn)了神經(jīng)網(wǎng)絡(luò)超參數(shù)的自動優(yōu)化,避免了常規(guī)神經(jīng)網(wǎng)絡(luò)繁瑣的調(diào)參過程,大幅度簡化了預(yù)測模型的優(yōu)化過程,操作簡單,便于實現(xiàn)自動化和現(xiàn)場人員使用。
(3)實例應(yīng)用說明,建立的產(chǎn)量預(yù)測模型可以精準地預(yù)測未來生產(chǎn)動態(tài)變化,平均絕對百分比誤差小于10%,預(yù)測精度符合現(xiàn)場要求。