管其杰,張 挺*,李德亞,周紹景,杜 奕
(1.上海電力大學計算機科學與技術學院,上海 200090;2.上海第二工業大學工學部,上海 201209)
空間數據是數據的一種特殊類型,兼具結構性和隨機性[1]。目前,重建大范圍、真實、有效的空間數據比較困難,主要原因在于科學實驗和勘探開發費用高[2]。
數據插值成為重建空間數據的一個有效手段[3]。插值方法分為“確定”性插值方法和“不確定”性插值方法。不確定性插值方法的不確定性主要表現在插值結果的不確定性和多樣性,但是這些結果是對訓練數據的統計特征的呈現,具有較強的指導意義[4]。不確定性插值方法主要包括克里金(Kriging)方法和隨機模擬方法。多點統計法(Multiple-Point Statistics,MPS)是目前隨機模擬的主流,其特點是基于訓練圖像(Training Image,TI)進行建模,本質上是基于概率統計思想進行特征提取和特征復制。近年來,MPS得到了廣泛應用并發展了一些變體,如SNESIM(Single Normal Equation SIMulation)[5]、FILTERSIM(FILTER-based SIMulation)[6]、DS(Direct Sampling)[7]等。SNESIM算法通過統計待模擬點與周圍條件數據點構成的數據事件在訓練圖像中出現的概率,利用馬爾可夫蒙特卡羅法抽樣,完成待模擬點的隨機模擬。FILTERSIM算法引入了一系列不同方向的線性濾波器對訓練圖像進行過濾和分類。DS算法根據已知空間數據信息,通過計算距離選擇已知區域中最佳匹配的訓練模式作為待模擬點的模式。但是上述這些方法耗時較長且CPU占用率高。流行學習的應用是通過從高維空間中提取低維的流行結構實現對高維數據的降維,來提高重建的速度,但是本質上不能降低對空間訓練數據的需求[2]。
作為機器學習研究的新領域,深度學習建立了一個可以模擬人腦進行分析學習的神經網絡,在語音識別、計算機視覺、自然語言處理等方面得到廣泛應用[8]。同時深度學習產生了若干分支,包括自動編碼器、深度信念網絡、卷積神經網絡以及深度玻爾茲曼機等,在空間數據重建領域有著重要的應用,但這些方法存在數據收集和標記的成本過高、數據收集困難等問題[9]。生成對抗性網絡(Generative Adversarial Network,GAN)[10]也是深度學習的一種流行方法。GAN是一種讓兩個神經網絡相互博弈的非監督學習方法,它包含一個生成網絡G(Generator)和一個判別網絡D(Discrim inator)。生成網絡G的思想是將一個噪聲映射成一個逼真的樣本,而判別網絡D需要判斷生成的樣本是真還是假,GAN通過G和D的對峙來產生G的新框架。
相對于基于統計學方法的MPS方法通過捕獲訓練圖像特征來完成圖像重建,GAN能夠利用多層神經網絡對訓練圖像進行學習,自動獲取抽象的特征,生成與真實數據分布一致的圖像[11]。然而,應用于空間數據重建領域的GAN方法大多數都是在大型數據集上進行訓練的[12-14],這對數據集提出了嚴苛的要求,必然對訓練數據不易獲取的任務造成困難,并且導致訓練任務繁重,對訓練環境的硬件要求較高。在某些情況下,最好是在少量圖像上訓練生成模型,或者在有限的情況下,在單個圖像上訓練。由于單幅圖像中切片的經驗熵小于圖像分布中切片的經驗熵,因此學習單幅圖像中切片的統計和分布能夠提供較好的先驗知識[15]。最近的研究也表明,通過自監督學習和數據增強,在單幅圖像上訓練一個模型可以學習到足夠的特征信息[16]。但是GAN的感受野有限,因此能夠提取的圖像特征范圍也受到一定限制。如果能夠提取單幅訓練圖像在不同尺度或不同分辨率情況下的特征,利用多個特征進行圖像重建,將能夠獲得更好的圖像重建結果。因此,本文提出一種基于多分辨率GAN的空間數據重建方法(稱之為MultiGAN)。
MultiGAN的目標是建立一個能捕捉到不同分辨率下空間數據特征的生成模型。為了充分捕捉訓練圖像的結構信息,MultiGAN構建了一個金字塔結構,該金字塔結構是不同分辨率的訓練圖像形成的GAN,每個GAN在相應的分辨率尺度上學習訓練圖像的結構信息,即在高分辨率訓練圖像上捕捉全局特征,在低分辨率訓練圖像上捕捉局部特征和細節。實驗結果表明,相對于普通的GAN模型,MultiGAN可以從單個訓練圖像中產生高質量的重建圖像,并且重建時間較短,因此具有較高的重建效率。
本文模型是GAN的一個變體。其中,GAN是一種非監督學習網絡,包含相互博弈的兩個神經網絡:生成器G和判別器D。G和D這兩個網絡相互作用并不斷調整,最終目標是使判別器無法判斷生成器的輸出是否是真實樣本,從而實現模型學習到訓練圖像特征的目的。
生成器G和判別器D之間的博弈是由GAN的最小成本函數決定的:

其中,D(x)指的是x來自真實數據分布Pdata(x)的概率,而D[G(z)]指的是假樣本G(z)產生的概率,E代表期望值。在實際應用中,GAN有時出現訓練較為困難、生成器和判別器的損失無法指導訓練過程以及生成的樣本缺乏多樣性等問題[17],因此出現了一些GAN變體去改善這些問題,例如文獻[17-18]從理論和實驗兩個方面分析了GAN,并對其進行了改進,提出了WGAN(Wasserstein GAN)。WGAN通過權重剪切獨立地限制每一個網絡參數的取值范圍,確保訓練過程中判別器參數有界,不會因為樣本的不同給出差別巨大的分數值。但是實踐過程中發現,WGAN的權重剪切的閾值很難設置合理,設置較小容易導致梯度消失,設置較大會導致梯度爆炸。因此文獻[19]提出WGAN-GP(WGANwith Gradient Penalty),通過在判別器的損失函數中加入梯度懲罰項來改善WGAN的問題。WGAN-GP的目標函數為:

由于受計算資源和網絡結構的約束,網絡的感受野有限,如果直接對訓練圖像進行訓練,重建后的圖像實際上只重建了訓練圖像上有限大小的結構特征,難以兼顧全局和局部特征,因此本文提出在多種分辨率情況下通過固定大小的感受野來掃描不同分辨率的訓練圖像,以實現訓練圖像不同尺度特征的提取。將訓練圖像按不同的尺度進行縮放,形成多分辨率訓練圖像用于階段訓練,利用固定大小的感受野來捕獲不同分辨率下訓練圖像的結構信息。圖1所示為捕獲不同分辨率的訓練圖像信息示意圖,圖中顯示了3個尺度的訓練圖像。

圖1 提取不同分辨率訓練圖像信息的示意圖Fig.1 Schematic diagram for extracting training image information at different resolutions
從圖1可以看出,在低分辨率的情況下,模型主要學習圖像的整體分布信息;而在高分辨率的情況下,能夠重點學習圖像的細節和紋理信息。不同分辨率訓練圖像的大小為:

x為輸入圖像大小,N為尺度數量,r為尺度縮放因子,表示為:

其中:Smin為設置的最低分辨率下訓練圖像的大小,d、w和h分別為輸入圖像x的深度、寬度和高度大小,min(d,w,h)為輸入圖像3個維度大小的最小值。利用尺度縮放因子對輸入圖像進行下采樣獲得不同分辨率的訓練圖像進行訓練,這一多分辨率結構稱之為“金字塔結構”,圖2所示為N+1尺度的金字塔結構。

圖2 N+1尺度的金字塔結構Fig.2 Structureof pyramid with N+1 scales



圖3 Gn的結構(0≤n≤N-1)Fig.3 Structureof Gn(0≤n≤N-1)




訓練過程中發現,過高的學習率會導致圖像的過度擬合和模式崩潰,而過小的學習率則會導致生成的圖像紋理細節不明顯。為了平衡學習率與重建圖像效果,模型使用Adam優化器[20]來調整超參數。Adam優化器不僅可以計算出各參數的自適應學習率,還可以通過訓練數據的不斷迭代使網絡權重自動更新,保證了訓練的效率以及重建圖像的質量。
為了評估重建空間數據的效果,選擇與MPS方法中SNESIM、FILTERSIM和DS三種代表性算法以及應用于空間數據重建的GAN[13]方法進行對比,對重建圖像的變差函數、孔隙度、多點連接性、CPU、GPU和內存使用情況等方面進行對比分析。MultiGAN模型使用五層網絡,金字塔結構為6層,訓練圖像大小由小到大為:16×16×16、22×22×22、28×28×28、37×37×37、49×49×49、64×64×64。卷積核大小為3×3×3,感受野大小為11×11×11,激活函數LeakyReLU的負數部分斜率為0.2。
本實驗擬采用真實巖石數據作為空間數據重建的數據源,由于真實巖石的內部孔隙數據難以用數學公式或者某種定量的語句描述,故巖石的孔隙分布具有很強的不確定性特征,適合采用不確定性重建方法重建孔隙結構。使用納米CT掃描技術獲取分辨率為64 nm/體素的真實頁巖體數據。從真實頁巖數據截取尺寸為64×64×64體素的立方體作為訓練圖像,其外表面、剖面圖(X=32,Y=32,Z=32)以及孔隙結構如圖4(a)所示。圖4中的頁巖數據由骨架和孔隙兩部分組成,其中灰色區域代表骨架,黑色區域代表孔隙空間。從圖4(a)可以看出,訓練圖像的孔隙呈現不規則且長連通的特點。圖4還顯示了使用SNESIM、FILTERSIM、DS、GAN以及MultiGAN方法重建的圖像。可以看出,五種重建方法均基本再現了訓練圖像不規則且長連通性的孔隙空間,但是MultiGAN重建圖像與訓練圖像最為接近。

圖4 訓練圖像和不同方法重建圖像的外表面、剖面圖以及孔隙結構Fig.4 Outside surface,profile and pore structures of training image and images reconstructed by different methods
巖石孔隙度被定義為孔隙體積V與巖石總體積Vp的比值,用于表示巖石存儲流體的能力,用符號?表示,定義為:

訓練圖像的孔隙度為0.228 2,分別利用SNESIM、FILTERSIM、DS、GAN以及MultiGAN重建10幅圖像,孔隙度結果如表1所示。從表1可以看出,MultiGAN重建圖像的孔隙度更接近訓練圖像孔隙度。

表1 SNESIM、FILTERSIM、DS、GAN和MultiGAN重建10幅圖像的孔隙度Tab.1 Porositiesof 10 images reconstructed by SNESIM,FILTERSIM,DS,GAN and MultiGAN
變差函數反映了在一定方向上的空間變量的相關性和變異性,常用來作為評估重建效果的工具,定義如下:

其中Z(x)是位置x處的屬性值,h是位置x和x+h之間的滯后距離,E是數學期望值。如果兩幅圖像在同一方向上有相近的變差函數曲線,則兩幅圖像在該方向上具有相近的結構特征;反之,兩幅圖像在該方向上結構差異較大。圖5是訓練圖像和SNESIM、FILTERSIM、DS、GAN以及MultiGAN方法重建圖像的變差函數曲線。橫軸表示滯后距離,相鄰體素之間的距離為1,縱軸分別表示3個方向的變差函數值。
從圖5中可以看出,MultiGAN重建圖像與訓練圖像的變差函數曲線更接近,說明MultiGAN重建效果更好。
變差函數可以衡量空間兩點間的變異性,為了同時衡量空間多點之間的連接性,可以定義如下的多點連接性函數(Multiple-Point Connectivity,MPC):

其中:h為滯后距離,n為一個方向上的節點數,E為數學期望值,u表示空間某點位置。指標變量I(u)具有兩個屬性值:當頁巖圖像中某個位置為孔隙空間時,I(u)=1;否則I(u)=0。
圖6是訓練圖像和使用SNESIM、FILTERSIM、DS、GAN以及MultiGAN方法重建圖像的MPC曲線圖。從圖6中可以看出,MultiGAN方法重建圖像與訓練圖像的MPC曲線最接近。

圖6 重建圖像和訓練圖像的MPC曲線Fig.6 MPC curvesof training imageand reconstructed images
實驗硬件環境為Intel Core i7-7800X CPU、NVIDIA GeForce RTX 2080 Ti GPU和24 GBRAM。另外,本文的GAN和MultiGAN基于PyTorch的深度學習框架運行。SNESIM、FILTERSIM和DS使用了基于MPS的軟件框架運行。對SNESIM、FILTERSIM、DS、GAN和MultiGAN算法在CPU/GPU/占用內存方面進行比較。為了獲得較為客觀的數據,根據10次重建的重建結果進行比較,結果如表2所示。總重建時間在表2由兩部分組成:第一次重建時間和其余九次重建總時間。可以看出,盡管在“第一次重建時間”項中,SNESIM,FILTERSIM和DS所花費的時間少于GAN和MultiGAN,但它們在“其余九次重建總時間”中卻花費了更多時間。這是由于SNESIM、FILTERSIM和DS三種方法每次重建時都需要重新對訓練圖像進行掃描以獲取其結構信息,這些信息存儲在內存中而不是文件內,一次重建結束后上述結構信息即被清除,而且即使能夠將這些信息存儲在文件內,整個重建過程也會因為存儲結構非常龐雜而耗時較長;而GAN和MultiGAN在第一次重建后會將訓練好的模型參數保存到文件中,而且參數儲存結構相對簡便,因此比傳統MPS方法重建用時少。對比GAN和MultiGAN,可以看出MultiGAN在重建效率上優于GAN。可見,如果MultiGAN在后繼重建過程中重復利用第一次重建后保存的模型參數,將對后繼重建有很好的加速作用,因此比經典的不確定性插值方法具有更好的應用前景。同時,MultiGAN具有更低的CPU使用率,原因是深度學習及其相關算法的快速發展,使得MultiGAN等可以結合使用CPU和GPU,提升了GPU利用效率,降低了CPU的工作負載。盡管MultiGAN內存峰值較高,但是隨著計算機硬件的發展,這樣的內存峰值不會造成較大的問題。

表2 不同重建方法的CPU使用、占用內存峰值、總運行時間比較Tab.2 Comparisonsof CPU usage,memory peak usageand total running timeof different reconstruction methods
本文提出了一種基于多分辨率GAN的空間數據不確定性重建方法,該方法以真實的空間數據作為訓練數據,通過金字塔結構學習訓練數據的全局和局部特征。訓練結束后的模型可以保存下來,便于之后直接輸入噪聲進行重建。目前,一些不確定性插值方法被廣泛應用于空間數據的重建。例如,使用MPS可以進行空間數據重建中的油藏模擬,但是時間較長,效率較低;利用流形學習進行空間數據模擬本質上是對數據進行降維,不能從根本上減少對空間訓練數據的需求;一些其他深度學習方法可用于空間數據模擬,但是需要大量的空間數據訓練集,因此適用性受限。而本文使用單幅訓練圖像創建的多分辨率結構可以在使用少量訓練數據的情況下完成重建。
實驗結果表明,與一些經典不確定性插值方法相比,該方法在運行效率上表現更優,并且重建圖像質量更高。與GAN方法相比,MultiGAN只需要很少的訓練數據即單個訓練圖像,而同類GAN方法需要大量訓練圖像作為訓練數據,實驗結果顯示了本文方法在重建效率和質量上更優。