徐小平,余香佳,劉廣鈞,劉 龍
1(西安理工大學 理學院,西安 710054)
2(西安理工大學 自動化與信息工程學院,西安 710048)
隨著科學技術的快速發(fā)展,非金屬礦的各種礦種應用日新月異,其戰(zhàn)略意義逐步提高.尤其是石墨被譽為“二十一世紀支撐高新技術發(fā)展的戰(zhàn)略資源”,具有良好的耐高溫性、導電性、化學穩(wěn)定性和抗熱震性等[1],不僅是新能源、新材料、航天航空等領域關鍵原材料,還是耐火材料、電極電刷、鉛筆等傳統工業(yè)領域的重要原料[2].在高科技產業(yè)發(fā)展中,石墨所占地位越來越重要,其獨特的物理特性使其能夠應用于國計民生的各個領域,具有十分重要的工業(yè)價值[3,4].
以卷積神經網絡(convolution neural network,CNN)為代表的深度學習算法在大數據時代得到快速發(fā)展,在機器學習和計算機視覺等研究領域備受關注[5,6].CNN 作為一種深度前饋神經網絡,在圖像識別領域取得了不小的突破[7].相比于傳統的分類方法,基于卷積網絡的全自動分類方法脫離了人力識別的繁瑣,同時利用反向傳播算法自動優(yōu)化模型參數,獲得當前條件最優(yōu)模型.深度學習的概念是Hinton 等人[8]于2006年提出的,它能更抽象、更深層次描述物體的屬性和特征,并且設計出AlexNet 網絡,從此掀起了一波深度學習的熱潮.2016年,Ebrghimi 等人[9]提出了一種基于層次分析法和特征映射的圖像視覺方法,利用圖像識別辨別出16 種常見礦石;2017年,胡發(fā)煥[10]采用模糊支持向量機(NP-FSVM)對礦石圖像進行初步識別;同年,伍云霞[11]將BP 神經網絡與小波變換相結合,取得較高的識別率;2019年,呂紅杰[12]使用AlexNet 卷積神經網絡用于煤巖識別并取得較好的圖像識別結果;2020年,王李管等人[13]使用改進的卷積神經網絡應用于鎢礦分類問題.
作為圖像識別領域中的強大算法[6,7],目前鮮有研究者將CNN 應用到石墨的圖像識別任務中.與GoogLeNet、ResNet 等更先進的模型相比,AlexNet 具有更簡單的網絡結構和更少的網絡參數[7];相比于現有的輕量級網絡深度深,訓練難度不會很大,表征能力強,更方便做出不同的改進,可以節(jié)省大量模型訓練時間,更不易過擬合[6].因此,本文給出利用AlexNet和深度學習的圖像識別技術進行石墨與非石墨識別分選.針對石墨圖像本身特征及數據集過小,通過對數據集進行圖像預處理達到數據增強的目的,同時對激活函數、歸一化層、卷積核、Dropout 層和優(yōu)化器進行替換更新.仿真實驗結果表明,與相關算法相比,本文所提方法復雜度低、參數量少,提高了網絡的收斂速度,減低了損失率,有效地實現了石墨的圖像識別目標.
AlexNet 屬于CNN的一種,而CNN 屬于人工神經網絡,已經廣泛應用于圖像識別等機器學習領域[6].由于它的網絡結構采用了權值共享方式,更加類似于生物神經網絡,其優(yōu)點相對于一般神經網絡,減少了網絡的權值數量.CNN 最大的優(yōu)勢在于通過感受野和共享權重減少網絡的參數,即參數減少和權值共享.該方法使得訓練速度更快,而且訓練需要的樣本更少.CNN基本網絡結構如圖1所示,分為4 個部分:輸入層(input),卷積層(convolution,Conv),全連接層(full connected layer,FC)和輸出層(output).
卷積神經網絡與其他神經網絡模型最大的區(qū)別在于,卷積神經網絡在神經網絡的輸入層前面連接了卷積層,這樣卷積層就變成了卷積神經網絡的數據輸入層.卷積層是卷積神經網絡中獨特的網絡結構,主要進行圖像的特征提取;池化層針對特征圖進行稀疏處理,減少數據的運算量;全連接層在整個卷積神經網絡中起到“分類器”作用,它將在已學到的“內容”映射到樣本標記空間(把前面提取到的特征綜合起來).CNN的連接過程如圖2所示.
圖2中,fx表示數字濾波器;bx表示偏置;Cx表示卷積層的特征圖;Wx+1表示下采樣的權值;bx+1表示對應的權重;Sx+1表示下采樣層.
AlexNet 是ISLVRC 2012 (ImageNet large scale visual recognition)競賽的冠軍網絡,分類準確率提升到了80%以上,其網絡結構如圖3所示.
該網絡包含8 層結構,其中5 層卷積層、3 層全連接層.在AlexNet 網絡中還包含3 個池化層(Pooling),卷積層和池化層交替連接使用.
在AlexNet 網絡中,5 層卷積層分別使用1 1×11、5×5、3×3、3×3、3×3的卷積核進行特征提取.Alex-Net 舍棄此前普遍使用的Sigmoid 或tanh 函數,采用ReLU 作為激活函數;由于經過ReLU 函數得到的值域沒有區(qū)間,因此AlexNet 提出了局部響應歸一化(local response normalization,LRN),對ReLU 得到的數據進行歸一化處理,抑制小的神經元,提高模型的泛化能力.
為了提高模型的泛化能力,使用大樣本數據集進行訓練是最好的辦法.對于小樣本數據集,在深度學習中可以采用數據增強的方法來解決數據不足的問題[14].這里利用PyTorch的圖像預處理包Transform 對數據集中的圖片進行如圖4所示的預處理操作.
首先將測試集進行隨機裁剪得到圖像像素為224×224,并依概率(設置p=0.5)對圖像進行水平翻轉,最后對處理過的數據集進行歸一化處理,達到數據增強的目的.
在AlexNet 網絡中,雖然將ReLU 函數作為激活函數有效克服了Sigmod和tanh 函數梯度消失、收斂速度慢等缺點,但是ReLU 在x>0的區(qū)域使用x進行線性激活,有可能造成激活后的值太大,影響模型的穩(wěn)定性,這會使得網絡的訓練速度下降,甚至可能會降低網絡的泛化性能.為抵消ReLU的線性增長部分,本文使用ReLU6 函數.
相比于ReLU 函數,模型中使用ReLU6 作為非線性層,在低精度計算時能壓縮動態(tài)范圍,算法更穩(wěn)健.
原始AlexNet 中使用了LRN 對第一、二層進行歸一化操作,以增強模型的泛化性能,但LRN 算法對模型的實際改善效果有限,同時極大增加模型的訓練時間.文獻[15]中提出批量歸一化(batch normalize,BN)算法能夠減小經過激活函數而導致的數據偏移,有效解決訓練過程中數據分布不一致的問題.BN 算法通過計算小批次中的均值和方差達到特征歸一化的目的.
給定一個尺寸為n的批量B={x1,x2,···,xm},在訓練過程中,式(2)和(3)記錄各個批量的均值和方差:
最后在實際的測試中求得整個數據集的均值與方差,進行歸一化處理,即:
BN 算法的關鍵之處在于進行變換重構,引入可拉伸參數 γ與偏移參數 β進行如式(10)的修正處理.
VGG (visual geometry group)網絡是牛津大學計算機視覺組和Google DeepMind 研發(fā)的深度卷積神經網絡.該網絡結構使用 3×3大小的卷積核來擴大通道數,以提取更復雜和更具有表達力的特征,且具有擴展性強、泛化能力好等特點[16].因此本文借鑒VGG 網絡的優(yōu)點,將AlexNet 網絡中的卷積核大小均修改為3×3,大大減少參量數目,提取更為具體的特征.
本文選用Adam 優(yōu)化器,以0.000 2為初始學習率;選擇交叉熵作為損失函數,避免均方誤差帶來的學習速率逐漸降低的問題.由于在AlexNet 網絡的全連接層引入了大量的參數,因此在全連接層后加入Dropout,這種技術減少了神經元復雜的共同適應,使模型更有效的進行融合.改進后的AlexNet 網絡模型如圖5所示.
本文采用改進的AlexNet 網絡模型完成數據集的自動分類任務.模型的總體框架如圖6所示.
本文在Python 語言的編譯環(huán)境下,使用1.5.0 版本PyTorch 框架完成實驗仿真,通過Transform 實現圖像數據的預處理.實驗環(huán)境為:Mac OS 10.14.6 版本操作系統,處理器為1.6 GHz Intel Core i5,未使用GPU加速,運行一次網絡平均消耗9 000–10 000 s.設置權衰量為0.01,用于防止過擬合;迭代周期epoch為100,一個batch 大小設置為32;所有權重參數初始化為均值為0、標準差為0.01的高斯分布,同時將訓練集圖片在輸入前隨機打亂,減少圖片順序對模型的影響.
本文圖像樣本采集自實驗室現有石墨樣品,將其清洗干凈后進行干燥操作,利用iPhone 手機后置攝像頭從不同方向及角度拍攝樣本圖像視頻,隨后對視頻進行分幀處理,共得到166 張樣本圖像.同時在網絡上收集非石墨礦石圖像180 張,最終將圖像分為石墨與非石墨兩種類別,共346 張彩色圖片.圖7為石墨與非石墨的樣本圖像.
一般的,數據集越充足,模型訓練的效果越好,其泛化能力得到增強.為解決訓練樣本不足的問題,本文對以上數據集進行了數據擴充,對收集到的圖像分別做中心裁剪、樣本旋轉(180°、90°)、繞X 軸翻轉以及均值模糊操作,最終得到1 857 張圖像,按照比例隨機選取數據集中955 張(80%)作為訓練集對網絡進行訓練,902 張(20%)作為測試集驗證網絡的性能.將訓練集與測試集分開處理.數據集分類情況如表1所示.
表1 石墨數據集
為降低樣本的不平衡性和解決數據集過小容易造成的過擬合現象,本文對數據集進行數據增強(data augmentation,DA)操作,提高網絡分類準確率.在DA操作中,常見方法包括尺度變換、圖像對比度調整、圖像裁剪、仿射變換、水平或垂直翻轉等,針對不同的數據集可選擇不同的增強方法.基于礦石圖像的特征,將訓練集圖片在輸入前隨機打亂,減少圖片順序對模型的影響;將訓練集中的每張圖片進行隨機裁剪,統一圖像像素為224×224,并依概率(設置p=0.5)對圖像進行水平翻轉,最后以0.5的均值與0.5的標準差分別對每個通道的數據正則化處理,達到數據擴充與數據增強的目的.
本文以準確率(Accuracy,acc)和損失(Loss)這兩個指標評估一個網絡的訓練效果.測試準確率是指模型在測試集上輸出正確結果的比率,能反映一個網絡的使用效果,是很重要的指標.其定義公式如式(6)所示:
其中,ncorrect表示測試集中網絡識別正確的個數,n表示測試集樣本個數.
神經網絡的訓練過程是最小化損失函數的過程,Loss 即為損失函數的值.實際上,損失函數計算的是模型在測試集上的均方誤差(MSE,E):
本文使用改進的AlexNet 模型與傳統的AlexNet模型分別對數據集進行訓練,圖8展示了使用ReLU6函數與ReLU 函數的損失與準確率的變化曲線.通過實驗仿真發(fā)現,使用ReLU6 函數可使得損失值由0.092 5降為0.077 2,達到相對較小.
針對歸一化層,本文對比使用BN 算法與未使用BN 算法兩種情況進行仿真,結果如圖9所示.
圖9結果表明,使用BN 算法有效降低模型測試的損失值,同時避免了模型陷入過擬合風險.為了進一步觀察卷積層在使用BN 算法前后特征提取的情況,隨機提取出數據集中的一張圖片,如圖10所示,分類為石墨.
依次打印出圖10在Conv1,Conv2 與Conv3的前12 個通道的特征提取圖,如圖11所示.
由圖11可知,傳統的AlexNet 網絡在第3 卷積層所提取的特征已經較為模糊,學習能力不是很好;相比使用BN 算法后的模型,特征提取能力增強,可保證網絡進行快速、充分的學習.使用BN 算法前后的圖像識別損失與準確率如表2所示.
表2 加入BN 算法的損失與準確率對比
除激活函數與歸一化層的改進,本文還對卷積核大小做出修改,如圖12所示.
圖12展示了在以上改進的基礎上,使用 3×3小卷積核的損失值與準確率對比情況.明顯看出使用小卷核提高了模型的泛化能力,減低了模型在測試集上的損失值.
為了評估改進的AlexNet 網絡對石墨分類數據集的識別性能,將傳統的AlexNet 網絡、文獻[7]、文獻[17]的AlexNet 網絡作為對照組,提取出Conv2的情況,如圖13所示.
通過圖13可以看出,使用改進的AlexNet 網絡在第2 卷積層中的特征情況較其他兩種模型更為清晰,提取學習到更多的特征.最后得到模型損失與準確率的對比曲線如圖14所示,進一步驗證本文提出的改進AlexNet 網絡的有效性.
通過對測試集的實驗,將傳統的AlexNet 網絡、文獻[7]、文獻[17]的方法作為對照組,與本文方法的損失與準確率對比如表3所示.
表3 損失率與準確率對比
由表3可知,使用本文提出的改進的AlexNet 網絡較其他兩種情況效果更好,有效驗證了本文所提出的網絡模型的可行性與有效性.
石墨數據收集難度較大,該領域研究的專業(yè)性較強,導致石墨的智能識別發(fā)展不易.本文使用改進的AlexNet 卷積網絡實現石墨識別,此過程不需要人工提取石墨的圖像特征,智能化程度較高,訓練過程較為簡單.通過對AlexNet的激活函數、歸一化層和超參數的優(yōu)化,提高了整體模型的魯棒性,在不增加模型計算復雜度的同時避免了過擬合問題.實驗結果表明,本文改進算法較傳統AlexNet的分類平均準確率得到提高,損失值降低,模型具有較強的泛化性.將改進AlexNet模型應用于石墨圖像識別,增加了選礦流程的自動化程度,減少了人工揀選的工作量.但本文使用數據集為小數據集且石墨樣本為塊狀,增加石墨種類對數據集進行擴充,對市面上絕大部分的流動石墨進行識別是下一步的研究方向.