宋文廣,徐浩,王浩,張冰心,張秋娟,涂裕,王新城
長江大學(xué)計算機科學(xué)學(xué)院,湖北 荊州 434023
在地質(zhì)學(xué)研究領(lǐng)域中,為了尋找油氣資源,儲油層的勘探是重要工作之一[1]。鉆井獲取地下巖心樣本,地質(zhì)專家憑借自身經(jīng)驗鑒定巖心樣本的巖性。傳統(tǒng)鑒定方法往往是將巖石樣本切割打磨成巖心薄片,專業(yè)人員通過偏光顯微鏡觀察巖石的結(jié)構(gòu)和特征,再根據(jù)個人經(jīng)驗鑒定,最后得出巖性的鑒定結(jié)果。傳統(tǒng)鑒定方法[2]主要依賴專業(yè)人員的知識背景和工作經(jīng)驗。對于大量的巖心薄片巖性辨別,則需要大量的專業(yè)人員,耗時耗力,且鑒定結(jié)果也受個人感官認識、主觀性等諸多因素影響。
20世紀末,LECUN等[3]提出了卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)[4],在圖像識別領(lǐng)域中取得突破性進展,其準確率遠超傳統(tǒng)的機器學(xué)習(xí)方法。傳統(tǒng)圖像識別方法通過手動設(shè)計提取圖像特征進行識別,忽略了圖像中高維的圖像特征。在圖像識別中引入CNN,可以自動提取并識別圖像高維度特征,解決傳統(tǒng)方法中存在的問題。深度學(xué)習(xí)模型通過自動學(xué)習(xí)巖性特征,如巖石的顏色、紋理、顆粒、結(jié)構(gòu)構(gòu)造、蝕變程度等屬性[5],建立智能識別模型,提高巖性智能識別準確率。但是,由于巖心薄片圖像數(shù)據(jù)公開少且難以獲得,而訓(xùn)練深層的網(wǎng)絡(luò)模型需要大量的訓(xùn)練樣本支撐,較少的巖心薄片圖像樣本數(shù)據(jù)不足以訓(xùn)練龐大的網(wǎng)絡(luò)參數(shù)權(quán)重[6]。僅用小樣本巖心薄片作為訓(xùn)練集訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)模型,模型易過擬合,泛化能力差[7],致使巖性識別準確率低,導(dǎo)致智能識別模型在巖性識別中的效果并不理想。此外,常用的數(shù)據(jù)增強方式通常是對原圖像進行幾何變換,如對巖心薄片進行翻轉(zhuǎn)、旋轉(zhuǎn)、裁剪、縮放等和顏色變換(如改變顏色、添加噪聲、模糊處理、擦除等)[8]。顏色變換的數(shù)據(jù)增加技術(shù)并不適用于巖心薄片圖像處理,會干擾其顏色特征[9]。而生成對抗網(wǎng)絡(luò)(generative adversarial networks,GAN)可以很好地還原真實的巖心薄片圖像數(shù)據(jù)。
GAN[11]是一種由生成器網(wǎng)絡(luò)模型(generative model,G)和判別器網(wǎng)絡(luò)模型(discriminative model,D)組成的一種強大的生成對抗網(wǎng)絡(luò)模型:G的作用是將輸入的高斯分布噪聲Pz(z)(z為隨機噪聲數(shù)據(jù)),通過學(xué)習(xí)真實數(shù)據(jù)x的分布Px(x),生成假數(shù)據(jù)G(z);D的作用是判斷輸入的數(shù)據(jù)是真實數(shù)據(jù)x還是生成器生成的假數(shù)據(jù)G(z)。G和D交替訓(xùn)練,最大化D的區(qū)分度以區(qū)分真實數(shù)據(jù)樣本和模擬數(shù)據(jù)樣本,G最小化G(z)與x的數(shù)據(jù)分布以欺騙D,經(jīng)過相互博弈,使得D、G 2個模型達到最佳狀態(tài)。在最佳狀態(tài)下,判別器輸出結(jié)果值為0.5,即D(x)與D(G(z))都是0.5,D分辨不出是真實數(shù)據(jù)還是模擬數(shù)據(jù)。GAN目標函數(shù)為:
(1)
式中:V(D,G)為GAN目標函數(shù);E為期望值。GAN的模型結(jié)構(gòu)如圖1所示。
圖1 GAN的模型結(jié)構(gòu)Fig.1 Model structure of GAN
原始GAN模型訓(xùn)練時易出現(xiàn)梯度消失、梯度不穩(wěn)[12]和模型訓(xùn)練不穩(wěn)定等現(xiàn)象,造成模型崩潰,導(dǎo)致生成圖像差、判別器判別能力差。即使再迭代訓(xùn)練多次也無法解決該問題[13]。主要原因是原始GAN要使生成數(shù)據(jù)分布與真實數(shù)據(jù)分布的KL(Kullback-Leibler divergence)散度最小,同時又要最大化兩者的JS(Jensen-Shannon)散度,這種矛盾的目標使得生成器的優(yōu)化方向發(fā)生錯誤。且由于JS散度的特性,JS散度是常數(shù),會造成梯度消失。因此,2017年ARJOVSKY M等[14]提出了改進的模型WGAN(Wasserstein GAN)。WGAN的核心改進是將不合理的等價優(yōu)化的距離度量方式(JS散度/KL散度)更改為Wasserstein距離。用Wasserstein距離來量度真假數(shù)據(jù)分布之間的距離。Wasserstein距離又稱作EM(earth mover)距離,定義為:
(2)
式中:W(PR,PG)為Wasserstein距離;PR為真實樣本分布;PG為生成樣本分布;П(PR,PG)為PR和PG這2個分布所有可能的聯(lián)合分布的集合;γ為屬于該聯(lián)合分布的集合;y為生成數(shù)據(jù)。
從聯(lián)合分布集合中取樣(x,y)~γ,獲得真實數(shù)據(jù)樣本x和生成數(shù)據(jù)樣本y,并計算x和y之間的距離||x-y||,然后計算樣本對距離的期望E(x,y)~γ(||x-y‖),最后在所有聯(lián)合分布中使得該期望值取到下界值,該下界值即為Wasserstein距離[15]。Wasserstein距離能在真實樣本和生成樣本的分布沒有重合的情況下,表示出其距離的遠近,使得生成的對抗模型不會因為梯度問題而崩潰,確保訓(xùn)練模型穩(wěn)定。優(yōu)化目標函數(shù)L為:
L=EX~Px(x)[D(x)]-Ez~Pz(z)[D(G(Z))]
(3)
WGAN通過最小化L值,使生成樣本分布與真實樣本分布接近,最終生成圖像實現(xiàn)以預(yù)期目標。
為此,該次研究使用Wasserstein GAN[10](WGAN)對抗訓(xùn)練方法,自主學(xué)習(xí)巖心薄片圖像的紋理、顏色等特征,通過生成器生成新的巖心薄片圖像并對圖像數(shù)據(jù)進行增強,提高智能識別精度。
基于生成對抗網(wǎng)絡(luò)的巖心薄片巖性智能識別方法,其計算過程如圖2所示。
圖2 巖心薄片巖性識別算法計算過程Fig.2 Algorithm process of core slice lithology identification
1.1.1 生成器模型
生成器模型如圖3所示。首先創(chuàng)建一個100維正態(tài)分布的向量作為輸入數(shù)據(jù),再通過RESHAPE操作轉(zhuǎn)換成4×4大小,1024通道數(shù)的三維張量,最后通過反卷積層DECONV1~DECONV6進行上采樣,最終生成一張大小為256×256、通道數(shù)為3的RGB生成圖像G(z)。每層的步幅為2,卷積核尺寸為5×5。DECONV1~DECONV5中,添加批量歸一化方法(batch normalization,BN),避免梯度消失
圖3 生成器模型設(shè)計Fig.3 Generator model design
的問題,從而使網(wǎng)絡(luò)訓(xùn)練穩(wěn)定;正則化方式的Dropout層使模型避免過擬合且均使用ReLu非線性激活函數(shù);最后一層使用Tanh激活函數(shù),如圖4所示。
圖4 生成器模型反卷積層Fig.4 Deconvolution layer of generator model
1.1.2 判別器模型
判別器模型如圖5所示,輸入層為一張大小為256×256、通道數(shù)為3的真實圖像或者生成判別器模型圖像,經(jīng)過六層卷積層降采樣后成為(4,4,1024)三維張量,提取輸入圖像特征;然后通過平坦層(Flatten)操作將前一層的三維張量變?yōu)橐痪S向量;最后通過兩層全連接層輸出結(jié)果,判斷出輸入的圖像是真實樣本還是生成樣本。其中下采樣過程中均采用5×5的卷積核,步幅大小為2,添加批量歸一化方法和正則化Dropout層使用LeakyReLu激活函數(shù),如圖6所示。
圖5 判別器模型設(shè)計Fig.5 Discriminator model design
1.1.3 生成對抗網(wǎng)絡(luò)模型
圖6 判別器模型卷積層流程
Fig.6 Convolution layer of discriminator model
生成對抗網(wǎng)絡(luò)模型訓(xùn)練過程是G和D交替訓(xùn)練。在G訓(xùn)練時,固定D的參數(shù),G通過輸入噪聲
z
,經(jīng)過上采樣操作后生成一批圖像。將生成的圖像送入D進行真假識別,利用D反饋的損失值和真假樣本之間的Wasserstein距離進行權(quán)重更新,最小化Wasserstein距離。判別器模型的訓(xùn)練則是將生成圖像和真實圖像輸入到判別器中進行辨識,通過反饋的損失值去最小化Wasserstein距離。兩個模型均采用RMSProp算法對模型權(quán)重進行優(yōu)化調(diào)整。最終,真實圖像和生成圖像之間的Wasserstein 距離越小,表示生成對抗網(wǎng)絡(luò)模型生成的圖像越接近真實圖像。
1.2.1 判別器模型遷移
生成對抗網(wǎng)絡(luò)模型訓(xùn)練完成后,即可生成出高質(zhì)量的生成圖像,所以生成器可以生成判別器無法判斷真?zhèn)蔚某练e巖巖心薄片圖像,同時判別器學(xué)習(xí)了巖心薄片圖像的大量特征。運用遷移學(xué)習(xí)在對抗訓(xùn)練中學(xué)習(xí)到大量特征的判別器模型用于解決巖心薄片巖性識別。使用的巖心薄片巖性識別模型如圖7所示。通過參照判別器模型進行設(shè)計,保留判別器的卷積層,刪掉后面二分類的全連接層,改為三層全連接層,最后一層輸出巖心巖性的類別,然后遷移所有卷積層的權(quán)重。新的巖心薄片巖性識別模型只需要訓(xùn)練最后兩層全連接層和分類層。將生成圖像和真實圖像一起作為數(shù)據(jù)集進行訓(xùn)練。
圖7 巖心薄片巖性識別模型Fig.7 Lithology identification model of core slice
1.2.2 巖心薄片巖性識別訓(xùn)練
將訓(xùn)練好的生成對抗網(wǎng)絡(luò)模型的判別器應(yīng)用到巖心薄片巖性識別中,對判別器卷積層網(wǎng)絡(luò)參數(shù)進行遷移,添加2個全連接層和1個輸出層,2個全連接層采用ReLu激活函數(shù),輸出層采用softmax激活函數(shù)對巖心薄片巖性進行識別。該模型采用的損失函數(shù)是交叉熵損失函數(shù):
(4)
其中:
(5)
式中:N為樣本數(shù)量;i為樣本序號;c為種類;M為種類數(shù)量;yic為符號函數(shù)0或者1,如果是真實樣本的類別,則用1表示,否則用0;Pic為第i個樣本屬于c類的置信度;j為種類數(shù)量;yi為c類的得分結(jié)果;yj為第j類的得分結(jié)果。
利用隨機梯度下降法SGD(stochastic gradient descent)對模型參數(shù)進行優(yōu)化調(diào)整。
輸入一張巖心薄片圖像,通過巖心薄片巖性識別模型提取到圖像特征,最后通過輸出層softmax激活函數(shù)式(6)進行巖性預(yù)測:
(6)
式中:Si為概率;ezi為softmax層的輸入神經(jīng)元;zi為第i類的得分。
硬件:CPU為Intel(R)Core(TM)i7-8700,GPU為NVIDIA Geforce GTX 1080Ti,內(nèi)存為32G。
軟件:操作系統(tǒng)Ubuntu18.04,編譯軟件為Pycharm,編程框架為Pytorch。
沉積巖巖心薄片數(shù)據(jù)集中有黏土巖、碎屑巖、碳酸鹽巖和凝灰?guī)r4種。每一張巖心薄片都具有相同視野的正交偏光和單偏光顯微圖像各一張,每一張圖像分辨率為1280×1024,其中黏土巖有336張,碎屑巖326張,碳酸鹽巖356張,凝灰?guī)r328張。由于圖像過大,通過對圖像進行裁剪,一張圖像裁剪成4張圖像并縮放成256×256大小,共計5384張顯微巖心薄片圖像。最終數(shù)據(jù)集如表1所示,樣本圖像如圖8所示,訓(xùn)練數(shù)據(jù)集與測試數(shù)據(jù)集設(shè)置為8∶2。
表1 沉積巖巖心薄片數(shù)據(jù)表
數(shù)據(jù)集采用沉積巖巖心薄片圖像訓(xùn)練集,學(xué)習(xí)率設(shè)置為0.0002,batch_size設(shè)置為32,訓(xùn)練周期為800,判別器和生成器交替訓(xùn)練,訓(xùn)練一次判別器時,需要訓(xùn)練2次生成器,開始時先訓(xùn)練判別器,并在一塊NIVDIA Tesla K80顯卡上面進行訓(xùn)練。訓(xùn)練初期,圖像生成質(zhì)量差,不能作為樣本數(shù)據(jù)對數(shù)據(jù)集進行擴充。隨著訓(xùn)練周期的不斷增長,生成的巖心薄片圖像越來越清晰(見圖9)。通過Wasserstein距離可以看出生成的樣本圖像經(jīng)過不斷訓(xùn)練后越來越接近真實圖像的分布,如圖10所示,當?shù)螖?shù)大于720時,Wasserstein距離開始收斂。此時,生成器和判別器接近最優(yōu)狀態(tài),得到的生成圖像能夠以假亂真且可以生成多種類別的沉積巖巖心薄片圖像,可以將生成的圖像作為樣本擴充數(shù)據(jù)集。
圖8 沉積巖巖心薄片樣本圖Fig.8 The sample of sedimentary rock core slice
圖9 生成圖像效果圖Fig.9 The effect of the generated image
圖10 Wasserstein距離Fig.10 Wasserstein distance
2.2.1 新增強算法與傳統(tǒng)增強方法對比
在相同的巖心薄片巖性識別模型下,使用新增強算法和傳統(tǒng)增強方法,對2種不同的數(shù)據(jù)增強方法的數(shù)據(jù)集進行擴充,獲得不同的數(shù)據(jù)集。傳統(tǒng)數(shù)據(jù)增強方法采用圖像旋轉(zhuǎn)、高斯噪聲、椒鹽噪聲、高斯模糊4種,其中圖像旋轉(zhuǎn)采用對每張圖像向左旋轉(zhuǎn)90°或180°或270°,每張圖像只旋轉(zhuǎn)一次,對原始數(shù)據(jù)集擴充1倍。其他3種傳統(tǒng)增強方法均是對每張圖像進行處理,對原數(shù)據(jù)集擴充1倍。在生成對抗模型WGAN訓(xùn)練迭代800次完成后,使用生成器為訓(xùn)練集中每張圖像生成1張生成圖像,大約對原數(shù)據(jù)集擴充1倍。再設(shè)置一組空白對照組,不對原始數(shù)據(jù)進行擴充。最終不同的數(shù)據(jù)增強方法下的巖心薄片巖性識別準確率如表2所示。
由表2可知,采用不同的數(shù)據(jù)增強方法對巖心薄片巖性識別準確率有很大影響。其中不使用增強算法時,巖性識別準確率為88.62%。而使用高斯噪聲、椒鹽噪聲和高斯模糊數(shù)據(jù)增強方法的巖性識別準確率均低于88.62%,其中高斯模糊增強算法效果最差。這是由于模糊處理后對巖心薄片的紋理特征進行了破壞,使得準確率下降嚴重。相比之下,圖像旋轉(zhuǎn)增強方法的準確率上升1.5個百分點,是因為擴充了數(shù)據(jù)集的同時,沒有破壞圖像的顏色紋理特征,但同時也缺乏了圖像的多樣性,以致于巖性識別準確率提升不高。而采用WGAN增強數(shù)據(jù)方法,相對于不增強時,準確率提升5.16個百分點,是因為利用訓(xùn)練好的生成器模型生成的逼真圖像是原數(shù)據(jù)集沒有的,不僅擴充了數(shù)據(jù)集,還增加了圖像的多樣性,使得模型的巖性識別準確率有較大提高。
表2 不同數(shù)據(jù)增強方法下巖性識別準確率
表3 遷移參數(shù)對巖性識別的影響
表4 不同方法下的巖性識別準確率
2.2.2 模型參數(shù)遷移試驗
在訓(xùn)練好的生成對抗網(wǎng)絡(luò)中,判別器已經(jīng)提取到了巖心薄片圖像的大量特征,因此通過遷移判別器模型卷積層的參數(shù)到巖心薄片巖性識別的模型當中,固定卷積層的參數(shù),只需要訓(xùn)練全連接層即可。通過遷移參數(shù)與不遷移參數(shù)2組試驗數(shù)據(jù)對比,數(shù)據(jù)集采用WGAN數(shù)據(jù)增強方法。由表3可知,通過遷移訓(xùn)練好的生成對抗模型中判別器模型的參數(shù),只需訓(xùn)練后兩層的全連接層和分類層,最終遷移參數(shù)后的巖心薄片巖性識別模型準確率略高于不遷移的識別模型。原因是由于判別器的損失函數(shù)和巖心薄片巖性識別模型的損失函數(shù)不同,且二者訓(xùn)練方式不同,造成提取特征時有差異。從結(jié)果來看,判別器提取特征能力更為優(yōu)秀。
2.2.3 不同巖性識別方法對比
為了驗證方法的優(yōu)劣性,通過與傳統(tǒng)方法相對比,進行試驗對比。試驗一:采用人為提取巖心薄片的顏色特征和紋理特征,在HSV顏色特征空間下提取顏色特征[16],利用LBP算子提取紋理特征[17]后使用PCA主成分降維[18],獲取低維的紋理特征,再將顏色特征和紋理特征進行融合,將融合后的特征對支持向量機(support vector machine,SVM)進行訓(xùn)練學(xué)習(xí),獲得一個SVM巖心薄片巖性識別分類器。試驗二:利用巖心薄片圖像對WGAN進行對抗訓(xùn)練,完成后,利用生成器對原數(shù)據(jù)集進行增強,然后遷移判別器的卷積層參數(shù)到巖心薄片巖性識別模型,只需訓(xùn)練全連接層和分類層。試驗三:采用經(jīng)典網(wǎng)絡(luò)模型AlexNet進行巖性識別。數(shù)據(jù)集和試驗一的數(shù)據(jù)相同,均為原始數(shù)據(jù)集。3種試驗方法統(tǒng)計結(jié)果數(shù)據(jù)如表4所示。
通過試驗一和試驗二數(shù)據(jù)對比分析,“WGAN+判別器參數(shù)遷移”的巖心薄片巖性識別方法明顯優(yōu)于傳統(tǒng)方法。傳統(tǒng)方法是手動提取特征,只能學(xué)習(xí)到巖心薄片圖像的淺層特征,而試驗二通過對抗訓(xùn)練,卷積層可以提取更高維度的圖像特征,從而識別準確率較高。試驗三和試驗二數(shù)據(jù)對比分析,雖然都是深度學(xué)習(xí)提取圖像特征,但是“WGAN+判別器參數(shù)遷移”方法可以通過生成對抗模型中的生成器擴充數(shù)據(jù)集,并通過遷移判別器參數(shù),保留對抗訓(xùn)練完成后判別器提取到的特征,使得筆者提出的“WGAN+判別器參數(shù)遷移”巖性識別模型的智能識別能力較強。該研究成果可以通過模型智能識別巖心薄片的巖性,既提高了識別速度,又降低了對地質(zhì)專家的依賴性,具有廣泛的應(yīng)用價值。
目前關(guān)于巖心薄片圖像巖性識別的研究鮮有成果,針對傳統(tǒng)人工鑒定方法的缺陷和目前較少將生成對抗網(wǎng)絡(luò)應(yīng)用于巖心薄片的巖性識別的現(xiàn)狀,通過研究首次提出一種基于生成對抗網(wǎng)絡(luò)的巖心薄片巖性智能識別方法。該方法可以通過訓(xùn)練好的生成對抗模型中的生成器生成巖心薄片圖像,擴充原始巖心薄片圖像數(shù)據(jù)集,增加數(shù)據(jù)集的多樣性,可以提高模型預(yù)測精度。相對傳統(tǒng)數(shù)據(jù)增強方法,提出的基于生成對抗網(wǎng)絡(luò)的巖心薄片巖性智能識別方法對于巖心薄片巖性識別準確率有明顯提高。判別器參數(shù)遷移到巖心薄片巖性識別模型中,保留了判別器提取的巖心薄片特征,進一步提高了巖性識別準確率。通過試驗數(shù)據(jù)對比分析,證明該方法可以提高巖心薄片巖性智能識別精度,精度高達94.93%,完全能夠滿足生產(chǎn)實踐的要求。