王 靜 張軍華* 蘆鳳明 孟瑞剛 王作乾 常健強
(①中國石油大學(華東)地球科學與技術學院,山東青島 266580;②中國石油大港油田公司勘探開發研究院,天津300280)
在地震資料解釋中,人工識別斷層耗時、費力,且人為因素往往容易增加斷層解釋結果的不確定性。如何高效率、準確地識別斷層,特別是在發育大量、復雜斷層的勘探區,是一個難題。
在過去幾十年中,利用計算機輔助識別斷層方面的技術發展很快。李軍等[1]、王靜等[2]利用各向異性擴散濾波方法識別斷層,效果較好。Wu[3]提出的方向性結構張量相干算法對小斷層的識別效果較好。Qi等[4]提出了多角度相干算法,可以提高相干屬性識別斷層的精度。Duan等[5]提出的振幅譜方差相干算法更能突出小斷裂。Wang等[6]提出三維構造導向復相干屬性,從理論模型和實際資料的應用兩方面證明了其在斷裂識別方面的有效性。Yan等[7]采用多方向特征值相干屬性檢測斷層等不連續性。Chopra等[8]利用曲率屬性解釋斷層。霍志周等[9]提出了一種高精度結構曲率的提取方法,對高陡構造及斷層的刻畫精度更高,更有利于構造解釋。Di等[10]、Ashraf 等[11]、Philips等[12]提出將邊緣檢測算法用于斷層識別,增強斷層邊緣信息,可提高斷層識別的準確性。Pedersen等[13]系統提出了螞蟻追蹤的流程。李楠等[14]利用高清螞蟻體解釋復雜斷裂帶,能在提高信噪比的同時增強斷層連續性。上述濾波方法、屬性類算法、邊緣檢測方法和螞蟻追蹤算法等在實際中應用廣泛,但計算參數的設置以及解釋人員的經驗往往會影響斷層識別的準確性。
近年來,隨著人工智能的快速發展,機器學習和深度學習方法越來越多地應用于地球物理領域,多種基于卷積神經網絡的算法開始應用于斷層識別。Huang等[15]將多種地震屬性作為卷積神經網絡的輸入進行模型的訓練和斷層的自動識別。Di等[16]提出一種基于多層感知機(Multilayer Perceptron,MLP)的斷層識別方法,將多種地震屬性作為訓練樣本,斷層識別效果較好。Xiong等[17]將卷積神經網絡預測的斷層與相干屬性方法進行對比,證明了前者的斷層識別效果更好。Guo等[18]直接將二維地震數據和人工標注的斷層標簽輸入卷積神經網絡中,提高了斷層識別的效率。Zhao等[19]結合卷積神經網絡與構造導向濾波技術,并應用于實際地震資料的斷層識別,效果較好。Wu等[20]應用基于卷積神經網絡的像素分類方法,可以同時識別斷層的分布和預測斷層傾角,并提出了一種更為高效的三維U-Net斷層識別方法[21],即利用多個理論合成的地震數據體進行模型訓練,進而用于實際地震數據的斷層預測。Pochet等[22]指出,將地震振幅數據作為卷積神經網絡的輸入可以避免多屬性技術帶來的計算量大的問題。Cunha等[23]利用合成的地震數據訓練卷積神經網絡模型,然后引入遷移學習的理念,對模型進行微調后,再應用到實際地震資料中,可提高斷層識別的準確性。Di等[24]在卷積神經網絡中應用解釋性約束條件,提高了斷層識別的準確性。張政等[25]結合深度殘差網絡與遷移學習方法,增強了網絡的泛化能力,優化了識別結果。常德寬等[26]提出一種基于深度卷積神經網絡的斷層識別方法,斷層識別的準確性和效率明顯優于常規相干算法。
為了進一步提高斷層識別的準確性,本文將三維U-Net與深度殘差網絡相結合,引入多層深度監督的機制,構建基于三維深度監督網絡的斷層檢測方法。網絡的設計思想是:在U-Net的編碼部分和解碼部分的卷積塊之間增加殘差連接,簡化網絡的學習目標,降低網絡訓練難度;在解碼部分利用多層深度監督機制,更有效地結合斷層的多尺度信息,進一步提高斷層識別的準確性。具體的實現過程不同于常德寬等[26]提出的深度卷積神經網絡方法,本文方法無需根據實際地震資料進行訓練,而是采用Wu等[27]提出的方法,自動生成大量、不同類型的斷層樣本用于訓練,可以減少人工標注斷層的時間成本。與Wu等[20]提出的三維U-Net網絡的斷層檢測結果對比,本文方法斷層識別精度更高。
增加神經網絡的深度可以增加網絡的參數種類,因而可以更好地學習目標特征。但是,簡單地增加網絡層數會出現梯度消失、梯度爆炸、過擬合等問題,造成網絡退化、訓練精度和測試精度下降。He等[28]提出利用殘差模塊的方法,可以解決深層網絡的退化問題。
殘差模塊基本結構如圖1所示。假設神經網絡的輸入為x,期望輸出為H(x),實際輸出為F(x)。與常規的卷積模塊(圖1a)結構不同,在殘差網絡中,通過跳躍連接的方式可以直接把輸入x傳到輸出作為初始結果,則輸出結果變為H(x)=F(x)+x。這相當于殘差模塊改變了學習目標,不再是學習一個完整的輸出,而是目標值H(x)與x的差值,即殘差F(x)=H(x)-x。

圖1 不同模塊結構對比
He等[28]指出,如果網絡層數超過最佳層數,殘差網絡會將多余層訓練為F(x)=0,即這些層的輸入與輸出相同,從而變為恒等映射。恒等映射函數允許將較深層中的梯度值快速傳遞至較淺層,可解決網絡訓練過程中梯度爆炸或梯度消失的問題。因此,網絡層數加深不會造成網絡退化,從而可以提高網絡訓練過程的穩定性和效率。
本文構建的三維深度監督網絡(簡稱本文網絡,下同)的結構(圖2)類似于Wu等[21]提出的三維U-Net,由編碼器和解碼器兩部分組成。編碼器子網絡分析輸入的地震數據并學習斷層的特征;解碼器子網絡學習不同尺度的特征信息,并可以進行端到端訓練,實現斷層的語義分割。在分辨率相等的層之間建立的跳躍連接可以將來自解碼器的深層高級特征與來自編碼器的淺層低級特征進行融合,從而提高斷層識別的準確性。
與三維U-Net不同,本文網絡引入了殘差學習模塊和多層次的深度監督。殘差模塊的引入能夠簡化網絡的學習目標,降低訓練難度;多層次的深度監督能夠為網絡提供更多的反饋,減輕訓練過程中潛在的梯度消失,使解碼器子網絡更有效地整合多尺度信息,從而進一步提高斷層識別的準確性。
如圖2所示,本文網絡為四層結構,由四個編碼器和四個解碼器組成,每個編碼器、解碼器均包含一個殘差學習模塊。殘差模塊(圖1b)由兩個3×3×3的三維卷積層和一個跳躍連接構成,卷積層之后添加批量歸一化(Batch Normalization)[29]和Leaky ReLU激活函數,并引入失活層(Dropout)防止過擬合問題的出現。批量歸一化對每個層的輸入數據作歸一化處理,使其滿足標準正態分布,這可以降低內部協變量偏移,提高模型訓練的效率[30];Leaky ReLU激活函數可解決梯度消失問題,不僅可以縮短神經網絡訓練周期,提升對應模型的收斂速度,而且能夠增強模型的魯棒性及穩定性。

圖2 三維深度監督網絡(本文網絡)結構
在編碼器部分,每一層殘差模塊之后采用步幅為2的2×2×2的最大池化對數據進行降維,擴大后續的卷積層對地震數據的感受野。在解碼器部分,每一層殘差模塊之后采用步幅為2的2×2×2的上采樣,使上采樣后的數據能夠更準確地重建斷層特征。
在U-Net的特征提取階段,即編碼器子網絡部分,淺層結構可以抓取斷層的簡單特征,而深層結構因為感受野的擴大以及多次卷積操作,可以捕獲到斷層的抽象特征。淺層特征和深層特征對于斷層的檢測都起著至關重要的作用,而原始U-Net結構僅在解碼器子網絡的最后一層進行輸出,沒有利用不同層級解碼器輸出的特點。為了彌補U-Net的這一缺陷并取得更好的斷層檢測效果,本文引入多層深度監督機制,即對解碼器子網絡的每一層均進行輸出,具體實現過程為:在每個解碼器階段的最后一層,通過一個3×3×3的卷積操作和一個步幅為2的2×2×2上采樣操作,用以匹配不同層級解碼器輸出的尺寸;將每一層解碼器的輸出逐層相加,最終利用Sigmoid激活函數輸出斷層概率值,取值范圍為[0,1]。本文構建的多層深度監督的網絡,可以充分學習到不同尺度的斷層語義信息,在網絡訓練過程中可以充分利用不同尺度的斷層特征,使最終用于斷層檢測的信息更豐富,從而有助于提高斷層細分的準確性以及斷層檢測的精度。
利用本文網絡訓練模型檢測斷層需要大量的斷層樣本。手動標記或解釋三維地震數據中的斷層非常耗時且受人為因素影響較大。不正確的人工解釋,即標記錯誤或者未被標記的斷層,往往會誤導整個網絡的學習過程。為了避免這些問題,本文應用Wu等[27]提出的方法,生成多個包含不同類型斷層的合成地震數據,作為訓練樣本用以訓練和驗證本文網絡。斷層樣本的生成(圖3)步驟如下。
(1)隨機生成一維水平反射系數模型(圖3a),反射系數范圍為[-1,1]。
(2)在反射系數模型中,通過垂直剪切模型增加褶皺構造(圖3b),生成褶皺構造的方法為
(1)
式中:Nz代表z方向所有的采樣點數量;a代表垂向剪切在z方向的位置,a∈(0,15];bk表示垂向褶皺的大小,bk∈(0,15];ck和dk分別代表褶皺在x和y方向的位置,因為本文生成的模型大小為256×256×256,所以二者的取值范圍均為(0,256);σk表示褶皺的半徑,σk∈[10,30];Ng代表褶皺構造的控制點數。通過在預定義的取值范圍內隨機選擇每個參數值,可以生成大量具有特定褶皺結構的模型。
(3)為了進一步增加模型結構的復雜性,利用
S2(x,y,z)=e+fx+gy
(2)
對步驟(2)生成的褶皺模型添加平面剪切構造,生成如圖3c所示的模型。式中:e表示褶皺構造在z方向上位移量;f表示平面在x方向的斜率;g表示平面在y方向上的斜率。三個參數的取值范圍分別為:e∈[0,5],f∈[0,0.2],g∈[0,0.2]。
(4)在模型中添加斷層,盡管所有斷層都是平面的,但是斷層的方向(傾角和走向)和位移都互不相同,而每個斷層的斷距沿著走向和傾向在空間上變化。根據實際工區的斷層資料,定義斷層斷距的范圍為[10,70],斷層傾角范圍為[50°,80°]和[-80°,-50°],其中,正角度代表正斷層,負角度代表逆斷層。添加斷層后的模型如圖3d所示。
(5)將生成的模型同雷克子波褶積得到合成地震記錄(圖3e),子波頻率的預設范圍為[20Hz,35Hz]。值得注意的是,在模型中添加褶皺和斷層構造后,再與雷克子波褶積,可以模糊斷層邊界比較尖銳的不連續性,從而使斷層看上去更為真實。

圖3 斷層樣本生成流程
(6)為了使合成地震數據更為貼近實際,對其添加高斯隨機噪聲(信噪比的取值范圍為[3,6]),得到如圖3f所示的地震記錄。
通過隨機選擇褶皺、斷層、子波峰值頻率和噪聲等參數,利用該方法最終生成300對大小為256×256×256的合成地震數據和斷層標簽數據用于模型訓練,并隨機生成了30對數據集用于模型驗證。圖4展示了6對典型的合成地震數據及其對應的斷層標簽數據剖面,包括階梯式斷層、“X”形斷層、“Y”形斷層、“入”字形斷層等。

圖4 典型合成地震數據(左)及其斷層標簽樣式(右)
不同地震數據的振幅值可能有很大差異,需要對所有的數據集進行歸一化處理,即將每個圖像減去其平均值再除以其標準偏差。為了進一步增加訓練和驗證數據集的多樣性,本文對原始數據進行了兩種類型的數據擴展處理。第一種方法為數據增強,即將圖像繞垂直軸旋轉0°、90°、180°和270°,從而將訓練數據集的數量增加4倍;第二種方法是隨機地從原始數據體中切割出較小的子數據體,然后使用這些子數據訓練網絡。每個原始數據的尺寸大小為256×256×256,在網絡訓練過程中,本文從較大的數據中隨機剪切了大小為128×128×128的子數據,確保不同迭代周期的訓練數據集是不同的。這兩種方式可以增加訓練數據集的數量和多樣性,而且用較小的圖像訓練卷積神經網絡,可以大大減少訓練期間的GPU內存需求和計算成本。
在構建本文網絡時,每一層的參數都是隨機初始化的,因此需要對其進一步更新,以創建輸入地震數據體到輸出斷層概率體之間的良好映射網絡。在模型訓練的過程中需要使用優化算法迭代更新參數,直至輸出的斷層數據與斷層標簽之間的誤差收斂到最佳為止。本文使用Adam(Adaptive Moment Estimation)方法[31]優化網絡參數。
因為斷層檢測涉及到二進制圖像分割問題,常用的損失函數是二進制交叉熵(Binary Cross Entropy)LBCE[32],即
(3)
式中:Ns是三維輸出圖像或標簽圖像中樣本的數量;yi和pi分別表示第i個圖像樣本的斷層二進制標簽值和預測值。
當損失函數設定為二進制交叉熵時,斷層識別會出現類別不均衡的問題,這是因為在實際地震資料中,斷層點占比遠遠小于非斷層點。數據樣本分布的不均衡會影響網絡模型的訓練,并且樣本在比例失衡的情況下會導致網絡模型性能下降,最終導致斷層檢測的準確性降低。因此,本文在二進制交叉熵的基礎上,引入Focal Loss損失函數[33],可以解決斷層檢測中斷層點與非斷層點比例失衡的問題,其表達式為
(4)
式中:α是平衡系數,取值為0.5;γ為調節因子,通常取2。
為了選擇合適的學習率(Learning Rate,LR),本文進行了不同的試驗(圖5)。由圖5可見,學習率為1×10-4時,訓練的損失最小,準確率最高,所以本文設置學習率為1×10-4。

圖5 不同學習率計算得到的準確率(左)和損失(右)
學習率為1×10-4時,不同迭代次數(20、40、60和80)得到的斷層檢測結果如圖6所示。可以看出,當迭代次數為20時,斷層檢測精度低,不能準確識別斷層交叉點(藍色箭頭所示);當迭代次數為40、60和80時,得到的結果相差不大。為了提高網絡訓練效率,本文選定迭代次數為40。

圖6 不同迭代次數的斷層檢測結果
用相同的參數(學習率為1×10-4,迭代次數為40,訓練平臺為Google Colab)分別訓練三維U-Net和本文網絡,訓練完成后保存模型,然后在30個驗證數據集上進行測試(驗證數據集未參與網絡訓練,大小為128×128×128),并對斷層預測結果進行量化評價。
斷層的預測屬于二分類問題,在二分類的問題中,兩種類別通常被定義為正類(Positive)和負類(Negative)。在這類問題中,又可以細分為四種情況:假如一個樣本是正類也被預測成正類,就叫做真正類(True Positive,TP),反之,若是負類卻被當作正類的話,就被稱作假正類(False Positive,FP);類似地,當樣本是負類而被預測為負類,那么就是真負類(True Negative,TN),而正類被預測為負類就是假負類(False Negative,FP),對應的斷層預測的相關可能性見表1。

表1 斷層預測的相關可能性分類
根據斷層預測的相關可能性,采用準確率(A)、召回率(R)、F1值(衡量二分類模型精度的一種指標,同時兼顧了精確率和召回率)和交并比IOU(Intersection Over Union)四種指標可以量化評價斷層檢測效果。主要指標定義如下。
TP的數量(QTP)與QTP和FP數量(QFP)之和的比率為精確率,即
(5)
P表示的是預測為正的樣本中有多少是對的,值越大,預測效果越好。
QTP與QTP和FN數量(QFN)之和的比率為召回率,即
(6)
R表示樣本里的正類被正確預測的比例。
F1值是精確率與召回率的調和平均值,即
(7)
對于給定的相關數據集,分類器正確識別的樣本數除以總樣本數,即可得準確率
(8)
交并比為
(9)
式中:ytrue表示斷層標簽;ypre表示網絡模型預測的斷層;S(·)表示面積。IOU介于0與1之間,越接近于1,表示斷層重疊面積越大,識別效果越好。
分別利用三維U-Net和本文網絡預測30個驗證數據的斷層,三維U-Net的斷層檢測結果A、R、F1、IOU分別為0.945~0.968、0.678~0.821、0.668~0.862、0.540~0.741;而本文網絡A、R、F1、IOU分別為0.961~0.989、0.710~0.881、0.699~0.921、0.571~0.810。
選擇其中一個測試模型展示斷層預測效果(圖7),對應的量化評價結果見表2。從圖7可以看出,三維U-Net和本文網絡基本能識別出斷層形態及展布,但在斷層交叉位置處(圖7c藍色箭頭所示),三維U-Net不能對其有效檢測,識別出的斷層結果與斷層標簽偏差較大;而本文網絡可以清晰、準確地檢測出斷層交叉點的位置。從表2可以看出,本文網絡的各個評價指標均優于三維U-Net網絡。

圖7 驗證數據的斷層預測效果

表2 兩種網絡檢測斷層的量化評價結果
為了驗證本文網絡在實際地震資料中的應用效果,將本文網絡訓練得到的模型應用于大港油田自來屯工區的三維地震資料。選取的三維地震數據縱測線號為1975~2230,橫測線號為1100~2124,時間為1000~1800ms,采樣間隔為1ms。工區內斷層比較發育,特別是“Y”形、交叉小斷層較多。大部分斷層的傾角為50°~80°,斷距大致為10~70m。
分別采用三維U-Net和本文網絡訓練得到的模型對該地震數據進行斷層檢測。從縱測線檢測結果(圖8、圖9)可以看出,相干體屬性基本可以指示大斷層的位置以及展布形態,但連續性較差,且非斷層區域干擾較多,小斷層雜亂,難以準確識別。三維U-Net和本文網絡識別出的大斷層特征更清晰,小斷層的細節特征也更豐富,表明了兩種網絡的斷層預測結果(圖8c、圖8d、圖9c、圖9d)均優于相干體屬性(圖8b、圖9b)。同時,相較于三維U-Net網絡,本文網絡檢測的大斷層連續性更好,斷層邊緣更清晰(圖8c和圖8d的藍色框內),而且本文網絡檢測到的小斷層特征更明顯,并能有效減少小斷層的漏識別和錯誤識別的概率(圖8c、圖8d、圖9c和圖9d的黃色框內)。

圖8 Inline2060地震剖面斷層檢測結果對比

圖9 Inline2150地震剖面斷層檢測結果對比
橫測線方向上顯示大斷層較多,且類似于階梯狀(圖10a),小斷層較少。相干體屬性識別出的大斷層連續性較差(圖10b),小斷層基本不能有效識別。三維U-Net網絡的斷層識別精度有了明顯提高,但相較于本文網絡檢測結果,個別大斷層連續性差(圖10c和圖10d的藍色框內)。

圖10 Crossline1300地震剖面斷層檢測結果對比
從相干屬性時間切片(圖11a)可以看出,大斷層展布形態較清晰,但小斷層難以準確識別。三維U-Net網絡檢測的斷層(圖11c)識別精度有了明顯提高,且背景干擾減少,但某些區域的斷層連續性差。本文網絡檢測斷層(圖11d)形態和展布更為清晰,大斷層連續性更好,小斷層特征更豐富,斷層識別精度有了很大提高。
綜上所述,本文網絡的斷層檢測精度更高,特別是在小斷層的識別方面更具優勢,這也證明了本文方法的有效性。
本文將三維U-Net和殘差學習模塊結合在一起,并引入多層深度監督的機制,構建了基于三維深度監督網絡識別斷層的方法。該方法可以更有效地結合斷層的多尺度信息,提高斷層識別的準確性。理論模型測試和實際地震資料的應用表明,與常規三維U-Net相比,本文方法能夠更加準確地識別斷層,預測的斷層連續性更好,小斷層的識別準確率也更高。
在三維深度監督網絡的實際應用中,以下三點需要重點關注。
(1)三維深度監督網絡的層數可以選擇三層或四層(本文為四層)。多次實驗證實,在實際地震數據的斷層特征較為簡單的情況下,三層網絡可以滿足實際的斷層檢測要求。
(2)在生成斷層訓練樣本時,盡量根據實際地震資料的斷層特征設置參數,特別是斷層傾角、斷距、子波頻率和信噪比這幾個參數對模型的適用性影響較大。
(3)關于迭代次數的選擇,多組隨機選擇的斷層樣本訓練證明,迭代次數選擇40的時候驗證數據的斷層預測準確率可以達到0.96,繼續增加迭代次數,準確率的提高程度有限,對實際數據的斷層檢測影響較小。考慮到網絡訓練的時間成本和計算效率,迭代次數不必選擇太大。