潘樹林 閆 柯 李凌云 蔣從元 石林光
(①西南石油大學(xué)地球科學(xué)與技術(shù)學(xué)院,四川成都 610500;②中國石油西南油氣田分公司,四川成都 610051;③勝利油田分公司物探研究院,山東東營 257000;④四川職業(yè)技術(shù)學(xué)院電子電氣工程系,四川遂寧 629000)
稀疏脈沖反褶積是目前較為常用的提高地震資料分辨率的方法,其目的是利用帶限的地震記錄反演地下反射系數(shù),從而得到高分辨率的地震數(shù)據(jù)[1-2]。稀疏脈沖反褶積的原理是在傳統(tǒng)的最小二乘反褶積的基礎(chǔ)上,加上一個稀疏先驗(yàn)約束項(xiàng),通過求解L2范數(shù)與L1范數(shù)之和形式的目標(biāo)函數(shù)得到高分辨率的反演結(jié)果[3-4]。
基追蹤[5]方法利用Nesterov[6-8]提出的近端梯度的概念,使用二次函數(shù)近似表示目標(biāo)函數(shù),最終利用梯度法求解。該方法具有結(jié)構(gòu)簡單、實(shí)現(xiàn)容易、計(jì)算效率高等特點(diǎn),是主流求解方法。
FISTA算法是Beck等[9]提出的基追蹤方法,用于求解具有復(fù)合結(jié)構(gòu)函數(shù)的最值
(1)
式中:F(x)為具有復(fù)合結(jié)構(gòu)的目標(biāo)函數(shù),x為反射系數(shù)向量;f(x)為具有Lipschitz連續(xù)梯度的凸函數(shù);φ(x)為在可行域Q上不可微的凸函數(shù)。根據(jù)Nesterov[6-8]提出的近端梯度法,式(1)對應(yīng)的近端算子可以寫作
(2)
式中x,y∈R,y為x的近似值。由式(2)可以看出,Nesterov[6-8]采用二次函數(shù)近似式(1)的f(x),通過求解式(2)迭代求解式(1)。式(2)的常數(shù)L即為內(nèi)部梯度的步長,它決定了FISTA算法的收斂度。通常無法準(zhǔn)確給出L,F(xiàn)ISTA算法采用線性搜索方法尋找最佳L[10]。然而,線性搜索只能使L朝著增大的方向搜索,嚴(yán)重影響了FISTA算法的收斂性。線性搜索算法的主要缺點(diǎn)為:①當(dāng)L的初始估計(jì)值L0大于實(shí)際值時(shí),整個迭代過程的L偏大,無法快速收斂[11];②當(dāng)函數(shù)f(x)的局部曲率在初始迭代點(diǎn)附近較大,但在最優(yōu)點(diǎn)附近減小時(shí),如果L一直偏大,很可能導(dǎo)致“周波跳躍”而無法收斂。
針對上述問題前人進(jìn)行了研究[12-16],但效果不好。為此,本文提出了一種改進(jìn)的自適應(yīng)步長FISTA方法,在沒有外部參數(shù)調(diào)整的情況下仍能夠求解,并利用實(shí)驗(yàn)驗(yàn)證了方法的可靠性。
時(shí)間域矩陣形式的稀疏脈沖反褶積的目標(biāo)函數(shù)為[17]
(3)
式中:S為地震記錄向量;W為由地震子波組成的矩陣;λ為正則化參數(shù)變量。式(3)前半部分為最小二乘約束項(xiàng),代表通過褶積模型生成的地震記錄與實(shí)際地震記錄的相似程度,后半部分為數(shù)據(jù)的稀疏先驗(yàn)項(xiàng)。
根據(jù)前文所述,式(3)可以利用FISTA算法求解,其求解過程如圖1所示。由于采用線性搜索的方法,常數(shù)L只能沿著增大的方向變化,因此L的初始值決定了算法的收斂度,從而造成FISTA算法的不可控性。
圖1 FISTA計(jì)算流程圖
當(dāng)常數(shù)L不變時(shí),輔助序列tk+1與L無關(guān),可以直接由下式確定[18]
(4)
為了能夠滿足理論上的收斂性,構(gòu)造一個新的輔助序列,該輔助序列不僅只由tk和tk+1決定,還與前、后兩次迭代的常數(shù)Lk和Lk+1有關(guān),即
(5)
由此,結(jié)合FISTA算法和式(5)可以得到一種自適應(yīng)步長的改進(jìn)算法(下文簡稱改進(jìn)算法),算法流程如圖2所示。改進(jìn)算法在不同模型下均可取得滿意的計(jì)算效果。通過對比FISTA算法流程(圖1)和改進(jìn)算法流程(圖2)可知,在每次迭代中,當(dāng)L不滿足F[pLk(yk)]≤QLk[pLk(yk),yk]時(shí): ①圖1通過Lk=nLk-1線性增大常數(shù)L,而在下一次迭代中直接使用Lk。②圖2則在每次迭代中,仍通過Lk=bLk-1線性增大常數(shù)L,但是在下一次迭代前,先通過Lk=aLk-1收縮L,然后利用收縮后的Lk進(jìn)行后續(xù)迭代;與此同時(shí),在每一次迭代過程中,利用前、后兩次迭代常數(shù)L的信息更新輔助序列tk,使其在理論上可收斂。
圖2 自適應(yīng)步長FISTA方法流程圖
為了驗(yàn)證改進(jìn)算法的稀疏脈沖反褶積效果,首先合成一個理論模型(圖3),分別利用FISTA算法和改進(jìn)算法對理論模型進(jìn)行稀疏脈沖反褶積。分兩種情況進(jìn)行計(jì)算:①初始輸入常數(shù)L值過大,L=10L0(圖4);②初始輸入常數(shù)L值過小,L=0.3L0(圖5)。整個過程中取a=0.7、b=2.0。
由圖4可見:當(dāng)初始L過大時(shí),改進(jìn)算法反褶積效果優(yōu)于傳統(tǒng)基于FISTA算法(圖4a);當(dāng)初始L過大時(shí),傳統(tǒng)方法無法調(diào)整L的大小,改進(jìn)算法能夠自適應(yīng)地調(diào)整L(圖4b);在相同迭代次數(shù)的情況下,由于常數(shù)L的調(diào)整使改進(jìn)算法收斂度遠(yuǎn)遠(yuǎn)高于傳統(tǒng)方法(圖4c)。由圖5可見:當(dāng)初始L過小時(shí),改進(jìn)算法與傳統(tǒng)方法計(jì)算過程大致相同,因此改進(jìn)算法的計(jì)算效果與傳統(tǒng)算法的差異不大(圖5a);改進(jìn)算法在相同迭代次數(shù)下,收斂度略高于傳統(tǒng)算法(圖5b、圖5c)。
采用帶隨機(jī)噪聲的數(shù)據(jù)進(jìn)一步測試算法效果。在理論合成地震記錄(圖3c)中加入隨機(jī)噪聲,得到了一個低信噪比理論模型(圖6),對該資料分別使用過大和過小L值進(jìn)行反演,獲得不同方法反褶積結(jié)果(圖7)??梢姡趥鹘y(tǒng)FISTA的稀疏脈沖反褶積方法在低信噪比情況下無法得到準(zhǔn)確的反褶積結(jié)果,由改進(jìn)算法能得到較準(zhǔn)確的反褶積結(jié)果。上述分析進(jìn)一步證明了改進(jìn)方法具有更好的收斂性,能在不同信噪比下得到理想的反演結(jié)果,較常規(guī)FISTA算法具有更好的抗噪能力。
圖3 理論模型
圖4 初始L過大時(shí)反褶積結(jié)果
圖5 初始L過小時(shí)反褶積結(jié)果
圖6 含噪聲理論模型
圖7 不同方法反褶積結(jié)果(SNR=3.85dB)
選取吐哈盆地雁木西北部地震資料測試改進(jìn)算法的適用性[19-20]。圖8為雁木西T3井區(qū)Line 299測線地震剖面,可見地震分辨率較低,無法滿足精細(xì)解釋的需求。為此,分別采用基于傳統(tǒng)FISTA算法的稀疏脈沖反褶積以及改進(jìn)算法對圖8數(shù)據(jù)進(jìn)行高分辨率處理。由處理結(jié)果可見: 在相同的時(shí)間段內(nèi),改進(jìn)算法反褶積結(jié)果(圖9b)的同相軸數(shù)目較FISTA算法(圖9a)多;經(jīng)過基于FISTA算法的稀疏脈沖反褶積以及改進(jìn)算法處理的地震資料的分辨率都得到提升,但是后者的頻帶更寬(圖10)、細(xì)節(jié)刻畫更清楚(圖11c),利于高精度構(gòu)造解釋。
圖8 雁木西T3井區(qū)Line 299測線地震剖面
圖9 反褶積剖面
圖10 圖9數(shù)據(jù)的頻譜
本文提出了一種基于自適應(yīng)步長FISTA算法的稀疏脈沖反褶積方法,該方法在FISTA算法的基礎(chǔ)上,通過在每一次迭代之前適當(dāng)減小常數(shù)L,然后利用線性搜索的方式尋找最優(yōu)的常數(shù)L,以達(dá)到自適應(yīng)調(diào)整L的目的。為了使算法達(dá)到理論收斂,通過結(jié)合前、后兩次的L,對傳統(tǒng)FISTA算法的輔助序列進(jìn)行修改,最終使整套算法在理論上得以收斂。理論模型與實(shí)際地震資料的處理、分析結(jié)果表明,改進(jìn)方法具有更好的收斂性,能在不同信噪比下得到理想的反演結(jié)果,較常規(guī)FISTA算法具有更強(qiáng)的抗噪能力。
圖11 圖9的局部放大