李 偉,黃鶴鳴,張會(huì)云,楊鴻海
(1.青海師范大學(xué)計(jì)算機(jī)學(xué)院,青海 西寧 810008;2.藏文信息處理教育部重點(diǎn)實(shí)驗(yàn)室,青海 西寧 810008;3.青海省地理信息中心,青海 西寧 810001)
隨著大容量存儲(chǔ)設(shè)備的廣泛使用和數(shù)字化技術(shù)的普及,出現(xiàn)了大規(guī)模的圖像數(shù)據(jù)庫。圖像已成為人們獲取信息的主要方式。從浩瀚的圖像數(shù)據(jù)庫中搜索圖像,需要對(duì)數(shù)據(jù)庫中的圖像進(jìn)行分析處理,前提是對(duì)這些海量圖像進(jìn)行分類。
近年來,隨著大數(shù)據(jù)和硬件計(jì)算能力的發(fā)展,神經(jīng)網(wǎng)絡(luò)作為一種新興的深度學(xué)習(xí)方法,在各個(gè)領(lǐng)域不斷取得了突破性進(jìn)展[1]。卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNNs)[2]是一種帶有卷積計(jì)算的具有深層結(jié)構(gòu)的前饋神經(jīng)網(wǎng)絡(luò)(Feedforward Neural Networks)[3],能更好地獲取圖像的位置空間和形狀信息,有利于圖像分類。Dave Steinkraus等人于2005年發(fā)現(xiàn)了圖形處理器(Graphics Processing Unit,GPU)在機(jī)器學(xué)習(xí)(Machine Learning,ML)方面的獨(dú)特優(yōu)勢[4],提出了基于GPU的高效CNN訓(xùn)練方法,大幅提高了CNN的運(yùn)算能力。Alex Krizhevsky等人于2012年提出了AlexNet[5]網(wǎng)絡(luò),采用ReLU激活函數(shù)并使用GPU分組卷積方式進(jìn)行并行訓(xùn)練。Sergey Loffe等人于2015年將批標(biāo)準(zhǔn)化(Batch Normalization)[6]應(yīng)用于神經(jīng)網(wǎng)絡(luò),保證了網(wǎng)絡(luò)中各層的輸出分布基本穩(wěn)定;同時(shí),大幅降低了網(wǎng)絡(luò)對(duì)初始參數(shù)的依賴,提升了網(wǎng)絡(luò)性能。
CNN具有良好的擴(kuò)展性和魯棒性,利用CNN進(jìn)行圖像分類時(shí),能夠比較快速且全面提取空間位置和形狀相關(guān)特征;但是,對(duì)顏色特征非常不敏感。CNN通過RGB三顏色通道讀取圖像內(nèi)容與讀取二值化圖像信息內(nèi)容,在做圖像分類時(shí),分類效果幾乎沒有明顯差異,甚至是直接沒有差距。由于顏色特征具有很強(qiáng)的魯棒性和靈活性,因此在圖像庫檢索和分類中廣為采用;但是,顏色特征不能體現(xiàn)圖像的空間分布信息。所以,根據(jù)CNN處理圖像分類時(shí),對(duì)顏色特征不敏感這個(gè)特點(diǎn),提出了將主顏色特征與空間位置和形狀相關(guān)特征進(jìn)行深度多特征融合。通過實(shí)驗(yàn)表明,多特征融合對(duì)CNNs處理圖像分類,具有比較大的影響,使得分類精度比CNN可以提升7個(gè)百分點(diǎn)。此外,提取主顏色特征時(shí),使用的是k-means++聚類算法。
為了更好地讀取圖像內(nèi)容信息,深度多特征融合的CNNs網(wǎng)絡(luò)模型總體框架,如圖1所示。
圖1 深度多特征融合的CNNs網(wǎng)絡(luò)模型總體框架
圖1中的去噪深度卷積特征,簡稱為fc,是經(jīng)過三層卷積神經(jīng)網(wǎng)絡(luò)以后的去噪空間位置形狀關(guān)系信息,如圖2所示。CNN的卷積層內(nèi)部包含多個(gè)卷積核,每個(gè)卷積核能夠提取形狀相關(guān)特征,卷積層內(nèi)每個(gè)神經(jīng)元均與前一層位置鄰近區(qū)域,也被稱為“感受野”[3]的多個(gè)神經(jīng)元相連,從而依賴于網(wǎng)絡(luò)分層學(xué)習(xí)上下文不變特征[7]:形狀和空間位置特征信息,這對(duì)圖像分類特別有用;另外,CNN還具有對(duì)輸入的原始圖像特征去噪功能,綜合以上CNN的特點(diǎn),圖2去噪卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)輸出的是去噪深度卷積特征。
圖2 去噪卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
提取的主顏色特征簡稱為fl,使用的是k-means++聚類算法。然后,級(jí)聯(lián)fc和fl特征,構(gòu)造深度融合特征fm。
圖1深度多特征融合的CNNs網(wǎng)絡(luò)模型框架中共有四個(gè)卷積層。第一個(gè)卷積層稱為數(shù)據(jù)特征融合層,充分融合去噪深度卷積和主顏色特征。隨后是一個(gè)池化層,池化層的作用是降低網(wǎng)絡(luò)參數(shù),加快融合速度。第二個(gè)卷積層稱為深度特征融合層,進(jìn)行進(jìn)一步特征融合,隨后也是一個(gè)池化層。第三個(gè)卷積層稱為特征抽象表示層,該層中的卷積核大小由前兩個(gè)卷積層中5×5改為3×3,即有助于消除特征中的噪聲并提高特征的抽象表示,隨后也是一個(gè)池化層。第四個(gè)卷積層稱為特征高級(jí)表示層,有助于消除冗余特征并提高代表性特征,隨后也是一個(gè)池化層。三層全連接層,用于特征分類以及反向傳播過程中的參數(shù)優(yōu)化。在網(wǎng)絡(luò)的最后,采用Softmax層進(jìn)行分類。Softmax是應(yīng)對(duì)多分類問題的有監(jiān)督學(xué)習(xí)方法[8-10],為分類提供重要的置信度,其中0表示置信度最低,1表示最高。
卷積層、非線性激活變換和池化層是CNN的三個(gè)基本組成部分[2]。通過疊加多個(gè)具有非線性運(yùn)算的卷積層和多個(gè)池化層,可以形成一個(gè)深CNNs,分層提取輸入特征,具有不變性和魯棒性[11]。使用特定的體系結(jié)構(gòu),如局部連接和共享權(quán)重,CNN往往具有良好的泛化功能。具有非線性運(yùn)算的卷積層[7]如下
(1)
k-means++聚類算法屬于“硬聚類”算法,即數(shù)據(jù)集中每一個(gè)樣本都是被100%確定得分到某一個(gè)類別中。與之相對(duì)的“軟聚類”可以理解為每個(gè)樣本是以一定的概率被分到某一個(gè)類別中。
原始k-means算法最開始隨機(jī)選取數(shù)據(jù)集中k個(gè)點(diǎn)作為聚類中心,而k-means++按照如下的思想選取k個(gè)聚類中心:假設(shè)已經(jīng)選取了n個(gè)初始聚類中心(0 k-means++聚類算法[12]的描述如下: Step1:從數(shù)據(jù)集中隨機(jī)選取一個(gè)樣本作為初始聚類中心c1; Step3:重復(fù)Step2步直到選擇出共k個(gè)聚類中心; Step4:針對(duì)數(shù)據(jù)集中每個(gè)樣本xi,計(jì)算它到k個(gè)聚類中心的距離并將其分到距離最小的聚類中心所對(duì)應(yīng)的類中; Step5:針對(duì)每個(gè)類別ci,重新計(jì)算它的聚類中心ci=1/|ci|∑x∈cix(即屬于該類的所有樣本的質(zhì)心); Step6:重復(fù)Step4步和Step5步直到聚類中心的位置不再變化。 將圖2網(wǎng)絡(luò)結(jié)構(gòu)輸出的去噪深度卷積特征fc和使用k-means++聚類算法提取的主顏色特征fl,按照式(2)級(jí)聯(lián)fc和fl特征,構(gòu)造出深度融合特征fm。 fm=αfc+βfl (2) 由于特征維度比較高和有限的訓(xùn)練樣本,過擬合是一個(gè)可能出現(xiàn)的嚴(yán)重問題。為了解決這個(gè)問題,使用了Dropout[4]方法,Dropout方法是一種在學(xué)習(xí)的過程中隨機(jī)刪除神經(jīng)元的方法。訓(xùn)練時(shí),每傳遞一次數(shù)據(jù),就會(huì)隨機(jī)選出隱藏層的神經(jīng)元,然后將其刪除,被刪除的神經(jīng)元不再進(jìn)行信號(hào)的傳遞;測試時(shí),雖然會(huì)傳遞所有的神經(jīng)元信號(hào),但是對(duì)于各個(gè)神經(jīng)元的輸出,要乘上訓(xùn)練時(shí)的刪除比例后再輸出。因此,被刪除的神經(jīng)元不參與前向傳遞,也不再用于后向傳播過程。在不同的訓(xùn)練階段,深度網(wǎng)絡(luò)通過隨機(jī)丟棄神經(jīng)元形成不同的神經(jīng)網(wǎng)絡(luò)。Dropout方法可以防止復(fù)雜的共適應(yīng),神經(jīng)元可以學(xué)習(xí)到更加正確的特征。 為了增強(qiáng)網(wǎng)絡(luò)的魯棒性,在訓(xùn)練過程中還使用了ReLU激活函數(shù)[13],ReLU是一個(gè)簡單的非線性算子。如果神經(jīng)元的輸出為正,則該函數(shù)接受該神經(jīng)元的輸出;如果輸出為負(fù),則返回0。ReLU函數(shù)的表達(dá)式如下所示: (3) 通過使用ReLU激活函數(shù)和Dropout方法,讓大多數(shù)神經(jīng)元的輸出變?yōu)?,再利用多層的ReLU和Dropout實(shí)現(xiàn)了一種基于稀疏的深度網(wǎng)絡(luò)正則化,同時(shí)解決了深度多特征融合圖像分類的過擬合問題。 實(shí)驗(yàn)使用的圖像庫是Corel公司提供的標(biāo)準(zhǔn)圖像素材庫Corel-1000。該庫包含了人物、建筑物、公交車、花卉、動(dòng)物等10類共1000幅圖像,800張作為訓(xùn)練集,剩余200張作為測試集。為了方便網(wǎng)絡(luò)讀取,對(duì)圖像庫進(jìn)行了預(yù)處理操作,將圖像尺寸由原來的3*100*128壓縮成3*48*48。 深度多特征融合的CNNs網(wǎng)絡(luò)模型的Epoch設(shè)為50,每次迭代次數(shù)為8,批處理大小為100幅圖像。第一個(gè)卷積層的卷積核大小是5*5,濾波器32個(gè);第二個(gè)卷積層的卷積核大小是5*5,濾波器64個(gè);第三、第四個(gè)卷積層的卷積核大小是3*3,濾波器是128個(gè)。卷積步長設(shè)為1,填充設(shè)為0。池化層步長設(shè)置為2,池化窗口大小為2*2。最后,Softmax層有10個(gè)神經(jīng)單元,表示將圖像分為10類。 通過最小化損失函數(shù)來獲得最優(yōu)解。本研究使用交叉熵誤差函數(shù)[14]作為損失函數(shù),其表達(dá)式為 (4) 要使損失函數(shù)最優(yōu)化,需要用到優(yōu)化方法,實(shí)驗(yàn)采用Adam優(yōu)化器[15]。結(jié)合AdaGrad和RMSProp兩種優(yōu)化算法的優(yōu)點(diǎn)。綜合考慮梯度的一階矩估計(jì)(梯度的均值)和二階矩估計(jì)(梯度的未中心化的方差),計(jì)算更新步長。 其更新步驟可總結(jié)如下: 1)計(jì)算時(shí)刻t的梯度 gt=?θJ(θt-1) (5) 2)計(jì)算梯度的指數(shù)移動(dòng)平均數(shù) mt=β1mt-1+(1-β1)gt (6) 其中,將m0初始化為0,系數(shù)β1為指數(shù)衰減率,控制權(quán)重分配(動(dòng)量與當(dāng)前梯度),默認(rèn)為0.9。 3)計(jì)算梯度平方的指數(shù)移動(dòng)平均數(shù) (7) 其中,v0初始化為0,β2為指數(shù)衰減率,控制之前梯度平方的影響情況,默認(rèn)為0.999。 4)對(duì)梯度均值mt進(jìn)行偏差糾正 (8) 5)對(duì)梯度方差vt進(jìn)行偏差糾正 (9) 6)更新參數(shù),默認(rèn)學(xué)習(xí)率α=0.001: (10) 其中,ε=10^-8,避免除數(shù)為0。步長通過梯度均值和梯度均方根進(jìn)行自適應(yīng)調(diào)節(jié)。 本研究將主顏色特征與位置和形狀相關(guān)特征進(jìn)行深度多特征融合的卷積神經(jīng)網(wǎng)絡(luò),簡稱為MCNNs。CNN和MCNNs在測試集上的實(shí)驗(yàn)結(jié)果見表1。 表1 CNN和MCNNs在測試集的準(zhǔn)確率比較 其中,分類算法的提高率為 (11) Precision=r/a (12) 其中,a代表圖像庫中的圖像總數(shù),r代表圖像庫中分類正確的圖像數(shù)目。 表1的實(shí)驗(yàn)結(jié)果,是設(shè)置α=1,β=1e-5時(shí)得到的準(zhǔn)確率。經(jīng)過多次實(shí)驗(yàn)證明,空間位置和形狀相關(guān)特征在深度多特征融合時(shí)起主導(dǎo)作用,而主顏色特征起輔助作用,所以β的值要設(shè)置的比較小。從表1的實(shí)驗(yàn)結(jié)果可以看到,由于加入了主顏色特征進(jìn)行深度多特征融合,彌補(bǔ)了CNN對(duì)顏色特征不敏感的欠缺,所以MCNNs比CNN分類準(zhǔn)確率提高了5.49%。 從圖3的曲線精度對(duì)比圖可以看到,MCNNs比CNN不僅有效提高了分類精度,收斂速度也相對(duì)加快。此外,由于MCNNs和CNN中都使用了去噪深度卷積特征,所以,網(wǎng)絡(luò)模型的性能相對(duì)穩(wěn)定和健壯。在整個(gè)測試集的兩條曲線精度對(duì)比圖上,幾乎看不到分類精度存在大幅度起伏。 圖3 MCNNs和CNN在測試集上的曲線精度對(duì)比圖 使用MCNNs網(wǎng)絡(luò)模型對(duì)圖像庫進(jìn)行分類時(shí),驗(yàn)證不同的α、β值是否會(huì)產(chǎn)生不同的實(shí)驗(yàn)效果,故選取不同的α、β值進(jìn)行實(shí)驗(yàn),表2是其在測試集上的實(shí)驗(yàn)結(jié)果。 表2 測試集上不同α、β值的實(shí)驗(yàn)效果比較 表2中,當(dāng)α值設(shè)置為1,β值設(shè)置為1e-5時(shí),準(zhǔn)確率是86.5%;而β值被設(shè)置為1e-6時(shí),準(zhǔn)確率是89%,提升了2.5個(gè)百分點(diǎn)。從而可見,選取不同的α、β值時(shí),對(duì)MCNNs網(wǎng)絡(luò)模型產(chǎn)生的實(shí)驗(yàn)效果不盡相同。實(shí)驗(yàn)使用的標(biāo)準(zhǔn)圖像素材庫Corel-1000中只有1000張10種類別的圖像,圖像庫樣本比較少,所以當(dāng)α=1,β=1e-6,準(zhǔn)確率達(dá)到89%時(shí),已經(jīng)是一個(gè)不錯(cuò)的圖像分類結(jié)果了。 從圖4的箱線圖中,可以觀察到,CNN的最大、最小和中值準(zhǔn)確率以及上四分位數(shù)和下四分位數(shù)均小于MCNNs(β=1e-6)和MCNNs(β=1e-5)。此外,還可以觀察到:MCNNs(β=1e-6)的性能也相對(duì)穩(wěn)定,拋出的異常值也是最優(yōu)的。 圖4 MCNNs和CNN在測試集上的準(zhǔn)確率 當(dāng)MCNNs網(wǎng)絡(luò)模型進(jìn)行深度多特征融合,使用深度去噪卷積特征和未使用深度去噪卷積特征(NMCNNs)時(shí),在測試集上得到的實(shí)驗(yàn)結(jié)果見表3。 表3 MCNNs和NMCNNs在測試集的準(zhǔn)確率比較 可以看出:進(jìn)行深度特征融合時(shí),深度去噪卷積特征可以提高圖像分類的準(zhǔn)確率,相對(duì)于NMCNNs,MCNNs的實(shí)驗(yàn)性能提升了3個(gè)百分點(diǎn)。同時(shí),與表1中使用了深度去噪卷積特征的CNN實(shí)驗(yàn)效果相比,融合主顏色特征比只使用深度去噪卷積特征的實(shí)驗(yàn)性能提升了1.5個(gè)百分點(diǎn)。 本研究提出了一種深度多特征融合的CNNs圖像分類算法,有效深度融合了圖像的主顏色特征和利用卷積神經(jīng)網(wǎng)絡(luò)提取的空間位置形狀特征,彌補(bǔ)了CNN網(wǎng)絡(luò)模型只讀取圖像空間位置信息,對(duì)顏色信息不太敏感的不足。實(shí)驗(yàn)結(jié)果表明,MCNNs不但對(duì)圖像分類效果有較大程度的提升,而且模型性能更加穩(wěn)定和健壯。同時(shí),使用不同的權(quán)重值,在MCNNs網(wǎng)絡(luò)模型上進(jìn)行實(shí)驗(yàn)時(shí),對(duì)實(shí)驗(yàn)性能會(huì)產(chǎn)生不同的影響。在未來的研究工作中,逐漸嘗試實(shí)現(xiàn)模型的自適應(yīng)權(quán)重,使模型性能達(dá)到更優(yōu)。3.2 深度多特征融合算法
4 實(shí)驗(yàn)結(jié)果及分析
4.1 實(shí)驗(yàn)參數(shù)與圖像庫
4.2 實(shí)驗(yàn)結(jié)果
5 總結(jié)