王蓉,熊杰,劉倩,薛瑞潔
(長江大學(xué) 電子信息學(xué)院,湖北 荊州 434023)
深度神經(jīng)網(wǎng)絡(luò)(DNN)目前是許多人工智能應(yīng)用的基礎(chǔ)[1],由于 DNN 在語音識別[2]和圖像識別[3]上的突破性應(yīng)用,使用 DNN 的應(yīng)用量有了爆炸性的增長。近年來,以深度神經(jīng)網(wǎng)絡(luò)為代表的深度學(xué)習(xí)技術(shù),成為工業(yè)界及科學(xué)計算領(lǐng)域最有效的方法之一,在許多應(yīng)用中實(shí)現(xiàn)了超過傳統(tǒng)方法的效果,得到了廣泛的應(yīng)用[4]。
物性反演是常見的重力異常反演方法,它主要是將包含特殊地質(zhì)體的地下空間剖分成特定尺寸的網(wǎng)格單元,通常通過線性迭代方法求解。然而,線性迭代反演容易陷入局部極小值,計算耗時,并且數(shù)據(jù)量大時會占用大量的計算機(jī)內(nèi)存[5]的困境。隨著地球物理反演方法的發(fā)展,非線性方法因其具有全局尋優(yōu)的特點(diǎn)而受到廣泛關(guān)注,模擬退火(SA)、遺傳算法(GA)、早期神經(jīng)網(wǎng)絡(luò)(NN)、粒子群優(yōu)化(PSO)、蟻群優(yōu)(ACO)等非線性方法[6-10],已被廣泛應(yīng)用于地球物理反演。
深度神經(jīng)網(wǎng)絡(luò)的本質(zhì)是通過構(gòu)建具有許多隱藏層的網(wǎng)絡(luò)結(jié)構(gòu)來學(xué)習(xí)更復(fù)雜的函數(shù)映射關(guān)系。深度神經(jīng)網(wǎng)絡(luò)相較于傳統(tǒng)的人工神經(jīng)網(wǎng)絡(luò)來說更為高級,有望解決傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)依然存在的泛化不足和欠擬合等問題。目前,全連接(FC, fully connected)是地球物理應(yīng)用中常用的一種深度神經(jīng)網(wǎng)絡(luò)體系結(jié)構(gòu)。此方法計算過程簡單,學(xué)習(xí)能力強(qiáng),泛化能力強(qiáng),已成功地應(yīng)用于地球物理反演。Zhang等[11]通過訓(xùn)練FC網(wǎng)絡(luò)估算地下地震相的分布進(jìn)行了全波形反演;馬國慶等[12]提出通過FC網(wǎng)絡(luò)實(shí)現(xiàn)場源位置反演;梁立鋒等[13]提出在混合深度學(xué)習(xí)反演彈性阻抗基礎(chǔ)上,探討超參數(shù)對網(wǎng)絡(luò)性能的影響,為深度學(xué)習(xí)地震反演超參數(shù)選取提供依據(jù);Wu等[14]使用全卷積殘差網(wǎng)絡(luò)(FCRN)進(jìn)行聲阻抗反演,并通過轉(zhuǎn)移學(xué)習(xí)方法改善了它們的實(shí)驗(yàn)結(jié)果;Hu等[5]采用深度學(xué)習(xí)的方法對磁數(shù)據(jù)進(jìn)行反演。此外,基于深度學(xué)習(xí)的方法還可以開發(fā)用于地震檢測和定位,故障檢測,天油氣藏預(yù)測以及波形分類和識別等方面[15-19]。深度神經(jīng)網(wǎng)絡(luò)在上述領(lǐng)域得到了初步的應(yīng)用,并為重力反演領(lǐng)域提供了新的思路[20-22]。
因此,本文提出基于全連接神經(jīng)網(wǎng)絡(luò)的重力異常反演方法。該方法將重力異常作為數(shù)據(jù)集,利用深度全連接網(wǎng)絡(luò)來預(yù)測地下二維密度模型。
全連接網(wǎng)絡(luò)的一般體系結(jié)構(gòu)分為3種類型:輸入層、隱藏層和輸出層。輸入層和輸出層中的節(jié)點(diǎn)數(shù)分別由輸入數(shù)據(jù)的大小和標(biāo)簽數(shù)決定,一個簡單的三層全連接網(wǎng)絡(luò)結(jié)構(gòu)如下圖1所示。
圖1 三層全連接網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Three-layer deep fully connected neural network structure
圖1是一個簡單的三層全連接網(wǎng)絡(luò)示意,全連接的含義是每一個節(jié)點(diǎn)會接受上一層所有節(jié)點(diǎn)的輸出。網(wǎng)絡(luò)的正向傳播可以看作是從輸入到輸出的數(shù)據(jù)轉(zhuǎn)換過程。在簡單的三層深度全連接網(wǎng)絡(luò)中,隱層又稱為全連接層,隱層中每一個神經(jīng)元都與前一層的所有神經(jīng)元連接。一個隱層與其前一層之間的神經(jīng)元權(quán)值的關(guān)系可表達(dá)為:
y=f(wTx+b),
(1)
式中:x代表輸入;y是輸出;f是非線性激活函數(shù);w是權(quán)重;b表示偏差值。
深度全連接網(wǎng)絡(luò)結(jié)構(gòu)擅于提取數(shù)據(jù)集中有用的信息,將輸入數(shù)據(jù)轉(zhuǎn)換為預(yù)期的輸出。因此,為了達(dá)到學(xué)習(xí)的目的,并使網(wǎng)絡(luò)的輸出與實(shí)際值之間的誤差最小,在學(xué)習(xí)過程中采用了反向傳播算法。反向傳播算法是訓(xùn)練中常用的算法,它使用損失函數(shù)來計算神經(jīng)網(wǎng)絡(luò)的梯度。均方誤差(MSE)是深度全連接網(wǎng)絡(luò)中常用的損失函數(shù),可以定義為:
(2)
式中:y代表網(wǎng)絡(luò)的輸出;y′代表真實(shí)值;N表示樣本數(shù)量。
深度全連接網(wǎng)絡(luò)訓(xùn)練是一個不斷優(yōu)化的過程,因此,我們需要找到網(wǎng)絡(luò)中權(quán)重和偏差的最佳參數(shù)值。權(quán)重和偏差的更新過程可以表示為:
(3)
式中:w和w′是在進(jìn)入網(wǎng)絡(luò)前后的權(quán)重;b和b′是網(wǎng)絡(luò)迭代更新前后的偏差;η是學(xué)習(xí)速率,或稱為步長,它用來控制網(wǎng)絡(luò)的學(xué)習(xí)進(jìn)度。通常,當(dāng)學(xué)習(xí)率太低或是太高,網(wǎng)絡(luò)訓(xùn)練都不會收斂,因此,需要找到最佳的學(xué)習(xí)率。參數(shù)更新過程完成之后,當(dāng)達(dá)到最大迭代次數(shù)或訓(xùn)練出錯時,可以停止網(wǎng)絡(luò)訓(xùn)練。
基于深度全連接網(wǎng)絡(luò)的反演方法是一種非線性的地球物理反演方法,它的核心思想是用深度全連接網(wǎng)絡(luò)建立從輸入(地表觀測數(shù)據(jù))到輸出(地下介質(zhì)模型)之間的映射關(guān)系[5]。地球物理反演問題是以正演計算為基礎(chǔ),已知從密度模型m到重力異常d的映射關(guān)系可以表示為矩陣方程,如式(4)所示:
d=Gm,
(4)
式中:d=(d1,d2,…,dM)T;m=(m1,m2,…,mN)T;M和N分別是觀測點(diǎn)數(shù)量和網(wǎng)格單元的數(shù)量;G是M×N維核矩陣。
與傳統(tǒng)方法不同,基于深度全連接網(wǎng)絡(luò)的重力異常反演通過求解以下優(yōu)化問題來實(shí)現(xiàn)[5]:
(5)
其中:Θ表示網(wǎng)絡(luò)中需要更新的權(quán)重和偏差;Net(·)深度全連接網(wǎng)絡(luò)表示從觀測數(shù)據(jù)d到預(yù)測密度模型mpred之間的映射;L是MSE損失函數(shù)。上式的意義在于優(yōu)化Θ,使得預(yù)測密度模型mpred(Net(d,Θ))和真實(shí)密度模型m之間的誤差最小。
基于深度全連接網(wǎng)絡(luò)的重力異常反演的示意圖(圖2)所示,首先,設(shè)計大量不同密度分布的模型樣本,通過正演得到其對應(yīng)的重力異常,構(gòu)成訓(xùn)練數(shù)據(jù)集;然后利用該訓(xùn)練數(shù)據(jù)集訓(xùn)練深度全連接網(wǎng)絡(luò);最后,通過將重力異常輸入到訓(xùn)練好的深度全連接網(wǎng)絡(luò),直接得到反演結(jié)果(地下介質(zhì)密度模型)。
圖2 基于深度全連接網(wǎng)絡(luò)的重力異常反演示意Fig.2 Schematic diagram of gravity anomaly inversion based on deep fully connected network
通常,基于深度全連接網(wǎng)絡(luò)的反演,在訓(xùn)練階段會花費(fèi)更多的時間,并且,時間開銷與樣本大小和網(wǎng)絡(luò)結(jié)構(gòu)有關(guān)系,但是一旦訓(xùn)練完畢,反演計算時間就可以基本忽略。
在本文中, 綜合考慮到深度全連接網(wǎng)絡(luò)的訓(xùn)練速度、網(wǎng)絡(luò)結(jié)構(gòu)以及重力異常d與密度模型m的關(guān)系,通過進(jìn)行多次嘗試并參考我們的訓(xùn)練和反演結(jié)果,設(shè)計了圖3所示的網(wǎng)絡(luò)結(jié)構(gòu)。該深度全連接網(wǎng)絡(luò)一共有6個隱藏層,每個隱藏層的神經(jīng)元數(shù)量設(shè)置為150,輸入層包含101個神經(jīng)元,輸出層包含800個神經(jīng)元。
圖3 深度全連接網(wǎng)絡(luò)Fig.3 Deep fully connected network
深度全連接網(wǎng)絡(luò)中存在的一個普遍問題就是容易過擬合,表現(xiàn)為網(wǎng)絡(luò)模型過于復(fù)雜,在訓(xùn)練集上預(yù)測誤差很小,但在測試集上預(yù)測誤差較大,泛化能力非常弱。為了防止過度擬合,需要使用L2正則化來改善網(wǎng)絡(luò)。
L2正則化也稱為權(quán)重衰減,是用于改善深度神經(jīng)網(wǎng)絡(luò)過度擬合的常用方法,L2正則化的本質(zhì)是在原始損失函數(shù)的基礎(chǔ)上添加參數(shù),從而限制網(wǎng)絡(luò)的學(xué)習(xí)能力。另外,為了使神經(jīng)網(wǎng)絡(luò)更全面地學(xué)習(xí)樣本數(shù)據(jù),我們將真實(shí)觀測的異常數(shù)據(jù)d與預(yù)測的異常數(shù)據(jù)(d′=Gm′)之間的損失項(xiàng)添加到原始損失函數(shù)中??傊倪M(jìn)的損失函數(shù)表達(dá)式如下:
(6)
式(6)的第一項(xiàng)是模型恢復(fù)程度,第二項(xiàng)是數(shù)據(jù)擬合程度,第三項(xiàng)為權(quán)重衰減正則化,它代表了網(wǎng)絡(luò)中所有權(quán)值的平方和。式中,λ為正則化參數(shù);n是訓(xùn)練集的大小。需要注意的是正則化項(xiàng)不包括偏置值。
本文設(shè)計的觀測系統(tǒng)如下:將地下空間劃分為800個(20行×40列)矩形單元格,每個單元格大小為25 m×25 m,地面觀測點(diǎn)設(shè)置為101個,觀測點(diǎn)之間的間隔為10 m,設(shè)計了3×3(75 m×75 m)、4×4(100 m×100 m)、5×5(125 m×125 m)、3×6(75 m×150 m)、6×3(150 m×75 m)、4×8(100 m×200 m)、8×4(200 m×100 m)一共7個形狀規(guī)則且單一的模型,如圖4所示??紤]到密度到重力異常是線性關(guān)系,并且網(wǎng)絡(luò)很容易學(xué)習(xí)這種簡單的線性關(guān)系,因此,在本文中,僅僅為模型樣本設(shè)置兩個不同的密度值(200 kg/m3、300 kg/m3)。通過正演共生成了5 541組數(shù)據(jù)。
圖4 7個單一模型示意Fig.4 Schematic diagram of 7 single models
通常,訓(xùn)練集用于訓(xùn)練深度全連接網(wǎng)絡(luò)的權(quán)重與偏差,而驗(yàn)證集用于驗(yàn)證訓(xùn)練后網(wǎng)絡(luò)的準(zhǔn)確性。在本文中,對于深度全連接網(wǎng)絡(luò),一共有5 541組數(shù)據(jù)樣本,前80%作為訓(xùn)練集,后20%作為驗(yàn)證集。深度全連接網(wǎng)絡(luò)反演訓(xùn)練及預(yù)測所需的時間分別為377 s和1.4 s。表1為深度全連接網(wǎng)絡(luò)的反演參數(shù)設(shè)置。
從表1可以看出,目標(biāo)函數(shù)對應(yīng)式(6),將模型約束項(xiàng)cost1的權(quán)重a設(shè)為0.1,數(shù)據(jù)約束項(xiàng)cost2的權(quán)重b設(shè)為1,權(quán)重衰減項(xiàng)cost3的權(quán)重c設(shè)為1,cost1和cost2分別表示模型的恢復(fù)程度和重力異常的擬合程度;從表1可以看出,本方法的訓(xùn)練階段雖有點(diǎn)耗時,但網(wǎng)絡(luò)一旦構(gòu)建好,實(shí)際的預(yù)測只需一秒多就完成。
本文使用表1的參數(shù)來訓(xùn)練深度全連接網(wǎng)絡(luò),總損失函數(shù)的變化情況如圖5所示。從驗(yàn)證集中隨機(jī)選取幾組重力異常來測試訓(xùn)練后的深度神經(jīng)網(wǎng)絡(luò)的性能,圖6展示了經(jīng)過深度神經(jīng)網(wǎng)絡(luò)反演后獲得的地下介質(zhì)密度分布情況,并用白色線框顯示真實(shí)模型的位置。
表1 深度全連接網(wǎng)絡(luò)反演參數(shù)設(shè)置Table 1 Deep fully connected network inversion parameter settings
圖5 損失變化曲線Fig.5 Loss change curve
圖6中子圖的上半部分表示重力異常曲線,藍(lán)色的曲線表示實(shí)際的重力常值,紅色的曲線表示經(jīng)過深度全連接網(wǎng)絡(luò)訓(xùn)練后的,預(yù)測出來的重力異常;每幅圖的下半部分表示反演結(jié)果,白色線框表示真實(shí)的密度模型位置。從圖6可以看出,預(yù)測出來的重力異常幾乎與實(shí)際重力異常一致,說明深度全連接網(wǎng)絡(luò)數(shù)據(jù)擬合的非常好;反演出的二維密度模型的形狀和位置接近于真實(shí)模型,只是有些網(wǎng)格的密度值低于實(shí)際值(300 kg/m3),有些模型的周圍存在少量的異常信息。
圖6 部分測試集樣本的反演結(jié)果Fig.6 Inversion results of part of the test set samples
由于訓(xùn)練集和驗(yàn)證集都是從總樣本中提取的,所以,訓(xùn)練集的反演結(jié)果只能評估網(wǎng)絡(luò)的質(zhì)量,而不能評估網(wǎng)絡(luò)的泛化能力。為了評估該網(wǎng)絡(luò)的泛化能力,本文設(shè)計了多個復(fù)雜模型,且該模型對應(yīng)的重力異常數(shù)據(jù)都不參與網(wǎng)絡(luò)訓(xùn)練,并根據(jù)不同的密度參數(shù)進(jìn)行了兩組實(shí)驗(yàn)。其中,實(shí)驗(yàn)1采用被學(xué)習(xí)過的密度參數(shù)的異常做反演,密度分別為200、300 kg/m3,實(shí)驗(yàn)2采用未被學(xué)習(xí)的其他密度參數(shù)的異常做反演,密度分別為100、500、1000 kg/m3。
實(shí)驗(yàn)1設(shè)計了6種較為復(fù)雜的模型(如圖7中的白框模型),模型密度為200 kg/m3或300 kg/m3,這些模型對應(yīng)的重力異常數(shù)據(jù)不參與訓(xùn)練網(wǎng)絡(luò),通過10次實(shí)驗(yàn),求得平均數(shù)反演數(shù)據(jù),最后的泛化能力測試結(jié)果如圖7所示。
在圖7a~b中,單一復(fù)雜模型的反演結(jié)果的位置、埋深、邊界及位置幾乎與真實(shí)模型一致;在圖7c~e中,有些復(fù)雜的組合模型預(yù)測出來的重力異常略低于實(shí)際重力異常,反演出的二維密度模型的位置、埋深、邊界及位置幾乎與真實(shí)模型一致,但有些模型的密度低于實(shí)際密度值;在圖7f中,組合垂直分離模型的反演結(jié)果,雖然中間有細(xì)微的連接,但還是具有較好的分辨率。從而說明深度全連接網(wǎng)路可以用來解決重力異常反演的問題,并且具有較好的泛化能力。
圖7 6種復(fù)雜模型樣本的平均反演結(jié)果Fig.7 Average Inversion results of six complex model samples
為了進(jìn)一步測試本方法的泛化能力,實(shí)驗(yàn)2分別對未被學(xué)習(xí)的密度模型進(jìn)行反演實(shí)驗(yàn),反演時選取的密度參數(shù)分別為100、500、1 000 kg/m3,反演結(jié)果如圖8所示。
從圖8a實(shí)驗(yàn)結(jié)果可以看出,當(dāng)模型密度為100 kg/m3時,能夠反演出異常體的位置,但不能完全反演出異常體的形狀;從圖8b實(shí)驗(yàn)結(jié)果可以看出,當(dāng)模型密度為500 kg/m3時,能準(zhǔn)確地反演出異常體的位置和形狀,數(shù)據(jù)擬合的也較好;從圖8c實(shí)驗(yàn)結(jié)果可以看出,當(dāng)模型密度為100 kg/m3時,能準(zhǔn)確地反演出異常體的位置和形狀,但密度值低于實(shí)際值,數(shù)據(jù)擬合也不好。從以上反演結(jié)果圖可知,當(dāng)模型密度與訓(xùn)練樣本密度差距不大時,反演出的效果最好。
圖8 不同密度參數(shù)得到的異常數(shù)據(jù)反演結(jié)果Fig.8 Inversion results of abnormal data obtained with the same density parameters
已知在真實(shí)的環(huán)境中,重力異常數(shù)據(jù)通常受噪聲等因素的影響。因此抗噪能力分析是評估網(wǎng)絡(luò)質(zhì)量的重要步驟。本文采用上節(jié)設(shè)計的3種復(fù)雜模型樣本(如圖9中的白框模型,這些模型重力異常數(shù)據(jù)不參與訓(xùn)練網(wǎng)絡(luò)),同時對該數(shù)據(jù)分別加入5 dB和10 dB的高斯白噪聲,反演結(jié)果如圖9和圖10所示。
圖9和圖10上半部分的藍(lán)色曲線表示加了5%和10%的實(shí)際重力異常值,紅色曲線表示經(jīng)過深度全連接網(wǎng)絡(luò)訓(xùn)練后的,預(yù)測出來的重力異常;每幅圖的下半部分表示反演結(jié)果,白色線框表示真實(shí)的密度模型位置。從圖9、圖10實(shí)驗(yàn)結(jié)果可以看出, 反演結(jié)果受噪聲的影響較小, 雖然反演準(zhǔn)確度有所下降, 但反演出異常體的形狀和位置都接近于真實(shí)模型,說明基于深度全連接網(wǎng)路的重力異常反演,具有較好的抗噪聲能力。
圖9 加入5 dB的高斯白噪聲后的反演結(jié)果Fig.9 Inversion result after adding 5 dB Gaussian white noise
圖10 加入10 dB的高斯白噪聲后的反演結(jié)果Fig.10 Inversion result after adding 10 dB Gaussian white noise
本文提出了基于深度全連接神經(jīng)網(wǎng)絡(luò)的重力異常反演方法,該方法首先構(gòu)造不同形狀的二維密度模型,通過正演得到重力異常觀測值,組成訓(xùn)練集,然后,用該訓(xùn)練集來訓(xùn)練深度神經(jīng)網(wǎng)絡(luò),最后直接輸入重力異常觀測值到訓(xùn)練好的深度全連接網(wǎng)絡(luò),得到預(yù)測的二維密度模型。實(shí)驗(yàn)結(jié)果表明,該方法可以快速準(zhǔn)確反演出異常體的位置和密度,具有較好的泛化能力和抗噪聲能力,能用于重力異常反演問題。
深度全連接網(wǎng)絡(luò)在深度神經(jīng)網(wǎng)絡(luò)中屬于比較簡單的網(wǎng)路,下一步工作將圍繞如何設(shè)計更深、更復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)以改進(jìn)反演效果,并應(yīng)用于三維重力反演等方面。