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