雍 皓 韓 鐸 張俊杰 王俊秋*
(①吉林大學儀器科學與電氣工程學院,吉林長春 130026; ②地球信息探測儀器教育部重點實驗室,吉林長春 130000)
在信號處理領域,通常采用壓縮技術解決多維海量數據的存儲和傳輸問題。Donoho[1]首先提出了壓縮感知(Compressed Sensing,CS)的概念。CS理論認為,如果一個信號是稀疏的或可壓縮的,那么可利用遠少于奈奎斯特采樣數量的測量值無失真地重建[2]。為解決地震勘探采集的地震數據因通信帶寬和功耗等限制難以實時回傳這一難題,應用CS理論將原始地震數據壓縮后傳輸,從而減少地震數據的傳輸量,提高傳輸效率[3-6]。由CS理論可知:地震數據越稀疏,重構精度越高; 采用不同的稀疏表示方法對地震數據進行稀疏表示,其稀疏度會有所不同[7-10]。
目前,地震數據稀疏表示方法大體上可分為兩類。一類是固定變換域稀疏表示方法,如傅里葉變換、離散余弦變換及小波變換等,均是通過固定公式生成字典。這類方法構造字典的過程簡單、快速,但固定基一旦確定,就不能更改,因此稀疏表示效果較差,尤其是當野外采集的地震信號含有噪聲、波形比較復雜時。另一類方法是字典學習型稀疏表示法,如最優方向法(Method of Optimal Directions,MOD)和K—奇異值分解(K-Singular Value Decomposition,K-SVD)方法[11-12]等,均能學習地震數據的特點,然后根據這些特征自適應調整字典,因此對野外采集到的地震數據有較好的稀疏表示效果。MOD采用交替優化方式對模型進行求解,在字典更新階段采用的是全局更新策略,稀疏表示過程中產生的字典性能較低;K-SVD方法采用稀疏編碼和字典更新相互交替完成對信號特征的學習,得益于其單獨更新字典原子的策略,對地震數據的稀疏表示效果較好,重構精度較高[13-14]。
本文采用一種改進的稀疏表示方法[15-19]對地震數據進行處理重構。該方法采用多層字典學習的方案,利用更多的數據特征去訓練字典,增強稀疏表示方法的特征提取能力; 同時,在稀疏編碼階段設置三個終止條件,使其可以自適應地確定不同地震數據所選擇的原子數。與K-SVD方法相比,在重構算法相同的前提下,本文方法能夠為基于CS的地震數據重構提供更準確的稀疏表示,對地震數據有更高的重構精度。

稀疏表示理論作為CS理論的首個組成成分,為大多數信號的稀疏表示提供了新的采樣形式,不同的稀疏表示方法效果不同。作為一種典型的字典學習型稀疏表示方法,K-SVD可根據不同的地震數據生成不同的稀疏表示字典,并通過稀疏編碼和字典更新兩個過程交替完成對地震數據的學習過程。K-SVD算法的數學表達式為
i=1,2,…,N
(1)

K-SVD對地震數據進行稀疏表示通過以下三步進行。
(1)初始化,即從原始地震數據中選取少部分數據作為字典的初始值。
(2)稀疏編碼,即固定初始字典D,采用正交匹配追蹤算法(OMP)[20-21]求解稀疏矩陣X。求解過程可表示為
(2)

(3)字典更新,即固定稀疏系數矩陣X,更新字典D。其過程為
(3)


Ej,R=UΣVT
(4)

重復步驟(2)~步驟(3),直至收斂到指定的誤差或達到指定的迭代次數。
(1)在K-SVD方法中,每個訓練樣本的K是固定的。不同樣本所包含特征的信息量可能不同,對于一個包含大量特征的訓練樣本,如果K值太小,就沒有足夠的原子表示這些特征,稱為欠擬合; 如果K值過大,多余的原子會引起表示的過擬合,從而影響稀疏性。
(2)在字典學習過程中,不同的目標樣本會產生不同的殘差,進而形成客觀特征差異較大的殘差層。在K-SVD方法中,由于不同的殘差層采用同一個原子表示,因此,一個原子必須在不止一種類型的客觀特征之間妥協,降低了CS重構的精度。
針對K-SVD方法的局限性,本文采用AMDL對地震數據進行稀疏表示。
AMDL方法已廣泛應用于圖像處理、視覺識別等領域,并獲得了較理想的結果[22],但在地震勘探領域中的應用至今未見。
AMDL方法首先將字典分成若干子字典,然后分別求出每個子字典及相應的稀疏系數,最后用它們的乘積之和表示地震數據。其稀疏表示模型為
(5)
式中:cmax為字典的最大層數;Dc為第c層的子字典;Xc為第c層的稀疏系數矩陣。每個子字典Dc包含qh個原子,因此原子總數q=qhcmax。
圖1給出了字典最大層數為2時的地震數據AMDL方法流程。AMDL算法在處理地震數據時,首先輸入原始地震數據Y、層數cmax、每層最大稀疏水平qmax、每層最大迭代循環數tmax、系數ε以及閾值λ。第一層直接利用原始訓練樣本Y1=Y訓練子字典D1,第一層的殘差r1=Y1-D1X1,將其作為第二層子字典的訓練樣本Y2=r1來訓練子字典D2。

圖1 AMDL方法地震數據稀疏表示流程
與K-SVD類似,AMDL方法中每層子字典的訓練均分為子字典初始化、稀疏編碼和字典更新三個階段。
(1)初始化階段。從地震數據Y中選取少部分數據作為第一層子字典的訓練樣本Y1,并將Y1作為子字典D1的初始值; 每層交替執行t次稀疏編碼和字典更新,直至收斂到指定的誤差,或達到指定的迭代次數。
(2)稀疏編碼階段。首先,固定初始化子字典Dc,求解稀疏系數矩陣Xc,即
(6)


(3)字典更新階段。固定稀疏系數矩陣Xc,采用K-SVD的更新策略進行Dc的原子更新。
每層重復執行上述階段,直至遍歷設定的層數cmax,終止計算過程,最后輸出更新后的字典D=[D1,D2,…,Dcmax]及與其相對應的稀疏矩陣系數X=[X1,X2,…,Xcmax]。
AMDL方法采用的多層字典學習方案除了考慮原始訓練樣本包含的特征外,還考慮了不同層的樣本殘差所包含的特征,使其能夠在字典學習過程中充分利用不同層次的特征,提高地震數據的重構精度; 同時,自適應策略可以確定每個地震數據在多層模式下使用原子的數量,使稀疏度自適應于每個訓練樣本,減少地震數據在稀疏表示過程中的欠擬合或過擬合問題,提高地震數據的稀疏性,進而提高重構精度。
K-SVD方法的目標是盡量減少表示殘差。而AMDL考慮兩個方面:一是盡可能減少表示殘差; 二是減少地震數據稀疏表示中使用的原子數。換言之,AMDL的主要任務是使用盡可能少的原子獲得更精確的表示。
壓縮比(測量矩陣的行、列數之比(M/N))是描述對原始地震數據的壓縮程度,壓縮比越大,表示壓縮程度越小,壓縮后的數據越多,易于重構; 反之,壓縮比越小,表示壓縮程度越高,壓縮后的數據越少,不易于重構。本試驗采用了兩個地區的實測地震數據,同時采取控制變量法,利用K-SVD和AMDL兩種方法在不同壓縮比下分別對其進行稀疏表示,然后采用相同的重構算法進行重構,通過計算相同壓縮比下的重構數據信噪比(SNR)和相對誤差(Error)評價兩種方法。
重構地震數據的信噪比計算公式為
(7)
重構數據的相對誤差計算公式為
(8)

選取采樣率為1ms、采樣時間為0.256s、總計256道的地震數據進行試驗。首先,利用K-SVD方法和AMDL方法在不同壓縮比下,分別對地震數據進行稀疏表示; 然后,利用基追蹤[23-25]重構算法進行地震數據重構。試驗中,將AMDL方法中的幾個參數設定為:層數cmax=4,每層最大稀疏水平qh=10,每層最大迭代循環數tmax=3,系數ε=0.5,閾值λ=0.0001。
圖2a為原始地震數據,圖2b~圖2d和圖2e~圖2g分別為經過AMDL方法和K-SVD方法稀疏表示后,壓縮比為0.1、0.3和0.5時的重構地震數據。可以明顯看出,在壓縮比為0.1時,經過K-SVD方法稀疏表示后重構的地震數據和原始地震數據相似度非常低,重構精度遠低于經過AMDL方法稀疏表示后的重構精度; 在壓縮比為0.3時,經過K-SVD方法稀疏表示后地震數據的重構精度有明顯的提升,但仍低于同壓縮比下AMDL方法的重構精度; 在壓縮比為0.5時,經過K-SVD方法稀疏表示后重構的地震數據和原始地震數據相似度較高,重構精度與AMDL方法在壓縮比為0.1時的地震數據重構精度大致相同。
為了更加直觀地展示地震數據的重構精度,從原始數據和不同壓縮比下的重構數據中選取第100、125和150道數據進行波形對比。圖3a~圖3c分別為原始地震數據和在不同壓縮比下經過兩種方法稀疏表示后重構地震數據中第100道、125道和150道數據的波形對比圖,a代表原始地震數據,b、d和f分別代表壓縮比為0.1、0.3和0.5時經過K-SVD方法稀疏表示后重構地震數據,c、e和g分別代表壓縮比為0.1、0.3和0.5時經過AMDL方法稀疏表示后重構地震數據。圖4a、圖4b分別為地震數據經過兩種不同方法稀疏表示后,在不同壓縮比下重構信噪比和相對誤差的對比圖。可以看出,壓縮比為0.1時,AMDL方法的重構信噪比比K-SVD方法高約10dB,提高了近3.5倍,重構誤差比K-SVD方法低約0.8,降低了近80%; 在壓縮比為0.2時,信噪比提高約20dB,提高了近3.5倍,且重構誤差減小約0.53,重構誤差降低了近90%; 在其它壓縮比下,信噪比提高了約1~2倍,重構誤差降低了80%~90%。可見,在相同壓縮比下且使用相同的重構算法前提下,AMDL方法對地震數據稀疏表示后重構的地震數據信噪比更高,相對誤差更小。

圖2 遼寧興城實測地震數據及兩種方法在不同壓縮比下稀疏表示后重構的地震數據(a)原始地震數據; (b)AMDL法,壓縮比為0.1; (c)AMDL法,壓縮比為0.3; (d)AMDL法,壓縮比為0.5;(e)K-SVD,壓縮比為0.1; (f)K-SVD,壓縮比為0.3; (g)K-SVD,壓縮比為0.5
為進一步證明兩種方法的稀疏表示效果,選取甘肅金昌銅鎳礦的實測地震數據做了相同的對比試驗,本數據由500N的輕便小型可控震源產生,且該實測地震數據經過預處理。數據的采樣率為1ms,采樣時間為2s,道數為72道。同樣利用不同壓縮比下兩種方法分別對地震數據進行稀疏表示。然后利用基追蹤重構算法進行數據重構。AMDL方法的參數與3.1相同。
圖5a為原始地震數據。圖5b~圖5c分別為經AMDL方法稀疏表示后壓縮比分別為0.1和0.3時的重構地震數據。圖5d~圖5e分別為經過K-SVD方法稀疏表示后、壓縮比分別為0.1和0.3時的重構地震數據。由圖可見,壓縮比在0.1時,經過AMDL方法稀疏表示后重構的地震數據具有很高的重構精度,可清楚地看出反射層的位置(圖5b箭頭所示),而經過K-SVD方法稀疏表示后重構的地震數據與原始地震數據相似度較低,只能隱約看出反射層的位置(圖5d箭頭所示)。而壓縮比為0.3時,經過K-SVD方法稀疏表示后地震數據的重構精度有明顯提升,也可以清晰看出反射層位置(圖5e箭頭所示),且重構精度與AMDL方法在壓縮比為0.1時的地震數據重構精度幾乎相同。圖6a和圖6b分別為經兩種不同方法稀疏表示后、在不同壓縮比下重構的地震數據信噪比和相對誤差的對比,同樣可以看出,壓縮比相同時,AMDL算法對地震數據稀疏表示后重構的地震數據信噪比更高、相對誤差更小。

圖3 遼寧興城實測地震數據不同道波形與兩種方法在不同壓縮比下稀疏表示后重構數據波形的對比(a)第100道; (b)第125道; (c)第150道

圖4 遼寧興城實測地震數據在不同壓縮比下兩種方法稀疏表示后的重構數據的信噪比(a)和相對誤差(b)對比

圖5 甘肅金昌實測地震數據與兩種方法在不同壓縮比下稀疏表示后重構數據的對比(a)原始地震數據; (b)AMDL法,壓縮比為0.1; (c)AMDL法,壓縮比為0.3; (d)K-SVD,壓縮比為0.1; (e)K-SVD,壓縮比為0.3

圖6 甘肅金昌實測數據不同壓縮比時兩種方法稀疏表示后的重構數據的信噪比(a)和相對誤差(b)對比
兩組數據的試驗結果可以證明,在處理相同的實測地震數據,且使用相同重構算法的前提下,相比于K-SVD方法,AMDL方法對地震數據的稀疏表示精度更高、效果更好。
本文將自適應多層字典學習(AMDL)方法用于地震數據的稀疏表示,旨在字典學習過程中利用不同的特征層訓練字典,且自適應地確定每個訓練樣本使用的原子數,不僅可利用更多的特征訓練字典,而且字典不會受到其他特征層的影響,同時避免了稀疏表示過程中出現的欠擬合和過擬合問題。實測地震數據重構試驗結果表明,AMDL方法具有較強的稀疏表示能力,相比于K-SVD方法,其在地震數據稀疏表示方面更具優越性。