常德寬 雍學善 王一惠 楊午陽 李海山 張廣智
(①中國石油大學(華東),山東青島 266555;②中國石油勘探開發(fā)研究院西北分院,甘肅蘭州 730020)
地震數(shù)據(jù)解釋過程中一項重要的任務是斷層解釋,因為斷層可以成為油氣運移的主要通道,也可以側(cè)向封堵而形成斷塊油氣藏。因此,準確識別斷層對油氣的勘探開發(fā)具有重要意義。斷層在地震剖面上表現(xiàn)為同相軸低連續(xù)或高度不連續(xù)性。傳統(tǒng)的斷層解釋多由人機交互方式完成,效率低,人為因素可能導致結(jié)果不確定性大,加大了油氣勘探開發(fā)的成本和風險。
為了提高斷層解釋的效率,研究人員提出了很多方法。Bahorich等[1]提出互相關方法,對每道地震數(shù)據(jù)及其鄰域的地震道進行歸一化互相關以識別斷層。然而,該方法不適用于低信噪比的地震數(shù)據(jù)。Marfurt等[2]和Hale[3]將相似性算法用于檢測地震數(shù)據(jù)中的不連續(xù)性。Marfurt等[4]提出特征結(jié)構(gòu)相干算法,用于構(gòu)造具有特征分解矩陣的協(xié)方差矩陣和特征分解矩陣。這些算法對斷層識別的精度均很高,但對于低信噪比條件下的地震數(shù)據(jù)則需要更多的計算時間。Pedersen等[5]首次將螞蟻追蹤方法用于提取小斷層,且合并形成較大的斷層面。Aurnhammer等[6]提出遺傳算法用于自動化地震圖像中的斷層識別。印興耀等[7]提出使用離心窗傾角掃描的曲率屬性識別小斷層。陳雷等[8]利用相似性傳播聚類與主成分分析進行斷層識別。趙鳳全等[9]將構(gòu)造導向濾波用于斷裂識別,取得了較好的應用效果。Wu等[10]提出3D圖像處理方法,自動計算與斷層相鄰的圖像樣本的斷層面和傾斜滑動矢量。上述方法可用于斷層識別,但基于經(jīng)驗的參數(shù)設置可影響斷層識別結(jié)果的準確性。
近年來,深度學習在多個領域取得了顯著的成就,特別是在分類、特征提取等方面具有突出的優(yōu)勢。在地震勘探領域,研究人員探索了深度學習方法在地震數(shù)據(jù)處理和解釋中的應用。Srisutthiyakorn[11]將深度學習方法用于預測滲透率。Lewis等[12]應用深度學習方法,利用FWI反演模型的地震圖像建立地質(zhì)模型。Huang等[13]應用深度學習方法,利用地震屬性分析地質(zhì)特征。Serfaty等[14]通過主成分分析和局部角度域深度學習分離地震波場。Chang等[15-16]將生成對抗網(wǎng)絡用于地震數(shù)據(jù)插值。Wang等[17]將深度殘余網(wǎng)絡用于地震數(shù)據(jù)插值。王鈺清等[18]利用卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)壓制地震隨機噪聲,通過數(shù)據(jù)增廣的方式生成標簽數(shù)據(jù),以提高去噪模型的泛化能力。張玉璽等[19]利用深度學習進行多屬性鹽丘自動識別。李海山等[20]利用深度殘差網(wǎng)絡壓制地震數(shù)據(jù)噪聲。Xiong等[21]和Wu等[22]應用深度學習方法進行斷層智能化識別,取得了初步效果。Xiong等[21]使用相干體作為斷層標簽數(shù)據(jù),訓練深度學習模型,預測結(jié)果與應用相干體技術(shù)預測斷層結(jié)果相似,精度并未明顯提高。Wu等[22]使用正演合成數(shù)據(jù)制作標簽數(shù)據(jù)集,用于深度學習模型訓練,在構(gòu)造簡單的實際工區(qū)數(shù)據(jù)斷層識別中取得了較好效果,但在復雜構(gòu)造工區(qū)數(shù)據(jù)的斷層識別中存在明顯假象。Chang等[23]提出利用U-Net網(wǎng)絡進行斷層識別,利用合成數(shù)據(jù)和實際數(shù)據(jù)一起訓練深度學習模型,試圖解決智能斷層識別網(wǎng)絡的泛化能力弱的問題。
為了提高地震數(shù)據(jù)斷層識別的精度和效率,本文結(jié)合U-Net架構(gòu)和深度殘差網(wǎng)絡(ResNet),構(gòu)建智能地震數(shù)據(jù)斷層識別網(wǎng)絡(SeisFault-Net)。U-Net架構(gòu)適用于數(shù)據(jù)特征檢測和提取,ResNet網(wǎng)絡結(jié)構(gòu)有助于訓練深度深層網(wǎng)絡,因此利用兩種網(wǎng)絡架構(gòu)的優(yōu)勢可有效提高深層網(wǎng)絡訓練收斂速度和斷層識別精度。同時,SeisFault-Net利用GPU進行數(shù)據(jù)處理,因此可大幅提高斷層檢測效率。
ResNet是一種用于訓練更深層網(wǎng)絡的框架[20],通過在卷積神經(jīng)網(wǎng)絡塊(圖1a)上添加一個跳躍連接(Skip Connection),將輸入向量和卷積層的輸出融合在一起構(gòu)建殘差學習塊(圖1b)。利用圖1a所示的卷積神經(jīng)網(wǎng)絡塊構(gòu)建深層網(wǎng)絡時,層數(shù)的增加會導致深層存在網(wǎng)絡梯度消失或者爆炸現(xiàn)象,使深度網(wǎng)絡模型難以有效訓練,出現(xiàn)模型退化問題。He等[24]提出的殘差神經(jīng)網(wǎng)絡塊(圖1b)用于解決深層網(wǎng)絡模型退化問題,該網(wǎng)絡結(jié)構(gòu)基于恒等映射的思想,即每堆疊一層網(wǎng)絡,堆疊前的輸入與堆疊后的輸出相同,使新增網(wǎng)絡層只需學習一個殘差函數(shù)即可。
圖1 卷積神經(jīng)網(wǎng)絡塊(a)和殘差神經(jīng)網(wǎng)絡塊(b)x為輸入地震數(shù)據(jù);F(x)為殘差函數(shù);ReLU為激活函數(shù)
深度殘差網(wǎng)絡由堆疊的多個殘差學習塊組成,每個殘差學習塊的殘差函數(shù)為
I(xl)=xl+F(xl,θl)
(1)
xl+1=f[I(xl)]
(2)
式中:I(xl) 為同等映射函數(shù);xl和xl+1表示第l個殘差學習塊的輸入和輸出,l∈N,N為網(wǎng)絡堆疊層數(shù);F是殘差函數(shù);θl表示第l個殘差學習塊的卷積核;激活函數(shù)f使用的是整流線性單元函數(shù)ReLU[25]。
同等映射函數(shù)允許將較深層中的梯度值快速傳遞到較淺層,這有效解決了網(wǎng)絡訓練過程中由于鏈式求導法則導致的梯度爆炸或梯度消失的問題,從而提高網(wǎng)絡訓練過程的穩(wěn)定性和效率。
U-Net架構(gòu)最初由Ronneberger等[26]提出并用于生物醫(yī)學圖像的目標分割。U-Net架構(gòu)具有多尺度、多層次的特征,能有效識別、定位目標的邊界。U-Net由編碼子網(wǎng)絡和解碼子網(wǎng)絡構(gòu)成。編碼子網(wǎng)絡對數(shù)據(jù)進行編碼學習,池化層和上采樣層將數(shù)據(jù)流放大、縮小到不同尺度,實現(xiàn)對數(shù)據(jù)降維或升維計算。解碼子網(wǎng)絡學習在不同尺度下的數(shù)據(jù)流中的特性信息,使U-Net架構(gòu)可以進行端到端訓練,實現(xiàn)數(shù)據(jù)的語義分割。在編碼子網(wǎng)絡和解碼子網(wǎng)絡之間利用跳躍連接將多層信息進行融合,可提高目標特征識別的精度。
鑒于斷層識別需要準確刻畫邊界和位置,本文將U-Net網(wǎng)絡和ResNet結(jié)合構(gòu)建用于地震數(shù)據(jù)斷層識別的SeisFault-Net。SeisFault-Net將ResNet訓練深層網(wǎng)絡的優(yōu)勢與U-Net架構(gòu)的特征分割相結(jié)合,實現(xiàn)對地震數(shù)據(jù)斷層的高精度識別。
SeisFault-Net如圖2所示,設計為對稱結(jié)構(gòu),由三類層構(gòu)成,包括ResNet塊、池化層(Pooling)和上采樣層(Up-Sampling)。其中,ResNet塊由3個卷積層和1個跳躍連接構(gòu)成,第一、第二、第三層卷積核分別為1×1、3×3、1×1,共11個塊。利用兩個1×1的卷積層代替3×3的卷積層降低整個網(wǎng)絡模型的學習參數(shù)量,在不影響殘差學習塊的性能的同時,對原始3×3卷積核網(wǎng)絡的冗余參數(shù)進行壓縮。池化層為步長2×2的最大池化,共4層,用于地震數(shù)據(jù)降維,提高后續(xù)的卷積層對地震數(shù)據(jù)的感受野。上采樣層是卷積核為2×2、步長為1×1的反卷積層,共4層。使用反卷積層可以從映射層中學習重建的特征,使上采樣的數(shù)據(jù)能夠更準確地重建斷層特征。
圖2 SeisFault-Net網(wǎng)絡(a)地震數(shù)據(jù);(b) SeisFault-Net網(wǎng)絡結(jié)構(gòu);(c)標簽數(shù)據(jù)
SeisFault-Net可表示為
(3)
對SeisFault-Net網(wǎng)絡模型進行優(yōu)化的損失函數(shù)為二分類的交叉熵函數(shù),即
(4)
為了提高SeisFault-Net的泛化能力,本文共選取7個工區(qū)的地震數(shù)據(jù)(圖3a),將地震數(shù)據(jù)分割為256×256的數(shù)據(jù)塊。其中,5個工區(qū)的數(shù)據(jù)用于制作訓練數(shù)據(jù)集和驗證數(shù)據(jù)集,共有800個地震數(shù)據(jù)塊; 2個工區(qū)的地震數(shù)據(jù)用于測試數(shù)據(jù)集,共有150個地震數(shù)據(jù)塊。實際地震數(shù)據(jù)集中包含線性的和非線性的斷層類型,標注斷層可獲得標簽數(shù)據(jù)集(圖3b)。
圖3 訓練數(shù)據(jù)集(a)地震數(shù)據(jù);(b)標簽數(shù)據(jù)
首先,利用訓練地震數(shù)據(jù)集訓練SeisFault-Net,使用動態(tài)學習率,即
(5)
其中
式中:I0=0.01為初始學習率;r為衰減系數(shù);s為衰減步長;g為全局步長;k為訓練次數(shù);int(·)表示取整。隨著訓練次數(shù)的增加,學習率降低,這有助于提高模型收斂速度,降低模型訓練時間。圖4a為訓練實際數(shù)據(jù)集的損失函數(shù)曲線。由圖可見,經(jīng)過100次訓練后,損失函數(shù)值基本穩(wěn)定。圖4b為預測斷層準確率曲線,驗證集的斷層預測準確率在80次訓練后基本穩(wěn)定在0.92附近。
圖4 SeisFault-Net訓練曲線(a)損失函數(shù)曲線;(b)斷層預測準確率
利用驗證數(shù)據(jù)集和測試數(shù)據(jù)集測試訓練后Seis-Fault-Net網(wǎng)絡模型的斷層預測性能。圖5為驗證集數(shù)據(jù)斷層識別結(jié)果。由圖可見,經(jīng)過訓練后的SeisFault-Net在驗證數(shù)據(jù)集上斷層預測準確,與標簽數(shù)據(jù)一致。
圖5 SeisFault-Net驗證數(shù)據(jù)集斷層識別結(jié)果(a)地震數(shù)據(jù);(b)斷層標簽數(shù)據(jù);(c)SeisFault-Net預測斷層
測試數(shù)據(jù)集斷層識別結(jié)果如圖6所示。訓練后的SeisFault-Net在測試數(shù)據(jù)上斷層預測效果較好,準確刻畫了斷層位置和邊界。這說明SeisFault-Net具備應用于實際斷層識別的泛化能力。
圖6 SeisFault-Net測試數(shù)據(jù)集斷層識別結(jié)果(a)地震數(shù)據(jù);(b)SeisFault-Net預測斷層
利用測試數(shù)據(jù)進行斷層識別準確率和效率測試。圖7為SeisFault-Net方法和相干體技術(shù)斷層識別效果對比,可以看到SeisFault-Net方法明顯優(yōu)于相干算法,且計算效率為相干算法的18倍。
圖7 SeisFault-Net與相干算法斷層識別效果對比(a)地震數(shù)據(jù);(b)相干算法;(c)SeisFault-Net方法
使用實際數(shù)據(jù)體測試SeisFault-Net斷層識別能力。圖8為DJ工區(qū)地震剖面識別斷層的投影顯示,通過訓練后的SeisFault-Net無需設置任何參數(shù)即可進行線性和非線性斷層的識別。由圖8可見,SeisFault-Net識別的斷層位置與地震同相軸不連續(xù)處基本重合,且斷層垂向連續(xù)性好;黃色虛線框內(nèi)識別的斷層清晰,位置準確;藍色框內(nèi)由于地震資料分辨率較低,斷層的垂向連續(xù)性受到影響,但 SeisFault-Net也可以精確識別斷層的位置和方向,這表明經(jīng)過訓練后的SeisFault-Net的泛化能力較強。
圖8 實際數(shù)據(jù)體預測斷層的投影顯示黑色投影線為SeisFault-Net方法識別的斷層
利用DQ工區(qū)三維地震數(shù)據(jù)體測試SeisFault-Net,并且與相干算法進行比較。三維地震數(shù)據(jù)體大小為1.02GB,使用機器型號為Nvidia P100 GPU。SeisFault-Net識別斷層耗時5.53s,相干算法識別斷層耗時107.00s,即SeisFault-Net計算效率是相干算法的19.35倍。
圖9為DQ工區(qū)三維數(shù)據(jù)體的等時切片。由圖可見,SeisFault-Net識別的斷層位置準確,橫向展布清晰,斷層連續(xù)性好(如圖中黃色箭頭處);與相干算法識別的斷層(圖9b)相比,SeisFault-Net識別的斷層(圖9c)細節(jié)特征更豐富,斷層展布清晰(如圖中黃色方框內(nèi))。圖10為地震剖面對比結(jié)果,可見相干算法識別斷層連續(xù)性差,存在水平干擾現(xiàn)象,而SeisFault-Net識別的斷層位置準則,不存在水平干擾。
圖9 實際數(shù)據(jù)等時切片(a)地震數(shù)據(jù)等時切片;(b)相干算法識別斷層切片;(c)SeisFault-Net識別斷層切片
圖10 地震剖面不同方法斷層識別結(jié)果對比(a)地震數(shù)據(jù);(b)相干算法;(c)SeisFault-Net方法
本文提出基于深度殘差網(wǎng)絡與U-Net架構(gòu)聯(lián)合識別地震資料斷層的方法,能有效識別實際數(shù)據(jù)中的斷層。SeisFault-Net網(wǎng)絡利用了U-Net架構(gòu),通過編碼子網(wǎng)絡和解碼子網(wǎng)絡在高維空間有效表征地震數(shù)據(jù)中的斷層特征,利用跳躍連接將多層的特征信息進行融合,提高了斷層識別準確性。同時,SeisFault-Net利用ResNet層,提高了網(wǎng)絡訓練效率。相較于相干算法,本文方法能更有效、準確識別斷層位置,識別的斷層的垂向連續(xù)性更好。SeisFault-Net用于地震斷層識別的計算效率高,能極大縮短地震數(shù)據(jù)的斷層解釋時間,降低斷層解釋結(jié)果的人為不確定性。