孫 健,李 琪,陳明強,任 龍
(1.中國石油大學(北京) 石油工程學院,北京 102249;2.西安石油大學 石油工程學院,陜西 西安 710065;3.西安石油大學 陜西省油氣井及儲層滲流與巖石力學重點實驗室,陜西 西安 710065)
傳統(tǒng)交會圖版法[1]、剝層法、多曲線聯(lián)合定性識別與交會圖版相結合[2]可以對油氣水層進行解釋,但由于相對復雜的地質條件、沉積環(huán)境以及儲層非均質性與儲層測井響應特征之間的非線性關系,利用線性測井響應方程與統(tǒng)計經驗公式難以刻畫儲層的真實特征,無法滿足實際生產需要,并且傳統(tǒng)圖版法與研究人員經驗密切相關,存在一定不穩(wěn)定性。因此,利用非線性信息處理技術快速識別油氣水層,可以更好地滿足油氣勘探開發(fā)需要。目前已有一些基于機器學習理論的方法[3-12]被應用于油氣水層的解釋工作當中,但仍存在很多問題:人工神經網絡方法難以在局部最優(yōu)和數據樣本較少時給出滿意結果[13-18];支持向量機雖能夠彌補神經網絡方法的不足,但經典的支持向量機只能進行二分類,在實際數據挖掘應用中,通常需要解決多分類問題。因此出現了一對多支持向量機(OVR SVMs)、一對一支持向量機(OVO SVMs)以及隨機森林(RF)等,它們可以有效避免上述方法的缺點。本文將機器學習方法與隨鉆測井資料結合起來,構造OVR SVMs分類識別模型、OVO SVMs分類識別模型以及RF分類識別模型,對所鉆遇油氣水層進行高準確度及高時效性的隨鉆識別。
首先,對原始數據進行標準化處理。不同評價指標往往具有不同量綱,會影響數據分析結果,因此需要進行數據標準化處理,以消除評價指標之間的量綱影響,使得數據指標之間具有可比性。目前有兩種常用的數據標準化方法:離差標準化和標準差標準化方法。在本研究中,選擇離差標準化方法對測井數據進行標準化處理,即
(1)
式中xmax、xmin分別是樣本數據的最大值和最小值。經過標準化處理后,測井數據值均在[0,1]區(qū)間內。
其次,對標準化處理后的數據進行相關性分析。樣本數據種類越多,數據量越大,訓練模型可靠性越高,但是如果不同類別數據之間存在較高的相關性,會造成數據冗余,增加模型訓練時間并對機器學習結果產生一定影響,因此需進行數據相關性分析。
(1)支持向量機
支持向量機(SVM)是由線性可分情況下的最優(yōu)分類面發(fā)展而來,其核心思想為最優(yōu)分類面不但能夠將兩類樣本正確分開,并且使其分類間隔最大。實際上,大多數分類問題都為線性不可分,需通過非線性映射算法將其轉換為高維空間的線性問題,在變換空間中找到最佳分類面[19-22],如圖1所示。
針對構造SVM多分類模型,目前有兩種方法:一種是直接修改目標函數,將多個分類面的參數求解化歸為優(yōu)化問題, “一次性”求解該最優(yōu)化問題以實現多分類。該方法看似簡單,但其計算復雜度較高,難以實現。另一種是組合多個二分類器來構造一個多分類模型,稱之為間接法,通常有OVR SVMs和OVO SVMs兩種。
圖1 支持向量機示意圖Fig.1 Schematic diagram for support vector machine
OVR SVMs分類模型依次將某個類別的樣本分為一類,剩余樣本分為另一類。k類樣本可用于構造k個二分類器,將輸入值通過k個分類器識別以獲得k個輸出值,統(tǒng)計并比較輸出值。數量最多者對應類別為輸入值的類別。該模型有一個較為明顯的缺陷:訓練集所占比例較小,結果會受到剩余樣本影響,存在偏差。
OVO SVMs分類模型對于k類樣本則需設計k(k-1)/2個分類器。當OVO SVMs分類模型對未知樣本進行分類時,每個分類器將評估其類別并進行投票,未知樣本的類別即為得票最多的類別,當類別數量較大時,模型數量為k(k-1)/2,這將會大大增加計算時間。
利用SVM算法進行分類時,核函數的選擇非常重要,通常有線性核函數、多項式核函數以及高斯核函數等。由于高斯核函數具有高度靈活性[23],因此本研究選用高斯核函數。確定核函數后,需對算法內參數C和γ進行優(yōu)選,C為懲罰系數,也稱對誤差的寬容度,用來平衡分類間隔邊界和錯分樣本,該值越大,表明越不能容忍出現誤差;γ為核函數的帶寬,該參數決定了數據映射到新特征空間后的分布。
(2)隨機森林
隨機森林算法是當前最受歡迎的機器學習算法之一,20世紀80年代Breiman等人[24]首先提出了分類樹算法,這種方法可以將數據反復分類或回歸以減少計算量。2001年Breiman[25-26]將分類樹組合成隨機森林,即隨機使用變量和數據生成許多分類樹,并統(tǒng)計匯總分類樹的結果,發(fā)現其對缺失數據和非平衡數據比較穩(wěn)健。
隨機森林由許多不相關的決策樹構成,其決策過程如圖2所示,從根節(jié)點開始,對待分類項中相應的特征屬性進行測試,并根據測試結果,選擇輸出分支,直到到達葉子節(jié)點。決策結果即為存放在葉子節(jié)點中的類別。獲取森林后,輸入新樣本時,將分別評估森林中的各決策樹,以確定樣本屬于何種類別,計算各類別的選擇次數,選擇次數最多的類別即為樣本預測的類別。
圖2 隨機森林示意圖Fig.2 Schematic diagram for random forest algorithm
利用該算法進行分類時,主要對算法內參數n_estimators和Max_features進行優(yōu)選。參數n_estimators表示森林中樹的數量,該值不宜過大,計算時間會隨著決策樹數量的增加而增加,因此最佳預測值將會出現在合理的決策樹數量值范圍內。參數Max_features表示單個決策樹可使用的最大特征數,即隨機選擇特征集的子集,子集數越小,方差減小速度越快,但同時偏差增加速度也會越快。
首先使用網格搜索法對各分類模型參數大致范圍進行選擇,其次通過交叉驗證法對模型參數值進行精細優(yōu)選。交叉驗證法是一種用于驗證模型性能的統(tǒng)計分析方法,可以避免過度擬合,主要有k折交叉驗證法和留一驗證法。
在k折交叉驗證方法中,數據集被劃分為k個子集,交叉驗證過程重復k次,每次選擇一個子集作為測試集,剩余數據作為訓練集,得到平均交叉驗證識別率。在這種方法中,所有樣本都可以用作訓練集和測試集,每個樣本驗證一次。
留一驗證法(LOOCV),假設數據集中有n個樣本,該方法涉及n個交叉驗證,每個樣本被用作測試集,剩余的n-1個樣本被用作訓練集,該方法結果非常接近母體樣本分布,估計的泛化誤差通常較低。在實驗數據樣本較少的情況下,可以考慮LOOCV,但LOOCV計算成本較高,建立的模型數量等于樣本總數。當樣本總數足夠大時,除非每個模型的訓練速度非???,否則LOOCV難以實現。
實驗證明10折交叉驗證能最好地估計分類準確率[15,27],因此本文采用10折交叉驗證對目標函數參數進行優(yōu)選,以提供較高的準確率并避免過度擬合。
選擇延安氣田延969井區(qū)作為研究區(qū)域,該井區(qū)位于鄂爾多斯盆地,滲透率小于10×10-3μm2,最大值為7×10-3μm2,屬于超低滲透儲層。選擇該區(qū)域中31口生產井的260組常規(guī)電纜測井數據作為模型訓練數據,3口生產井的29組隨鉆測井(LWD)數據作為模型測試數據?;诋斍暗募夹g條件,大部分傳統(tǒng)電纜測井方法獲取的測井信息LWD都能夠得到。
為使模型具有高靈活性、高計算精度以及增加全面分析的可能性,應盡可能獲取多的測井數據種類和數量。研究井區(qū)所采集的測井數據包括自然伽馬、地層電阻率、沖洗帶電阻率、補償聲波、巖性密度以及補償中子。通過原有測井解釋分析可知,該區(qū)塊油氣水層分為四類:氣層、氣水同層、水層以及干層。
利用公式(1)對研究區(qū)所采集的測井數據進行標準化處理,對標準化后的6種測井數據進行相關性分析,得到地層電阻率與沖洗帶電阻率線性相關且相關性較高,線性相關性方程為y=1.031 3x-0.002 6,相關系數R2=0.947,由此可知地層電阻率與沖洗帶電阻率選擇一種即可。其它測井數據相關性都很差,最終選擇自然伽馬、地層電阻率、補償聲波、巖性密度以及補償中子測井數據作為模型訓練的特征參數。
首先取C=[150,200,250,300,350],γ=[0.1,0.5,1,5,10]對(C,γ)共25個組合進行網格搜索,得到參數C和γ的最優(yōu)值分別在200和1附近,隨后在C=200和γ=1附近采用10折交叉驗證進行參數精細優(yōu)選。圖3(a)所示為γ=1時參數C的10折交叉驗證,得到參數C的最優(yōu)值為190~220;圖3(b)所示為C=190時參數γ的10折交叉驗證,最終選取準確率最高的組合(190,1)作為最優(yōu)OVR SVMs訓練模型參數,訓練集識別準確率為0.961 5,用時10 s。
圖3 OVR SVMs中參數的10折交叉驗證Fig.3 Ten fold cross-validation of parameters in OVR SVMs
首先取C=[50,100,150,200,250],γ=[0.1,0.5,1,5,10]對(C,γ)共25個組合進行網格搜索,得到參數C和γ的最優(yōu)值分別在150和0.5附近,隨后在C=150和γ=0.5附近采用10折交叉驗證進行參數精細優(yōu)選。圖4(a)所示為γ=0.5時參數C的10折交叉驗證,得到參數C的最優(yōu)值為130~170;圖4(b)所示為C=130時參數γ的10折交叉驗證,最終選取準確率最髙的組合(130,0.5)作為最優(yōu)OVO SVMs訓練模型參數,訓練集識別準確率為0.961 5,用時9 s。
圖4 OVO SVMs中參數的10折交叉驗證Fig.4 Ten fold cross-validation of parameters in OVO SVMs
圖5 RF中max_features=2時參數n_estimators的10折交叉驗證Fig.5 Ten fold cross-validation of parameter n_estimators in RF when max_features=2
通過上述數據準備及分類識別模型參數優(yōu)選,利用各模型對29組LWD測試集數據進行油氣水層識別,得到各模型對測試集的分類識別結果(表1),同時可以得到各模型分類識別準確率及訓練時間對比(表2)。
表1 3種模型對測試集的識別結果Tab.1 Recognition results of three models for test set
表2 3種模型識別準確率及訓練時間對比Tab.2 Comparison of recognition accuracy and training time of three models
由表1與表2可以得知,2種支持向量機的訓練集識別準確率相同且值較高,達到了96%,隨機森林的訓練集識別準確率相較于兩種支持向量機降低了近20%;對于測試集,OVO SVMs分類識別準確率最高,約為86%,OVR SVMs和RF分類識別準確率相同,約為79%;在模型訓練時間方面,RF分類識別模型遠遠大于兩種支持向量機模型,兩種支持向量機模型訓練時間基本相同。雖然RF算法是目前監(jiān)督分類算法中最好的算法之一,但是由于訓練數據較少,參數維度不夠高,因此分類結果表現并不好,這是RF算法的固有缺點。
測試集中被錯分為其它類別的氣水層結果見混淆矩陣圖6。
圖6 各模型對測試集識別的混淆矩陣Fig.6 Confusion matrixes of three models for recognition of test set
3種模型對氣層的識別準確率相同,為75%,并且都將25%的氣層錯分為了氣水同層;對于氣水同層的分類識別,OVO SVMs模型識別準確率最高,為95.24%,RF模型識別準確率最低,為85.71%;在錯分部分,3種模型都是將氣水同層錯分為了氣層。由于測試集中沒有水層,所以在水層識別中無數據。OVR SVMs模型對干層識別率很低,只有25%,將剩下75%均錯分為氣水同層,OVO SVMs模型和RF模型對干層識別率都為50%,同樣將剩下50%錯分為氣水同層。由此可見,3種分類識別模型對干層的識別率均較低,當氣水層解釋出現誤差時,可能會出現這種情況,當然與訓練集以及測試集樣本數量較少也有一定關系。
隨著鉆井數據的不斷獲取,需要將其不斷加入到訓練集中以提高模型的穩(wěn)定性及可靠性,模型訓練時間過長則難以實現模型的快速訓練,從而影響后續(xù)的油氣水層隨鉆識別,因此模型訓練時間也是模型優(yōu)選的一個重要考慮因素。在本案例中,優(yōu)選OVO SVMs分類識別模型進行油水層的隨鉆識別,模型訓練時長為9 s,訓練集分類識別準確率為96.15%,測試集分類識別準確率86.20%。
(1)模型訓練前,需進行輸入數據相關性分析,避免數據冗余以及減小輸入數據維度,從而提高計算準確率并減少模型訓練時間。
(2)網格搜索初始值范圍對3個模型的參數優(yōu)選非常重要,若初始值范圍不合理,則直接影響訓練模型的準確性,難以找到全局最優(yōu)解,進而增加模型訓練時間。
(3)機器學習算法可用于油氣水層的隨鉆識別且準確度較高,在數據較少的情況下,建議使用OVO SVMs分類識別模型,不建議使用RF分類識別模型。