陳恩志,王春陽,李晨晨,吳夏銘
(長(zhǎng)春理工大學(xué) 電子信息工程學(xué)院,長(zhǎng)春 130022)
隨著圖像采集設(shè)備的不斷進(jìn)步,以及圖像處理技術(shù)的逐漸成熟,每一個(gè)領(lǐng)域都產(chǎn)生了大量的圖片,使得圖片以海量的形式存在,因此在海量圖片中,每一個(gè)人怎么快速找到自己所需要的圖片是人們關(guān)注的熱點(diǎn)[1]。圖像分類算法是提高圖像檢索效率的重點(diǎn),因此研究圖像分類算法具有十分重要的意義。圖像分類的一般流程包括圖像的預(yù)處理[2]、圖像的特征提取以及分類器[3]的構(gòu)建。傳統(tǒng)的圖像分類方法都是人為采取特征,比較常用的圖像特征有顏色、形狀等視覺特征,還有局部二值模式、尺度不變特征等。雖然這些特征有一定的普適性,但是對(duì)具體的圖像針對(duì)性不強(qiáng),尤其對(duì)于復(fù)雜圖像,人工方法有很多明顯的缺陷。傳統(tǒng)的圖像分類方法有支持向量機(jī)、k最近鄰算法和多層感知器MLP(Multi Layer Perceptron)等,這些算法對(duì)一些圖像分類簡(jiǎn)單的任務(wù)效果良好,但對(duì)處理復(fù)雜紋理特征的圖像分類問題時(shí),其分類精度一般。
近年來,計(jì)算機(jī)的快速發(fā)展使得深度學(xué)習(xí)逐漸進(jìn)入了公眾的視野。深度學(xué)習(xí)中的卷積神經(jīng)網(wǎng)絡(luò)在圖像分類上的應(yīng)用[4-7]開始逐漸廣泛起來。相較于傳統(tǒng)的圖像分類方法,卷積神經(jīng)網(wǎng)絡(luò)不再需要針對(duì)特定的圖像數(shù)據(jù)集或圖像分類方式提取具體的人工特征,而是自主的從樣本中學(xué)習(xí)特征和篩選特征,從而很好地解決了人工提取特征的難題,真正實(shí)現(xiàn)了智能化[8]。
基于改進(jìn)的LeNet-5網(wǎng)絡(luò)來對(duì)圖像進(jìn)行分類的優(yōu)點(diǎn)在于:(1)引入跨鏈結(jié)構(gòu),充分地利用網(wǎng)絡(luò)提取的低層次特征,并將網(wǎng)絡(luò)提取的高層次特征和低層次特征有效地結(jié)合起來。(2)采用重疊池化并在池化層后面加上局部響應(yīng)歸一化操作,增加模型的泛化能力,防止過擬合。在Fer2013、Cifar-10和Fashion-MNIST數(shù)據(jù)集上進(jìn)行的實(shí)驗(yàn)結(jié)果表明,與LeNet-5網(wǎng)絡(luò)相比,改進(jìn)的LeNet-5網(wǎng)絡(luò)表現(xiàn)出了更好的分類能力。
1998年,LeCun和Bottou等人設(shè)計(jì)出了LeNet-5卷積神經(jīng)網(wǎng)絡(luò),在手寫數(shù)字識(shí)別與文檔識(shí)別中取得了很好的效果,模型結(jié)構(gòu)如圖1所示。LeNet-5卷積神經(jīng)網(wǎng)絡(luò)是一個(gè)多隱層的人工神經(jīng)網(wǎng)絡(luò),網(wǎng)絡(luò)結(jié)構(gòu)包括1個(gè)輸入層,2個(gè)卷積層、2個(gè)池化層、2個(gè)全連接層和1個(gè)輸出層。該模型輸入的是32像素×32像素大小的圖片,經(jīng)過第1個(gè)卷積層之后,圖像變?yōu)楹?個(gè)28像素×28像素大小的卷積特征圖,經(jīng)過第1個(gè)池化層之后,圖像變?yōu)楹?個(gè)14像素×14像素大小的池化特征圖,經(jīng)過第2個(gè)卷積層之后,圖像變?yōu)楹?6個(gè)10像素×10像素大小的卷積特征圖,經(jīng)過第2個(gè)池化層之后,圖像變?yōu)楹?6個(gè)5像素×5像素大小的池化特征圖,然后傳遞給3個(gè)全連接層獲得特征的高層含義后由RBF(Radial Basis Function)分類函數(shù)分類輸出。在LeNet-5卷積神經(jīng)網(wǎng)絡(luò)中卷積和池化的padding模式均設(shè)置為VSLID。
圖1 LeNet-5網(wǎng)絡(luò)結(jié)構(gòu)圖
LeNet-5卷積神經(jīng)網(wǎng)絡(luò)的缺點(diǎn)有:(1)沒有充分利用網(wǎng)絡(luò)提取到的低層次特征,只是將提取到的特征傳遞給下一層進(jìn)行使用;(2)容易過擬合,泛化能力不強(qiáng)。針對(duì)這兩個(gè)問題,借鑒了李勇等人[9]提出的跨連思想,提出了改進(jìn)的LeNet-5卷積神經(jīng)網(wǎng)絡(luò),模型結(jié)構(gòu)如圖2所示。與李勇等人不同的是,改進(jìn)的LeNet-5網(wǎng)絡(luò)的參數(shù)在訓(xùn)練中是可以調(diào)整學(xué)習(xí)的,且卷積和池化操作中的padding模式設(shè)置為SAME,減少了圖像邊界信息的丟失。該網(wǎng)絡(luò)輸入的是32像素×32像素大小的圖片,經(jīng)過2個(gè)交錯(cuò)的卷積層(H1,H3)和池化層(H2,H4)傳遞到全連接層H5,然后由全連接層H5和H6獲得特征的高層含義后由輸出層O分類輸出,輸出層的節(jié)點(diǎn)數(shù)代表著最后要分類的類別,3個(gè)實(shí)驗(yàn)中類別數(shù)分別為7、10和10。注意第1個(gè)池化層H2和第2個(gè)池化層H4向后傳播的同時(shí)與全連接層H6相連,這樣全連接H6既包含了H4和H5的提取的全局特征,又包含了H2提取的低層次特征,使得低層次特征充分的被網(wǎng)絡(luò)所利用。LeNet-5網(wǎng)絡(luò)的池化策略是滑動(dòng)步長(zhǎng)和滑動(dòng)窗口大小相等,重疊池化策略是滑動(dòng)步長(zhǎng)小于滑動(dòng)窗口大小,這樣在相鄰池化窗口之間就會(huì)出現(xiàn)重疊區(qū)域,從而使得池化層既降低了網(wǎng)絡(luò)的特征維度又充分地提取了特征。為了提高網(wǎng)絡(luò)的泛化能力,在池化層后面加入了局部響應(yīng)歸一化LRN(Local Response Normalization):
圖2 改進(jìn)的LeNet-5卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
表1 改進(jìn)的LeNet-5卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)描述
整個(gè)網(wǎng)絡(luò)的學(xué)習(xí)過程分為正向傳播和反向傳播兩個(gè)過程。其中前向傳播就是利用卷積、池化等操作對(duì)圖像特征進(jìn)行提取。反向傳播采用BP算法,使用Adam優(yōu)化器調(diào)整更新網(wǎng)絡(luò)中的參數(shù)。
式中,f(·)代表 ReLU 激活函數(shù);downλ,τ(·)表示最大池化操作,滑動(dòng)窗口的大小為λ×τ;?表示內(nèi)卷積運(yùn)算[10];wn,i和bn,i(n=1,3)分別表示第n個(gè)隱藏層的卷積核和偏置;表示第n個(gè)隱藏層的第i個(gè)卷積面;表示第n個(gè)隱藏層的第i個(gè)池化面;w5和b5分別表示第1個(gè)全連接層的權(quán)值和偏置;w6-1、w6-2、w6-3分別表示前兩個(gè)池化層H2和H4以及第1個(gè)全連接層H5與H6層之間的權(quán)值;b6表示第2個(gè)全連接層的偏置;w7和b7分別表示輸出層的權(quán)值和偏置;和O分別表示第1個(gè)全連接層、第2個(gè)全連接層與輸出層的輸出。輸出層采用softmax分類函數(shù),則損失函數(shù)定義為:
式中,sj表示輸出分類為類別j的概率;d是類別總數(shù);yj代表的是第j個(gè)標(biāo)簽。
2.2.2 多連卷積神經(jīng)網(wǎng)絡(luò)的反向傳播過程
式中,outputl和yl分別表示網(wǎng)絡(luò)的實(shí)際輸出和期望輸出;up表示上采樣;°為哈達(dá)瑪積;⊕表示外卷積操作;表示輸出層與全連接層的反饋傳遞誤差;表示第n個(gè)隱藏層的第i個(gè)卷積面或池化面的反饋傳遞誤差;和分別表示H6層傳遞給H4和H2層的反饋傳遞誤差,所以H4和H2層接收到的反饋傳遞誤差為兩部分之和。在得到每一層的反饋傳遞誤后,便能求得每一層的權(quán)值和偏置的偏導(dǎo)數(shù),如下:
改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)的整體算法流程如下:
(1)輸入迭代次數(shù)=30 000、樣本批次、初始學(xué)習(xí)率=0.000 1、網(wǎng)絡(luò)結(jié)構(gòu)、訓(xùn)練集;
(2)隨機(jī)初始化網(wǎng)絡(luò)的卷積核和偏置;
(3)正向傳播,計(jì)算每個(gè)樣本的實(shí)際輸出值;
(4)反向傳播,計(jì)算每一層的反饋傳遞誤差,以及權(quán)值和偏置的偏導(dǎo)數(shù);
(5)使用Adam優(yōu)化器更新調(diào)整網(wǎng)絡(luò)的權(quán)值和偏置值。
本實(shí)驗(yàn)的硬件配置為 Intel(R)Core(TM)i7-8750H CPU@2.2 GHz,內(nèi)存32 GB,GPU為NVIDIA GeForce GTX080ti。軟件配置為深度學(xué)習(xí)框架Tensorflow。
在Fer2013、Cifar-10和Fashion-MNIST數(shù)據(jù)集上驗(yàn)證算法的準(zhǔn)確率。為了便于處理,將Cifar-10數(shù)據(jù)集中的彩色圖片轉(zhuǎn)換為灰度圖片。Fer2013數(shù)據(jù)集有7個(gè)分類,分別由35 886張48×48的灰度圖片組成。其中有28 708張訓(xùn)練圖片和7 178張測(cè)試圖片。該數(shù)據(jù)集中各個(gè)樣本在年齡、面部等方面都有較大的差異性,具有一定的實(shí)際意義,但在分類時(shí)造成了巨大的困難。圖3為Fer2013數(shù)據(jù)集中的示例圖片。
圖3 Fer2013數(shù)據(jù)集中的示例圖片
Cifar-10數(shù)據(jù)集有10個(gè)分類,分別由60 000張32×32的彩色圖像組成。其中有50 000張訓(xùn)練圖片和10 000張測(cè)試圖片。該數(shù)據(jù)集紋理特征較為復(fù)雜且圖片不夠清晰,導(dǎo)致數(shù)據(jù)集分類困難。圖4為Cifar-10數(shù)據(jù)集中的示例圖片。
圖4 Cifar-10數(shù)據(jù)集中的示例圖片
Fashion-MNIST數(shù)據(jù)集有10個(gè)分類,分別由70 000張28×28的灰度圖像組成。其中有60 000張訓(xùn)練圖片和10 000張測(cè)試圖片。該數(shù)據(jù)集每個(gè)類別紋理之間的差異不大,導(dǎo)致數(shù)據(jù)集分類不準(zhǔn)確。圖5為Fashion-MNIST數(shù)據(jù)集中的示例圖片。
圖5 Fashion-MNIST數(shù)據(jù)集中的示例圖片
實(shí)驗(yàn)過程中2種算法均使用相同的權(quán)值和偏置初始化方式、學(xué)習(xí)率、批次大小、目標(biāo)損失函數(shù)和參數(shù)更新方式。在實(shí)驗(yàn)中將Fer2013和Fashion-MNIST數(shù)據(jù)集的圖片轉(zhuǎn)換為32×32像素大小。圖6、圖7和圖8分別展示了不同算法在Fer2013、Cifar-10和Fashion-MNIST數(shù)據(jù)集上的準(zhǔn)確率隨迭代次數(shù)的增加而變化。
圖6 不同方法在Fer2013的準(zhǔn)確率
圖7 不同方法在Cifar-10的準(zhǔn)確率
圖8 不同方法在Fashion-MNIST的準(zhǔn)確率
由圖6可知,LeNet-5卷積神經(jīng)網(wǎng)絡(luò)在Fer2013數(shù)據(jù)集上的分類能力最低,準(zhǔn)確率為68.75%。與LeNet-5相比,改進(jìn)的LeNet-5網(wǎng)絡(luò)的分類準(zhǔn)確率提高了20.84%,準(zhǔn)確率為89.59%。
由圖7可知,LeNet-5卷積神經(jīng)網(wǎng)絡(luò)在Cifar-10數(shù)據(jù)集上的分類能力最低,準(zhǔn)確率為57.81%。與LeNet-5相比,改進(jìn)的LeNet-5網(wǎng)絡(luò)的分類精度提高了34.38%,準(zhǔn)確率為92.19%。
由圖8可知,LeNet-5卷積神經(jīng)網(wǎng)絡(luò)在Fashion-MNIST數(shù)據(jù)集上的分類能力最低,準(zhǔn)確率為87.06%。與LeNet-5相比,改進(jìn)的LeNet-5網(wǎng)絡(luò)的分類精度提高了4.57%,準(zhǔn)確率為91.63%。
由圖6、圖7和圖8可知,改進(jìn)的LeNet-5網(wǎng)絡(luò)在圖像分類中的效果不錯(cuò),對(duì)LeNet-5網(wǎng)絡(luò)的改進(jìn)是有效的。給LeNet-5網(wǎng)絡(luò)多加了跨連結(jié)構(gòu),充分地利用了網(wǎng)絡(luò)提取的低層次特征,采用重疊池化并在后面加上局部響應(yīng)歸一化操作,增加模型的泛化能力。在Fer2013和Cifar-10數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明與LeNet-5網(wǎng)絡(luò)相比,改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)在對(duì)復(fù)雜紋理圖像進(jìn)行分類時(shí)有更好的效果。為更好地驗(yàn)證改進(jìn)的LeNet-5網(wǎng)絡(luò)的有效性,將改進(jìn)的LeNet-5網(wǎng)絡(luò)與近幾年具有代表性的算法在Cifar-10數(shù)據(jù)集上進(jìn)行比較,如表2所示。由表2可知,與傳統(tǒng)算法Meancovariance RBM以及深度學(xué)習(xí)算法(Stochastic pooling ConvNet、跨連卷積神經(jīng)網(wǎng)絡(luò))相比,改進(jìn)的LeNet-5網(wǎng)絡(luò)有很好的分類效果,與Highway算法相比,改進(jìn)的LeNet-5網(wǎng)絡(luò)的分類準(zhǔn)確率稍低,主要原因是Highway算法用了19層網(wǎng)絡(luò),且進(jìn)行了長(zhǎng)時(shí)間的訓(xùn)練。
表2 不同算法在Cifar-10數(shù)據(jù)集上的分類精度
在LeNet-5卷積神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上,提出了改進(jìn)的LeNet-5卷積神經(jīng)網(wǎng)絡(luò)。該網(wǎng)絡(luò)能夠通過跨鏈的方式充分利用網(wǎng)絡(luò)提取的低層次特征,并有效的將網(wǎng)絡(luò)提取的低層次特征和高層次特征結(jié)合起來。采用重疊池化層并在后面加入局部響應(yīng)歸一化操作增加了網(wǎng)絡(luò)模型的泛化能力,從而提高網(wǎng)絡(luò)的分類能力。實(shí)驗(yàn)結(jié)果表明,改進(jìn)的LeNet-5網(wǎng)絡(luò)在3個(gè)數(shù)據(jù)集的分類能力均高于LeNet-5網(wǎng)絡(luò),較小的網(wǎng)絡(luò)結(jié)構(gòu)就有不錯(cuò)的分類能力。但相對(duì)于網(wǎng)絡(luò)結(jié)構(gòu)較大的神經(jīng)網(wǎng)絡(luò),其分類能力略低,下一步研究計(jì)劃是尋找各層特征之間的深度關(guān)系,運(yùn)用反卷積等方法實(shí)現(xiàn)網(wǎng)絡(luò)各層特征的可視化,努力用較小的網(wǎng)絡(luò)結(jié)構(gòu)達(dá)到與較大的網(wǎng)絡(luò)結(jié)構(gòu)具有相同的分類準(zhǔn)確率。