任燕龍, 谷建偉*, 崔文富, 張以根
(1.中國石油大學(華東)石油工程學院,青島 266580;2.中國石化勝利油田分公司勘探開發研究院,東營 257015;3.中國石化勝利油田分公司勝利采油廠,東營 257015)
油田的產量預測是油田開發方案的重要內容,在很大程度上決定著油田的整體開發水平與開發效果[1]。現階段,中國東部油田大多進入了生產開發后期,傳統的產量預測方法,如水驅曲線法、產量遞減法等對于油田的產量預測出現了不適應的狀況。而產量預測是一個時序性的問題,對于時間序列的預測問題,長短期記憶神經網絡[2](long-short term memory,LSTM)已廣泛應用于語音識別[3]、網絡流量預測[4]、鉆前測井曲線預測[5]、電力預測[6-8]、有毒氣體規律預測[9]等領域中。因此,選用LSTM神經網絡對油田產量進行預測,但是由于油田產量具有很強的階段性,在油藏工程中分為產量上升期、產量穩定期、產量遞減期,簡單地直接應用LSTM神經網絡會出現網絡泛化性差的問題,預測精度很低,預測產量甚至會出現負值,偏差很大。
針對LSTM神經網絡泛化性差的問題,對深度學習網絡的架構進行優化。毛焱穎[10]提出一種基于注意力雙層LSTM的長文本情感傾向性分析方法;Peng等[11]使用雙LSTM層來調整參數以提高語句生成的準確性。雙LSTM層較單LSTM層可以進行更加深度的學習,能夠捕捉長期依賴性,記錄更久的時序特征,預測更加準確。因此,建立了基于雙層LSTM的深度學習網絡,在深度學習網絡之中還加入了隨機失活層,消除了神經元之間的依賴,進一步提高了神經網絡的泛化能力。除優化網絡架構外,還通過果蠅優化算法[12](fruit fly optimization algorithm,FOA)在全局空間上搜尋最優解,避免神經網絡陷入局部最優解。目前,果蠅算法已經廣泛應用于科學與工程領域[13-16],同時對于果蠅算法的優化研究也在不斷開展,陳明揚等[17]自適應調整果蠅種群數量和搜索步長,同時優化初始迭代位置;李梅紅[18]對果蠅種群進行劃分,利用了優勢種群與弱勢種群的協同配合;Hassan等[19]提出了離散果蠅算法。這些方法都提高了果蠅優化算法的全局尋優能力和局部收斂速度。
基于此,提出一種新的果蠅群體聚集思路,并結合優勢群體和動態搜索半徑的方法對傳統的果蠅優化算法進行改進,基于改進的果蠅算法對所建立的深度學習神經網絡產量預測模型進行優化,建立基于改進果蠅算法的深度學習神經網絡油田產量預測模型,以期可以較為準確地預測變化波動幅度大的油田產量時序序列。
建立深層學習神經網絡模型,其核心部分是雙LSTM層,另外加入隨機失活層極大提高了神經網絡泛化能力。
長短期記憶神經網絡是循環神經網絡的一種特殊形式,而循環神經網絡模型[20](recurrent neural networks,RNN)是在普通多層前饋網絡(back propagation neuron network,BPNN)的基礎上,增加了隱藏層各單元間的橫向聯系,通過一個權重矩陣,可以將上一個時間序列的神經單元的值傳遞至當前的神經單元,從而使神經網絡具備了記憶功能,如圖1所示。

x為輸入;h為隱含層;o為網絡預測輸出;y為真實輸出;L為預測輸出與真實輸出之間的損失;W為隱含層的權重矩陣,記憶時間序列的變化規律圖1 RNN結構圖Fig.1 RNN structure diagram
但是RNN神經網絡存在梯度彌散和梯度指數上升的問題,這是因為其訓練算法使用的是反向傳播算法(back propagation trough time,BPTT),當時間比較長時,回傳的殘差將指數下降,導致網絡權重更新緩慢,無法體現出長期記憶的效果,需要一個存儲單元來存儲記憶,因此LSTM模型被提出。LSTM是循環神經網絡模型的一種變體,LSTM之所以可以進行長期記憶,主要是由于其獨特的細胞結構。傳統的RNN中都具有一種重復神經網絡模塊的鏈式的形式。在標準的RNN中,這個重復的模塊只有一個非常簡單的結構,例如一個tanh層,而LSTM的細胞結構比較獨特,如圖2所示。

圖2 LSTM細胞結構示意圖Fig.2 LSTM cell structure diagram
如圖2所示,A代表某一時刻的細胞單元,Xt-1、Xt、Xt+1分別為上一時刻、當前時刻、下一時刻細胞單元的輸入特征向量;ht-1、ht、ht+1分別為上一時刻、當前時刻、下一時刻細胞單元的輸出信息;σ為激活函數,決定著信息保留,一般是sigmod函數;tanh層創建并更新候選信息,從而實現對變量隨時間變化規律的長期記憶;ft為遺忘門輸出信息;it為輸入門輸出信息;ot為輸出門輸出信息;為候選細胞狀態;Ct-1為上一時刻的細胞狀態;Ct為當前時刻的細胞狀態。
LSTM的細胞結構包括一個記憶鏈(紅線)、遺忘門(黃線)、輸入門(藍線)、輸出門(橙線)。通過記憶鏈Ct記錄和更新當前的細胞狀態,并向下一個時間步傳遞。通過三個門來保護和控制細胞狀態,對信息進行篩選和更新。
遺忘門:作用于細胞狀態,選擇性遺忘記憶細胞中的信息。
ft=σ[Wf(ht-1,xt)+bf]
(1)
輸入門:作用于細胞狀態,將新的信息選擇性的記錄到新的細胞狀態中。
it=σ[Wi(ht-1,xt)+bi]
(2)
(3)

(4)
輸出門:作用于輸入和隱含層輸出,使得最后輸出既包括細胞狀態又包括輸入,將其結果更新到下一個隱層。
ot=σ[Wo(ht-1,xt)+bo]
(5)
ht=ottanhCt
(6)
式中:xt為當前時刻的輸入信息;Wf為遺忘門的連接權重;bf為遺忘門的偏置系數;Wi為輸入門的連接權重;bi為輸入門的偏置系數;Wc為記憶單元的連接權重;bc為記憶單元的偏置系數;Wo為輸出門的連接權重;bo為輸出門的偏置系數。
圖2可看作LSTM層內部上一時刻與當前時刻的單節點信息傳遞。圖3表示多節點的信息傳遞。輸入層的節點數由輸入數據的特征個數決定;隱含層節點數通常根據需要或者經驗公式給出,一般基于訓練與預測結果進行調整;由于是多層神經網絡相連,輸出層的個數由下一層的節點數確定,通常由所預測的指標個數確定。在隱含層中,上一時刻所有節點的輸出均輸入到下一時刻的所有節點。

圖3 LSTM信息傳遞圖Fig.3 LSTM information transfer diagram
具有大量參數的深層學習網絡通常會出現過擬合問題,導致神經網絡的泛化能力很低。Srivastava等[21]提出了隨機失活的方法:在訓練過程中,隨機丟棄(按照伯努利概率使得部分節點在訓練過程中不進行更新)深度學習網絡中的部分節點,使得網絡結構簡單化,但是在測試過程中依然用全部的神經節點進行測試。由于是隨機丟棄,這就相當于在每一個最小步長中訓練的都是不同的神經網絡,假設某一層有n個節點,那么就有2n種組合(子網絡)。所以最后訓練所得的神經網絡具有一種網絡種群平均化,即集成學習的概念,可以提高網絡的泛化能力。全連接層的每一個節點與上一層所有節點均相互連接,可以將上一層所提取的特征綜合起來。
標準果蠅優化算法(fruit fly optimization algorithm,FOA)采用基于種群的全局隨機尋優優化算法,通過跟蹤當前最優解的信息來指導種群的下一步搜索,使得種群能夠以當前最優解為中心開展局部隨機搜索,并朝著更優的方向搜索前進。首先,給出果蠅種群的中心位置,眾多果蠅個體從中心出發,賦予其隨機的飛行方向與距離,使其隨機分布在空間上,然后找出當前種群中距離食物最近的個體,此時,其他果蠅通過視覺效果向最優個體靠近,重復上面的步驟,使得果蠅種群逐步向食物靠近。
建立了改進果蠅優化算法(improved fruit fly optimization algorithm,IFOA),主要從三方面對果蠅算法進行改進。首先,在果蠅進行位置更新時挑選出上一代個體總數k%的優勢個體作為下一代種群的產生基礎,保留優勢個體的位置,即權重矩陣和閾值矩陣,剩下的(100-k)%的個體向優勢個體位置的附近聚集。因為當前的最優個體附近并不一定在全局最優的附近,如果只向最優個體附近聚集,極易陷入局部最優解,因此向優勢群體聚集可以減小陷入局部最優的概率;考慮到優勢個體附近劣勢個體的聚集比例問題,提出了兩種聚集方法:等比例聚集,即每一個優勢個體附近都聚集比原來多(100-k)/k倍的個體數;按味道濃度的大小比例聚集,先將優勢群體的味道濃度求和,計算出每一個優勢個體味道濃度占優勢群體味道濃度和的比重,劣勢群體按照此比重進行分配聚集;最后,在種群局部尋優時,采用動態改變果蠅算法搜索半徑的方法對果蠅算法進行改進,使得搜索半徑逐代減小,因為在迭代初期,迭代步長過長有利于全局尋優,不易陷入局部最優解,但是在迭代后期,迭代步長過長會使得局部尋優能力下降,有可能跳出最優解,因此需要動態變化搜索半徑。
考慮到優化深度學習神經網絡的要求,主要是通過改進的果蠅優化算法對神經網絡層的權值和閾值矩陣進行優化,尋找最優的神經網絡層的初始值,因為神經網絡的初始位置對訓練結果有很大的影響。對尋優過程做了如下的特殊化處理。
Step 1初始化種群。
設置種群的最大規模p,最大迭代步數g,種群個體的位置即為各神經網絡層的權值與閾值矩陣,考慮到神經網絡預測模型的訓練結果受權值與閾值矩陣的影響很大,因此將位置范圍R設置在-1~1,初始位置由式(7)、式(8)確定:
R(i)_L(j)·W(m,n)=rand(-1,1)
(7)
R(i)_L(j)·B(k,l)=rand(-1,1)
(8)
式中:R(i)為第i個個體的位置,i=1,2,…,p;L(j)為第j層神經網絡,j=2,3,4,6;W(m,n)為該層權重矩陣的第m行、第n列的數據;B(k,l)為該層權重矩陣的第k行、第l列的數據。
記R(i)_L(j)W(m,n)為RLW,記R(i)_L(j)B(k,l)為RLB。
Step 2嗅覺搜索過程。
每一個個體都會朝著不同的方向飛行不同的距離,設置最大的搜索半徑Rmax為0.001,使其隨著迭代步數的增加逐漸減小,則R由式(9)確定,果蠅個體的位置更新由式(10)、式(11)確定:
(9)
(10)
(11)
式中:I為當前迭代步數;RI為第I次迭代的搜索半徑。
Step 3計算味道濃度。
將深度學習網絡訓練所得的均方誤差作為味道濃度判定函數:
(12)
Step 4優選個體
通過式(12)計算出的種群個體的味道濃度,選出前k%優勢個體,假設有T個優勢個體,按味道濃度的大小比例P聚集:
(13)
則第I代第h個優勢個體附近聚集的劣勢個體數目G由式(14)確定。
G(I,h)=P(I,h)p(1-k)%
(14)
Step 5迭代求解。
重復Step2~Step4,優選個體、更新種群,直到迭代步數達到g,最后以最優個體的位置作為深度學習網絡的網絡層權重和閾值矩陣。
實例油田選自勝利油區的勝坨油田,該油田從1966年投入開發,截至目前開發周期已達53年。由于該油田開發過程中層系、井網相對穩定,中間數據記錄比較完整,因此選為研究對象??偣蹭浫×嗽撚吞?974年1月—2018年12月,共540月的月度生產數據。該油田的產量變化有明顯的階段性特征,油田剛開始投入生產時,產量很高,并且變化幅度劇烈,處于不穩定期,而后經過開發調整進行穩產期,產量略有下降,一段時間之后產量又開始降低,開始進入下一個穩產期。穩產—遞減兩個階段交替進行,總體來看產量的波動變化很大,如圖4所示。

圖4 油田產量變化Fig.4 Oilfield production change
由油藏工程方法選出11個與產油量相關的屬性,其中,油水井數比可以反映油田的布井方式,部分數據如表1所示。

表1 部分原始數據(2018年)Table 1 Partial raw data(2018)
由于原始數據的單位不同,存在著數量級差異,數量級差異會導致量級較大的屬性占據主導地位,使產油量僅依賴于某一屬性;還會導致訓練的收斂速度減慢,因此需要對原始數據進行歸一化處理。油田數據是不斷變化的,且與開發階段和調整方式有很大關系,某一屬性最大值與最小值未知,因此選用z-score標準化 (zero-mean normalization),對于每一個屬性,x(j),j=1,2,…,12,根據式(15)、式(16)計算出該屬性下的均值μ和標準差σ′。
(15)
(16)
然后根據式(17)、式(18)計算標準化后的屬性值:
(17)
(18)

實例驗證選擇平均相對誤差(mean relative error,MRE)和歸一化均方根誤差(normalized root mean square error,nRMSE)作為評價標準,具體計算公式如式(19)、式(20)所示:
(19)
(20)
式中:y′為神經網絡預測值;y為實際數據值;ymax為測試數據的最大值;ymin為測試數據的最小值。
現通過單層LSTM、雙層LSTM、三層LSTM、四層LSTM的四種不同的網絡層架構對油田現場數據進行訓練測試,將數據集的前486月的歸一化生產數據作為訓練集,后54個月作為測試集進行驗證。將每一種神經網絡架構訓練并驗證100次,取100次的平均值,預測情況對比如圖5所示。

圖5 多層LSTM模型產油量預測對比Fig.5 Multi-layer LSTM model oil production forecast comparison
如圖5所示,實際產油量處于一個波動變化但是相對平穩的狀態,單層LSTM的預測產油量偏低,預測誤差較大,這是由于單層LSTM不能較好地記憶長期的變化規律;三層LSTM和四層LSTM的預測產油量偏高,誤差比較大,所預測的產油量沒有隨油田生產參數的變化波動情況,這是由于LSTM層數增多,導致神經網絡模型過擬合,泛化性能力較差。相比較而言,雙層LSTM的預測產油量比較接近實際。
四種神經網絡架構的預測誤差如表2所示。由表2可以看出,雙層LSTM架構的MRE和nRMSE最小,預測精度最高,因此在雙層LSTM的基礎上進行優化。

表2 預測誤差對比表Table 2 Comparison error forecast table
采用雙層LSTM、深層學習網絡架構(deep learning network,DLN)、經過改進果蠅算法優化的雙層LSTM、DLN四種模型分別進行訓練和預測,對比情況如圖6所示。

黑色實線為實際產油量;虛線為未優化的神經網絡的預測產油量;另外兩條實線為優化后的神經網絡的預測產油量圖6 優化效果圖Fig.6 Optimized comparison chart
由圖6可知,雙層LSTM的預測產油量偏高,DLN的預測產油量偏低,DLN比雙層LSTM神經網絡的雙層LSTM更加接近實際曲線,誤差更小,經過改進的果蠅算法優化之后的兩種神經網絡架構中依然是DLN架構的誤差更小,即IFOA-DLN預測精度更高,可以很好地擬合實際產油量曲線。另外,DLN與IFOA-雙層LSTM相比較而言,DLN是優化了神經網絡架構,IFOA-雙層LSTM是通過改進的果蠅算法進行尋優,結果表明IFOA-雙層LSTM的預測效果更好,說明通過改進的果蠅算法尋優比優化架構更能提高預測精度。
四種神經網絡的預測誤差,如表3所示。

表3 預測誤差對比Table 3 Comparison error forecast
種群的最優值和平均值隨迭代步數的變化情況,如圖7所示。

圖7 誤差迭代變化Fig.7 Error iteration change
由圖7可以看出,隨著迭代步數的增加,種群的平均的MRE與nRMSE和最優的MRE與nRMSE都在逐漸降低,說明通過改進的果蠅優化算法尋找最優的深度學習網絡的網絡權值和閾值是切實可行的,較大提高了神經網絡的泛化能力,提高了預測精度。
(1)經過長期開發的油田,其生產數據波動性較為劇烈,直接應用單層LSTM神經網絡模型具有泛化性很差的問題。首先對多層LSTM神經網絡進行優選,結果表明雙層LSTM的預測精度較高,且可以反映產油量隨其他生產指標變化的波動性,說明泛化性較好,所以選擇雙層神經網絡作為研究基礎。
(2)通過添加全連接層以及隨機失活層進一步增加了神經網絡的泛化能力。最后,利用果蠅優化算法,通過優勢群體的多目標尋優、按味道濃度比例聚集的方式以及搜索半徑的動態變化對果蠅優化算法進行改進。
(3)基于改進的果蠅優化算法,尋找最優的DLN網絡參數,建立了IFOA-DLN油田產量預測模型,預測精度進一步提高。結果表明,IFOA-DLN神經網絡模型泛化能力強,可以克服油田生產數據隨時間變化幅度大的問題,對于時序序列數據具有較高的適應性,預測精度可以滿足礦場需要,對于油田的生產開發調整具有一定的意義。