宋文廣,徐浩,王浩,張冰心,張秋娟,涂裕,王新城
長江大學計算機科學學院,湖北 荊州 434023
在地質學研究領域中,為了尋找油氣資源,儲油層的勘探是重要工作之一[1]。鉆井獲取地下巖心樣本,地質專家憑借自身經驗鑒定巖心樣本的巖性。傳統鑒定方法往往是將巖石樣本切割打磨成巖心薄片,專業人員通過偏光顯微鏡觀察巖石的結構和特征,再根據個人經驗鑒定,最后得出巖性的鑒定結果。傳統鑒定方法[2]主要依賴專業人員的知識背景和工作經驗。對于大量的巖心薄片巖性辨別,則需要大量的專業人員,耗時耗力,且鑒定結果也受個人感官認識、主觀性等諸多因素影響。
20世紀末,LECUN等[3]提出了卷積神經網絡(convolutional neural network,CNN)[4],在圖像識別領域中取得突破性進展,其準確率遠超傳統的機器學習方法。傳統圖像識別方法通過手動設計提取圖像特征進行識別,忽略了圖像中高維的圖像特征。在圖像識別中引入CNN,可以自動提取并識別圖像高維度特征,解決傳統方法中存在的問題。深度學習模型通過自動學習巖性特征,如巖石的顏色、紋理、顆粒、結構構造、蝕變程度等屬性[5],建立智能識別模型,提高巖性智能識別準確率。但是,由于巖心薄片圖像數據公開少且難以獲得,而訓練深層的網絡模型需要大量的訓練樣本支撐,較少的巖心薄片圖像樣本數據不足以訓練龐大的網絡參數權重[6]。僅用小樣本巖心薄片作為訓練集訓練深度神經網絡模型,模型易過擬合,泛化能力差[7],致使巖性識別準確率低,導致智能識別模型在巖性識別中的效果并不理想。此外,常用的數據增強方式通常是對原圖像進行幾何變換,如對巖心薄片進行翻轉、旋轉、裁剪、縮放等和顏色變換(如改變顏色、添加噪聲、模糊處理、擦除等)[8]。顏色變換的數據增加技術并不適用于巖心薄片圖像處理,會干擾其顏色特征[9]。而生成對抗網絡(generative adversarial networks,GAN)可以很好地還原真實的巖心薄片圖像數據。
GAN[11]是一種由生成器網絡模型(generative model,G)和判別器網絡模型(discriminative model,D)組成的一種強大的生成對抗網絡模型:G的作用是將輸入的高斯分布噪聲Pz(z)(z為隨機噪聲數據),通過學習真實數據x的分布Px(x),生成假數據G(z);D的作用是判斷輸入的數據是真實數據x還是生成器生成的假數據G(z)。G和D交替訓練,最大化D的區分度以區分真實數據樣本和模擬數據樣本,G最小化G(z)與x的數據分布以欺騙D,經過相互博弈,使得D、G 2個模型達到最佳狀態。在最佳狀態下,判別器輸出結果值為0.5,即D(x)與D(G(z))都是0.5,D分辨不出是真實數據還是模擬數據。GAN目標函數為:
(1)
式中:V(D,G)為GAN目標函數;E為期望值。GAN的模型結構如圖1所示。

圖1 GAN的模型結構Fig.1 Model structure of GAN
原始GAN模型訓練時易出現梯度消失、梯度不穩[12]和模型訓練不穩定等現象,造成模型崩潰,導致生成圖像差、判別器判別能力差。即使再迭代訓練多次也無法解決該問題[13]。主要原因是原始GAN要使生成數據分布與真實數據分布的KL(Kullback-Leibler divergence)散度最小,同時又要最大化兩者的JS(Jensen-Shannon)散度,這種矛盾的目標使得生成器的優化方向發生錯誤。且由于JS散度的特性,JS散度是常數,會造成梯度消失。因此,2017年ARJOVSKY M等[14]提出了改進的模型WGAN(Wasserstein GAN)。WGAN的核心改進是將不合理的等價優化的距離度量方式(JS散度/KL散度)更改為Wasserstein距離。用Wasserstein距離來量度真假數據分布之間的距離。Wasserstein距離又稱作EM(earth mover)距離,定義為:
(2)
式中:W(PR,PG)為Wasserstein距離;PR為真實樣本分布;PG為生成樣本分布;П(PR,PG)為PR和PG這2個分布所有可能的聯合分布的集合;γ為屬于該聯合分布的集合;y為生成數據。
從聯合分布集合中取樣(x,y)~γ,獲得真實數據樣本x和生成數據樣本y,并計算x和y之間的距離||x-y||,然后計算樣本對距離的期望E(x,y)~γ(||x-y‖),最后在所有聯合分布中使得該期望值取到下界值,該下界值即為Wasserstein距離[15]。Wasserstein距離能在真實樣本和生成樣本的分布沒有重合的情況下,表示出其距離的遠近,使得生成的對抗模型不會因為梯度問題而崩潰,確保訓練模型穩定。優化目標函數L為:
L=EX~Px(x)[D(x)]-Ez~Pz(z)[D(G(Z))]
(3)
WGAN通過最小化L值,使生成樣本分布與真實樣本分布接近,最終生成圖像實現以預期目標。
為此,該次研究使用Wasserstein GAN[10](WGAN)對抗訓練方法,自主學習巖心薄片圖像的紋理、顏色等特征,通過生成器生成新的巖心薄片圖像并對圖像數據進行增強,提高智能識別精度。
基于生成對抗網絡的巖心薄片巖性智能識別方法,其計算過程如圖2所示。

圖2 巖心薄片巖性識別算法計算過程Fig.2 Algorithm process of core slice lithology identification
1.1.1 生成器模型
生成器模型如圖3所示。首先創建一個100維正態分布的向量作為輸入數據,再通過RESHAPE操作轉換成4×4大小,1024通道數的三維張量,最后通過反卷積層DECONV1~DECONV6進行上采樣,最終生成一張大小為256×256、通道數為3的RGB生成圖像G(z)。每層的步幅為2,卷積核尺寸為5×5。DECONV1~DECONV5中,添加批量歸一化方法(batch normalization,BN),避免梯度消失

圖3 生成器模型設計Fig.3 Generator model design
的問題,從而使網絡訓練穩定;正則化方式的Dropout層使模型避免過擬合且均使用ReLu非線性激活函數;最后一層使用Tanh激活函數,如圖4所示。

圖4 生成器模型反卷積層Fig.4 Deconvolution layer of generator model
1.1.2 判別器模型
判別器模型如圖5所示,輸入層為一張大小為256×256、通道數為3的真實圖像或者生成判別器模型圖像,經過六層卷積層降采樣后成為(4,4,1024)三維張量,提取輸入圖像特征;然后通過平坦層(Flatten)操作將前一層的三維張量變為一維向量;最后通過兩層全連接層輸出結果,判斷出輸入的圖像是真實樣本還是生成樣本。其中下采樣過程中均采用5×5的卷積核,步幅大小為2,添加批量歸一化方法和正則化Dropout層使用LeakyReLu激活函數,如圖6所示。

圖5 判別器模型設計Fig.5 Discriminator model design
1.1.3 生成對抗網絡模型

圖6 判別器模型卷積層流程
Fig.6 Convolution layer of discriminator model
生成對抗網絡模型訓練過程是G和D交替訓練。在G訓練時,固定D的參數,G通過輸入噪聲
z
,經過上采樣操作后生成一批圖像。將生成的圖像送入D進行真假識別,利用D反饋的損失值和真假樣本之間的Wasserstein距離進行權重更新,最小化Wasserstein距離。判別器模型的訓練則是將生成圖像和真實圖像輸入到判別器中進行辨識,通過反饋的損失值去最小化Wasserstein距離。兩個模型均采用RMSProp算法對模型權重進行優化調整。最終,真實圖像和生成圖像之間的Wasserstein 距離越小,表示生成對抗網絡模型生成的圖像越接近真實圖像。
1.2.1 判別器模型遷移
生成對抗網絡模型訓練完成后,即可生成出高質量的生成圖像,所以生成器可以生成判別器無法判斷真偽的沉積巖巖心薄片圖像,同時判別器學習了巖心薄片圖像的大量特征。運用遷移學習在對抗訓練中學習到大量特征的判別器模型用于解決巖心薄片巖性識別。使用的巖心薄片巖性識別模型如圖7所示。通過參照判別器模型進行設計,保留判別器的卷積層,刪掉后面二分類的全連接層,改為三層全連接層,最后一層輸出巖心巖性的類別,然后遷移所有卷積層的權重。新的巖心薄片巖性識別模型只需要訓練最后兩層全連接層和分類層。將生成圖像和真實圖像一起作為數據集進行訓練。

圖7 巖心薄片巖性識別模型Fig.7 Lithology identification model of core slice
1.2.2 巖心薄片巖性識別訓練
將訓練好的生成對抗網絡模型的判別器應用到巖心薄片巖性識別中,對判別器卷積層網絡參數進行遷移,添加2個全連接層和1個輸出層,2個全連接層采用ReLu激活函數,輸出層采用softmax激活函數對巖心薄片巖性進行識別。該模型采用的損失函數是交叉熵損失函數:
(4)
其中:
(5)
式中:N為樣本數量;i為樣本序號;c為種類;M為種類數量;yic為符號函數0或者1,如果是真實樣本的類別,則用1表示,否則用0;Pic為第i個樣本屬于c類的置信度;j為種類數量;yi為c類的得分結果;yj為第j類的得分結果。
利用隨機梯度下降法SGD(stochastic gradient descent)對模型參數進行優化調整。
輸入一張巖心薄片圖像,通過巖心薄片巖性識別模型提取到圖像特征,最后通過輸出層softmax激活函數式(6)進行巖性預測:
(6)
式中:Si為概率;ezi為softmax層的輸入神經元;zi為第i類的得分。
硬件:CPU為Intel(R)Core(TM)i7-8700,GPU為NVIDIA Geforce GTX 1080Ti,內存為32G。
軟件:操作系統Ubuntu18.04,編譯軟件為Pycharm,編程框架為Pytorch。
沉積巖巖心薄片數據集中有黏土巖、碎屑巖、碳酸鹽巖和凝灰巖4種。每一張巖心薄片都具有相同視野的正交偏光和單偏光顯微圖像各一張,每一張圖像分辨率為1280×1024,其中黏土巖有336張,碎屑巖326張,碳酸鹽巖356張,凝灰巖328張。由于圖像過大,通過對圖像進行裁剪,一張圖像裁剪成4張圖像并縮放成256×256大小,共計5384張顯微巖心薄片圖像。最終數據集如表1所示,樣本圖像如圖8所示,訓練數據集與測試數據集設置為8∶2。

表1 沉積巖巖心薄片數據表
數據集采用沉積巖巖心薄片圖像訓練集,學習率設置為0.0002,batch_size設置為32,訓練周期為800,判別器和生成器交替訓練,訓練一次判別器時,需要訓練2次生成器,開始時先訓練判別器,并在一塊NIVDIA Tesla K80顯卡上面進行訓練。訓練初期,圖像生成質量差,不能作為樣本數據對數據集進行擴充。隨著訓練周期的不斷增長,生成的巖心薄片圖像越來越清晰(見圖9)。通過Wasserstein距離可以看出生成的樣本圖像經過不斷訓練后越來越接近真實圖像的分布,如圖10所示,當迭代次數大于720時,Wasserstein距離開始收斂。此時,生成器和判別器接近最優狀態,得到的生成圖像能夠以假亂真且可以生成多種類別的沉積巖巖心薄片圖像,可以將生成的圖像作為樣本擴充數據集。

圖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 新增強算法與傳統增強方法對比
在相同的巖心薄片巖性識別模型下,使用新增強算法和傳統增強方法,對2種不同的數據增強方法的數據集進行擴充,獲得不同的數據集。傳統數據增強方法采用圖像旋轉、高斯噪聲、椒鹽噪聲、高斯模糊4種,其中圖像旋轉采用對每張圖像向左旋轉90°或180°或270°,每張圖像只旋轉一次,對原始數據集擴充1倍。其他3種傳統增強方法均是對每張圖像進行處理,對原數據集擴充1倍。在生成對抗模型WGAN訓練迭代800次完成后,使用生成器為訓練集中每張圖像生成1張生成圖像,大約對原數據集擴充1倍。再設置一組空白對照組,不對原始數據進行擴充。最終不同的數據增強方法下的巖心薄片巖性識別準確率如表2所示。
由表2可知,采用不同的數據增強方法對巖心薄片巖性識別準確率有很大影響。其中不使用增強算法時,巖性識別準確率為88.62%。而使用高斯噪聲、椒鹽噪聲和高斯模糊數據增強方法的巖性識別準確率均低于88.62%,其中高斯模糊增強算法效果最差。這是由于模糊處理后對巖心薄片的紋理特征進行了破壞,使得準確率下降嚴重。相比之下,圖像旋轉增強方法的準確率上升1.5個百分點,是因為擴充了數據集的同時,沒有破壞圖像的顏色紋理特征,但同時也缺乏了圖像的多樣性,以致于巖性識別準確率提升不高。而采用WGAN增強數據方法,相對于不增強時,準確率提升5.16個百分點,是因為利用訓練好的生成器模型生成的逼真圖像是原數據集沒有的,不僅擴充了數據集,還增加了圖像的多樣性,使得模型的巖性識別準確率有較大提高。

表2 不同數據增強方法下巖性識別準確率

表3 遷移參數對巖性識別的影響

表4 不同方法下的巖性識別準確率
2.2.2 模型參數遷移試驗
在訓練好的生成對抗網絡中,判別器已經提取到了巖心薄片圖像的大量特征,因此通過遷移判別器模型卷積層的參數到巖心薄片巖性識別的模型當中,固定卷積層的參數,只需要訓練全連接層即可。通過遷移參數與不遷移參數2組試驗數據對比,數據集采用WGAN數據增強方法。由表3可知,通過遷移訓練好的生成對抗模型中判別器模型的參數,只需訓練后兩層的全連接層和分類層,最終遷移參數后的巖心薄片巖性識別模型準確率略高于不遷移的識別模型。原因是由于判別器的損失函數和巖心薄片巖性識別模型的損失函數不同,且二者訓練方式不同,造成提取特征時有差異。從結果來看,判別器提取特征能力更為優秀。
2.2.3 不同巖性識別方法對比
為了驗證方法的優劣性,通過與傳統方法相對比,進行試驗對比。試驗一:采用人為提取巖心薄片的顏色特征和紋理特征,在HSV顏色特征空間下提取顏色特征[16],利用LBP算子提取紋理特征[17]后使用PCA主成分降維[18],獲取低維的紋理特征,再將顏色特征和紋理特征進行融合,將融合后的特征對支持向量機(support vector machine,SVM)進行訓練學習,獲得一個SVM巖心薄片巖性識別分類器。試驗二:利用巖心薄片圖像對WGAN進行對抗訓練,完成后,利用生成器對原數據集進行增強,然后遷移判別器的卷積層參數到巖心薄片巖性識別模型,只需訓練全連接層和分類層。試驗三:采用經典網絡模型AlexNet進行巖性識別。數據集和試驗一的數據相同,均為原始數據集。3種試驗方法統計結果數據如表4所示。
通過試驗一和試驗二數據對比分析,“WGAN+判別器參數遷移”的巖心薄片巖性識別方法明顯優于傳統方法。傳統方法是手動提取特征,只能學習到巖心薄片圖像的淺層特征,而試驗二通過對抗訓練,卷積層可以提取更高維度的圖像特征,從而識別準確率較高。試驗三和試驗二數據對比分析,雖然都是深度學習提取圖像特征,但是“WGAN+判別器參數遷移”方法可以通過生成對抗模型中的生成器擴充數據集,并通過遷移判別器參數,保留對抗訓練完成后判別器提取到的特征,使得筆者提出的“WGAN+判別器參數遷移”巖性識別模型的智能識別能力較強。該研究成果可以通過模型智能識別巖心薄片的巖性,既提高了識別速度,又降低了對地質專家的依賴性,具有廣泛的應用價值。
目前關于巖心薄片圖像巖性識別的研究鮮有成果,針對傳統人工鑒定方法的缺陷和目前較少將生成對抗網絡應用于巖心薄片的巖性識別的現狀,通過研究首次提出一種基于生成對抗網絡的巖心薄片巖性智能識別方法。該方法可以通過訓練好的生成對抗模型中的生成器生成巖心薄片圖像,擴充原始巖心薄片圖像數據集,增加數據集的多樣性,可以提高模型預測精度。相對傳統數據增強方法,提出的基于生成對抗網絡的巖心薄片巖性智能識別方法對于巖心薄片巖性識別準確率有明顯提高。判別器參數遷移到巖心薄片巖性識別模型中,保留了判別器提取的巖心薄片特征,進一步提高了巖性識別準確率。通過試驗數據對比分析,證明該方法可以提高巖心薄片巖性智能識別精度,精度高達94.93%,完全能夠滿足生產實踐的要求。