閆 河 王 鵬 董鶯艷 羅 成 李 煥
1(重慶理工大學計算機科學與工程學院 重慶 401320)2(重慶理工大學兩江人工智能學院 重慶 401147)
圖像識別是通過計算機模擬人類對圖片的分類理解,自動的把圖片歸為不同的語義類別。目前,圖像識別在眾多領(lǐng)域都有廣泛的應(yīng)用。對于圖像識別目前有兩個主要研究的方向:一是對特征的提??;二是對圖片分類算法的研究。目前基于支持向量機[1]的分類雖然取得較好的成績,但是還存在挑戰(zhàn)。由計算機表達出來的特征和人類對于大腦皮層所感知的信息還存在差距。這個問題也是我們面臨的巨大挑戰(zhàn)。如何用計算機構(gòu)建一個對高層語義理解的方法是急需解決的關(guān)鍵問題。而隨著卷積神經(jīng)網(wǎng)絡(luò)的提出,這個關(guān)鍵的問題也在逐漸的被解決。目前,深度學習技術(shù)在近幾年取得了突破性的進展,特別是在視覺方面。卷積神經(jīng)網(wǎng)絡(luò)在圖像分類[2]、圖像檢索[3]、圖片識別[4]等方面都取得較好的效果。文獻[5]在1999年實現(xiàn)了對手寫體數(shù)字的識別。AlexNet[2]網(wǎng)絡(luò)在2012年的ImageNet大賽上取得了冠軍。VGG[3]網(wǎng)絡(luò)進一步提高了識別精度,同時把網(wǎng)絡(luò)層數(shù)增加到19層,并在2014年的比賽中取得了第一名的好成績。文獻[4]提出了更深層的網(wǎng)絡(luò)結(jié)構(gòu),把網(wǎng)絡(luò)層數(shù)進一步提高,并達到了22層,同時獲得了2014年視覺挑戰(zhàn)賽的冠軍。文獻[6]研究了線性整流函數(shù),通過和GoogleNet的對比,把準確率提高了26%。通過以上大賽中應(yīng)用卷積神經(jīng)網(wǎng)絡(luò)的對比實驗可以發(fā)現(xiàn)。神經(jīng)網(wǎng)絡(luò)的深度直接影響計算機視覺任務(wù)的效果。但是,如果單純地增加網(wǎng)絡(luò)深度又會引發(fā)網(wǎng)絡(luò)梯度消失問題。如果發(fā)生梯度消失,不僅不會讓網(wǎng)絡(luò)的性能更好,還會讓網(wǎng)絡(luò)的精度下降,甚至消失。針對以上的問題,文獻[7]提出了殘差網(wǎng)絡(luò)結(jié)構(gòu),不僅解決了網(wǎng)絡(luò)深度的問題,同時還有效解決了梯度消失問題,文獻[8]提出了一種全新的方案解決梯度消失問題,同時讓層之間的信息保持最大化的傳送。通過對以上網(wǎng)絡(luò)結(jié)構(gòu)的對比發(fā)現(xiàn),在解決問題的時候都是向網(wǎng)絡(luò)的深度發(fā)展。但是隨著網(wǎng)絡(luò)深度的加深,需要訓練的參數(shù)也會逐漸增多,對于電腦的存儲空間也提出了新的要求,同時也需要性能更好的計算設(shè)備。對于實際應(yīng)用情況會出現(xiàn)種種困難,如今已有學者在研究如何減低計算開銷[9-10],目前有效的方法是用特定的數(shù)據(jù)在預(yù)訓練網(wǎng)絡(luò)上訓練特定的目標網(wǎng)絡(luò),簡單講就是遷移學習。也有研究[11]用改進的網(wǎng)絡(luò)結(jié)構(gòu)計算類別間的相似度實現(xiàn)圖片的分類。還有研究[12]對于在圖片分類中有多個標簽的情況。由此設(shè)計出了HCP網(wǎng)絡(luò),并取得了較好的效果,卷積神經(jīng)網(wǎng)絡(luò)提取特征時具有平移、縮放和旋轉(zhuǎn)不變性[13]等優(yōu)點。
卷積神經(jīng)網(wǎng)絡(luò)的最后一層一般可以看成一個線性分類器,所以卷積神經(jīng)網(wǎng)絡(luò)雖然能夠提取特征,但不是一個最優(yōu)的分類器。2016年,趙亮等[14]利用卷積神經(jīng)網(wǎng)絡(luò)結(jié)合HOG和HSV特征構(gòu)造圖像特征,通過用支持向量機對圖片進行分類。支持向量機(SVM )是最廣泛的分類器之一,但隨著分類器的進一步發(fā)展,Huang等[15]于2004年提出單隱層前向神經(jīng)網(wǎng)絡(luò)(SLFNs)的ELM算法,并于2006年對ELM進行了進一步的研究,給出了一些理論證明和應(yīng)用[15-16]。文獻[17]提出了P-ELM[17],根據(jù)ELM算法并利用統(tǒng)計學原理,對網(wǎng)絡(luò)分類效果影響較弱的隱層進行裁剪,并優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu),取得了較好的分類效果。同時也有眾多學者將極限學習機應(yīng)用到了實際應(yīng)用,并都取得了很好的效果。張建明等[18]提出了極限學習機應(yīng)用于人臉識別,文武等[19]提出了極限學習應(yīng)用于車牌識別等。與其他分類器相比較,極限學習機的參數(shù)不需要迭代訓練,直接通過計算所得,所以具有訓練速度快,不需要選擇學習率等參數(shù),避免了尋優(yōu)過程,應(yīng)用圖片分類識別具有較好的效果。但是極限學習機對特征較高的要求,這正好運用卷積神經(jīng)網(wǎng)絡(luò)來彌補。以上文獻充分證明了卷積神經(jīng)網(wǎng)絡(luò)對于特征提取的有效性,同時也證明了極限學習機在分類識別上比目前先進的分類算法表現(xiàn)得更優(yōu)。但是,卷積神經(jīng)網(wǎng)絡(luò)是最好的特征提取方法,卻不一定是最好的分類方法,且卷積神經(jīng)網(wǎng)絡(luò)的訓練時間長,而極限學習機恰恰可以彌補卷積神經(jīng)網(wǎng)絡(luò)的不足。同時卷積神經(jīng)網(wǎng)絡(luò)對于特征提取還可以進一步優(yōu)化和改進。
針對卷積神經(jīng)網(wǎng)絡(luò)分類耗時長,誤差率有待提高和提取更豐富的特征語義,本文提出了一種AlexNet卷積神經(jīng)網(wǎng)絡(luò)和ELM結(jié)合的圖片分類方法,采用有監(jiān)督的方法學習不同層次的圖像特征,用改進網(wǎng)絡(luò)結(jié)構(gòu)提取更具表達能力的圖片特征,并在全連接層和極限學習機結(jié)合。相比于其他的算法本文具有以下的特點:
(1) 提出一種高效的網(wǎng)絡(luò)框架,不僅能夠提高圖片識別率,同時也能降低計算開銷。
(2) 本文在池化層做了改進,用最大-均值的池化方式,不但擴大了局部感受野,同時還保留了圖片更加精確的特征,滿足了極限學習機對于特征的要求。
(3) 通過全連層和極限學習機的結(jié)合,提高了網(wǎng)絡(luò)結(jié)構(gòu)的分類能力。
通過實驗結(jié)果證明,本文對卷積神經(jīng)網(wǎng)絡(luò)提出的優(yōu)化和改進,應(yīng)用于圖片的分類識別取得了較好的效果,且性能優(yōu)于目前最先進的方法。
卷積神經(jīng)網(wǎng)絡(luò)[20]是提取高級語義特征表現(xiàn)最好的算法,通過對圖片的逐層卷積提取更加抽象的特征,越抽象的特征越能夠表現(xiàn)圖片的語義信息,并在圖片的分類中變現(xiàn)出更好的性能。
AlexNet是一種常見的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),此網(wǎng)絡(luò)由五層卷積層、三層池化層和三層全連接組成。網(wǎng)絡(luò)結(jié)構(gòu)的全連接層和池化層的主要目的是對特征的提取,全連接層把特征向量壓縮成為一維的向量。此網(wǎng)絡(luò)的訓練的過程主要分為兩個步驟。
(1) 前向傳播階段,計算公式如下:
(1)
式中:y(l)為第l個卷積層的輸出,x(i)是輸入向量,?為卷積運算,b(i)為偏置,w(i)為該層的權(quán)值,m代表輸入特征的集合,f(x)為激活函數(shù)。
(2) 反向傳播階段,對于有m個樣本的數(shù)據(jù)集,會通過上述的前向傳播輸出預(yù)測值,根據(jù)預(yù)測值與網(wǎng)絡(luò)期望的輸出定義整體的目標函數(shù)。
(2)
式中:L(Zi)是對應(yīng)網(wǎng)絡(luò)的損失函數(shù)。通過最小化損失函數(shù)降低網(wǎng)絡(luò)分類誤差,zi為反向傳播的輸入,w代表權(quán)值,λ代表歸一項所代表的比重,L(Zi)需要根據(jù)實際的分類情況具體決定。
極限學習機最初是為了解決單隱層前饋神經(jīng)網(wǎng)絡(luò)SLFNs(Single-hidden layer feed-forward neural networks)而提出,網(wǎng)絡(luò)結(jié)構(gòu)圖如圖1所示。
圖1 極限學習機的網(wǎng)絡(luò)結(jié)構(gòu)
假設(shè)有N個任意的不同樣本(xi,ti),i=1,2,…,N其中,xi=[xi1,xi2,…,xin]∈Rn,ti=[ti1,ti2,…,tim]∈Rm。
則極限學習機的目標函數(shù)為:
Hβ=T
(3)
式中:H為神經(jīng)網(wǎng)絡(luò)隱層的輸出矩陣;T為期望輸出[12]。
(4)
h(x)=g(W·x+b)
(5)
式(4)和式(5)中:W∈RL×n為輸入層到隱含層的權(quán)值;b∈RL為隱含偏置量;g(·)為激活函數(shù)?;舅枷胧牵弘S機產(chǎn)生W和b,然后據(jù)此計算H和β,有很多種方法,其中一種簡單的方法為[21]:
β=H+T
(6)
AlexNet網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示,此模型通過輸入相應(yīng)的圖像和標簽,輸出圖片類別的概率。本文將從兩個方面優(yōu)化和改進網(wǎng)絡(luò)結(jié)構(gòu),首先對網(wǎng)絡(luò)框架的優(yōu)化,主要有兩點:(1) 基于最大值池化的缺點,提出了最大值和均值結(jié)合的池化方法,擴大局部感受野。(2) 在全連接層后面接上極限學習機進行分類學習。其次,對于網(wǎng)絡(luò)內(nèi)部的優(yōu)化主要是在卷積后,對數(shù)據(jù)規(guī)范化處理。
圖2 AlexNet網(wǎng)絡(luò)結(jié)構(gòu)圖及優(yōu)化
目前,深度學習中大部分的網(wǎng)絡(luò)結(jié)構(gòu)和識別的算法都用到了池化。為了能夠提取局部感受野中精確的圖像特征,本文研究了最大值池化和均值池化的特點,發(fā)現(xiàn)最大值池化可以提取圖片局部的特征信息,通過局部的特征信息可以組合成為全局的特征信息。但是在特征的細節(jié)處理上效果表現(xiàn)欠佳,因而本文提出一種把兩者結(jié)合的池化方式,既保留了輪廓的完整性,又在細節(jié)的處理上更精確。通過結(jié)合兩者的優(yōu)點,提取出更加精確的特征信息。
均值池化對細節(jié)的特征表現(xiàn)出更好的魯棒性,而最大值池化則表現(xiàn)出平移不變形。通過公式[22]定義兩個池化:
(7)
(8)
式中:vm表示圖像中T個像素點的第m個像素點,m表示該點在滑動窗口中的方位,池化即把vm映射到相應(yīng)的統(tǒng)計值。
本文結(jié)合了兩者的優(yōu)勢,重新提出了最大-平均值池化:
(9)
在AlexNet網(wǎng)絡(luò)結(jié)構(gòu)中用于替換原有的方法,如圖2灰色所表示的方法。
本文驗證實驗在兩個公共的標準數(shù)據(jù)集:CIFAR-100[23]和ImageNet2017[24]上進行。每個數(shù)據(jù)集都進行了如下兩種深度神經(jīng)網(wǎng)絡(luò)優(yōu)化方法的對比實驗:(1) 在池化層中用最大值-均值池化替代最大值池化;(2) 在全連接層連接極限學習機即如圖2所示的網(wǎng)絡(luò)結(jié)構(gòu),也是本文提出的深度卷積神經(jīng)網(wǎng)絡(luò)最重要優(yōu)化方法。
定義分類性能的指標如下:
(10)
CIFAR-100[23]數(shù)據(jù)集包含了100類,所有圖像都是32×32的像素大小,每一類圖片包括600張彩色圖片,分別為500張訓練圖片和100張測試圖片。
ImageNet[24]數(shù)據(jù)集內(nèi)有超過1 500萬張、共22 000多個帶標簽的高分辨率圖像。本實驗采用ILSVRC數(shù)據(jù)集,ILSVRC-2017是ImageNet的一部分,選用其中的1 000個類別做對比實驗。
CIFAR-100數(shù)據(jù)集是用于圖片分類識別的數(shù)據(jù)集,選擇100張圖片作為需要識別的圖片。網(wǎng)絡(luò)的輸出定義為100類,設(shè)定batchsize為64,初始學習率設(shè)定為0.001,同時用梯度下降的方法訓練數(shù)據(jù),通過將數(shù)據(jù)分別在Stochastic Pooling[25]、AlexNet+Fine-tuning[26]、AlexNet+Max-Ave-pooling[27]等算法上做對比實驗。對比結(jié)果如表1所示。
表1 誤差率在CIFAR-100數(shù)據(jù)集的比較結(jié)果
從實驗中可以得出如下結(jié)果,不同的池化方法對于誤差率有較明顯的影響,隨機池化方式對特征的全局和細節(jié)提取不充分,實驗結(jié)果表現(xiàn)為誤差率較高。同時,通過AlexNet+Fine-tuning[26]調(diào)整規(guī)則后的池化方式能夠降低識別誤差率,相比于本文提出的最大值均值池化不僅考慮了特征的整體性,同時兼顧了特征的細節(jié)。通過與極限學習機的結(jié)合,并通過與目前性能最好的算法作對比,實驗分析可知,最大值-均值池化解決了極限學習機對于特征的要求,相對于噪聲和其他干擾有更好的適應(yīng)能力,同時能夠提取語義更加豐富和特征更精確的特征信息,使得最終的誤識率降到26.67%,充分證明了算法的有效性。
本文提出的最大值-均值和極限學習機結(jié)合的方法在誤差率上明顯降低。通過對比單獨使用最大值池化的方法,本文提出的方法能提取更加抽象的語義特征信息,更有利于圖片分類。相比于其他算法有效地降低了誤差率,通過與其他算法的對比實驗,在CIFAR-100數(shù)據(jù)集誤差率降低到26.67%,證明了本文提出的方法在性能上明顯優(yōu)于其他算法。
ImageNet數(shù)據(jù)集內(nèi)有超過1 500萬張、共22 000多個帶標簽的高分辨率圖像。本文選用ILSVRC數(shù)據(jù)集(ImageNet Large-Scale Visual Recognition Challenge),ILSVRC-2017是ImageNet的一部分,選用其中的1 000個類別做對比實驗,網(wǎng)絡(luò)的輸出定義為1 000類,設(shè)定batchsize為64,初始學習率設(shè)定為0.001。通過將數(shù)據(jù)分別在Inception-v4[28]、ResNet-200[29]、DenseNet-161[30]、SeNET[31]和本文提出的算法作對比實驗,結(jié)果如表2所示。
表2 誤識率在ILSVRC上面的誤差率的比較結(jié)果
通過對比實驗可以得出結(jié)論,本文提出最大值-均值池化和極限學習機結(jié)合的方法,改進了AlexNet深度卷積網(wǎng)絡(luò)的結(jié)構(gòu),在提取特征時運用均值和最大值結(jié)合的池化方式提取特征,替代了原有的最大值池化方式,有效地融合了特征提取方法對微小形變不變形和平移不變形的優(yōu)勢,在特征提取中保留了更加重要的圖片特征,更加有利于極限學習機最后的分類識別。同時,極限學習機在分類識別過程中通過廣義逆計算所得,在分類識別時耗時較短,因而和目前最優(yōu)的算法做了實驗對比,本文提出的算法有更好的性能表現(xiàn)。
為了驗證極限學習機隱含層神經(jīng)元的個數(shù)對圖像分類的影響,分別在以上兩個公共數(shù)據(jù)集上做了不同神經(jīng)元個數(shù)的對比實驗。第一個公共的數(shù)據(jù)集CIFAR-100共有100類,為了能夠匹配網(wǎng)絡(luò),選用的神經(jīng)元的個數(shù)分別為n=(80,90,100,125,130)。第二個公共數(shù)據(jù)集ILSVRC-2017共有1 000類,為了更好地匹配網(wǎng)絡(luò),選用神經(jīng)元的個數(shù)為n=(800,900,1 000,1 250,1 300)。通過在本文提出的方法AlexNet+Max-Ave-pooling+ELM上進行實驗。
從表3和表4可以得出極限學習機誤差率會隨著神經(jīng)元的個數(shù)的變化而改變。當極限學習機隱含層的神經(jīng)元個數(shù)越接近分類個數(shù)時,錯誤分類率越低。由于極限學習機是通過求廣義逆的方法直接計算出權(quán)值,當隱層神經(jīng)元的個數(shù)越接近分類的目標時,誤差率越小,同時通過計算得到的分類效果也越好。當我們在CIFAR100做實驗時,由于分類的類別是100,因而誤識率在隱含層神經(jīng)元接近100時效果達到最優(yōu)。當在ILSVRC-2017做實驗時,由于分類的類別是1 000,當隱層神經(jīng)元達到1 000,ILSVRC-2017數(shù)據(jù)集上表現(xiàn)的分類性能達到最優(yōu)。
表3錯誤分類率在不用隱層神經(jīng)元上的比較結(jié)果%
表4 不用隱層神經(jīng)元上的錯誤分類率(top-1) %
為了驗證改進后的網(wǎng)絡(luò)結(jié)構(gòu)對計算開銷的影響,通過本文算法和最新的深度學習算法做對比實驗,并選用ILSVRC-2017作為數(shù)據(jù)集。Alexnet深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)在池化層后連接全連接層,并把所有特征信息延展為4 096維的特征向量,并通過Softmax分類器對圖片分類。此結(jié)構(gòu)在全連接層中需更新迭代的參數(shù)較多,迭代更新耗時長,且訓練之后模型參數(shù)內(nèi)存需218 MB。改進后的模型一次前向和反向傳播速率如表5所示,同時改進后的模型參數(shù)內(nèi)存需要21 MB,縮小為原AlexNet模型的0.1倍。通過對網(wǎng)絡(luò)結(jié)構(gòu)一次前向傳播和反向傳播耗時作為對比標準,比較不同算法的耗時比較,結(jié)果如表5所示。由于極限學習機對于特征分類采用求廣義逆的計算方式,相比于傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)反向迭代更新權(quán)值,節(jié)約了大量的計算耗時,一次前向傳播和反向傳播總耗時降低到54 ms,達到了優(yōu)化的目的。通過實驗結(jié)果表明了本文改進的網(wǎng)絡(luò)結(jié)構(gòu)有效地降低了計算開銷。
表5 一次前向傳播和反向傳播總耗時結(jié)果比較
本文提出了基于AlexNet深度卷積神經(jīng)網(wǎng)絡(luò)的分類框架,通過改進網(wǎng)絡(luò)結(jié)構(gòu),提高特征的表達能力,進一步提高識別精度。本文嘗試單獨使用最大值池化和運用常規(guī)的分類方法作為對比方法,通過在標準數(shù)據(jù)集上的對比實驗,證明本文提出的方法在準確率和計算開銷上優(yōu)于其他算法。未來的工作是進一步改進網(wǎng)絡(luò)的結(jié)構(gòu),提取更具有區(qū)分度的特征和進一步改善計算的耗時,進一步提高識別率并應(yīng)用于圖片識別等具體應(yīng)用領(lǐng)域。