郭愛華,路鵬飛,李祥,李娜
(1.東華理工大學(xué) 信息工程學(xué)院,江西 南昌;2.東華理工大學(xué) 軟件學(xué)院,江西 南昌;3.中石油冀東油田勘探開發(fā)研究院,河北 唐山)
《機(jī)器學(xué)習(xí)》是我校信息工程學(xué)院開設(shè)的一門研究生課程。為了讓學(xué)生更深刻地理解深度學(xué)習(xí)的過程,理論與實(shí)際結(jié)合,我們實(shí)驗(yàn)室設(shè)計(jì)出深度學(xué)習(xí)在斷層識(shí)別中的實(shí)踐教學(xué)案例。
斷層識(shí)別在石油行業(yè),不管是油氣勘探還是油氣開發(fā)中都是不可或缺的一個(gè)關(guān)鍵環(huán)節(jié),斷層有效識(shí)別對于油氣運(yùn)移、油氣封堵、油氣成藏等方面的研究至關(guān)重要。我們實(shí)驗(yàn)室利用深度學(xué)習(xí)在分類、特征提取等方面的優(yōu)勢將其應(yīng)用到石油勘探開發(fā)領(lǐng)域。將斷層識(shí)別看成二分類問題。
利用此次實(shí)踐學(xué)習(xí),引導(dǎo)學(xué)生選擇深度學(xué)習(xí)框架,利用U-net[1-4]網(wǎng)格結(jié)構(gòu)對訓(xùn)練數(shù)據(jù)進(jìn)行深度學(xué)習(xí)產(chǎn)生訓(xùn)練模型,將驗(yàn)證數(shù)據(jù)對訓(xùn)練模型參數(shù)進(jìn)行驗(yàn)證,根據(jù)殘差情況對訓(xùn)練模型進(jìn)行迭代更新產(chǎn)生符合精度要求的模型,最后利用得到的模型對我國東部某油田的實(shí)際數(shù)據(jù)進(jìn)行斷層識(shí)別。這次教學(xué)實(shí)踐,不僅能讓學(xué)生更熟練掌握Python 編程語言、認(rèn)識(shí)到機(jī)器學(xué)習(xí)的優(yōu)勢與魅力,增強(qiáng)學(xué)生對機(jī)器學(xué)習(xí)的興趣,提高學(xué)生動(dòng)手能力,更是當(dāng)今油氣行業(yè)所需的實(shí)際應(yīng)用項(xiàng)目,契合當(dāng)代社會(huì)需求,解決實(shí)際問題。
深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的一個(gè)子領(lǐng)域,它使用了多層次的非線性信息處理和抽象,用于有監(jiān)督或無監(jiān)督的特征學(xué)習(xí)、表示、分類和模式識(shí)別等[5-11]。各種深度學(xué)習(xí)算法的構(gòu)建都是以人工神經(jīng)網(wǎng)絡(luò)為基礎(chǔ)的。人工神經(jīng)網(wǎng)絡(luò)是模擬人腦神經(jīng)元認(rèn)識(shí)過程的抽象的計(jì)算模型。U-Net 網(wǎng)絡(luò)結(jié)構(gòu)于2015 年由Ronneberger 等在MICCAI 會(huì)議上提出,是基于全卷積神經(jīng)網(wǎng)絡(luò)(FCN)[12-14]拓展、修改而來,由編碼器和解碼器兩部分組成。本次教學(xué)實(shí)踐主要采用深度學(xué)習(xí)中的U-net 網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行斷層訓(xùn)練。
1.U-net 模型
圖1展示了U-net 結(jié)構(gòu),它是在醫(yī)學(xué)圖像分割領(lǐng)域較為成功的一種網(wǎng)絡(luò)模型。它由下采樣的收縮路經(jīng)和上采樣的擴(kuò)展路徑組成。收縮路徑是典型的卷積網(wǎng)絡(luò)架構(gòu)。它的架構(gòu)是一種重復(fù)結(jié)構(gòu),每次重復(fù)都是兩個(gè)3X3 卷積層后跟一個(gè)激活函數(shù)和一個(gè)步長為2 的2X2 的最大池化層。卷積層后激活函數(shù)使用ReLU。每次下采樣操作都將特征圖通道數(shù)增加2 倍,同時(shí)將圖像尺寸縮小2 倍。擴(kuò)展路徑中的每一步都首先使用一次反卷積操作,將特征圖通道數(shù)減半,然后拼接對應(yīng)收縮路徑裁剪得到的特征圖,再采用2 個(gè)3X3 卷積層進(jìn)行特征提取。并重復(fù)這一結(jié)構(gòu)。在網(wǎng)絡(luò)的最后一層是一個(gè)1X1 的卷積層,通過這一操作可以將64 通道的特征向量轉(zhuǎn)換為所需要的分類結(jié)果的數(shù)量。
圖1 U-net 網(wǎng)絡(luò)結(jié)構(gòu)
一塊實(shí)際地震數(shù)據(jù)是一個(gè)三維數(shù)據(jù)體,包括主測線方向軸、聯(lián)絡(luò)線方向軸和時(shí)間軸。在用U-net深度學(xué)習(xí)進(jìn)行三維地震數(shù)據(jù)斷層識(shí)別時(shí)需要對U-net網(wǎng)絡(luò)結(jié)構(gòu)做些調(diào)整。2016 年,研究人員將U-Net 網(wǎng)絡(luò)結(jié)構(gòu)原本的2D 輸入輸出改為3D 輸入輸出,且網(wǎng)絡(luò)各層3X3 卷積核改成3X3X3 卷積核、2X2 池化層改為2X2X2 池化層,2D 上采樣改成3D 上采樣。這樣就可以滿足三維數(shù)據(jù)的深度學(xué)習(xí)。
2.損失函數(shù)
損失函數(shù)最小化可使模型達(dá)到收斂狀態(tài),減少模型預(yù)測值的誤差。本文采用的損失函數(shù)為Xie 等提出的平衡交叉熵?fù)p失函數(shù),即
上式中:N為輸入三維地震體數(shù)據(jù)點(diǎn)個(gè)數(shù);β為非斷層點(diǎn)與樣本數(shù)的比; 是預(yù)測為斷層點(diǎn)的概率是標(biāo)簽值(1 為斷層點(diǎn),0 為非斷層點(diǎn))。增加β可以使模型在訓(xùn)練過程中更加側(cè)重于標(biāo)簽少的樣本的學(xué)習(xí),適合正、負(fù)樣本不均衡的情況。在數(shù)據(jù)訓(xùn)練集中,非斷層點(diǎn)(標(biāo)簽為0)遠(yuǎn)大于斷層點(diǎn)(標(biāo)簽為1)的數(shù)量,因而應(yīng)用平衡交叉熵?fù)p失函數(shù)能夠增加模型對斷層點(diǎn)的學(xué)習(xí)能力,以便更好地識(shí)別斷層。
模型訓(xùn)練采用的數(shù)據(jù)集為Wu 等[15]共享的合成地震記錄數(shù)據(jù)集,Wu 等基于合成地震記錄模擬不同傾角、斷距的斷層和不同頻率子波的地震響應(yīng),構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)檢測存在不同傾角斷層的可能性,制作出標(biāo)簽。共有220 個(gè)三維合成地震記錄以及與之對應(yīng)的標(biāo)簽,每個(gè)數(shù)據(jù)集大小為128X128X128。其中,200 個(gè)作為訓(xùn)練集,剩余的20 個(gè)作為測試集。圖2 展示了剖面、時(shí)間切片以及對應(yīng)的斷層標(biāo)簽。
圖2 訓(xùn)練數(shù)據(jù)
應(yīng)用數(shù)據(jù)采用我國東部某油田斷層較發(fā)育的實(shí)際工區(qū)。面積100m2,數(shù)據(jù)量4G。
實(shí)驗(yàn)的工作站環(huán)境如下:英特爾core i9 十代32G 內(nèi)存,Nvidia Geofox 顯卡顯存8G。
目前,全世界比較流行的深度學(xué)習(xí)框架有Tensorflow、Caffe、Theano、MXNet、Torch 等。此次教學(xué)實(shí)踐采用Tensorflow 作為深度學(xué)習(xí)框架,Tensorflow 擁有龐大的開發(fā)群體,集成好了很多經(jīng)典的機(jī)器學(xué)習(xí)算法。本次實(shí)踐深度學(xué)習(xí)的上采樣過程就使用Tensorflow 深度學(xué)習(xí)框架自帶的UpSampling3D 函數(shù)實(shí)現(xiàn)。后端利用GPU 模型訓(xùn)練進(jìn)行加速計(jì)算。
本實(shí)驗(yàn)采用Python3.9 集成開發(fā)環(huán)境作為底層系統(tǒng)開發(fā)平臺(tái),Pycharm2021 作為上層開發(fā)平臺(tái)。Python 提供了高效的高級數(shù)據(jù)結(jié)構(gòu),還能簡單有效地面向?qū)ο缶幊?。Python 是一種能夠在多種平臺(tái)上編寫腳本和快速開發(fā)應(yīng)用的編程語言,同時(shí)在Python、Pycharm 上可以安裝第三方庫。
在訓(xùn)練之前,首先對樣本標(biāo)簽數(shù)據(jù)體進(jìn)行預(yù)處理??紤]到不同地震數(shù)據(jù)的振幅值之間可能存在很大差異,因而對所有訓(xùn)練的地震數(shù)據(jù)進(jìn)行歸一化處理,每個(gè)數(shù)據(jù)用平均值減去標(biāo)準(zhǔn)差。同時(shí),為了增加數(shù)據(jù)的多樣性,提高訓(xùn)練模型的泛化能力,對數(shù)據(jù)集進(jìn)行增強(qiáng)處理,將樣本標(biāo)簽數(shù)據(jù)集沿z軸進(jìn)行90°、180° 和270° 旋轉(zhuǎn),目的是避免插值引起的偽影。
導(dǎo)入訓(xùn)練數(shù)據(jù)(包括模型數(shù)據(jù)和標(biāo)簽數(shù)據(jù))。進(jìn)行深度學(xué)習(xí)通道數(shù)和數(shù)據(jù)塊規(guī)模以及模型迭代次數(shù)設(shè)置,利用U-net 網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行深度學(xué)習(xí)產(chǎn)生訓(xùn)練模型。
根據(jù)驗(yàn)證數(shù)據(jù)(包括驗(yàn)證模型數(shù)據(jù)和驗(yàn)證標(biāo)簽數(shù)據(jù))對訓(xùn)練模型參數(shù)進(jìn)行驗(yàn)證。根據(jù)殘差情況對訓(xùn)練模型進(jìn)行迭代更新。最終產(chǎn)生符合精度要求的模型。此次實(shí)驗(yàn)訓(xùn)練過程如圖3 所示,損失函數(shù)采用平衡交叉熵?fù)p失函數(shù)。
圖3 深度學(xué)習(xí)識(shí)別斷層模型訓(xùn)練流程圖
最后導(dǎo)入實(shí)際地震數(shù)據(jù)和訓(xùn)練模型,將訓(xùn)練模型應(yīng)用到斷層識(shí)別中進(jìn)行低序級斷層刻畫。識(shí)別結(jié)果以SEGY 形式存儲(chǔ)。
通過100 次訓(xùn)練,損失函數(shù)在訓(xùn)練集和驗(yàn)證集都收斂在0.04 左右,模型正確率在97%左右,訓(xùn)練用時(shí)8 小時(shí)。
實(shí)驗(yàn)數(shù)據(jù)為我國東部某油田實(shí)際區(qū)塊,斷裂十分發(fā)育。將此次深度學(xué)習(xí)斷層識(shí)別出來的斷層平面展布結(jié)果與常規(guī)相干對比可以看出(圖4),一些低序級斷層細(xì)節(jié)特征更豐富,斷層展布更清晰。將斷層體投在地震數(shù)據(jù)上斷層位置與地震同相軸不連續(xù)處基本吻合(圖5)。
圖4 深度學(xué)習(xí)識(shí)別斷層與相干算法識(shí)別斷層平面展布特征對比(左:相干算法 右:深度學(xué)習(xí)算法)
圖5 斷層自動(dòng)識(shí)別結(jié)果在地震剖面上顯示
實(shí)踐教學(xué)是加深對理論知識(shí)理解的有效途徑,能夠激發(fā)學(xué)生的動(dòng)手能力和創(chuàng)新性,能夠培養(yǎng)出具有高素質(zhì)的工程技術(shù)人員。通過這次實(shí)踐教學(xué),讓學(xué)生理解深度學(xué)習(xí)的精髓,掌握用基本深度學(xué)習(xí)算法解決問題的方法和步驟。另外本次實(shí)踐教學(xué)緊密結(jié)合油氣行業(yè)、工程勘探行業(yè)等具有實(shí)際需求的斷層識(shí)別領(lǐng)域,讓學(xué)生親身體驗(yàn)用所學(xué)理論知識(shí)滿足社會(huì)需求,引領(lǐng)學(xué)生以后在學(xué)習(xí)中遇到問題后如何分析問題、解決問題。