孫歧峰 段友祥 柳 璠 李洪強(qiáng)
(①中國(guó)石油大學(xué)(華東)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,山東青島 266580;②中國(guó)石化勝利油田工程有限公司鉆井工藝研究院,山東東營(yíng) 257000)
孔隙度是儲(chǔ)層評(píng)價(jià)、油氣預(yù)測(cè)的重要參數(shù)[1-2]。孔隙度不僅受控于巖石的孔隙結(jié)構(gòu),還與巖石的顆粒組分密切相關(guān)[3],這為利用巖相作為約束條件準(zhǔn)確預(yù)測(cè)孔隙度提供了可靠依據(jù)[4-7]。
許多學(xué)者以巖石物理特征為基礎(chǔ),利用地震反演方法預(yù)測(cè)儲(chǔ)層參數(shù)[8-10]。隨著人工智能和機(jī)器學(xué)習(xí)技術(shù)的快速發(fā)展,多種分類、回歸、聚類算法也被應(yīng)用于儲(chǔ)層參數(shù)預(yù)測(cè)。早期學(xué)者多利用統(tǒng)計(jì)學(xué)方法,如樸素貝葉斯分類器[11]、 模糊邏輯[12]、 支持向量機(jī)[13]等分析測(cè)井相。在地震屬性數(shù)據(jù)基礎(chǔ)上,張陽(yáng)等[14]提出模糊C均值地震屬性聚類的沉積相分析方法,龐銳等[15]利用K均值聚類進(jìn)行地震相識(shí)別。在儲(chǔ)層參數(shù)預(yù)測(cè)中,應(yīng)用較為廣泛的是神經(jīng)網(wǎng)絡(luò)[16-17]算法;其他的回歸算法,如支持向量回歸(SVR)[18]、 K近鄰法[19]、 隨機(jī)森林[20-21]等也被應(yīng)用于儲(chǔ)層預(yù)測(cè)。
由Zhang等[22]提出的BIRCH(Balanced Iterative Reducing and Clustering Using Hierarchies)方法是一種基于距離的無監(jiān)督學(xué)習(xí)層次聚類算法,計(jì)算效率較高。邵峰晶等[23]提出了可變多閾值聚類(Multi-threshold BIRCH Clustering,M-BIRCH)方法實(shí)現(xiàn)了對(duì)任意形狀簇的聚類。本文在考慮計(jì)算機(jī)系統(tǒng)內(nèi)存以及聚類質(zhì)量等因素,通過啟發(fā)式設(shè)定閾值,并基于Agglomerative算法[24]的全局聚類進(jìn)一步優(yōu)化該算法,以井點(diǎn)處孔隙度數(shù)據(jù)和地震聲波阻抗屬性作為輸入,確定巖相類型;然后在同一相帶內(nèi)使用嶺回歸(Ridge Regression,RR)方法預(yù)測(cè)儲(chǔ)層孔隙度,以提高預(yù)測(cè)精度。
BIRCH算法是將數(shù)據(jù)集中的樣本劃分為多個(gè)不相交的類,并且這些類具有類內(nèi)對(duì)象相似、類間對(duì)象相異的特點(diǎn)。每個(gè)類可表示一種相,稱為“簇”。基于距離度量的算法能夠發(fā)現(xiàn)具有相近尺度和密度的球狀簇。
BIRCH算法可通過聚類特征(CF)對(duì)地震屬性進(jìn)行聚類。以波阻抗數(shù)據(jù)為例,假設(shè)在某個(gè)簇中存在N個(gè)波阻抗樣本{xi},i=1,2,…,N,將聚類特征定義為三元組
CF=(N, LS, SS)
(1)
聚類特征樹(CF樹)用于存儲(chǔ)層次聚類的簇的特征,是一棵高度平衡樹,即它的子樹的高度差的絕對(duì)值不超過1,并且所有子樹都是一棵平衡樹。CF樹中的非葉子節(jié)點(diǎn)存儲(chǔ)了其子節(jié)點(diǎn)的聚類特征的總和,其中節(jié)點(diǎn)的每個(gè)聚類特征和它指向子節(jié)點(diǎn)的指針組成條目。CF樹具有三個(gè)參數(shù):分支因子的非葉節(jié)點(diǎn)數(shù)B、葉節(jié)點(diǎn)數(shù)L和簇半徑閾值T。其中,B是特征樹中每個(gè)非葉節(jié)點(diǎn)最多包含的子節(jié)點(diǎn)的數(shù)量,L是每個(gè)葉節(jié)點(diǎn)最多包含的CF向量的數(shù)量,T為同一葉子節(jié)點(diǎn)中的數(shù)據(jù)點(diǎn)滿足的閾值。圖1給出B=2、L=3的CF樹結(jié)構(gòu)示例。
由于BIRCH算法忽視了簇與簇之間的關(guān)系,對(duì)葉子節(jié)點(diǎn)中的簇設(shè)定同一閾值,因而聚類效果不穩(wěn)定且有一定局限性。多閾值BIRCH聚類方法是對(duì)每個(gè)聚類特征都設(shè)定一個(gè)閾值T,即將每個(gè)簇的CF三元組改為四元組(N,LS,SS,T),每個(gè)簇可以具有不同的閾值。在CF樹重建過程中,當(dāng)兩個(gè)簇需要合并為一個(gè)簇時(shí),新簇的閾值由合并定理求取。
圖1 CF樹結(jié)構(gòu)示例
合并定理為:假定將n個(gè)簇Ci(i=1,2,…,n)合并,聚類特征CFi=(Ni,LSi,SSi,Ti),合并后新簇W的聚類特征為
(2)
式中:Ci.mean、W.mean分別表示簇Ci、新簇W的質(zhì)心; dist(W.mean,Ci.mean)為簇間距離,計(jì)算公式為
(3)
式中: SS1、LS1、N1表示簇C的三元組; SS2、LS2、N2表示簇W的三元組。
根據(jù)式(2),通過簇的聚類特征計(jì)算簇間距離,動(dòng)態(tài)調(diào)整、增加閾值T。閾值的提升使原始CF樹中的條目進(jìn)一步合并,進(jìn)而重建一棵較小的CF樹。調(diào)整后的閾值不僅包括原有簇的所有波阻抗樣本,而且大大增加了新的波阻抗樣本插入的可能性,最終產(chǎn)生基于不同閾值的聚類結(jié)果。
回歸分析[26]是確定兩種或兩種以上變量間相互依賴的定量關(guān)系的一種統(tǒng)計(jì)分析方法。嶺回歸[27]是一種通過放棄最小二乘法的無偏性,以損失部分信息、降低精度為代價(jià)獲得回歸系數(shù)的更符合實(shí)際、更可靠的回歸分析方法,它對(duì)數(shù)據(jù)擾動(dòng)敏感的病態(tài)矩陣的擬合要優(yōu)于最小二乘法。
λ‖β‖2}
(4)
式中:λ是調(diào)節(jié)參數(shù);Rp表示p維實(shí)數(shù)集。
嶺回歸的代價(jià)函數(shù)是一個(gè)凸函數(shù),同最小二乘法一樣,當(dāng)代價(jià)函數(shù)梯度(即一階導(dǎo)數(shù))等于0時(shí)可求得全局最優(yōu)解。由下式最終得到嶺回歸模型的最優(yōu)系數(shù)向量
(5)
式中k為嶺參數(shù)。
相控孔隙度預(yù)測(cè)是以沉積相及其特征等作為約束條件而降低儲(chǔ)層孔隙度預(yù)測(cè)的多解性的一種技術(shù)。本文應(yīng)用M-BIRCH方法對(duì)波阻抗數(shù)據(jù)聚類分析、劃分巖相帶,在此基礎(chǔ)上應(yīng)用嶺回歸方法對(duì)同一相帶中的孔隙度與波阻抗建立回歸關(guān)系,最終進(jìn)行孔隙度的精確預(yù)測(cè)。
3.1.1 初始閾值的設(shè)定
根據(jù)M-BIRCH聚類過程,閾值是通過簇間距離進(jìn)行更新的,即閾值的大小與簇間距離、類內(nèi)平均距離相關(guān),也就是說閾值的選擇與波阻抗數(shù)據(jù)分布有關(guān)。本文采用啟發(fā)式方法設(shè)定初始閾值,首先在整個(gè)數(shù)據(jù)集中隨機(jī)選取N對(duì)波阻抗樣本,將每一個(gè)樣本都作為一個(gè)簇,根據(jù)簇的CF條目,利用式(3)計(jì)算簇之間的距離; 然后計(jì)算距離(dist)的期望E(dist)和方差D(dist); 最后設(shè)定初始閾值
T=[E(dist)+0.25D(dist)]P
(6)
式中P為預(yù)先設(shè)定的百分比。
預(yù)先定義一個(gè)較小的P,通過較小的T對(duì)波阻抗數(shù)據(jù)進(jìn)行分割。分割后的數(shù)據(jù)集通過提升閾值重新歸并到較小的CF樹,并將數(shù)據(jù)裝入內(nèi)存。在生成CF樹的過程中,若出現(xiàn)內(nèi)存不夠的情況,可以通過提升P定義較大的初始閾值重建較小的CF樹。計(jì)算初始閾值T后,就可以建立一棵初始CF樹。
3.1.2 動(dòng)態(tài)構(gòu)建CF樹
CF樹的構(gòu)建是BIRCH聚類算法的關(guān)鍵。隨著波阻抗數(shù)據(jù)的不斷加入,將不斷地重建CF樹。波阻抗數(shù)據(jù)按照與各個(gè)CF 的距離依次插入到各條目中合并為簇,這樣距離相近的波阻抗將處于相同的簇中。不同的巖相帶波阻抗存在差異,重建CF樹能夠不斷地區(qū)分波阻抗數(shù)據(jù),從而完成相帶劃分的目的。把每個(gè)波阻抗數(shù)據(jù)都看作為獨(dú)立的簇,動(dòng)態(tài)建立CF樹的過程也就是將簇的聚類特征CF插入到CF樹的過程,具體如下。
(1)從根節(jié)點(diǎn)開始遞歸向下,通過計(jì)算CF與插入節(jié)點(diǎn)包含的各條目中CF的距離,尋找距離最短的路徑及葉節(jié)點(diǎn)。
(2)如果CF與該葉節(jié)點(diǎn)各條目中的CF之間的距離小于閾值T,則選擇閾值最小的條目,用合并算法將CF與該條目的CF合并,并自下向上相應(yīng)地修改各節(jié)點(diǎn)的條目。
(3)如果CF無法與該條目的CF合并,則判斷該條目所在葉節(jié)點(diǎn)的CF數(shù)量是否小于L。若小于L,則將CF新建為一個(gè)條目,并將該條目插入到距離最近的條目后面,相應(yīng)修改CF樹的結(jié)構(gòu)。否則分裂該葉節(jié)點(diǎn),原則是以距離最遠(yuǎn)的兩個(gè)條目為種子進(jìn)行分裂,剩余的條目按照距離最近原則合并到這兩個(gè)條目中,并更新整個(gè)CF樹。
3.1.3 全局聚類
對(duì)CF使用聚類算法進(jìn)行全局聚類,能夠得到較好的聚類效果[22]。本文使用層次聚類算法中的凝聚法,即Agglomerative算法[24]。這是一種自底向上的方法,不需要求取目標(biāo)函數(shù),即不存在局部最小和對(duì)初始點(diǎn)敏感的問題。其算法描述如下。
輸入:阻抗樣本、聚類數(shù)目
輸出:聚類結(jié)果
將每個(gè)阻抗樣本都作為一個(gè)獨(dú)立的簇;
重復(fù):
計(jì)算兩兩簇之間的距離,找出距離最小的兩個(gè)簇c1和c2;
將c1和c2合并為一個(gè)簇;
直到達(dá)到聚類數(shù)目或其他設(shè)定的條件結(jié)束。
3.1.4 優(yōu)化嶺參數(shù)
當(dāng)自變量之間存在線性關(guān)系時(shí),自變量相關(guān)矩陣行列式近似為0,導(dǎo)致最小二乘估計(jì)失效。在嶺回歸訓(xùn)練過程中,通過選取合適的嶺參數(shù),可以減少這種多重共線性的影響。當(dāng)X存在多重共線性時(shí),矩陣XTX的特征值至少有一個(gè)接近于0,可用XTX行列式的值表示多重共線性的嚴(yán)重程度。因此,令
(7)
式中I為p×p的單位矩陣。由式(7)可知,D(k)隨著k的增加而增大,當(dāng)0
在以地震、測(cè)井資料為基礎(chǔ)的儲(chǔ)層孔隙度預(yù)測(cè)中,首先需要對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,即對(duì)地震、測(cè)井?dāng)?shù)據(jù)反演得到波阻抗數(shù)據(jù),通過巖心分析及測(cè)井解釋得到井點(diǎn)孔隙度數(shù)據(jù);然后將波阻抗和孔隙度數(shù)據(jù)進(jìn)行歸一化處理,使其處于同一數(shù)量級(jí)中,以便于分析。
M-BIRCH使用聚類特征CF表征一個(gè)簇,即劃分巖相,并采用平衡樹結(jié)構(gòu),能夠滿足數(shù)據(jù)的可伸縮性,處理大規(guī)模數(shù)據(jù)集速度較快。利用M-BIRCH聚類算法劃分巖相可以歸納為三個(gè)步驟: 第一步是掃描波阻抗數(shù)據(jù),確定初始閾值,構(gòu)造初始CF樹,在CF樹構(gòu)造過程中,首先要確定兩個(gè)參數(shù),即非葉子節(jié)點(diǎn)數(shù)B和葉子節(jié)點(diǎn)數(shù)L,CF樹的大小可以通過調(diào)節(jié)這兩個(gè)參數(shù)進(jìn)行調(diào)整; 第二步是隨著波阻抗數(shù)據(jù)的不斷加入,重建CF樹,并且動(dòng)態(tài)更新閾值,在重建過程中,只通過葉節(jié)點(diǎn)重新構(gòu)建一棵新樹,并不需要重新訪問所有數(shù)據(jù)[23]; 第三步是用CF代替原有數(shù)據(jù)集進(jìn)行聚類。當(dāng)CF樹構(gòu)建完成之后,選用Agglomerative算法對(duì)葉節(jié)點(diǎn)中的簇進(jìn)行全局聚類。
在相帶的約束下,利用井點(diǎn)處孔隙度與波阻抗數(shù)據(jù)進(jìn)行非井點(diǎn)處的孔隙度預(yù)測(cè)。在每個(gè)相帶內(nèi)都會(huì)由嶺回歸計(jì)算得到最優(yōu)參數(shù)估計(jì)量,在此基礎(chǔ)上,由未標(biāo)簽波阻抗數(shù)據(jù)可計(jì)算得到孔隙度預(yù)測(cè)值。
圖2 相控孔隙度預(yù)測(cè)流程
利用交叉驗(yàn)證方法將井點(diǎn)處預(yù)測(cè)的孔隙度值與已知的孔隙度進(jìn)行誤差分析。本文采用交叉驗(yàn)證方法,即選擇w-1口井的波阻抗和孔隙度數(shù)據(jù)作為訓(xùn)練集進(jìn)行模型訓(xùn)練,一口井作為測(cè)試集驗(yàn)證模型及參數(shù)。這樣循環(huán)w次,使每口井都作為測(cè)試集進(jìn)行檢驗(yàn),最后選擇損失函數(shù)評(píng)估最優(yōu)的模型及參數(shù)。
Stanford VI-E模型[29]包含三層前積型河道,三維地震數(shù)據(jù)具150×200×200個(gè)網(wǎng)格,每個(gè)網(wǎng)格的尺寸在水平(x和y)方向上均為25m,在垂直(z)方向上均為1m。本文實(shí)驗(yàn)采用第二層,即網(wǎng)格數(shù)為150×200×40。為了簡(jiǎn)化實(shí)驗(yàn)數(shù)據(jù),將該系統(tǒng)中的點(diǎn)壩和河道砂體合并為砂巖相(圖3c中的黃色部分),將洪泛平原和邊界合并為頁(yè)巖相(圖3c中的藍(lán)色部分)。
圖3a為水平切片(網(wǎng)格數(shù)為150×200),即輸入數(shù)據(jù)。圖3b顯示孔隙度與波阻抗之間存在著負(fù)相關(guān)關(guān)系。但是,其相關(guān)系數(shù)和偏移量很大程度上依賴于不同巖相的不連續(xù)性,并且孔隙度在每個(gè)巖相帶內(nèi)具有低可變性。因此,一旦巖相結(jié)構(gòu)已知,便可通過回歸方法根據(jù)波阻抗估計(jì)孔隙度。
圖3 本文簡(jiǎn)化模型
4.1.1 多閾值BIRCH+RR方法預(yù)測(cè)
實(shí)驗(yàn)中,將15%的輸入數(shù)據(jù)作為訓(xùn)練集,85%數(shù)據(jù)作為測(cè)試集。設(shè)定用于計(jì)算初始閾值的百分比P為0.1、非葉節(jié)點(diǎn)數(shù)B和葉節(jié)點(diǎn)數(shù)L均為30。圖4為圖3a作為輸入的巖相預(yù)測(cè)。與圖3c相比,M-BIRCH比BIRCH[22]、K-均值(K-means)[15]方法能更準(zhǔn)確識(shí)別河道。圖4a左上方實(shí)際為頁(yè)巖相,但BIRCH、K-means方法卻將其劃分為砂巖相。
本文使用調(diào)整蘭德系數(shù)(ARI)[30]進(jìn)行量化描述。ARI用來描述數(shù)據(jù)分布的吻合程度,計(jì)算公式為
(8)
(9)
圖4 不同方法的巖相預(yù)測(cè)
如表1所示,M-BIRCH算法的ARI為0.95,明顯優(yōu)于另外兩種算法的聚類效果。
表1 不同方法預(yù)測(cè)相帶的性能比較
圖5為不同方法預(yù)測(cè)的孔隙度。圖5c為使用SVR[31]回歸方法進(jìn)行的預(yù)測(cè),即考慮只存在一種相帶的情況。對(duì)比圖3d,可以看出圖5c中的孔隙度低值(藍(lán)色部分)并沒有擬合到真實(shí)的結(jié)果,因此相控法孔隙度預(yù)測(cè)結(jié)果比SVR方法預(yù)測(cè)結(jié)果更符合實(shí)際情況。
表2為三種方法孔隙度預(yù)測(cè)的性能比較。M-BIRCH+RR(本文方法)預(yù)測(cè)結(jié)果的均方誤差(MSE)以及平均絕對(duì)誤差(MAE)最小,說明本文方法比另外三種方法預(yù)測(cè)精度高。從確定性相關(guān)系數(shù)(R2)也可得知,本文方法預(yù)測(cè)結(jié)果與實(shí)際結(jié)果匹配程度更高。另外,使用SVR方法預(yù)測(cè)結(jié)果的MSE達(dá)到0.92288,相對(duì)于M-BIRCH+RR、K-means+RR方法,SVR方法可行性不高,誤差較大。從方法的運(yùn)行效率來看,SVR方法雖然運(yùn)行時(shí)間較短,但是最后結(jié)果不理想; K-means+RR方法的運(yùn)行時(shí)間最長(zhǎng),但是精度不是最高; 與BIRCH+RR相比,M-BIRCH+RR方法雖然犧牲時(shí)間效率,但效果更好(R2值高,MSE值低)。
圖5 不同方法預(yù)測(cè)的孔隙度
表2 不同方法孔隙度預(yù)測(cè)性能比較
4.1.2 靈敏度分析
分別向波阻抗數(shù)據(jù)中輸入0~80%的高斯噪聲,利用M-BIRCH+RR方法預(yù)測(cè)巖相,最終得到孔隙度預(yù)測(cè)結(jié)果如圖6所示。當(dāng)噪聲不斷增加時(shí),對(duì)巖相劃分結(jié)果影響不大,M-BIRCH方法仍能較準(zhǔn)確地區(qū)分出砂巖相和頁(yè)巖相。圖7a是在不同的高斯噪聲下中位絕對(duì)誤差(MDAE)的變化,可以看出MDAE隨著高斯噪聲線性增加。圖7b是在不同的高斯噪聲下確定性相關(guān)系數(shù)的變化,R2隨著高斯噪聲的增加不斷降低,即使高斯噪聲達(dá)到80%,M-BIRCH+RR方法預(yù)測(cè)結(jié)果的R2仍能達(dá)到75%左右。因此,即使存在一定的噪聲,仍然不影響其性能,說明本文方法具有較高穩(wěn)定性和抗干擾能力。
研究區(qū)主要為三角洲前緣沉積,分支河道砂體發(fā)育。目的層埋深大,壓實(shí)作用強(qiáng),巖性致密。研究區(qū)內(nèi)共有8口井,有效儲(chǔ)層預(yù)測(cè)難度大。針對(duì)上述難點(diǎn),采用本文方法進(jìn)行相控孔隙度預(yù)測(cè)。采用8口探井的巖心及測(cè)井資料作為標(biāo)記樣本,儲(chǔ)層數(shù)據(jù)網(wǎng)格的尺寸在水平(x和y)方向上均為20m。選取其中一個(gè)時(shí)間切片(網(wǎng)格數(shù)為653×600)的波阻抗樣本,如圖8所示。預(yù)測(cè)過程中,首先對(duì)波阻抗數(shù)據(jù)進(jìn)行網(wǎng)格化處理,將井點(diǎn)處的孔隙度數(shù)據(jù)應(yīng)用到離井點(diǎn)位置最近的網(wǎng)格點(diǎn)中,并對(duì)井點(diǎn)處孔隙度和阻抗數(shù)據(jù)進(jìn)行歸一化; 然后采用本文方法進(jìn)行巖相劃分和孔隙度預(yù)測(cè); 最后采用交叉驗(yàn)證方法對(duì)預(yù)測(cè)結(jié)果進(jìn)行誤差分析,即利用7口井作為訓(xùn)練數(shù)據(jù),剩余1口井作為驗(yàn)證數(shù)據(jù)。
圖6 不同噪聲情況下波阻抗切片(左)和本文方法預(yù)測(cè)的巖相(中)、孔隙度(右)
圖7 本文方法靈敏度分析
圖8 波阻抗切片
預(yù)測(cè)結(jié)果如圖9所示。從圖9a可以看出,M-BIRCH方法根據(jù)波阻抗數(shù)據(jù)將儲(chǔ)層劃分為兩類,黃色部分對(duì)應(yīng)原始數(shù)據(jù)的高波阻抗值,藍(lán)色對(duì)應(yīng)低波阻抗值,較好地刻畫了河道砂體的分布??紫抖阮A(yù)測(cè)結(jié)果如圖9b所示。利用稀疏標(biāo)記訓(xùn)練預(yù)測(cè)的孔隙度能夠反映河道砂體橫向展布規(guī)律,井點(diǎn)處結(jié)果與波阻抗分布、砂巖發(fā)育位置均有很好的對(duì)應(yīng)關(guān)系,驗(yàn)證了本文方法的合理性。
由三種方法在研究區(qū)的實(shí)驗(yàn)結(jié)果性能比較(表3)可知,K-means+RR的性能最差,均方根誤差最高,可靠性較差。相對(duì)而言,M-BIRCH+RR方法的MSE較BIRCH+RR方法、K-means+RR方法略小,說明M-BIRCH+RR方法是可靠的。
圖9 實(shí)際地震數(shù)據(jù)預(yù)測(cè)結(jié)果
表3 不同方法的性能比較
本文考慮不同巖相之間波阻抗數(shù)據(jù)的差異,提出一種多閾值BIRCH聚類的無監(jiān)督學(xué)習(xí)方法,并引入Agglomerative算法進(jìn)行全局聚類,得到準(zhǔn)確的巖相預(yù)測(cè)結(jié)果; 然后在巖相約束下以井點(diǎn)處的波阻抗和孔隙度為輸入,采用優(yōu)化的嶺回歸方法在同一巖相內(nèi)進(jìn)行孔隙度預(yù)測(cè)。模型數(shù)據(jù)實(shí)驗(yàn)表明,與其他劃分巖相的傳統(tǒng)聚類方法相比,M-BIRCH方法受異常數(shù)據(jù)的干擾較小、適應(yīng)性更好、運(yùn)行效率更高。實(shí)際數(shù)據(jù)應(yīng)用表明,使用M-BIRCH算法與嶺回歸結(jié)合的方法對(duì)孔隙度預(yù)測(cè)能夠得到合理且準(zhǔn)確的結(jié)果。