韓東偉,王小明,王新峰
(河南中煙工業(yè)有限責(zé)任公司許昌卷煙廠,河南許昌 461000)
煙草的質(zhì)量識(shí)別長(zhǎng)期以來主要依賴人工分揀和分類,效率慢且受操作人員的主觀因素影響較大。深度學(xué)習(xí)網(wǎng)絡(luò)作為一種新的機(jī)器學(xué)習(xí)技術(shù),在圖像處理和智能識(shí)別領(lǐng)域得到了廣泛應(yīng)用,并有著優(yōu)異的性能。隨著近年來深度學(xué)習(xí)技術(shù)的快速發(fā)展,以圖像處理和語(yǔ)音識(shí)別為主的深度學(xué)習(xí)技術(shù)的應(yīng)用也得到廣泛展開,在各行各業(yè)中都得到了普遍應(yīng)用,并在農(nóng)業(yè)領(lǐng)域取得了較大的經(jīng)濟(jì)與社會(huì)收益[1]。我國(guó)的煙葉種植和煙草制品消費(fèi)量均十分龐大,將深度學(xué)習(xí)技術(shù)與圖像處理相結(jié)合并在煙草工業(yè)中應(yīng)用對(duì)于煙草行業(yè)的現(xiàn)代化建設(shè)十分關(guān)鍵[2]。筆者利用深度學(xué)習(xí)網(wǎng)絡(luò)構(gòu)建煙葉的熟成度分類模型,進(jìn)行智能化的煙葉質(zhì)量識(shí)別,旨在提高煙葉分揀及分類工作的效率和精度。
煙葉的質(zhì)量和熟成度檢驗(yàn)主要分為內(nèi)部檢測(cè)和外部檢測(cè)。內(nèi)部質(zhì)量檢測(cè)指的是煙葉的化學(xué)成分、燃燒測(cè)試、化學(xué)分析和通過人體感官進(jìn)行的吸煙測(cè)試來實(shí)現(xiàn)的,而外部質(zhì)量檢測(cè)主要通過人的肉眼對(duì)煙葉進(jìn)行觀察。由于煙葉化學(xué)成分復(fù)雜,內(nèi)部質(zhì)量檢測(cè)費(fèi)用較高,且費(fèi)時(shí)費(fèi)力[3]。因此,外部質(zhì)量檢測(cè)經(jīng)常在對(duì)時(shí)間要求較高的情況下被選擇來代替內(nèi)部質(zhì)量檢測(cè),且煙葉的內(nèi)部質(zhì)量也與其外部質(zhì)量密切相關(guān),有經(jīng)驗(yàn)的煙廠生產(chǎn)人員往往僅憑肉眼觀察就能分辨煙葉的質(zhì)量和熟成度。煙葉的外部質(zhì)量檢驗(yàn)包括色澤、熟成度、表面紋理、大小和形狀。在通過人類視覺進(jìn)行煙葉質(zhì)量檢驗(yàn)時(shí),不可避免地受到檢驗(yàn)人員的身體、心理和環(huán)境的影響。
烤煙煙葉的具體分級(jí)標(biāo)準(zhǔn)可能因國(guó)家和地區(qū)而異,但煙葉分類的一般方法和考察的外部特征相似。首先,煙葉被分類為正常煙葉和異常煙葉。一般情況下,大部分的煙葉都屬于正常煙葉,因此對(duì)異常煙葉暫不進(jìn)行討論。其次,正常煙葉根據(jù)其在煙草植株的莖上生長(zhǎng)的位置和顏色不同,分為X下部(lugs)、C中部(cutters)、B上部(leaf)。對(duì)生長(zhǎng)位置的判斷主要基于顏色、表面紋理、煙葉的形狀和葉脈特征。葉片按顏色分為L(zhǎng)檸檬黃色(lemon)、F橘黃色(orange)和R紅棕色(red-brown)。通過生長(zhǎng)位置和葉片顏色的組合,得到:下部檸檬黃色(XL)、下部橘黃色(XF)、中部檸檬黃色(CL)、中部橘黃色(CF)、上部檸檬黃色(BL)、上部橘黃色(BF)和上部紅棕色(BR)。
煙葉熟成度分類參照GB2635-1992烤煙的規(guī)定?!犊緹煛穱?guó)標(biāo)中將熟成度分為完熟、成熟、尚熟、欠熟和假熟5個(gè)等級(jí)。按照國(guó)標(biāo)要求,烤煙煙葉熟成度的判斷依據(jù)包括成分、結(jié)構(gòu)、密度、油分、氣味、顏色、斑點(diǎn)、光滑程度和色度等。煙葉熟成度等級(jí)及相應(yīng)外觀特征見表1。其中,結(jié)構(gòu)、顏色、斑點(diǎn)、光滑程度等在一定程度上都可以采用機(jī)器視覺技術(shù)來進(jìn)行自動(dòng)分揀、分類和評(píng)級(jí)。
表1煙葉熟成度等級(jí)及相應(yīng)外觀特征
Table1Theripeningdegreelevelandappearancecharacteristicsoftobacco
等級(jí)Level熟成度Ripeningdegree外觀特征Appearancecharacteristics1完熟結(jié)構(gòu)疏松,顏色多橘黃或淺紅棕色,有明顯的成熟斑,有些伴有赤星病斑2成熟沒有任何的含青或明顯的掛灰和蒸片類的雜色,沒有大面積的光滑葉,色度無異常3尚熟外觀有一定的含青,有較大面積的光滑葉,或有較明顯的掛灰和蒸片等雜色,顏色偏淺淡4欠熟有較大程度的含青,或者有較大面積的僵硬(光滑),有嚴(yán)重的掛灰或蒸片等雜色現(xiàn)象5假熟顏色較淺或身份較薄,調(diào)制后表現(xiàn)為黃色的煙葉
深度學(xué)習(xí)網(wǎng)絡(luò)是基于大數(shù)據(jù)信息建立的統(tǒng)計(jì)學(xué)習(xí)方法[4],屬于人工智能領(lǐng)域中的機(jī)器學(xué)習(xí)學(xué)科,其目的是通過大量樣本的統(tǒng)計(jì)學(xué)習(xí),建立針對(duì)某種特定問題的專家系統(tǒng),借助或不借助人類知識(shí)自動(dòng)解決某一領(lǐng)域的特定問題。深度學(xué)習(xí)網(wǎng)絡(luò)的主要思想是:通過建立具有多個(gè)層次的神經(jīng)網(wǎng)絡(luò),實(shí)現(xiàn)對(duì)輸入數(shù)據(jù)的深層次表達(dá),從而實(shí)現(xiàn)更好的分類與特征抽取。使用深度學(xué)習(xí)方法,可以讓計(jì)算機(jī)自動(dòng)學(xué)習(xí)到人工方法未必能夠發(fā)現(xiàn)的重要特征。
深度學(xué)習(xí)方法作為人工智能領(lǐng)域和機(jī)器學(xué)習(xí)學(xué)科的一種最新的技術(shù),近年來獲得了大量關(guān)注和研究[5]。針對(duì)深度學(xué)習(xí)的理論研究、算法設(shè)計(jì)和應(yīng)用系統(tǒng)在許多領(lǐng)域廣泛應(yīng)用[6-7],如語(yǔ)音識(shí)別、圖像分類和自然語(yǔ)言處理等[8]。目前最主要的深度學(xué)習(xí)方法包括深度置信網(wǎng)絡(luò)(Deep belief network,DBN)[9]、卷積神經(jīng)網(wǎng)絡(luò)(Convolutional neural network,CNN)[10]、循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent neural network,RNN)和堆疊自動(dòng)編碼器(Stacked autoencoders,SAE)等[11]。
AE是3層神經(jīng)網(wǎng)絡(luò),將輸入表達(dá)編碼為一個(gè)降維映射,并將該降維映射重新解碼還原為原輸入,在訓(xùn)練過程中最小化重構(gòu)誤差。
筆者采用自動(dòng)編碼器和卷積神經(jīng)網(wǎng)絡(luò)相結(jié)合的方法,建立一種采用無監(jiān)督預(yù)訓(xùn)練,以提高訓(xùn)練深度的專門網(wǎng)絡(luò),通過對(duì)烤煙煙葉的圖像數(shù)據(jù)識(shí)別,自動(dòng)進(jìn)行烤煙煙葉檢驗(yàn)與分級(jí)。
2.1稀疏自動(dòng)編碼器稀疏自動(dòng)編碼器是神經(jīng)網(wǎng)絡(luò)的一種,其機(jī)制是試圖在無監(jiān)督過程中使其輸出與輸入近似。自動(dòng)編碼器的基本模型是一個(gè)3層網(wǎng)絡(luò)(圖1),其隱含層神經(jīng)元個(gè)數(shù)往往少于輸入特征數(shù),因此輸入層到隱含層相當(dāng)于一個(gè)編碼過程,而隱含層到輸出層則視為解碼。在編碼過程中,自動(dòng)編碼器試圖將輸入向量x按一定的映射編碼為xcn,如式(1)所示。
y=f(x)
(1)
當(dāng)編碼過程完成后,解碼過程是將編碼的特征向量y重構(gòu)成新的向量x′,并使得x′盡可能地還原x,其過程如式(2)所示。
x′=g(y)
(2)
x′的維數(shù)一般小于x,但其可以通過g(y)來還原x,因此可視其為x的特征向量。自動(dòng)編碼器的作用就是通過特征提取將高維問題轉(zhuǎn)化為低維問題,從而降低問題的復(fù)雜度,以使問題更容易求解。使x′接近于x的過程可以用反向傳播算法來訓(xùn)練,從而獲得編碼y。該算法邏輯如圖2所示。
輸入層到隱含層的映射即編碼過程,對(duì)任何i維向量x∈Rn,經(jīng)過輸入層到隱含層的映射,獲得該向量對(duì)應(yīng)的低維向量y=f(x),y∈Rd。從隱含層到輸入層的過程,自動(dòng)編碼器對(duì)該向量的對(duì)應(yīng)低維向量y進(jìn)行“解碼”,得到與x同維度向量x′。通過反向傳播算法訓(xùn)練網(wǎng)絡(luò),并調(diào)整f(x)與g(x)的參數(shù)以最小化重構(gòu)誤差,使存在一個(gè)足夠小的正數(shù)ζ且|x′-x|<ζ。
圖1 自動(dòng)編碼機(jī)網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 The network structure of automatic coding machine
圖2 自動(dòng)編碼機(jī)算法邏輯Fig.2 The algorithm logic of automatic coding machine
在具體訓(xùn)練過程中,將電能計(jì)量器具的運(yùn)行條件矩陣X作為自動(dòng)編碼器的輸入矩陣,xi∈Rn×l是矩陣X中的第i條測(cè)試數(shù)據(jù)對(duì)應(yīng)的條件向量,將xi作為自動(dòng)編碼器的第i個(gè)輸入向量,編碼層的神經(jīng)元數(shù)量為d,通過式(3)得到編碼hi∈Rd×l。
yi=sf(Wxi+b)
(3)
(4)
(5)
2.2卷積神經(jīng)網(wǎng)絡(luò)卷積神經(jīng)網(wǎng)絡(luò)是由用于特征提取的卷積層和用于特征處理的亞采樣層交疊組成的多層神經(jīng)網(wǎng)絡(luò)。網(wǎng)絡(luò)輸入是一個(gè)圖像的數(shù)字矩陣,輸出則是其識(shí)別結(jié)果。輸入圖像經(jīng)過若干個(gè)“卷積”和“采樣”加工后,在全連接層網(wǎng)絡(luò)實(shí)現(xiàn)與輸出目標(biāo)之間的映射。卷積神經(jīng)網(wǎng)絡(luò)是Hubel、Wiesel等通過對(duì)貓科動(dòng)物視覺系統(tǒng)的研究中受到啟發(fā)而設(shè)計(jì)的。
(6)
池化層作用是基于局部相關(guān)性原理進(jìn)行池化采樣,從而在減少數(shù)據(jù)量的同時(shí)保留有用信息。采樣過程可以表示為:
(7)
式中,down()表示采樣函數(shù)。卷積神經(jīng)網(wǎng)絡(luò)在卷積層和采樣層后,通常會(huì)連接一個(gè)或多個(gè)全連接層。全連接層的結(jié)構(gòu)和全連接神經(jīng)網(wǎng)絡(luò)的隱層結(jié)構(gòu)相同,全連接層的每個(gè)神經(jīng)元都會(huì)與下一層的每個(gè)神經(jīng)元相連。對(duì)多類別圖像分類任務(wù)而言,在輸出層需要采用Softmax分類器將任務(wù)類別進(jìn)行獨(dú)立編碼,并采用最小化交叉熵作為損失函數(shù)。Softmax歸一化概率函數(shù)定義如下:
zi=zi-max(z1,z2,…,zm)
(8)
(9)
式中,zi是每一個(gè)類別線性預(yù)測(cè)的結(jié)果,由于網(wǎng)絡(luò)最終需做歸一化處理,因此減去一個(gè)最大值并不會(huì)改變最終結(jié)果,而會(huì)起到保持計(jì)算時(shí)的數(shù)值穩(wěn)定性的作用。同時(shí),根據(jù)σi(z)來預(yù)測(cè)輸入zi屬于每個(gè)類別的概率。這樣,損失函數(shù)定義為:
L(zi)=-logσi(z)
(10)
在訓(xùn)練過程中,卷積神經(jīng)網(wǎng)絡(luò)仍采用輸入正向傳播和誤差反向傳播算法進(jìn)行訓(xùn)練,最小化分類或回歸誤差。
卷積神經(jīng)網(wǎng)絡(luò)采用權(quán)值共享和卷積操作代替了傳統(tǒng)神經(jīng)網(wǎng)絡(luò)層與層之間的矩陣內(nèi)積運(yùn)算,有效加深了網(wǎng)絡(luò)深度并提高了網(wǎng)絡(luò)的訓(xùn)練效果。但對(duì)于深度網(wǎng)絡(luò)而言,反向傳播算法的梯度消失問題仍然沒有徹底解決。對(duì)于更加復(fù)雜的處理對(duì)象而言,網(wǎng)絡(luò)深度的增加依然會(huì)導(dǎo)致網(wǎng)絡(luò)的學(xué)習(xí)效能降低。
自動(dòng)編碼器采用最小化重構(gòu)誤差進(jìn)行無監(jiān)督訓(xùn)練,在堆疊自動(dòng)編碼器中,這個(gè)訓(xùn)練過程實(shí)際上成為一種預(yù)訓(xùn)練(pre-training)。預(yù)訓(xùn)練是一種廣泛使用的深度網(wǎng)絡(luò)訓(xùn)練方法,通過預(yù)先將網(wǎng)絡(luò)權(quán)值調(diào)整到較為有利的位置,可以有效增加訓(xùn)練深度,提高網(wǎng)絡(luò)效能。筆者以此重構(gòu)一種新的網(wǎng)絡(luò)結(jié)構(gòu),網(wǎng)絡(luò)層間運(yùn)算采用卷積操作,并在卷積操縱之后使用反卷積操作作為解碼,利用最小化重構(gòu)誤差預(yù)調(diào)整網(wǎng)絡(luò)權(quán)值。在預(yù)訓(xùn)練結(jié)束后,再采用反向傳播算法微調(diào)網(wǎng)絡(luò)參數(shù),獲得更好的訓(xùn)練效果。網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示,此外,為自動(dòng)編碼器加入基于Kullback-Leibler(KL)散度的稀疏性限制,以在訓(xùn)模型練過程中盡量避免過擬合,其限制如式(11)所示。
(11)
(12)
則構(gòu)建的自動(dòng)編碼器重構(gòu)誤差的損失函數(shù)(loss function)歸納式如式(13)所示。式中,α為控制稀疏限制的權(quán)重因子。
(13)
4.1網(wǎng)絡(luò)結(jié)構(gòu)通過使用同樣數(shù)據(jù)集對(duì)最小二乘支持向量機(jī)(Least squares support vector machine,LS-SVM)、全連接多層感知機(jī)(Full-connection perceptions,F(xiàn)CP)和采用深度訓(xùn)練自編碼器(Stacked sparse autoencoder,DRSSA)進(jìn)行試驗(yàn),觀察其訓(xùn)練效果。各網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。
圖4a為全連接多層感知機(jī)網(wǎng)絡(luò)結(jié)構(gòu)圖,該模型共含有4個(gè)隱含層,每個(gè)隱含層含有5個(gè)感知機(jī)單元,層與層之間的感知機(jī)單元采用全連接方式。圖4b為堆疊自動(dòng)編碼器網(wǎng)絡(luò)結(jié)構(gòu)圖,共含有4個(gè)自動(dòng)編碼器,編碼器所含單元數(shù)分別為6、5、4、3,每2層采用無監(jiān)督預(yù)訓(xùn)練編碼器輸入與輸出,并將上一層編碼器的中間層作為下一層編碼器的輸入。輸出層為全連接層。在訓(xùn)練時(shí)將樣本數(shù)據(jù)的1/3作為預(yù)訓(xùn)練集(pre-training datasets)、其余2/3作為微調(diào)訓(xùn)練集(fine-tuning datasets)。
圖4 全連接多層感知機(jī)與堆疊稀疏自編碼器網(wǎng)絡(luò)結(jié)構(gòu)Fig.4 Network structure of fully connected multi-layer perception machine and stack sparse self-encoder
訓(xùn)練學(xué)習(xí)率η=-0.001,采用隨機(jī)梯度下降法(Stochastic gradient descent)進(jìn)行訓(xùn)練,batch size=50。損失函數(shù)(loss function)采用均方誤差(mean squared error, MSE):
(14)
對(duì)于給定樣例集合D={(x1,y1),(x2,y2),…,(xm,ym)},xi∈Rdd,yi∈Rld,其中yi為示例xi的真實(shí)標(biāo)記,m為樣本數(shù)據(jù)量,學(xué)習(xí)器預(yù)測(cè)結(jié)果為f(x)。
4.2仿真試驗(yàn)試驗(yàn)采用我國(guó)云南某煙草產(chǎn)地收集的煙草圖像數(shù)據(jù)集,數(shù)據(jù)集樣本數(shù)為3 000,格式均為240×240像素的RGB圖像。
通過對(duì)該數(shù)據(jù)分別采用最小二乘支持向量機(jī)(Least squares support vector machine)、全連接多層感知機(jī)(Full-connection perceptions,F(xiàn)CP)和重構(gòu)的堆疊稀疏自編碼器(Stacked sparse autoencoder,SSA)進(jìn)行試驗(yàn),觀察其訓(xùn)練效果。
從圖5可以看出,LS-SVM在最初幾次迭代中效果優(yōu)于FCP和SSA模型,這是由于SVM在針對(duì)小樣本空間的學(xué)習(xí)能力比神經(jīng)網(wǎng)絡(luò)算法要強(qiáng)。但隨著訓(xùn)練樣本和迭代次數(shù)的增加,神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)潛力開始展現(xiàn),最終FCP和SSA的模型誤差都要小于LS-SVM,說明在樣本數(shù)量足夠的情況下,神經(jīng)網(wǎng)絡(luò)算法對(duì)大數(shù)據(jù)的適應(yīng)能力更強(qiáng)。此外,SSA模型學(xué)習(xí)的收斂速度更快,最終誤差更小,說明SSA模型在針對(duì)煙葉熟成度識(shí)別這一特定的問題求解上具有更好的性能。
圖5 LS-SVM、FCP與SSA訓(xùn)練效果對(duì)比 Fig.5 The training effect comparison among LS-SVM,F(xiàn)CP and SSA
隨著煙草行業(yè)的發(fā)展,對(duì)行業(yè)整體的自動(dòng)化和智能化需求的上升,深度學(xué)習(xí)技術(shù)作為人工智能領(lǐng)域的前沿技術(shù),在煙草行業(yè)中的應(yīng)用還有很大的拓展空間。重構(gòu)的堆疊稀疏自編碼器(Stacked sparse autoencoder,SSA)模型在訓(xùn)練深度提高時(shí)可以有效保持訓(xùn)練效果,一定程度上避免誤差消失,并在煙葉熟成度識(shí)別試驗(yàn)中表現(xiàn)出良好的識(shí)別性能。結(jié)果表明,重構(gòu)的堆疊稀疏自編碼器(Stacked sparse autoencoder,SSA)性能優(yōu)于最小二乘支持向量機(jī)(Least square support vector machine)、全連接多層感知機(jī)(Full-connection perceptions,F(xiàn)CP)。
[1] 張帆,張新紅,張彤.模糊數(shù)學(xué)在煙葉分級(jí)中的應(yīng)用[J].中國(guó)煙草學(xué)報(bào),2002,8(3):45-49.
[2] 劉朝營(yíng),許自成,閆鐵軍.機(jī)器視覺技術(shù)在煙草行業(yè)的應(yīng)用狀況[J].中國(guó)農(nóng)業(yè)科技導(dǎo)報(bào),2011,13(4):79-84.
[3] 王亞平.煙葉分級(jí)存在問題及改進(jìn)措施[J].寧夏農(nóng)林科技,2013,54(1):112-113.
[4] 焦李成,楊淑媛,劉芳,等. 神經(jīng)網(wǎng)絡(luò)七十年:回顧與展望[J].計(jì)算機(jī)學(xué)報(bào),2016,39(8):1697-1716.
[5] BENGIO Y.Learning deep architectures for AI(Foundations and trends(r) in machine learning)[M].Hanover,MA:Now Publishers Inc.,2009:1-127.
[6] SCHMIDHUBER J.Deep learning in neural networks:An overview[J].Neural networks, 2015,61:85-117.
[7] 周飛燕,金林鵬,董軍.卷積神經(jīng)網(wǎng)絡(luò)研究綜述[J].計(jì)算機(jī)學(xué)報(bào),2017,40(6):1229-1251.
[8] BENGIO Y,COURVILLE A,VINCENT P.Representation learning: A review and new perspectives[J].IEEE Transactions on Pattern Analysis and Machine Intelligence, 2013,35(8):1798-1828.
[9] DENG L.A tutorial survey of architectures, algorithms, and applications for deep learning.APSIPA Transactions on Signal and Information Processing[M].Cambridge:Cambridge University Press,2014.
[10] ZHANG X Z, GAO Y S.Face recognition across pose: A review[J].Pattern recognition, 2009,42(11):2876-2896.
[11] LE Q V, NGIAM J, COATES A, et al.On optimization methods for deep learning[C]//Proceedings of the 28th International Conference on Machine Learning.Bellevue,Washing,USA:ICML,2011:265-272.