孫德輝,王云專,王莉利
(1.東北石油大學 地球科學學院,大慶 163318 2.東北石油大學 計算機與信息技術學院,大慶 163318)
地震數據的高精度處理與解釋的關鍵是如何取得高精度的地下速度模型,通常用于建立速度模型的方法有層析成像[1]和全波形反演[2]兩種方法。然而,層析成像和全波形反演都是耗時的,需要大量的計算,并且嚴重依賴于人機交互和質量控制。所以如何構建精確的速度模型也面臨著各種挑戰。當前最流行的方法就是全波形反演[3],全波形反演通過局部優化算法來最小化模擬數據與實際地震數據的差異,從而推斷產生該模擬數據的高精度速度模型就是地下真實速度結構。自從上世紀Tarantola[2]和Lailly[4]使用伴隨震源法高效計算了梯度更新值后,關于全波形反演的研究便一路火熱至今。但全波形反演在實際生產應用中卻有著一個始終無法避免的問題,那就是全波形反演是強非線性方法,它極其依賴初始條件,包括算法開始時的初始速度模型和實際地震信號中的低頻分量[5-6]。目前國內外的攻克方向大致可分為兩種:一是從算法本身入手,盡可能降低全波形反演的非線性;另一種是從數據與模型入手,想辦法提供良好的初始速度模型和準確的低頻分量。
深度學習(Deep Learning,DL)[7-8]是機器學習(Machine Learning,ML)的一個新分支,在圖像和語音處理方面表現出了突出的識別和分類性能[9],引起了廣泛的興趣。Zhang等[10]建議使用神經網絡從地震道中自動預測斷層。周傳友等[11]采用BP神經網絡方法,提高了單井巖相預測的準確性。Araya-Polo等[12]采用速度譜作為數據集,基于常規的卷積神經網絡提出了一種將深度學習引入地震速度建模的方法。Jia等[13]提出一種基于蒙特卡洛的方法以降低訓練數據集,通過選取部分地震數據集來更高效的訓練網絡。Wang等[14]利用全卷積神經網絡,通過對原始多炮數據進行鹽體檢測,比傳統方法更加快速、有效。Mosser等[15]基于深度卷積生成對抗網絡的深度學習方法,將反演問題看作不同域之間的轉換,實現了地震數據域與速度模型域之間的轉換。Li等[16]基于深度神經網絡的地震反演網絡(SeisInvNet),使用所有地震道數據和全局地震剖面重構速度模型。Zhang等[17]開發了一種基于實時數據驅動技術的速度建模對抗網絡(VelocityGAN),用以提高速度模型精度。Yang等[18]基于FCN提出了直接使用全波形地震數據建立速度模型的方法。Yuan等[19]在已知初始速度和數據的情況下,用全卷積神經網絡(Full Convolution Neural Network,FCN)實現了時移數據與目標速度變化之間的映射。
筆者利用數據驅動思想,提出一種基于Attention-UNet網絡的速度模型構建方法。通過對Attention-UNet網絡模型優化,提高模型精確度,防止過擬合。實驗包括兩個階段,在訓練階段中,將多炮道集一起輸入網絡,有效地逼近了數據與相應速度模型之間的非線性映射。在預測階段中,利用訓練好的網絡,輸入新的地震數據,獲得預測的速度模型。
從地震道建立速度模型具有挑戰性,因為它涉及從地震道(x-t)到空間/模型域(x-z)的數據轉換,這構成了一個反問題。神經網絡能夠逼近連續函數直到指定的精度,這為這項研究提供了理論基礎。
利用深度神經網絡來構建地震信息和速率模型之間的映射關系,可以實現基于深度學習的地震速度建模。FCN用卷積層代替了傳統卷積神經網絡的全連接層,支持任意大小的輸入數據,實現圖像識別領域單個像素點的準確預測[20]。基于FCN的改進UNet具有“U”結構的編碼和解碼。 它首先通過下采樣提取輸入數據的特征,然后通過上采樣將特征信息傳輸到分辨率更高的后面層,以獲得更精細的結果[21]。地震速度建模是一個從地震數據中提取地下速度信息的過程,這與UNet提取輸入數據特征信息的特點非常一致。因此,為了從原始地震數據中實現地震速度建模,我們采用并修改了UNet架構,并在UNet網絡的基礎上,在每個跳躍鏈接的末端,使用Attention Gate[22]結構,對需要提取的特征實現Attention機制。注意力機制結構如圖1。注意力機制是模仿人類注意力而提出的一種解決問題的方法。它可以從大量的信息中過濾出高價值的信息,讓模型專注于有價值的特征。Attention-UNet 主體架構與 UNet 網絡一致,網絡結構如圖2。(不同顏色的矩形代表神經網絡的不同層。其中,藍色代表卷積層;橘色代表池化層;綠色代表上采樣層;藍色矩形(卷積層)中的紅色虛線代表裁剪操作;矩形的左側數字代表層的大小;下側數字代表層數;左圖代表反射波形數據,右圖代表地震速度模型,紅色箭頭代表改進位置,其它箭頭代表層與層之間的操作。)

圖1 注意力機制模塊Fig.1 Attention mechanisms module

圖2 改進后的UNet模型網絡結構Fig.2 Improved UNet model network structure

在Attention-UNet的基礎上,筆者主要做了兩點修改,以適應地震速度模型的構建。首先,鑒于輸入地震數據和輸出速度模型之間的不一致性,利用Attention-UNet實現了不對稱尺寸之間的映射。常用于圖像識別的Attention-UNet的輸入和輸出是在圖像域,需要相同的大小。然而,地震速度建模的輸入數據是在時域,而輸出的速度模型是在深度域,這就導致了輸入和輸出數據的不匹配。在基于深度學習的地震速度建模過程中,地震數據被映射到速度模型中,輸入和輸出數據的不匹配會導致神經網絡的輸入和輸出的大小和存儲方式的明顯差異,因此神經網絡很難完成訓練。為了解決這個問題,筆者在應用損失函數之前,將最終輸出層截斷到與輸入神經網絡的速度模型相同的大小。其次,為了處理地震數據,我們指定了不同的炮點道集,這些道集在不同的震源位置生成,但來自相同的模型,作為輸入通道。因此,輸入通道的數量與每個模型的震源數量相同。將多炮點地震數據同時輸入網絡,提高了數據冗余度。該網絡的輸入是由29個大小為400×301的地震反射波形數據和與之對應的速度標簽模型。神經網絡的輸出是大小為201×301的二維地震速度模型。網絡主體與原始的UNet相似,共使用了22個卷積層(藍色矩形)、4個池化層(橙色矩形)、4個上采樣層(綠色矩形)和1個裁剪層(紅色虛線)。卷積層采用Relu激活函數,卷積核大小為3×3,最大池化層的下采樣因子和采樣層的上采樣因子大小都為2×2。深度神經網絡有四個下采樣過程和四個上采樣過程,即保證網絡有足夠的深度提取速度特征,又不會使網絡模型過于復雜。
利用地震數據作為直接輸入來估計速度模型,網絡需要將地震數據從數據域(x,t)投影到模型域(x,z)地震數據,該方法的基本思想是建立輸入與輸出之間的映射關系,映射關系可以表示為:
(1)

網絡通過最優化方法迭代求出損失函數的最小值,從而訓練出最佳的網絡模型。這個過程可以表示為:
(2)

(3)
需要注意的是,損失函數不同于FWI中的目標函數,表達式如下所示:
(4)
式中:δd為模擬數據dcal和觀測數據dobs之間的殘差,dcal為模擬數據,dobs為觀測數據。
為了加速收斂,筆者采用Adam梯度下降法[23]來優化算法模型,其具有較短的收斂時間,對于大型數據集機器學習的問題有較好的魯棒性。
為了訓練一個有效的網絡,需要一個合適的大規模訓練集。在典型的FCN模型中,訓練輸出由一些標記圖像提供。筆者采用二維合成模型對神經網絡模型進行測試。數值實驗提供了一種速度模型,即二維模擬模型,每個速度模型都是唯一的。
將地震速度模型作為深度學習的標簽,即深度神經網絡的輸出;將地震波形及其速度標簽作為深度學習的數據集,即深度神經網絡的輸入,可以構建深度神經網絡的訓練集。
在本節中,我們將使用合成數據測試提出的算法。采用1 500個二維鹽體模型樣本,其中抽出200個具有代表性的模型用于測試,并將其余的1 300個作為訓練樣本。每個模型有5~12層作為背景速度,每層的速度值從模型地表到底層由2 000 m/s到4 000 m/s逐漸增加。將具有任意形狀和位置的鹽體嵌入到每個模型中,鹽體的恒定速度為4 500 m/s。所有的模型大小相同,為x×z=301×201的格點,空間間隔為h=10 m。圖3顯示了來自數據集的4個具有代表性的模型。

圖3 訓練數據集中的4個樣本數據Fig.3 Four sample data in the training data set
根據訓練集中的地震速度模型,通過時域交錯網格有限差分格式求解含15Hz 雷克子波的聲波方程,時間方向采用二階,空間方向采用十階,放置震源數量的多少影響訓練的計算時間,同時合并更多的炮數可以降低過度擬合的風險[24]。我們對于每個模型,從(z,x)=(0.2,0.0)km到(0.2,3.01)km均勻地放置29個震源,依次模擬炮點集。同樣,從(z,x)=(0.2,0.0)km到(0.2,3.01)km均勻地放置301個檢波器,用來接收地下信號記錄。正演建模的詳細參數如表1所示。采用完美匹配層(CPML)吸收邊界條件[25]應用于所有四個網格邊緣,以減少不必要的反射。圖4顯示了由圖3中的第一個速度模型生成的地震數據的六炮。

表1 有限差分正演的參數Tab.1 Parameters of finite difference forward modeling

圖4 有限差分格式生成的地震數據的六炮Fig.4 Six shots of seismic data generated by finite difference format
由于使用了監督學習方法,測試數據集的速度模型具有與訓練數據集相似的地質結構,巖體分別位于地層的中間和地層的底部。所有用于預測的速度模型都沒有包含在訓練數據集中,并且在預測過程中都是未知的。采用與生成訓練數據集輸入相同的方法獲得用于預測的輸入地震數據。
筆者的實驗環境主要由軟件和硬件兩部分構成,其中硬件方面:CPUIntelXeonSliver4210@2.20 GHz內存500 GB,顯卡 GeForce RTX 2080。軟件方面:選擇使用的語言為Python和Matlab,深度學習框架為Pytorch,開發環境是Pycharm和Matlab R2014a,分別用于實現網絡模型搭建和運行FWI,操作系統為RedHat Linux 8和Window 10。具體實驗環境數據見表2。

表2 實驗環境Tab.2 Experimental environment
對二維模擬速度模型進行了第一次反演。在訓練階段,從訓練數據集中隨機選取201×301速度模型尺寸的8個樣本,構建每次迭代的訓練批次。在保留地震數據主要特征信息的前提下,將每批數據的一炮地震數據尺寸降采樣至400×301,減少計算量的同時提取大尺度的特征信息。降采樣前后的一炮地震數據如圖5所示。訓練時,采用的迭代次數(Epochs)為80次,批大小(Batch Size)為8。參數如表3所示。

表3 網絡訓練參數Tab.3 Network training parameters

圖5 經過降采樣前后的一炮地震數據Fig.5 Seismic data of one shot before and after down sampling
訓練的計算時間與地震道的大小和訓練樣本的數量成正比,也與通道的數量和網絡的復雜性有關。為了驗證炮集對網絡模型訓練的影響,我們分別訓練均勻放置10個震源和29個震源的數據集作為輸入來訓練網絡。
同時為了反映添加注意力機制對網絡學習過程的影響,在不添加注意力機制的傳統UNet網絡上使用相同的地震數據,即數據集數據。由于Attention-UNet網絡編碼器和解碼器主體結構和UNet一致,所以二者這一部分的參數設置是一致的,如:網絡深度都是4層;卷積核大小以及激活函數一致。圖6顯示了在學習過程中的標準化損失或預測速度值與真實速度值之間的均方誤差。圖6(a)為震源對于網絡訓練的影響,圖6(b)為Attention-UNet網絡和UNet網絡對模型訓練的影響。

圖6 學習過程中的標準化損失或預測速度值與真實速度值之間的均方誤差Fig.6 Standardization loss or mean square error between predicted speed value and real speed value in the learning process
在圖6(a)中,29個震源網絡的收斂速度比10個震源網絡的收斂速度快。圖6(b)中可以很明顯的發現Attention-UNet網絡模型迭代20次后loss曲線已趨于平緩,而UNet則是在迭代40次以后loss曲線才趨于平緩。分別計時兩個網絡的訓練時間,Attention-UNet網絡訓練時間是148min,UNet網絡的訓練時間是190 min,從上述實驗結果表明,Attention-UNet網絡模型對學習過程來講更快的收斂速度,從而減少了訓練時間。
驗證定量評估Attention-UNet的性能,我們通過峰值信噪比(Peak Signal to Noise Ratio,PSNR)[26]來評價模型預測的效果。如表4所示,UNet和Attention-UNet相比,Attention-UNet在測試數據集上獲得了更高的平均 PSNR,這說明 Attention-UNet對模型的預測結果是好的。

表4 測試集的平均PSNRTab.4 Average PSNR of the test set
為了顯示網絡的演變過程,筆者在訓練過程中捕獲了一組數據,展示了整個訓練過程,如圖所示,圖7(a)是標簽,是我們期待網絡輸出的模樣,也是我們其中的一次測試樣本,圖7(b)、7(c)、7(d)分別是我們構建網絡迭代訓練的10次,30次,60次的即時輸出,從中可以看出模型越來越接近我們的真實樣本。

圖7 訓練追蹤Fig.7 Training tracking
最后是對訓練后的網絡對測試數據進行預測,將200組測試數據一次性輸入之后,只需要幾秒鐘就可以完成輸出預測,從時間效率來看,我們的預測時間要遠遠優于全波形反演。為了驗證網絡輸出的速度模型與真實模型之間是否相近。我們的方法與FWI進行了比較。在時域正演模擬中,我們使用與生成訓練地震數據相同的參數設置。采用多尺度頻域反演策略,反演頻率選擇1 Hz~20 Hz中12個進行反演。本實驗采用伴隨狀態法求取梯度,應用L-BFGS(Limited-memory BFGS)優化算法更新模型。FWI的觀測數據與我們用于預測的地震數據相同。共設置29炮震源激發,均勻分布于地表水平方向0.2 km~2.9 km范圍內。每炮301道接收,檢波點均勻分布于地表水平方向,不隨炮點移動。反演迭代次數25次。另外,以高斯平滑函數平滑后的真實速度模型作為FWI的初始速度模型。圖8顯示了用于測試的代表速度模型,圖8(a)表示真實模型,圖8(b)顯示了高斯平滑后的初始模型,圖8(c)表示網絡預測模型,圖8(d)顯示了FWI的結果。

圖8 不同方法反演結果對比Fig.8 Comparison of inversion results of different methods
為了定量分析預測的準確性,我們選取了兩個水平位置x=1 km和x=2 km,并在圖9所示的速度與深度剖面中真實模型(藍色)的速度值、預測(橘色)的速度值。

圖9 垂直速度剖面Fig.9 Vertical velocity profile
圖8展示了和全波形反演方法的對比,筆者的方法(圖8(c))和全波形反演(圖8(d))的方法都可以較準確的確定速度模型中高速鹽體的位置和形狀,全波形反演在迭代25次的情況下,鹽體刻畫的不夠清晰,還有一些較明顯的假象。由于實際標準地震數據集的限制,在圖8(a)和8(c)兩者之間存在對速度細節刻畫不夠精確的情況。
圖9做了速度模型特定位置的速度剖面,抽取了圖7中水平位置1 km和2 km的兩個速度剖面進行對比。由此圖可以看出,筆者方法的速度建模結果較為準確。
筆者通過地震反射波形和速度標簽建立數據集,構建了一種有監督深度學習速度建模方法用于反演。對層狀砂體模型的數值實驗結果顯示,深度學習速度建模方法結合地震反射數據和速度標簽訓練集可以有效地重建模型的主要特征。認識和結論如下:
1)使用多道地震波形和速度標簽作為深度學習的特征數據集為速度模型預測提供了冗余信息,降低了過擬合的風險和計算難度。
2)通過將加入注意力機制的U-Net作為深度神經網絡框架,提高了網絡模型的收斂速度和速度模型預測的準確性。
3)與FWI相比,一旦網絡訓練完成,重構成本可以忽略不計。此外,損失函數在模型域內進行測量,利用網絡進行預測時不產生地震記錄。所以不存在FWI的“周期跳躍”問題。