張 旭 谷尚震 劉衛(wèi)華
(1.重慶科技學(xué)院石油與天然氣工程學(xué)院 重慶 401331)(2.中國石油塔里木分公司 庫爾勒 841000)
數(shù)據(jù)準(zhǔn)確的油田產(chǎn)量預(yù)測對科學(xué)制定采油計劃,對油田開發(fā)現(xiàn)狀進行科學(xué)評價具有重要意義,是油田開發(fā)決策的重要數(shù)據(jù)支撐。影響油田產(chǎn)量的因素眾多,井網(wǎng)密度、注水壓力、采出速度、產(chǎn)量遞減率、綜合含水率等都對油井產(chǎn)量構(gòu)成影響。這些影響油田產(chǎn)量的眾多因素之間構(gòu)成了一個極其復(fù)雜的非線性系統(tǒng),采取傳統(tǒng)的方法難以準(zhǔn)確預(yù)測油田的產(chǎn)量。
文獻[1]采用多元回歸算法和自回歸模型對油田產(chǎn)量進行預(yù)測,由于這種算法是基于線性模型而構(gòu)建的,因此面對影響油田產(chǎn)量中的眾多非線性因素預(yù)測的準(zhǔn)確度難以保證。文獻[3]利用威布爾預(yù)測模型算法、雙對數(shù)算法、灰色系統(tǒng)模型算法、俞啟泰模型算法以及微分模擬算法等5種非線性迭代算法對低滲透油田進行產(chǎn)量預(yù)測,結(jié)果顯示這些模型的預(yù)測結(jié)果都具有一定局限性,對不同的地質(zhì)條件其預(yù)測結(jié)果的準(zhǔn)確度相差較大。文獻[4]運用BP神經(jīng)網(wǎng)絡(luò)的智能算法對油田產(chǎn)量進行預(yù)測,具有算法簡單、仿真能力強、易于實現(xiàn)的優(yōu)點,但是在實際運行中表現(xiàn)出了容易陷入局部最優(yōu)、收斂時間長的缺陷,降低了該算法的實用性。
針對上述算法存在問題,本文提出一種改進油田產(chǎn)量預(yù)測算法,該算法利用自適應(yīng)的權(quán)值調(diào)整算子優(yōu)化BP神經(jīng)網(wǎng)絡(luò)連接權(quán)值和閾值,提高神經(jīng)網(wǎng)絡(luò)的收斂速度,提升產(chǎn)量預(yù)測的精度。
BP網(wǎng)絡(luò)是一種單向多層次前饋網(wǎng)絡(luò),采用誤差反向傳播算法調(diào)整網(wǎng)絡(luò)的連接權(quán)值等參數(shù)。BP網(wǎng)絡(luò)按照其網(wǎng)絡(luò)單元功能的不同可分為輸入層、中間層以及輸出層。輸入層,其典型結(jié)構(gòu)如圖1所示。
圖1 BP神經(jīng)網(wǎng)絡(luò)典型結(jié)構(gòu)圖
圖1所示的BP網(wǎng)絡(luò)的輸入向量為 X={x1,x2,x3,…xn}T,則從輸入層至中間層的權(quán)向量為Vk={xk1,xk2,xk3,…xkn} ,中間層的權(quán)值是 V={x1,x2,x,…x}T。中間層的輸入為3m中間層的輸出為 Z={z1,z2,z3,…,zm}Z。中間層到輸出層第i個節(jié)點的權(quán)向量為Wim}T,中間層至輸出層的連接權(quán)值矩陣為W={w1,w2,w3,…,wn}T。輸出層的輸入為 S={s1,s2,s3,…,sn}T,BP網(wǎng)絡(luò)的輸出向量為
BP網(wǎng)絡(luò)預(yù)測算法主要由學(xué)習(xí)算法和預(yù)測算法組成。學(xué)習(xí)算法是通過對樣本數(shù)據(jù)進行自主學(xué)習(xí)確定網(wǎng)絡(luò)各層之間連接權(quán)值和各個神經(jīng)單元的閾值;預(yù)測算法則是利用學(xué)習(xí)成熟的網(wǎng)絡(luò)對未知數(shù)據(jù)進行模擬預(yù)測,得出預(yù)測結(jié)果。在BP網(wǎng)絡(luò)學(xué)習(xí)算法中,學(xué)習(xí)過程有樣本數(shù)據(jù)的正向傳遞和誤差數(shù)據(jù)反向傳遞兩個過程。輸入樣本由輸入層傳入網(wǎng)絡(luò),經(jīng)由中間層逐層解析,傳遞至輸出層。如果輸出層的輸出與樣本輸出存在偏差,則將偏差反置通過中間層向輸入層反向傳遞,在傳遞過程中將偏差信號分別作用到中間層的各個神經(jīng)單元,修正各個網(wǎng)絡(luò)單元的連接權(quán)值。如此不斷重復(fù),直到輸出層的輸出與期望數(shù)據(jù)相符為止,此時BP網(wǎng)絡(luò)的參數(shù)也調(diào)整至最佳。
如果BP網(wǎng)絡(luò)的學(xué)習(xí)樣本數(shù)為K,則需要學(xué)習(xí)的樣本對為(X1,P1),(X2,P2),…,(XK,PK)。由于 BP網(wǎng)絡(luò)每次學(xué)習(xí)和參數(shù)修正是針對單個樣本的優(yōu)化,而對其他樣本可能存在輸出偏差增大的情況,因此需要將樣本成批的學(xué)習(xí)而不是單個樣本的反復(fù)學(xué)習(xí)。最后通過成批樣本學(xué)習(xí)得出的BP網(wǎng)絡(luò)輸出總偏差定義為
BP網(wǎng)絡(luò)算法流程如圖2所示。
圖2 BP網(wǎng)絡(luò)的算法流程
BP網(wǎng)絡(luò)算法的學(xué)習(xí)過程是一個非線性梯度最優(yōu)的過程,在學(xué)習(xí)樣本數(shù)據(jù)不足的前提下收斂過程容易出現(xiàn)局部最優(yōu)。BP網(wǎng)絡(luò)算法在學(xué)習(xí)過程中其參數(shù)收斂速度受到學(xué)習(xí)率等因素影響并不理想。為此文本在引入自適應(yīng)的權(quán)值調(diào)整算子,對BP網(wǎng)絡(luò)每次想學(xué)習(xí)過程中的權(quán)值調(diào)整進行優(yōu)化,把單一方向的調(diào)整變成雙方向調(diào)整,同時通過自適應(yīng)選擇梯度下降法和高斯牛頓法來優(yōu)化網(wǎng)絡(luò)權(quán)值,從而提高權(quán)值參數(shù)的收斂速度,同時避免出現(xiàn)局部最優(yōu)現(xiàn)象。
優(yōu)化的權(quán)值調(diào)整算子采用非線性最小二乘法構(gòu)建,其數(shù)學(xué)表達式為
式(2)中G是偏差對權(quán)值微分的一階偏導(dǎo)數(shù)矩陣。μ是標(biāo)量系數(shù),當(dāng)μ變大時該權(quán)值調(diào)整算法接近于梯度下降法,當(dāng)μ變小接近0時該權(quán)值調(diào)整算法接近于高斯牛頓算法。因此權(quán)值調(diào)整算子隨著系數(shù)μ的變化,表現(xiàn)出不同的特性。權(quán)值調(diào)整算法的具體步驟描述如下。
1)將輸入樣本導(dǎo)入BP網(wǎng)絡(luò)的輸入層,利用式(3)計算出輸出值。
然后運用式(1)計算出所有樣本的累計偏差。
2)利用式(4)計算累計偏差對權(quán)值微分的一階偏導(dǎo)數(shù)矩陣。
式(4)中E是對第m層輸入的第i個元素變化的敏感度,n為單層中間層的權(quán)值代數(shù)和。
基于權(quán)值調(diào)整算子的改進BP預(yù)測算法改進了傳統(tǒng)的BP預(yù)測算法的誤差反饋函數(shù),使得算法收斂時間得到有效控制,迭代次數(shù)減少,同時權(quán)值調(diào)整算子的介入使得BP學(xué)習(xí)過程擺脫了可能存在的局部最優(yōu)桎梏,算法精度得到保證。
算例的預(yù)測算法的樣本數(shù)據(jù)來自大慶油田A采油廠近6年的所有油井日采油速度和日產(chǎn)量。其中前5年的數(shù)據(jù)作為學(xué)習(xí)數(shù)據(jù)庫,最后一年的數(shù)據(jù)作為測試數(shù)據(jù)庫。預(yù)測算法的模型如下式:
式(5)中p(k)表示石油產(chǎn)量,v(k)表示采油速度。n值取20,nv值取20,即以20天的石油日產(chǎn)量和采油速度為輸人樣本,以的石油日產(chǎn)量為期望輸出,用預(yù)測算法模型建立兩者之間的非線性函數(shù)關(guān)系。由于油井產(chǎn)量是一個復(fù)雜的非線性系統(tǒng),影響因素眾多,因此日產(chǎn)量變化范圍大,并且輸入的樣本數(shù)據(jù)量綱不同,所以使用Matlab中的prestd函數(shù)對BP預(yù)測函數(shù)的學(xué)習(xí)樣本數(shù)據(jù)集合進行預(yù)處理,使學(xué)習(xí)樣本的數(shù)值在0~1之間。
根據(jù)BP網(wǎng)絡(luò)理論,三層BP網(wǎng)絡(luò)能夠以較高的精度擬合大多數(shù)非線性函數(shù),因此選擇三層網(wǎng)絡(luò)結(jié)構(gòu)作為預(yù)測算法模型的基礎(chǔ)。樣本輸入數(shù)量為20,三層BP網(wǎng)絡(luò)的輸人節(jié)點為20個,中間層節(jié)點數(shù)量設(shè)定為80,輸出節(jié)點為1。因此本三層網(wǎng)絡(luò)模型結(jié)構(gòu)為(20,80,1),中間層函數(shù)采用tansig函數(shù),輸出層則采用purelin函數(shù)。
改進產(chǎn)量預(yù)測算法的收斂情況如圖3所示,算法的最小的偏差平方為774607*10-3,算法完成收斂的期望偏差為0.01。圖3橫坐標(biāo)為迭代次數(shù),縱坐標(biāo)為期望輸出偏差,當(dāng)輸出偏差小于期望值時,算法收斂完成。由圖2知,通過13769次收斂,算法完成收斂。
圖3 改進預(yù)測算法收斂情況
預(yù)測模型的預(yù)測結(jié)果情況如圖4所示。從圖4中可以看出預(yù)測結(jié)果平均精度約為94.8%。
圖4 改進預(yù)測算法的預(yù)測結(jié)果偏差
與傳統(tǒng)BP網(wǎng)絡(luò)預(yù)測算法的預(yù)測性能對比如表1所示。
表1 改進預(yù)測算法與傳統(tǒng)BP網(wǎng)絡(luò)算法的性能對比
由表1可以看出改進預(yù)測算法叫傳統(tǒng)BP網(wǎng)絡(luò)算法具有更好的預(yù)測精度和更快的收斂速度。
針對傳統(tǒng)油田產(chǎn)量預(yù)測算法難以計算影響油田產(chǎn)量的非線性變量以及BP網(wǎng)絡(luò)算法存在的收斂慢、精度欠缺的問題,本文提出了一種基于BP網(wǎng)絡(luò)算法的改進油田產(chǎn)量預(yù)測算法。該算法通過自適應(yīng)的權(quán)值調(diào)整算子對BP網(wǎng)絡(luò)權(quán)值的優(yōu)化調(diào)整加快預(yù)測算法的學(xué)習(xí)速度,并使得算法擺脫局部最優(yōu)的缺陷,提高算法的預(yù)測精度,最后通過算例驗證了改進算法的有效性,同時得出以下結(jié)論:1)基于三層網(wǎng)絡(luò)結(jié)構(gòu)的傳統(tǒng)的BP網(wǎng)絡(luò)算法能夠較為實際地反饋油田產(chǎn)量和各個影響因素之間的非線性關(guān)系,在充分收斂的情況下具有一定的油田產(chǎn)量預(yù)測性能,但是由于收斂速度過慢切在學(xué)習(xí)數(shù)據(jù)不足的情況下容易陷入局部最優(yōu);2)對傳統(tǒng)BP網(wǎng)絡(luò)算法的初始連接權(quán)值進行優(yōu)化調(diào)整能夠較為明顯地提高算法地收斂性能;3)本文在算例驗證中對油井各種影響產(chǎn)量地開采因素考慮較為局限,沒有針對同一儲層地油井之間地產(chǎn)量影響以及前期開采累計量地影響進行充分考慮,因此需要在進一步加以研究,以繼續(xù)提升算法的預(yù)測準(zhǔn)確度。