鐘華明,梁玉楠,何勝林,胡向陽,曾少軍
(1.廣東粵電湛江風(fēng)力發(fā)電有限公司,廣東湛江,524000;2.中海石油(中國)有限公司湛江分公司,廣東湛江,524057)
隨著油氣勘探開發(fā)的不斷深入,開發(fā)井和探井的數(shù)量不斷增加,測井解釋人員需要結(jié)合本區(qū)域的地質(zhì)模式選擇測井解釋模型和解釋參數(shù),對測井資料進(jìn)行精細(xì)化解釋評價(jià)[1-2]。目前主流的測井解釋系統(tǒng)均未包含區(qū)域研究成果及專家經(jīng)驗(yàn)知識(shí),因此測井人員在測井解釋時(shí),需要先對區(qū)域地質(zhì)數(shù)據(jù)進(jìn)行分析,再分選模型和確定參數(shù),這在很大程度上降低了測井解釋的效率。不熟悉區(qū)域地質(zhì)情況的測井解釋人員往往不能正確地選擇測井解釋模型及參數(shù),從而造成了測井解釋評價(jià)不準(zhǔn)確,其結(jié)果無法準(zhǔn)確反映真實(shí)油氣藏情況。包含專家經(jīng)驗(yàn)的測井知識(shí)庫可以將專家頭腦中的認(rèn)知轉(zhuǎn)化為測井解釋人員實(shí)際工作中的理性認(rèn)知,使測井解釋人員在模型選擇和參數(shù)確定等測井解釋環(huán)節(jié)中最大限度地減少人為干擾因素,提高測井解釋效率及精度。
目前,知識(shí)庫[3-4]的研究和應(yīng)用在國內(nèi)外引起廣泛關(guān)注,知識(shí)庫的種類及構(gòu)建方法[5-6]較多。傳統(tǒng)的知識(shí)檢索和知識(shí)智能調(diào)用方法主要包括混合推理[7]、最小井距法[8]等,當(dāng)知識(shí)庫中存在不確定性的知識(shí)時(shí),傳統(tǒng)方法普遍存在準(zhǔn)確度不高的問題。SHARMA[9]提出通過人工智能自適應(yīng)模式獲取知識(shí),通過增加知識(shí)的依賴性進(jìn)而獲取準(zhǔn)確的知識(shí),但這是一種理想狀態(tài)的知識(shí)庫系統(tǒng),且建立過程復(fù)雜。GENE ONTOLOGY CONSORTIUM[10]提出了一種基于本體的知識(shí)庫構(gòu)建模式,該模式通過本體推理獲得知識(shí),但本體構(gòu)建均針對特定的領(lǐng)域,無法形成通用的知識(shí)模式。尚福華等[11]提出了一種首先利用關(guān)聯(lián)規(guī)則查找知識(shí),然后采用模糊推理對多條規(guī)則消除沖突,最后利用結(jié)果分析得到知識(shí)的方法,該方法的不足之處在于對于復(fù)雜規(guī)則需要人工判別。ZHU等[12]提出了基于KNN算法的知識(shí)庫查詢方法,該方法利用KNN算法判別和調(diào)用知識(shí)流,但KNN算法對于高維數(shù)據(jù)的判別存在不足之處。
在對測井解釋評價(jià)流程綜合分析以及相關(guān)算法研究的基礎(chǔ)上,本文提出了基于KNN-Fisher算法的測井解釋知識(shí)庫構(gòu)建方法,該方法在ZHU等[12]提出的KNN算法分類知識(shí)調(diào)用的基礎(chǔ)上,引入了Fisher判別法對知識(shí)降維分類,同時(shí),為提高計(jì)算精度,在KNN算法中加入權(quán)重及質(zhì)心點(diǎn)等約束條件,實(shí)現(xiàn)了對知識(shí)的自動(dòng)調(diào)用。將該方法應(yīng)用于南海西部某油田測井解釋,解釋成果證明了方法的有效性。
考慮到Fisher判別法[13-16]與KNN算法[17-18]各自的優(yōu)點(diǎn),將KNN算法與Fisher判別法相結(jié)合建立了KNN-Fisher算法,該算法既具有KNN算法的穩(wěn)定性及準(zhǔn)確性,又具有Fisher處理高維數(shù)據(jù)集及多樣本數(shù)據(jù)集的優(yōu)勢。KNN-Fisher算法原理如下:首先利用Fisher判別法對樣本數(shù)據(jù)進(jìn)行降維分類,求取各類樣本的質(zhì)心,再利用KNN算法對測試數(shù)據(jù)進(jìn)行判別分類,為了減少樣本不均衡對KNN算法準(zhǔn)確性的影響,在KNN判別算法中加入權(quán)重約束和Fisher分類后的質(zhì)心點(diǎn)約束,最終建立判別函數(shù)F。
采用Fisher判別法對測井知識(shí)進(jìn)行降維分類,首先需要選擇能反映測井知識(shí)特點(diǎn)且盡可能獨(dú)立的測井資料,然后建立樣品點(diǎn)的觀測向量,再對樣品變量進(jìn)行變換并將其投影于判別向量方向,最后建立判別函數(shù)。利用Fisher判別法對兩類測井知識(shí)進(jìn)行判別分析,圖1通過兩類知識(shí)的研究數(shù)據(jù)在x、y方向上的投影展示了Fisher判別法原理,圖1中箭頭為數(shù)據(jù)投影方向,G1、G2為知識(shí)的測井?dāng)?shù)據(jù),x軸和y軸上的數(shù)據(jù)點(diǎn)為G1、G2的投影,從圖1可知,Ⅰ類和Ⅱ類測井知識(shí)存在較大程度的重疊,需要設(shè)法找到一個(gè)新y軸(直線L),使得散點(diǎn)投影在新y軸上時(shí),Ⅰ類和Ⅱ類測井知識(shí)重疊程度較小,即兩類測井知識(shí)的類間離差大,類內(nèi)離差小,以達(dá)到提高識(shí)別率的目的。
圖1 Fisher判別法原理
根據(jù)兩類知識(shí)對應(yīng)的測井資料建立樣本數(shù)據(jù)矩陣集合D,設(shè)D={(X,Y)},xi是第i類測井資料,xi∈X,yi是第i類知識(shí)的標(biāo)識(shí),yi∈Y,i=1,2。令最佳投影為W,μi為第i類質(zhì)心,Ni為第i類的樣本數(shù)量,μi的計(jì)算公式可表示為:
(1)
兩類測井知識(shí)的質(zhì)心點(diǎn)分別為μ1,μ2。兩類測井知識(shí)的最大類間距離,即樣本間離差J0可表示為:
J0=(WTμ2-WTμ1)2=WT(μ2-μ1)(μ2-μ1)TW
(2)
類間離散度矩陣S0可表示為:
S0=(μ2-μ1)(μ2-μ1)T
(3)
(2)式可表示為:
J0=WTS0W
(4)
兩類測井知識(shí)的最小類內(nèi)距離,即樣本內(nèi)離差為J1可表示為:
(5)
類內(nèi)離散矩陣S1:
(6)
(5)式可表示為:
J1=WTS1W
(7)
要想達(dá)到較好的分類效果,應(yīng)該使同類樣本的投影點(diǎn)盡可能接近,樣本內(nèi)離差盡可能小,即J1盡可能小;同時(shí)也要保證不同類樣本投影點(diǎn)盡可能遠(yuǎn)離,即J0盡可能大。同時(shí)考慮兩者的關(guān)系建立目標(biāo)函數(shù)J:
(8)
當(dāng)J最大時(shí),分類效果最好。因此,對(8)式求偏導(dǎo),即可實(shí)現(xiàn)樣本數(shù)據(jù)的降維分類。
(9)
K值為KNN算法中K個(gè)最近鄰近數(shù),K值對KNN算法的結(jié)果影響重大,K值過大或過小,均會(huì)造成較大誤差,為簡化計(jì)算和提高判別精度,令K的計(jì)算公式為:
(10)
式中:N為樣本類數(shù)。
(11)
j∈K
(12)
建立加入權(quán)系數(shù)以及質(zhì)心點(diǎn)約束條件的F函數(shù):
(13)
我們利用各種分析方法分區(qū)域、分油田、分層組對測井基礎(chǔ)資料、巖石物理分析資料以及試油資料進(jìn)行分析,再將建立的孔-滲-飽模型及參數(shù)、解釋圖版、模型函數(shù)等保存下來,形成測井知識(shí)[7-8]。測井知識(shí)包括解釋模型和解釋參數(shù)。
解釋模型為針對不同地區(qū)、不同類型儲(chǔ)層,應(yīng)用數(shù)理統(tǒng)計(jì)的方法分析測井資料和巖心分析資料之間的關(guān)系,建立的地區(qū)孔隙度、滲透率、含水飽和度、束縛水飽和度、滲透率解釋模型。
解釋參數(shù)是調(diào)用地區(qū)地質(zhì)和試油試水資料、測井曲線資料,采用交會(huì)圖版、M-N交會(huì)圖、Pe-K交會(huì)圖和Pe-Th/K交會(huì)圖等,結(jié)合地區(qū)地質(zhì)和解釋經(jīng)驗(yàn)確定的地層水電阻率、巖電參數(shù)、巖性、骨架參數(shù)以及粘土礦物類型等參數(shù)。區(qū)域性解釋參數(shù)的確定需考慮地區(qū)性和經(jīng)驗(yàn)性,因此上述參數(shù)均非常重要。
為了方便調(diào)用,我們采用多叉樹存儲(chǔ)結(jié)構(gòu),將知識(shí)按照盆地、油田、層組和知識(shí)類別分類存儲(chǔ)。圖2為知識(shí)的存儲(chǔ)結(jié)構(gòu),按照盆地→構(gòu)造→油田→油組→模型/參數(shù)的層次結(jié)構(gòu)存儲(chǔ)知識(shí),一個(gè)盆地包含多個(gè)構(gòu)造,每個(gè)構(gòu)造包含多個(gè)油田,每個(gè)油田包含多個(gè)油組,每個(gè)油組包含多個(gè)解釋參數(shù)和模型。
圖2 知識(shí)存儲(chǔ)結(jié)構(gòu)
在多叉樹知識(shí)存儲(chǔ)的基礎(chǔ)上,為了進(jìn)一步提高知識(shí)的辨識(shí)度,還需要對知識(shí)進(jìn)行分類標(biāo)識(shí)。進(jìn)行測井解釋時(shí),需要將測井知識(shí)分為下限參數(shù)、解釋模型等類別,同時(shí)根據(jù)不同的研究目的對知識(shí)進(jìn)行細(xì)分。因此,在測井知識(shí)庫加入了知識(shí)類別及知識(shí)名稱。為了實(shí)現(xiàn)KNN-Fisher算法對知識(shí)的調(diào)用,我們在測井知識(shí)庫中引入了知識(shí)研究參數(shù)。表1是存儲(chǔ)在測井知識(shí)庫中的知識(shí)。
表1 存儲(chǔ)在測井知識(shí)庫中的知識(shí)
我們基于測井綜合處理解釋平臺(tái)建立了測井解釋知識(shí)庫系統(tǒng),將研究得到的知識(shí)保存在測井綜合處理解釋平臺(tái)的知識(shí)庫中,實(shí)現(xiàn)知識(shí)的調(diào)用。知識(shí)的調(diào)用采用混合推理與KNN-Fisher算法相結(jié)合的方式,選用堆棧存放知識(shí)查找路徑,依次匹配盆地、構(gòu)造、油田、層組,并存入棧中。如果層組匹配且有相關(guān)的知識(shí),則調(diào)用;否則,返回上一級(jí),繼續(xù)匹配,直到查找結(jié)束。當(dāng)檢索到多個(gè)知識(shí)時(shí),則采用KNN-Fisher算法進(jìn)行智能調(diào)用。圖3為測井知識(shí)庫系統(tǒng)的調(diào)用流程。以從測井知識(shí)庫中調(diào)用參數(shù)為例展開說明,步驟如下。
1) 判斷測井解釋是否需要調(diào)用測井知識(shí)庫的參數(shù),如果是,則獲取盆地P、構(gòu)造S、油田A、層組C依次入棧,轉(zhuǎn)步驟2);否則,轉(zhuǎn)步驟7)。
2) 通過混合推理查找知識(shí),如果不存在知識(shí)或者不存在層組C知識(shí),則彈出堆棧,如果堆棧不為空,重復(fù)步驟2);如果存在層組C知識(shí)或者存在知識(shí)且堆棧為空,轉(zhuǎn)步驟3),否則,轉(zhuǎn)步驟7)。
圖3 測井知識(shí)庫調(diào)用流程
3) 判斷知識(shí)是否唯一,如果唯一,則轉(zhuǎn)步驟7);否則,轉(zhuǎn)步驟4)。
4) 查找知識(shí)庫中知識(shí)的研究參數(shù),并從數(shù)據(jù)庫中獲取知識(shí)的研究參數(shù),轉(zhuǎn)步驟5)。
5) 根據(jù)研究參數(shù),提取解釋井的資料,轉(zhuǎn)步驟6)。
6) 利用KNN-Fisher算法對研究資料以及解釋井資料進(jìn)行建模,優(yōu)選解釋參數(shù),轉(zhuǎn)步驟7)。
7) 調(diào)用知識(shí)。
KNN-Fisher算法的實(shí)現(xiàn)流程如下:首先對導(dǎo)入的知識(shí)參數(shù)集及測試集進(jìn)行預(yù)處理,去除異常值,再利用Fisher判別法對預(yù)處理后的數(shù)據(jù)進(jìn)行降維分類,計(jì)算中心質(zhì)點(diǎn),最后調(diào)用改進(jìn)的KNN算法實(shí)現(xiàn)知識(shí)判別調(diào)用。KNN-Fisher算法的描述如圖4所示。
圖4 KNN-Fisher算法的描述
采用基于KNN-Fisher算法構(gòu)建的知識(shí)庫對南海西部海域某油氣田的20多口井資料進(jìn)行處理解釋,效果良好。XX井的測井資料有效儲(chǔ)層解釋流程如下:首先根據(jù)測井曲線的形態(tài)特征將測井解釋剖面劃分為具有相同巖石物理性質(zhì)和流體類型的小層結(jié)構(gòu),然后對這些小層定性解釋,最后給出合理結(jié)論。在解釋過程中需要調(diào)用相關(guān)層組的下限參數(shù)包括孔隙度(POR)下限、含水飽和度(SW)下限及泥質(zhì)含量(VSH)下限參數(shù),對儲(chǔ)層流體性質(zhì)判斷,以識(shí)別油氣。XX井位于A1氣田、S1構(gòu)造,從表2中可知S1構(gòu)造包括B1、B2、C1共3個(gè)目的層組,知識(shí)庫中已經(jīng)存在了A1氣田B1、B2層組下限參數(shù)以及A2、A3氣田C1層組的下限參數(shù)。
XX井距離A2氣田21.5km,距離A3氣田30.0km,包含3個(gè)目的層組B1、B2、C1,其中C1層組在A1油田知識(shí)庫中無下限參數(shù),因此為了對C1層組進(jìn)行有效儲(chǔ)層解釋,需要借助構(gòu)造內(nèi)同一層組或者同一油田中鄰近層組的信息進(jìn)行解釋分析。經(jīng)過混合推理,首先查找知識(shí)庫中A1氣田C1層組的知識(shí),返回結(jié)果為無;接著返回A1氣田查找,存在B1、B2層組知識(shí),不存在C1層組知識(shí);然后返回構(gòu)造繼續(xù)查找,存在A2氣田C1層組以及A3油田C1層組知識(shí),查找結(jié)束,一共查找到4個(gè)知識(shí),下一步需要利用KNN-Fisher算法判別調(diào)用知識(shí)。
我們利用孔隙度、泥質(zhì)含量、含水飽和度、電阻率以及聲波曲線進(jìn)行知識(shí)研究。采用KNN-Fisher算法判別調(diào)用知識(shí)時(shí),需要利用A1氣田B1、B2層組的孔隙度、泥質(zhì)含量、含水飽和度、電阻率及聲波曲線以及A2、A3氣田C1層組的孔隙度、泥質(zhì)含量、含水飽和度、電阻率及聲波曲線建立模型,并將A1氣田C1層組的孔隙度、泥質(zhì)含量、含水飽和度、電阻率及聲波曲線作為測試集。
表2 P1盆地知識(shí)
將該油氣田相關(guān)研究資料與XX井C1層組資料進(jìn)行預(yù)處理后,再采用KNN-Fisher算法建模,得到的因子分析結(jié)果如圖5所示。將該油氣田相關(guān)研究資料與XX井C1層組資料進(jìn)行預(yù)處理后,不調(diào)用Fisher判別法,僅采用KNN算法建模,得到的因子分析結(jié)果如圖6所示。對比圖5和圖6可以發(fā)現(xiàn),圖5中同一層組的數(shù)據(jù)更集中,而圖6中的數(shù)據(jù)較為分散。從采用KNN-Fisher算法建模可以看出,XX井C1層組與A3氣田C1層組最接近,因此,我們采用A3氣田的C1層組下限參數(shù)對XX井C1層組進(jìn)行有效儲(chǔ)層解釋。利用ZHU等[12]提出的KNN算法建模得到的XX井C1層組與A2氣田C1層組最接近,因此,我們調(diào)用A2氣田C1層組的知識(shí)對XX井C1層組進(jìn)行有效儲(chǔ)層解釋。
圖5 采用KNN-Fisher算法建模得到的因子分析結(jié)果(x軸為因子1,y軸為因子2,z軸為因子3)
圖6 采用KNN算法建模得到的因子分析結(jié)果(x軸為因子1,y軸為因子2,z軸為因子3)
將利用本文方法與ZHU等[12]提出的方法得到的分析結(jié)果進(jìn)行比較研究。圖7是分別利用A3氣田C1層組的下限參數(shù)及A2氣田C1層組的下限參數(shù)對XX井C1層組的有效儲(chǔ)層解釋得到的結(jié)果。XX井C1層組被分為3個(gè)小層進(jìn)行有效儲(chǔ)層解釋,采用A2氣田C1層組的下限參數(shù)進(jìn)行解釋,解釋結(jié)果為差氣層,而采用A3氣田C1層組的下限參數(shù)得到的解釋結(jié)果為氣層。在XX井C1層組進(jìn)行地層測試,獲天然氣124935.0m3/d、水9.0m3/d,證實(shí)C1層組為高產(chǎn)氣層,不難發(fā)現(xiàn),利用A3油田C1層組的下限參數(shù)得到的解釋結(jié)果更符合實(shí)際情況。
圖7 利用A3氣田C1層組和A2氣田C1層組的下限參數(shù)對XX井C1層組的有效儲(chǔ)層解釋得到的結(jié)果(1ft≈0.3048m)
表3是KNN-Fisher算法與KNN算法在南海西部海域某油氣田的應(yīng)用統(tǒng)計(jì)結(jié)果,從表3可以看出,KNN-Fisher算法的符合率為80%,KNN算法的符合率為60%,KNN-Fisher算法的符合率較KNN算法的符合率高。KNN-Fisher算法能夠?qū)崿F(xiàn)知識(shí)自動(dòng)、準(zhǔn)確調(diào)用,有效克服了混合推理及KNN算法存在的不足。
表3 KNN-Fisher算法與KNN算法在南海西部某油氣田的應(yīng)用統(tǒng)計(jì)結(jié)果
本文結(jié)合測井解釋知識(shí)庫的特點(diǎn),提出了基于KNN-Fisher算法構(gòu)建知識(shí)庫的方法,研究了知識(shí)庫調(diào)用方法,并將該方法應(yīng)用于南海西部海域某油氣田的測井解釋,得出以下結(jié)論。
1) 該方法在利用Fisher判別法進(jìn)行降維分類的同時(shí),對KNN算法加入權(quán)重系數(shù)以及質(zhì)心點(diǎn)約束條件,提高了算法的準(zhǔn)確度,有效克服了混合推理及KNN算法存在的不足。
2) 該方法實(shí)現(xiàn)了測井知識(shí)庫中知識(shí)的自動(dòng)、準(zhǔn)確調(diào)用,獲取的知識(shí)與實(shí)際的地層條件吻合,提高了解釋精度和解釋效率。
3) 在實(shí)際應(yīng)用中應(yīng)該注意,當(dāng)知識(shí)庫中不存在知識(shí)研究所需的測井資料或者當(dāng)前處理井的資料與知識(shí)庫的知識(shí)研究參數(shù)不符合時(shí),采用該算法得到的知識(shí)將會(huì)給測井解釋造成較大的誤差。