顧任遠,劉立群
(甘肅農業大學 信息科學技術學院,甘肅 蘭州 730070)
巖石樣本識別是地質學和礦業開采等工程中的重要環節,傳統人工分析方式存在著效率低、費用高等各類問題,因此需要機器代替人工作業以提升效率。隨著深度學習的蓬勃發展,卷積神經網絡已能夠初步代替人類完成巖石樣本分類工作。
卷積神經網絡是機器視覺中的重要方法,繼神經認知機[1]之后,LeNet[2]和AlexNet[3]的出現證明了其在圖像分類任務中的巨大潛力,張順等[4]、Simonyan 等[5]學者進一步肯定了其在機器視覺領域的價值。然而,訓練深度神經網絡模型頗具挑戰性,存在諸如過擬合和網絡退化等問題[6-8],這些問題可通過引入正規化方法如隨機失活層[9]、批歸一化層等[10]得到解決。由于Yosinki 等[11]證明了遷移特征的可行性,通過遷移學習降低了訓練開銷,隨著反向傳播[12]等深度學習技術的升級,卷積神經網絡也能夠處理諸如巖石樣本分類等復雜圖像分類任務。
根據劉建偉等[13]、孫志軍等[14]所述,深度學習在機器視覺領域得到了廣泛應用。如陳德鋼等[15]使用改進的Xception 模型對野生菌種進行識別,實驗結果良好;馬俊等[16]通過訓練遷移模型對網絡芯片進行分類,對芯片焊盤和焊球的識別效果良好。
在巖石分類方面,陳鋼花等[17]利用卷積神經網絡進行巖性識別,模型表現優異,證明卷積神經網絡在巖性識別任務中的適用性;程國建等[18]使用SqueezeNet 對5 類巖石圖像進行分類工作,利用神經網絡輔助巖樣研究,但此模型參數量少,識別能力有限,難以進行復雜巖樣的精確分類。
張野等[19]采用Inception-V3 模型和遷移學習方法對花崗巖、千枚巖和角礫巖進行分類,模型展現出神經網絡優秀的魯棒性,但此模型的層數較深,參數量較多,難以滿足輕量化移動平臺的使用需求;許振浩等[20]同樣采用遷移訓練實現對30 種巖石樣本的分類,采用的模型原型為ResNet,分類準確率高,但此類模型參數量較大,訓練困難,也不適合在輕量化移動平臺上使用。
綜上,巖石樣本分類的模型參數量普遍較大,計算機資源占用多,無法在輕量化平臺部署,訓練難度大且速度有限。VGG 模型作為順序結構模型,易于進行遷移訓練。根據知識蒸餾的概念,數據集的知識有限[21],則模型超過一定規模后,規模不再影響性能。因此,為了實現巖石樣本的分類任務,并滿足輕量化平臺的使用要求,需要對模型進行相應的削減和修改。針對以上問題,本文提出通過修改VGG16 模型實現的VGG-T3 模型,使其能夠對巖石樣本進行準確分類,同時滿足輕量化平臺的使用要求。
神經網絡由具有層級結構的大量神經元構成,層層疊加以形成深層次的網絡模型,模型通過學習損失進行優化擬合。其主要包括卷積層和池化層構成的特征抽取部分,以及全連接層構成的決策部分。
其中,卷積層神經元采用局部感受野、權值共享的方法削減了參數量,降低了計算開銷,池化層則僅參與對特征進行的有損壓縮,在保持一定特征的同時降低數據量,以提升模型效果,而全連接層保有的參數量最大,削減全連接層能夠有效減少模型參數。
深層模型具有較強的特征抽取能力,但也會產生過擬合問題,合理加入隨機失活層或批歸一化層,能有效提升其泛化能力。傳統的VGG 模型主要采用加入隨機失活層的方法抑制過擬合,同時也通過圖像變換擴充訓練集的方法進行數據增強,有效避免大批次訓練產生的Sharp Minima問題[22-24],保證模型的穩定性。
批歸一化層則能夠優化總體方差和均值,使得數據分布更加合理,有效抑制飽和區漂移和過擬合[25]。在對單個維度的批歸一化操作中,計算樣本均值μβ,同時獲得方差:
通過遷移學習[26],利用VGG16預訓練模型具有的紋理和形態抓取能力提升訓練效率。巖石分類任務需要修改模型以滿足輕量化目標,因此采用凍結訓練,保持遷移部分模型參數不變,優化修改部分初始參數,降低訓練時的反向傳播深度,隨后進行正常訓練以提升模型的識別能力。
為進一步提升訓練效率,采用Softmax 函數[27]優化輸出。Relu 作為激活函數,可降低計算復雜度,抑制飽和區漂移[28-29]。采用交叉熵作為損失函數以滿足多分類任務,優化器采用Adam[30],相較于動量及自適應等優化方法[31],其訓練更加穩定。
VGG 模型可分為A、A-LRN、B、C、D、E 6 個配置方案,相較于其他配置,D 型配置參數量適中、適用性廣,因此本文選用D 型配置進行遷移訓練。
VGG16 使用卷積層、池化層組合進行圖像特征提取,使用全連接層作為決策部分給出結果。連續的多個小型卷積核可等效于較大的卷積核,在提高網絡深度的同時降低了模型訓練難度[5]。VGG16 采用深層次卷積抽取更為抽象的高級特征,而巖石樣本特征比較簡單,宜使用較淺層的網絡抽取。因此,削減卷積層、池化層組合,以更適應輕量化目標以及巖石分類任務,同時降低訓練難度。VGG16 全連接層采用4 096 個神經元以實現千分類,對于類別較少的分類任務,可削減神經元數量以實現模型輕量化訓練和部署。
由于原VGG 模型被應用于千分類任務,因此削減特征抽取部分,重構決策部分。采用批歸一化層設計3 個模型,具體參數見表1。
VGG 模型直接遷移產生VGG-T1,替換千分類為七分類輸出,作為典型遷移學習方案以供參考。VGG-T1 模型相對冗余,效率較低,計算資源開銷大。巖石樣本的形態結構特征較為簡單,顏色特征和分布特征明顯,知識量小,易于抽取,因此應降低網絡深度,構建VGG-T2 模型和VGG-T3模型。

Table 1 Model structure and parameters表1 模型結構與參數
VGG-T2 在VGG-T1 模型基礎上,刪除Conv4.x、Maxpooling4、Conv5.x、Maxpooling5,倍增Maxpooling3 池化核及其步長,且模型決策部分的神經元減半。VGG-T2 模型層次較淺,易于訓練。
然而,卷積層采用局部感受野和權值共享方式,參數量較全連接層少,削減卷積層對模型參數的影響不大。因此,若需進一步降低參數量,則應以全連接層參數的削減為先。VGG-T2 雖然降低了網絡深度,但是參數量沒有明顯下降。因此,構建輕量化VGG-T3 模型,削減了Conv5.x、Maxpooling5,同時倍增Maxpooling4 池化核及其步長,模型決策部分神經元減半,得到VGG-T3 模型的參數量為 63 244 615,相較于VGG-T1 以及VGG-T2,模型參數量幾乎減半。VGG-T3 相較于VGG-T2 更具有深度,VGG-T3模型結構如圖1所示。
模型學習率均采用階梯下降式,采用交叉熵計算損失,利用Adam 進行優化,并將Batch Size 統一為32。首先對3 個模型各進行300 次迭代的凍結訓練,學習率如表2所示,然后對最優模型進行100 次迭代的正常訓練,如表3所示。

Fig.1 Structure of VGG-T3 model圖1 VGG-T3模型結構
VGG16 模型作為基礎模型,以卷積操作作為圖像抽取的主要方法,計算量主要來源于卷積運算,則可根據卷積運算的時間復雜度以及空間復雜度Space~O進行粗略估算。其中,對于輸出的特征圖M,K為卷積核,Cl-1為輸入通道數,Cl則為輸出通道數。考慮到卷積步長以及卷積核大小K對于輸出特征圖M的影響,由公式(5)進行計算。

Table 2 Learning rate of frozen training表2 凍結訓練學習率

Table 3 Learning rate of normal training表3 正常訓練學習率
其中,X為輸入的特征圖,Padding為進行邊緣卷積時所添加的填充,Stride為卷積步長。
數據集含有高清巖石圖片數據,巖石樣本根據性質劃分為7 類。為最大限度保存巖石樣本的豐富信息,因此對圖像進行切分,利用縮放、鏡像、旋轉、亮度調節等方法生成大量數據集,以進行圖像增強學習,預防模型過擬合。
通過對圖像進行處理,生成的圖片樣本數據如表4 所示。通過圖像增強方法,可以使同一實體以不同狀態出現在不同圖片上,進一步增強了模型泛化能力。

Table 4 Data of rock samples表4 巖石樣本數據
凍結訓練時的準確率變化如圖2 所示,其中測試集準確率相近,達到100%,而在驗證集中,模型表現略有差異。由圖2 可見,VGG-T1 驗證集的準確率在50 次迭代后達到相對穩定,接近70%,訓練效果良好;VGG-T2 相較于VGG-T1 下降約5%,模型性能并不理想;VGG-T3 則相較于VGG-T1 略微下降,考慮其為輕量化模型,參數量遠少于VGG-T1,因此表現優異。經分析發現,VGG-T2 削減的特征抽取部分較多,表現稍欠;VGG-T3 識別能力與VGGT1相近,且參數量少,適合當前任務。
3 種模型在訓練集上的準確率均為100%,在驗證集上的準確率則保持在70%左右,其原因非過擬合,而是卷積層沒有進行訓練,因而抽取特征的能力有限。VGG-T3 相較于VGG-T1 參數量少,識別能力強,為最優的訓練模型,可作為巖石樣本識別模型,通過進一步訓練以增強其分類能力。
為進行快速訓練,首次訓練時采用凍結訓練方法。由于卷積層抽取特征的能力有限,因此解凍VGG-T3 卷積、池化層組合,對VGG-T3 進一步作正常訓練。訓練效果如圖3所示。

Fig.2 Accuracy rate change of models in frozen training圖2 凍結訓練時模型準確率變化
在經過凍結訓練后,VGG-T3 模型具備較優的初始參數。在正常訓練中,準確率逐步上升,最終的準確率為訓練集達到100%,驗證集達到97.81%。
實驗結果證明,采用凍結訓練對全連接層部分進行初值引導,通過少量計算資源獲取了較好的全連接層初值,然后對模型解凍并進一步訓練,以達到最終效果。其效率和穩定性均優于直接對模型進行訓練,而且降低了計算資源開銷。對整個模型,尤其是具有深度的模型直接進行訓練,容易導致過擬合問題,對計算資源需求量大,單次訓練更新參數多,訓練緩慢。

Fig.3 Result of VGG-T3 model in normal training圖3 VGG-T3正常訓練效果
采用VGG-T3 對實際的巖石樣本測試集進行測試,結果表現優異,準確率達到97.74%。測試集共包含圖片700張,每種巖石樣本各有100 張圖片。其中,對黑色煤的分類準確率最高,對灰黑色泥巖、灰色細砂巖、深灰色泥巖的分類準確率略低。由于淺灰色細砂巖、灰色泥質粉砂巖以及深灰色粉砂質泥巖三者呈現的視覺特征相似,容易互相混淆,因此識別相對困難。
采用AlexNet、VGG19 的典型遷移模型以及VGG-T3進行比較,所有模型均采用相同的訓練方式,300 次迭代的凍結訓練效果如圖4所示。

Fig.4 Comparison of accuracy change graph in frozen training圖4 凍結訓練時準確率變化比較
VGG-T3、VGG19 在訓練集上能較快達到100%的準確率,AlexNet 則較慢。然而,VGG19 在驗證集上表現不佳,因其模型過大,訓練困難且易產生過擬合,而VGG-T3模型表現平穩,訓練效果良好。最后進行100 次迭代的正常訓練,最終結果如表6所示。

Table 6 Comparison of AlexNet,VGG19 transfer model and VGGT3表6 AlexNet、VGG19遷移模型與VGG-T3比較
VGG19 模型較為臃腫,訓練存在一定困難,容易陷入過擬合狀態,且迭代時因其參數量大,準確率上升緩慢,因此在400 次迭代中未獲得較好結果。若需得到較好結果,則需要繼續訓練。AlexNet 模型深度較淺,抽取特征的能力不足,分類能力有限,也沒有得到較好結果。通過對比實驗得出,VGG-T3模型在訓練中表現優異,能夠在較少次數的迭代中得到較好結果,且模型分類能力強。
本文基于VGG16 模型提出輕量化VGG-T3 模型,該模型參數量少、識別效果好,訓練過程中模型收斂穩定,最終在訓練集上可達到100%的準確率,在驗證集上達到97.81%的準確率,在實際測試集上達到97.74%的準確率,模型準確率較高。
七分類的樣本知識量有限,因此可通過減少模型參數以提升其運行效率。通過實驗觀察得到,凍結訓練可極大地減少計算資源的浪費。通過此方法,模型得以穩定訓練、快速收斂,其訓練出的輕量化VGG-T3 模型能夠作為參考評價系統,并實際應用于巖石樣本分類。
VGG-T3 模型較其余模型更能勝任巖石樣本分類任務,但其模型參數量依舊偏多,可通過Teacher-Student 模型進一步壓縮模型,在保持識別能力的同時減少參數,也可以采用殘差結構的模型以提升模型訓練的穩定性及分類能力。另外,通過深層次的網絡模型配合全局平均池化也能構建輕量化模型,深層次網絡模型的大量特征可避免全局平均池化大量壓縮信息而帶來的欠擬合問題。同時,采用全局平均池化替代全連接層,能極大地減少模型參數量。VGG-T3 模型可通過此類方法作修改,以進一步減少自身參數量,實現更加輕量化、更高效率的神經網絡模型。