張強,王穎,郭玉潔
(東北石油大學 計算機與信息技術學院,大慶 163318)
油藏開發過程中儲層的微觀孔隙結構特征是影響儲集層流體的儲集能力和高效開發油氣資源的主要因素,特別是油田進入高含水開采期間,準確分析和確定開采儲層的微觀孔隙結構特征是提升目的油層產能和提高采收率的關鍵。目前儲層的微觀孔隙結構識別主要采用室內實驗法和測井資料法。藺景龍等人[1]通過三層BP網絡建立測井資料與微觀孔隙結構類型的映射關系來識別油層的孔隙結構類型。Yakov等人[2]提出橫向弛豫時間和毛管壓力間的轉換關系,為利用核磁共振測井資料研究儲層微觀孔隙結構提供了理論支持。肖飛等人[3]運用T2幾何均值擬合法和偽毛管壓力曲線轉換法連續、定量地表征了儲層微觀孔隙結構。
2004年 Guang-Bin Huang等人[4]提出極限學習機(Extreme Learning Machine,ELM),具有調節參數少、網絡權值隨機化、學習速度快的優點。近年來針對ELM的研究也層出不窮,主要包括網絡權值隨機參數優化[5]、核函數ELM網絡模型[6],在線極限學習機模型[7],網絡隱層結構優化[8]及模型應用研究[9-11]等方面。盡管 ELM 在理論研究和具體應用上取得了豐富的研究成果,但基本ELM沒能體現時間累積效應和延時特性。而在實際應用中很多系統的輸入往往是與時間有關的,系統的輸出依賴于對時間的累積和對空間的聚合。因此本文提出一種具有過程式輸入的極限過程學習機模型(Extreme Pro?cess Learning Machine,EPLM)及學習算法,并將其應用于儲層微觀孔隙結構類型識別。
在極限過程學習機網絡模型中,網絡隱層由過程神經元組成,過程神經元有一個對于時間效應的累積算子,使其聚合運算可同時表達時變輸入信號的空間聚合作用和對時間效應的累積過程。輸出層為非時變神經元,相同類型的神經元執行相同的聚合/累積運算,理論和學習方法相同。極限過程學習機網絡拓撲結構如圖1所示。

圖1 極限過程學習機網絡模型
如圖1模型所示,x1(t),x2(t),...,xn(t)為時變輸入函數,wij(t)是輸入層與網絡隱層的連接權函數,θ(j1)是隱層神經元j的閾值,f為激勵函數,vj是隱層第j個神經元與輸出層的連接權值。極限過程學習機網絡輸入與輸出的映射關系如下:

由公式(1)可知,極限過程學習機網絡先對輸入的時變信號進行時間加權累積,再進行這些時間累積效應的空間聚合,最后通過激勵函數f的計算輸出結果。
設極限過程學習機網絡的輸入為X(t)=(x1(t),x2(t),...,xn(t)),b1(t),b2(t),...,bl(t)為C[0,T]中的一組標準正交基函數,在一定的條件下可表示為基函數展開的級數形式:

同時連接權函數wij(t)也可用b1(t),b2(t),...,bL(t)基函數來表示,即:


由于b1(t),b2(t),...,bL(t)為[0,T]區間上的一組標準正交基函數,滿足:

所以公式(4)可簡化為:

對于模型的學習問題,依據極限學習機學習算法原理,正交基展開后的系數和閾值隨機產生。對于模型訓練樣本中的第k個樣本輸入(xk1(t),xk2(t),...,xkn(t),ok),根據正交基展開的L個展開系數為,由此可以得出EPLM網絡隱層的輸出矩陣為:

采用廣義逆計算隱層過程神經元與輸出神經元之間的連接權值vj,公式為V=,其 中(HK×m)+=(HTH)-1HT,O=[o1,o2,...,oK]TK×1為網絡輸出。由上面的模型推導過程可以看出,網絡結構和正交基展開項系數以及廣義逆的求解方法是影響網絡模型學習速度和預測精度的主要原因,故本文提出一種新的極限過程學習機訓練方法。
在一些實際應用中,與梯度下降的優化方法相比,ELM可能需要更多的隱層神經元。隱層神經元的多少也會導致過擬合或欠擬合問題,可能會產生非最優的權值,降低了算法的性能。另外,這種隨機賦值使得ELM對未知測試數據的響應速度降低,隱層神經元個數越多,說明網絡結構越復雜,易造成計算復雜度的增加和內存消耗等問題。從構建的極限過程學習機模型可知,網絡輸入相對于經典ELM要多,所以本文利用基于灰狼優化的改進混洗蛙跳算法找出更緊湊的網絡結構及最優參數或近似最優參數,用基于張量乘積矩陣的廣義逆求解算法加速模型參數求解。
經典混洗蛙跳算法首先對青蛙種群(共P個青蛙)依據適應值的大小降序排列,再把P個青蛙分成m個子群,每個子群含有n個青蛙(P=m×n)。在每次迭代過程中,每個子群中的適應值最優的青蛙定義為Xb,最差的青蛙定義為Xw,整個種群的最優青蛙定義為Xg,對最差青蛙按式(7)和式(8)進行更新:
位移的偏移量:

青蛙的新位置:

式中,rand()代表[0,1]之間的隨機數,尋優步驟如下:
(1)如果通過式(7)、式(8)能產生更優解,則用其代替Xw;
(2)如果第1步產生的解沒有得到改善,則用Xg替換Xb,繼續采用式(7)、式(8)產生新個體;
(3)如果該新個體的適應值優于Xw,則替換,否則隨機生成一個新個體代替Xw青蛙。
在求解高維復雜的優化問題時,若當前最優解是一個局部最優解,那么利用這個局部最優解來指導整個群體的學習,就容易陷入局部最優,較難達到所要的求解效果。這里提出一種基于灰狼優化算法的混洗蛙跳改進算法(Shuffle Leapfrog Algorithm Based On Grey Wolf Optimiza?tion,SFLAGWO)。
灰狼優化算法的優化原理取自于灰狼群體嚴格的等級機制和狩獵方式。灰狼群體的捕食行動由頭狼領導,其它狼的任務是圍攻,包括追逐、包圍、騷擾和攻擊。這種高效捕殺獵物的過程使得它們可以抓獲更多獵物,具體實現方法如下:

式中,t表示當前迭代次數;A和C是系數向量;Xp是食物的位置向量;X是青蛙的位置向量。

其中,a是隨著迭代次數從2線性遞減到0;r1和r2在[0,1]范圍內隨機取值。
本文借助這個原理對青蛙子群中的個體向Xg學習的方式,改進成同時向Xg和Xb學習的方式,因為它們是整個種群中的最佳解,所以在SFLAGWO中假設Xg和Xb對全局位置有很好的了解。

利用奇異值分解方法進行廣義逆的計算速度是最快的,被廣泛應用到極限學習機的訓練中。但奇異值分解方法在大規模矩陣運算中需要大量的計算資源。文獻[12]提出一種MOORE-PENROSE逆矩陣的快速計算方法,原理如下:
假設{e1,…,en} 和{f1,…,fn} 是 ?k兩組線性無關正交向量的集合,對于每個x∈?k有如下映射:

對于每一個n階算子T都能被寫成這種形式 :,那么T就被稱為向量組{e1,…,en} 和{f1,…,fn}的張量積,那么T的聯合算子T*表示如下:

為了描述這種表示形式,選取{e1,…,en} 表示?k的標準基的前n個向量,假設fi具有如下形式:fi=(fi1,fi2,…,fik),i= 1,2,…,n那么,將fi作為列向量的矩陣T表示如下:

將該矩陣T稱為給定向量集合的張量乘積矩陣。
定理1假設H為希泊爾特空間,若T=是一個n階算子,那么它的廣義逆也是n階算子,對于每個x∈H都有以下定義:

其中,函數λi是n·n線性系統的解。

最后一個公式關系導致n·n線性系統如下所示:

上述系統的行列式是線性獨立向量f1,…,fn的行列式,因此對于每個x∈H,它都有一個唯一解,其中未知數是函數λi,i=1,2,…,n。因此,為了確定張量乘積矩陣的廣義逆,必須計算其展開時對應的λi:

綜上所述,可以得出廣義逆T+的計算方法如下:先計算線性獨立向量的相應格拉姆矩陣,然后求解定義的n·n線性系統。對于每個j=1,…,n,運 用的λi(ej)來確定給定張量乘積矩陣T的廣義逆。特別地,對于每個j=1,2,…,n,有λ1(ej),λ2(ej),…,λn(ej)作 為 相 應 線性系統的解。因此,廣義逆T+具有以下形式:

假設矩陣T是n階算子的矩陣表示形式,那么T就是一個k·k的矩陣,該矩陣前n列由k維空間上的線性無關向量組成?k,k<n,其它列均由零組成。
(1)隨機生成初始解,每個解由一組輸入權重值、閾值和隱層節點數構成,其中輸入權重值和閾值的范圍均在[-1,1]區間,隱層節點數在整數區間取值;
(2)利用SFLAGWO算法對解空間的個體進行優化,找到最優的網絡結構、網絡權值和閾值;
(3)對于每一個解,利用2.2的方法求解極限過程學習機模型的廣義逆,將分類精度作為模型的評估標準;
(4)當滿足所尋優結果精度達到要求或是算法達到迭代次數,則算法停止,輸出最優網絡結構和權值,否則執行步驟(2)。
將本文 SFLAGWO 算法與 SFLA、MSFLA[13]、MSFLA1[14]、ISFLA[15]和 MSFLA2[16]進行優化性能對比。實驗環境為:Windows10操作系統,Intel酷睿i7處理器,Matlab R2014a。針對6個函數極值求解問題,各算法的參數設置如下:SFLAG?WO、SFLA、MSFLA、MSFLA1、MSFLA2和ISFLA的種群個數均設置為P=100,分組個數為10,子群內個體數為10。其中MSFLA的加速因子C值從1.0線性增加到2.5,MSFLA1的參數設置為2.1,ISFLA的參數C1=1.9,C2=1.8。每個算法分別計算20次取平均值。測試函數如表1所示,每種算法分別對6個函數的500維進行優化對比,測試結果如圖2-圖7所示。
從迭代對比曲線可知,本文所提的SFLAGWO的尋優效果最好,即使在維數為500的時候,尋優效果明顯優于其他對比算法,并且對于f2和f5都找到了全局最優解。而且在迭代30次以內就能獲得理想的效果,這表明所提算法在高維函數優化過程中尋優速度和精度都較好,因此對于本文所提極限過程學習機的訓練具有很好的適用性。

表1 優化測試函數
儲層微觀孔隙結構類型識別對比實驗選取自然電位、微梯度、微電位、2.5米電阻率、淺側向、深側向、自然伽馬和補償聲波八條測井曲線作為所提網絡模型的輸入,設定儲層微觀孔隙結構類型為 1、2、3、4、5作為網絡輸出。采用350個測井數據樣本組成訓練樣本集,50個測井數據樣本組成測試樣本集,對比基于BP學習算法的 PNN(BP-PNN)、基于 SFLA、MSFLA、MSF?LA1、MSFLA2和ISFLA學習算法的EPLM和基于本文算法和張量積矩陣(Tensor-Product Matrix)的學習算法(SFLAGWO-TPM-EPLM)的識別效果。極限過程學習機結構選擇為8-m-1,即8個輸入節點;隱層m個過程神經元節點,1個非時變一般神經元;其中隱層節點區間m=[16,64],算法優化后的最優隱層節點數為56;其他學習算法的網絡隱層節點數統一設置為64,基函數選擇Walsh函數,當展開項數L=16時滿足擬合精度要求,誤差精度ε=0.5,每種學習算法運行20次,優化對比結果(相關系數R、平均絕對誤差MAE、平均相對誤差MRE、均方根誤差RMSE、訓練時間Time)如表2所示。

圖2 函數f1迭代對比曲線

圖3 函數f2迭代對比曲線

圖4 函數f3迭代對比曲線

圖5 函數f4迭代對比曲線

圖6 函數f5迭代對比曲線

圖7 函數f6迭代對比曲線

表2 七種算法訓練結果對比
用七種算法訓練得到的網絡結構對訓練樣本和測試樣本進行判別,對比結果如表3所示。
從實驗結果可以看出:從訓練耗時和識別結果上來看,BP-PNN耗時最多,SFLAGWO-TPMEPLM最好,這是因為BP算法需要計算梯度信息,且由于梯度下降法的早熟等問題而無法穩定的提供準確判別,SFLAGWO-TPM–EPLM最快,分析其原因是因為文中所提的SFLAGWO在向全局最優解學習的過程中,也參照組內最優解,利用追逐、包圍、騷擾和攻擊的方式加速了算法尋優性能,并且在高維函數尋優過程中能用較少的迭代次數獲取理想的結果,同時采用新的廣義逆矩陣求解算法改善了極限學習訓練的速度和精度,二者的結合有效的強化了極限過程學習機的網絡結構和權值。從而加強了模型對樣本數據的識別率。

表3 判別結果對比
本文建立一種具有過程式輸入的極限過程學習機,提出基于SFLAGWO算法優化網絡隱層節點個數及網絡權值,并采用基于張量積矩陣的廣義逆求解方法加快模型運算的速度及精度,實驗結果表明無論是在高維函數優化還是儲層微觀孔隙結構類型識別的應用上,本文所提的方法都取得很好的效果,也為具有過程式輸入的實際應用提供了一種解決方法,具有一定的推廣價值。