于志剛,張德政,宋文江,葛 嵩,辛小軍
(1.中海石油(中國)有限公司 湛江分公司,廣東 湛江524057;2.中法渤海地質(zhì)服務(wù)有限公司 湛江分公司,廣東 湛江524057)
在復(fù)雜斷塊油藏注水開發(fā)過程中,由于注水井層間矛盾突出,油水分布、運(yùn)動(dòng)規(guī)律復(fù)雜,會(huì)導(dǎo)致油田開發(fā)時(shí)低滲透層吸水情況差,影響水驅(qū)油田的開采率。為改善油田注水開發(fā)的效果,對(duì)注水指標(biāo)進(jìn)行科學(xué)可靠的預(yù)測,需要一種能提高工作效率和預(yù)測精度的預(yù)測方法[1]。人工智能算法在工程領(lǐng)域已被廣泛應(yīng)用。BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)已經(jīng)成功應(yīng)用于棉紗強(qiáng)度[2]和海洋區(qū)域經(jīng)濟(jì)的預(yù)測[3],但其存在收斂速度慢,網(wǎng)絡(luò)結(jié)構(gòu)選擇不統(tǒng)一的缺點(diǎn)。全連接神經(jīng)網(wǎng)絡(luò)(FCNN:Fully Connected Neural Network)預(yù)測模型,在軟件缺陷預(yù)測[4]上表現(xiàn)出較好的效果,但其無法考慮到數(shù)據(jù)在時(shí)間上的相關(guān)性,難以預(yù)測時(shí)間序列數(shù)據(jù)。基于改進(jìn)循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN:Recurrent Neural Network),即長短期記憶(LSTM:Long Short-Term Memory)網(wǎng)絡(luò)預(yù)測模型,在交通流量[5]和油田產(chǎn)油量預(yù)測[6]上得到了廣泛應(yīng)用。該模型能考慮到數(shù)據(jù)在時(shí)間上的相關(guān)性,捕捉到序列的歷史信息,并將其運(yùn)用于當(dāng)前輸出的計(jì)算中,可以有效地解決其他神經(jīng)網(wǎng)絡(luò)無法適應(yīng)時(shí)間序列數(shù)據(jù)的問題[7],彌補(bǔ)了RNN神經(jīng)網(wǎng)絡(luò)可能存在的梯度消失、梯度爆炸的缺點(diǎn),以及在長時(shí)間序列的處理上存在的記憶力不足問題。
綜合考慮油田注水的實(shí)際生產(chǎn)情況,結(jié)合注水的歷史數(shù)據(jù)和影響因素,筆者選取LSTM神經(jīng)網(wǎng)絡(luò)建立注水預(yù)測模型,獲得一種預(yù)測精度高,適應(yīng)性強(qiáng)的預(yù)測方法。在對(duì)某油田的未來注水量的預(yù)測中,與傳統(tǒng)RNN預(yù)測模型進(jìn)行對(duì)比,結(jié)合評(píng)價(jià)指標(biāo)和注水預(yù)測曲線對(duì)模型的注水效果進(jìn)行了分析。
對(duì)于油田注水預(yù)測模型,其輸入輸出數(shù)據(jù)是有關(guān)聯(lián)的。油田注水量除了受到油壓、套壓和技術(shù)因素等影響外,還存在較強(qiáng)的時(shí)間相關(guān)性,而傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)輸入輸出數(shù)據(jù)相對(duì)獨(dú)立且關(guān)聯(lián)性較差?;谥靶畔?引入文獻(xiàn)[8]中如圖1結(jié)構(gòu)帶有記憶性的RNN。x,S,o為3個(gè)向量,分別表示輸入層、隱藏層和輸出層的值。U、V、W分別表示輸入層與隱藏層、隱藏層與輸出層、隱藏層與隱藏層的權(quán)重矩陣。則有
其中st為t時(shí)刻的隱藏狀態(tài);xt為t時(shí)刻的輸入;st-1為前一時(shí)刻隱藏狀態(tài),ot為t時(shí)刻的輸出;f和g分別為輸出層和隱藏層的激勵(lì)函數(shù),bs、bo為隱藏層和輸出層的偏置。
圖1給出了RNN在3個(gè)相鄰時(shí)間步的計(jì)算邏輯。在st-1時(shí)刻,為保存上一時(shí)刻的隱藏變量st-1引入的權(quán)重參數(shù)W,用于描述在當(dāng)前時(shí)刻如何使用前一時(shí)刻的隱藏變量。隱藏狀態(tài)st,是將輸入st-1和前一時(shí)刻隱藏狀態(tài)st-1連接后輸入一個(gè)激活函數(shù)為f的全連接層。該全連接層的輸出就是當(dāng)前時(shí)刻的隱藏狀態(tài),且模型參數(shù)為U與W的連結(jié),偏差為bs。當(dāng)前時(shí)刻t的隱藏狀態(tài)st將參與下一時(shí)刻t+1的隱藏狀態(tài)st+1的計(jì)算,并輸入到當(dāng)前時(shí)刻的全連接輸出層ot。此外,在不同時(shí)刻的計(jì)算中,網(wǎng)絡(luò)中的這些參數(shù)也始終被RNN使用,所以RNN模型參數(shù)的數(shù)量不隨時(shí)間步的增加而增長。
圖1 RNN結(jié)構(gòu)Fig.1 RNN structure
給定油田的輸入數(shù)據(jù)x={x1,x2,…,xt,…,xT},根據(jù)式(2)計(jì)算隱藏層狀態(tài)s={s1,s2,…,st,…,sT}和輸出o={o1,o2,…,ot,…,oT}。T為所采用時(shí)間段內(nèi)根據(jù)采樣間隔計(jì)算的采樣點(diǎn)數(shù)量。
在油田注水的預(yù)測模型中,若采用的數(shù)據(jù)為時(shí)間間隔持續(xù)擴(kuò)大、周期較長的眾多數(shù)據(jù),可能會(huì)出現(xiàn)梯度爆炸和梯度消失的現(xiàn)象[9]。針對(duì)此問題,引入文獻(xiàn)[10]中基于傳統(tǒng)RNN改進(jìn)的神經(jīng)網(wǎng)絡(luò)如圖2所示,即LSTM神經(jīng)網(wǎng)絡(luò)。在傳統(tǒng)RNN的基礎(chǔ)上引入了控制門結(jié)構(gòu),由記憶單元、輸入門、輸出門和遺忘門組成。通過控制門機(jī)制,可使LSTM神經(jīng)網(wǎng)絡(luò)能穩(wěn)定傳遞和更新時(shí)序信息,有效地將長距離信息保存在隱藏層中。t時(shí)刻每個(gè)門的輸入數(shù)據(jù)都是上一時(shí)刻的輸出st-1與當(dāng)前時(shí)刻輸入xt構(gòu)成的向量[st-1,xt]與其權(quán)重的點(diǎn)乘。
圖2 LSTM結(jié)構(gòu)展開Fig.2 The LSTM structure expansion
LSTM模型的各個(gè)控制門的計(jì)算公式如下。
1)遺忘門。信息通過遺忘門,控制需舍去的信息,其通過Sigmoid激勵(lì)函數(shù)的輸出值([0,1]區(qū)間內(nèi)的值)決定。計(jì)算在t時(shí)間步記憶單元遺忘層的值,遺忘門計(jì)算公式為
其中Δ為Sigmoid激勵(lì)函數(shù),ft為t時(shí)刻Δ函數(shù)的輸出,Wf為遺忘門的權(quán)值向量,st-1為上一時(shí)刻的輸出,xt為當(dāng)前時(shí)刻輸入,bf為遺忘門的偏置向量。
2)輸入門。第t時(shí)間步輸入數(shù)據(jù)率先通過輸入門,第t時(shí)間步記憶單元輸入層的值和隱藏層狀態(tài)的候選值分別為
其中tanh為雙曲正切激勵(lì)函數(shù),it為t時(shí)刻Δ的輸出,為t時(shí)刻tanh函數(shù)的輸出,Wi、Wc為輸入門、記憶單元的權(quán)值向量,bi、bc為輸入門、記憶單元的偏置向量。
3)對(duì)記憶單元進(jìn)行更新,從而得出t時(shí)刻的記憶單元更新值
其中ct為t時(shí)刻長期記憶,ct-1為上一時(shí)刻記憶。
4)輸出門??刂茮Q定需要輸出的信息,根據(jù)計(jì)算得到的記憶單元更新值,第t時(shí)刻步記憶單元輸出層的值以及最終記憶單元的輸出值分別為
實(shí)驗(yàn)采用某油田任一層位的某一時(shí)間段的注水?dāng)?shù)據(jù),綜合考慮油壓、套壓等影響因素,建立LSTM神經(jīng)網(wǎng)絡(luò)模型,通過網(wǎng)絡(luò)訓(xùn)練,預(yù)測未來的注水量,并與傳統(tǒng)RNN預(yù)測模型進(jìn)行比較,根據(jù)評(píng)價(jià)指標(biāo)的數(shù)據(jù)和實(shí)驗(yàn)的預(yù)測效果,分析LSTM注水預(yù)測模型的可行性。
筆者選取某油田2015年的注水開發(fā)數(shù)據(jù),其數(shù)據(jù)記錄折線圖如圖3所示。
圖3 注水?dāng)?shù)據(jù)折線圖Fig.3 Line chart of water injection data
其中將2015年11月某一時(shí)段的數(shù)據(jù)作為訓(xùn)練集,用于擬合模型,這一時(shí)段的后半部分的數(shù)據(jù)作為驗(yàn)證集,用于確定網(wǎng)絡(luò)結(jié)構(gòu)和模型參數(shù)。隔5 s記錄一組數(shù)據(jù),共計(jì)取777組數(shù)據(jù)。模型的輸出變量是油井的注水量,輸入變量包括注水量、套壓和油壓。
在建立油田注水預(yù)測模型過程中,數(shù)據(jù)輸入時(shí),可能會(huì)存在取值范圍相差較大的問題,需避免數(shù)值過大的特征值輸入對(duì)預(yù)測結(jié)果的影響,所以有必要對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,即數(shù)據(jù)歸一化,將輸入數(shù)據(jù)轉(zhuǎn)換為標(biāo)準(zhǔn)正態(tài)分布,以平衡特征間的數(shù)值差異,提高模型訓(xùn)練的速度與穩(wěn)定性。數(shù)據(jù)歸一化的計(jì)算公式為
其中xnom為標(biāo)準(zhǔn)化處理后的值,x為原始值,xmax為樣本數(shù)據(jù)的最大值,xmin為樣本數(shù)據(jù)的最小值。
為評(píng)估LSTM模型在注水預(yù)測上的準(zhǔn)確度,筆者選取均方根誤差(RMSE:Root Mean Squared Error)、平均絕對(duì)誤差(MAE:Mean Absolute Error)、決定系數(shù)(R2)作為評(píng)價(jià)注水預(yù)測模型精度的指標(biāo),方程如下
筆者采用Windows系統(tǒng)下Python語言進(jìn)行編程,其中主要通過Keras深度學(xué)習(xí)庫實(shí)現(xiàn)LSTM神經(jīng)網(wǎng)絡(luò)的搭建,選取LSTM神經(jīng)網(wǎng)絡(luò)預(yù)測模型對(duì)油井注水量進(jìn)行預(yù)測,具體實(shí)驗(yàn)流程如圖4所示。首先隨機(jī)初始化LSTM神經(jīng)網(wǎng)絡(luò)參數(shù),隱藏層神經(jīng)元個(gè)數(shù)為50,輸出層為1個(gè)神經(jīng)元,模型訓(xùn)練次數(shù)為60,每次抓取用于訓(xùn)練的批次大小為72。網(wǎng)絡(luò)優(yōu)化選用Adam優(yōu)化函數(shù),用于計(jì)算神經(jīng)網(wǎng)絡(luò)每個(gè)參數(shù)的自適應(yīng)學(xué)習(xí)率。將數(shù)據(jù)集按一定比例劃分,訓(xùn)練集占62%,測試集占38%,利用訓(xùn)練集對(duì)模型進(jìn)行訓(xùn)練,模型訓(xùn)練結(jié)束后,再用測試集對(duì)模型進(jìn)行評(píng)估。
圖4 實(shí)驗(yàn)流程圖Fig.4 Flow chart of experiment
根據(jù)已設(shè)定的數(shù)據(jù)比例進(jìn)行網(wǎng)絡(luò)訓(xùn)練與驗(yàn)證,不同算法的評(píng)價(jià)指標(biāo)對(duì)比如表1所示。數(shù)據(jù)顯示,LSTM模型下的RMSE降低了13.95,MAE降低了9.3,數(shù)值大幅降低,R2由0.40增加至0.99,說明RNN預(yù)測準(zhǔn)確性與LSTM神經(jīng)網(wǎng)絡(luò)相比差距較大,因此基于LSTM構(gòu)建的預(yù)測模型效果要優(yōu)于RNN預(yù)測模型。
表1 不同算法預(yù)測性能對(duì)比Tab.1 Comparison of prediction performance of different algorithms
損失函數(shù)的變化趨勢如圖5所示。通過圖5可以看出,網(wǎng)絡(luò)經(jīng)過前28次迭代損失函數(shù)大幅降低,在第28~60次迭代階段時(shí)逐漸趨于平穩(wěn),說明最終得到的參數(shù)是該結(jié)構(gòu)下的最優(yōu)參數(shù)結(jié)果。注水實(shí)際值和預(yù)測值的對(duì)比如圖6所示。通過圖6可以看出,LSTM模型得到的注水預(yù)測曲線,較傳統(tǒng)RNN模型預(yù)測曲線表現(xiàn)的趨勢更為接近注水?dāng)?shù)據(jù)的實(shí)際值,預(yù)測精度大幅提高。因此,LSTM預(yù)測模型的數(shù)據(jù)跟蹤效果良好,穩(wěn)定性較高,有效地避免了傳統(tǒng)RNN模型在預(yù)測長時(shí)間序列數(shù)據(jù)時(shí)易產(chǎn)生的長期記憶缺失問題。由此可見,在注水預(yù)測中,LSTM模型預(yù)測效果更優(yōu)。
圖5 損失函數(shù)變化曲線Fig.5 The change curve of the loss function
圖6 實(shí)際值與預(yù)測值對(duì)比Fig.6 Actual value vs predicted value
針對(duì)所研究的復(fù)雜斷塊油藏,筆者通過建立LSTM預(yù)測模型,將油田注水?dāng)?shù)據(jù)和影響因素同時(shí)間相關(guān)聯(lián),對(duì)油田的未來注水量進(jìn)行了預(yù)測,并與RNN的評(píng)價(jià)指標(biāo)結(jié)果和注水預(yù)測曲線進(jìn)行比較。實(shí)驗(yàn)結(jié)果證明,LSTM注水模型預(yù)測效果和穩(wěn)定性較好,預(yù)測精度更高,所以該方法可以應(yīng)用于油田開發(fā)工程,作為指導(dǎo)油田注水開發(fā)的一條新渠道。同時(shí),油田注水預(yù)測的特征數(shù)據(jù)還應(yīng)增加其他數(shù)據(jù),比如不同層位之間的地層數(shù)據(jù)分析等,使用更多的特征數(shù)據(jù)進(jìn)行注水預(yù)測,有望進(jìn)一步提高油田注水預(yù)測的準(zhǔn)確率。