張林鵬,汪西原,2,李 強
(1.寧夏大學物理與電子電氣工程學院,寧夏 銀川 750021; 2.寧夏沙漠信息智能感知重點實驗室,寧夏 銀川 750021)
近年來,卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network, CNN)[1]因其在圖像處理中的有效性,被廣泛地應用在計算機視覺領(lǐng)域研究中,并極大地提高了在圖像分類[2]、目標檢測[3]以及圖像分割[4]等任務中的精度性能。因此,越來越多的研究者將CNN引入圖像處理領(lǐng)域,并且證實了基于深度學習的方法比傳統(tǒng)方法更具優(yōu)越性與魯棒性[5]。池化操作造成特征信息丟失,卷積神經(jīng)網(wǎng)絡使用較多池化操作是導致特征信息不足的重要原因。針對特征信息不足的問題,孟慶祥等[6]利用池化層將得到的特征圖進行過濾,保留重要特征,將提取出來的特征重組以形成高階語義特征進行圖像分類,顯著提升了分類精度。張曉麗等[7]通過加權(quán)融合方法對圖像的不同特征進行加權(quán)處理,通過多種特征融合的方式,有效提高了圖像分類的簡潔性。通過改進卷積神經(jīng)網(wǎng)絡的池化方式,可以達到提高特征提取準確率的目的。劉夢雅等[8]通過獲取最大池化和平均池化的乘積,引入了池化因子,提高了卷積神經(jīng)網(wǎng)絡的識別準確率。劉萬軍等[9]構(gòu)建了一種動態(tài)自適應池化模型,提高了模型的識別準確率和收斂速度,達到了優(yōu)化模型學習性能的目的。以上方法通過特征選擇和融合的方式增強了特征信息,提高了模型的識別準確率,但未能減少因池化過程造成的信息損失。因此,本文針對圖像分類過程中信息大量損失的問題,提出一種基于雙池化的卷積神經(jīng)網(wǎng)絡結(jié)構(gòu)。利用最大池化和平均池化保留不同特征信息的特點[10],采用特征融合的方式將2種池化方式輸出的特征圖拼接成新的特征圖,從而保留圖像中更多的特征信息。同時通過遺傳算法對神經(jīng)網(wǎng)絡進一步優(yōu)化,使得識別準確率得到提高。
卷積神經(jīng)網(wǎng)絡是一種受生物學啟發(fā)的前饋神經(jīng)網(wǎng)絡,包含卷積計算同時具有深度結(jié)構(gòu)。一個基本的卷積神經(jīng)網(wǎng)絡包括輸入層、隱藏層、輸出層這3個部分,隱藏層又包含卷積層、池化層、全連接層等[11]。卷積神經(jīng)網(wǎng)絡的基本結(jié)構(gòu)如圖1所示。
圖1 卷積神經(jīng)網(wǎng)絡結(jié)構(gòu)
1)輸入層。輸入層是整個神經(jīng)網(wǎng)絡的輸入,在處理圖像的過程中,卷積神經(jīng)網(wǎng)絡的輸入層一般表示圖像的像素矩陣。比如在圖1中,最左側(cè)的三維矩陣的長和寬表示圖像的大小,而三維矩陣的深度表示圖像的色彩通道。比如黑白圖片的深度為1,而在RGB色彩模式下,圖像的深度為3[12]。從輸入層開始,卷積神經(jīng)網(wǎng)絡通過不同的神經(jīng)網(wǎng)絡結(jié)構(gòu)將上一層的三維矩陣轉(zhuǎn)化為下一層的三維矩陣,直到最后的全連接層。
2)卷積層。卷積層是卷積神經(jīng)網(wǎng)絡的重要組成部分,其功能是對輸入數(shù)據(jù)進行特征提取,包含多個卷積核,是從輸入圖像中提取特征的第一層[13]。通過使用小方塊輸入數(shù)據(jù)學習圖像特征來保持像素之間的關(guān)系,這個小塊的大小為3×3或者5×5。卷積層試圖將神經(jīng)網(wǎng)絡中的每一個小塊進行更加深入的分析從而得到抽象程度更高的特征。
3)池化層。池化操作可以認為是將一張分辨率較高的圖片轉(zhuǎn)化為分辨率較低的圖片[14]。通過池化層,可以進一步縮小最后全連接層中節(jié)點的個數(shù),保留圖像的重要信息,從而達到降低神經(jīng)網(wǎng)絡參數(shù)量的目的。
4)全連接層。如圖1所示,在經(jīng)過多次卷積操作和池化操作之后,由全連接層來給出最后的分類結(jié)果。經(jīng)過幾輪的卷積層和池化層的處理之后,卷積神經(jīng)網(wǎng)絡將輸入的圖像生成信息含量更高的特征圖,這個過程屬于特征提取過程[11]。在特征提取完成之后,仍然需要使用全連接層來完成分類任務。
池化是卷積神經(jīng)網(wǎng)絡的基本操作。池化函數(shù)使用某一位置的相鄰輸出的總體統(tǒng)計特征來代替網(wǎng)絡在該位置的輸出,使用池化可以看作增加了一個無限強的先驗:池化層學得的函數(shù)必須具有對少量平移的不變性[15]。當這個假設成立時,池化可以極大地增強網(wǎng)絡的統(tǒng)計效率。常用的2種池化方式:最大池化定義為式(1)和平均池化定義為式(2):
(1)
(2)
其中,Havg、Hmax為池化后的值,?(i,j)為池化窗口內(nèi)位置為(i,j)的點,m為池化窗口尺寸,c為池化窗口內(nèi)(i,j)取值的集合。
特征提取的誤差主要來自2個方面:1)鄰域大小受限造成的估計值方差增大;2)卷積層參數(shù)誤差造成估計均值的偏移。一般來說,平均池化能減小第一種誤差,更多地保留圖像的背景信息[16],最大池化能減小第二種誤差,更多地保留紋理信息[17]?;谄骄鼗c最大池化改進的雙池化結(jié)構(gòu),既保留了平均池化提取的背景信息又保留了最大池化提取的紋理信息。
目前在卷積神經(jīng)網(wǎng)絡中大多數(shù)只使用一種池化方式,這就造成了信息損失,為了充分利用特征信息可同時使用這2種池化方式。雙池化結(jié)構(gòu)如圖2所示,對卷積層輸出的特征圖進行1×1卷積操作,特征圖的個數(shù)為原來的1/2,然后對降維后的特征圖分別進行最大池化和平均池化操作得到2組特征圖,將池化后的2組特征圖進行拼接。
圖2 雙池化結(jié)構(gòu)
本文使用的卷積神經(jīng)網(wǎng)絡采用遺傳算法(Genetic Algorithm, GA)優(yōu)化方法對網(wǎng)絡參數(shù)進行優(yōu)化[18]。在每次迭代過程中,遺傳算法從當前種群中選擇“最好”的個體作為雙親來產(chǎn)生子代,以使種群朝最優(yōu)解“進化”。遺傳算法的流程[19]如圖3所示。
圖3 遺傳算法流程圖
傳統(tǒng)的編碼模式將每個網(wǎng)絡參數(shù)作為染色體的一個元素,而在大規(guī)模網(wǎng)絡中,這種編碼模式將使得染色體結(jié)構(gòu)過于龐大,導致遺傳算子失效等問題。一個解決方法是將每個卷積層與全連接層看作一個整體作為染色體的一個元素,即每個染色體元素要么包含一個層的所有連接權(quán)重,要么包含一個過濾器的所有值[20]。這種編碼模式大大縮減了染色體結(jié)構(gòu),使其具有更短的運算時間、更快的收斂速度以及更高的正確率。如圖4所示。
圖4 遺傳算法優(yōu)化卷積神經(jīng)網(wǎng)絡原理圖
該算法實現(xiàn)步驟為:
1)初始化:利用Keras初始化數(shù)量為pop_size的種群。
2)評估:每個網(wǎng)絡的表現(xiàn)基于Keras的model.evaluate()函數(shù)給出。
3)適應度分配:使用每個網(wǎng)絡的準確性作為適應度值。
4)選擇:最適應的個體將直接進入下一代。
5)交叉:對卷積層,該過程隨機選擇雙親的其中一個,并將對應的過濾器拷貝到子代。
6)變異:如果被選擇的是卷積層,那么其中的每一個值由均值為該值、標準差為0.5的高斯噪音代替。如果是神經(jīng)元,則將每一個權(quán)重加上一個來自初始分布的隨機數(shù)。
7)代替:新子代與最適應的個體共同組成了下一代種群,標志著一次迭代的完成。
本文選擇NWPU-RESISC45數(shù)據(jù)集與Cifar-10數(shù)據(jù)集進行實驗驗證。使用Python語言和Keras深度學習框架進行數(shù)據(jù)預處理和卷積神經(jīng)網(wǎng)絡的搭建;硬件平臺選擇TITAN XP 12 GB顯存GPU的LINUX平臺。
Cifar-10數(shù)據(jù)集包含60 000幅彩色圖像,圖像大小為32×32,共有10個類,每類6000幅圖像[21]。數(shù)據(jù)集中有50000幅圖像用于訓練,另外10000幅圖像用于測試。測試集的數(shù)據(jù),包含每一類各1000幅圖像。數(shù)據(jù)集如圖5(a)所示。
高分辨率遙感圖像數(shù)據(jù)集NWPU-RESISC45是由西北工業(yè)大學(NWPU)創(chuàng)建的REmote傳感圖像場景分類(RESISC)的公開可用基準。該數(shù)據(jù)集圖像大小為256×256,共包含45類場景圖像,每一類有700幅圖像,共31 500幅圖像[22]。本文按5∶1∶1劃分圖像為訓練集、驗證集、測試集。數(shù)據(jù)集如圖5(b)所示。
(a)Cifar-10示例圖
圖6為采用不同池化方式的卷積神經(jīng)網(wǎng)絡輸出的特征圖。從圖6可以看出,最大池化和平均池化2種池化方式產(chǎn)生的特征圖效果是不同的,即2種池化方式所保留的圖像信息是不同的。從不同權(quán)重融合的效果圖可以看出,賦予2種不同池化方式不同權(quán)重,融合得到的特征圖效果不同。相較最大池化特征圖,雙池化結(jié)構(gòu)特征圖具有更豐富的背景信息;相較平均池化特征圖,雙池化結(jié)構(gòu)特征圖具有更豐富的紋理信息。同時,權(quán)重的不同也會產(chǎn)生不同的特征圖,當最大池化權(quán)重大于平均池化權(quán)重則紋理信息更為豐富,當平均池化權(quán)重大于最大池化權(quán)重特征圖中背景信息更為豐富。因此本文采用雙池化結(jié)構(gòu)的卷積神經(jīng)網(wǎng)絡較單一的池化方式可以更大程度上保留圖像信息,同時引入遺傳算法對神經(jīng)網(wǎng)絡進行優(yōu)化,實現(xiàn)特征融合權(quán)重自動賦值,可以自動獲取每個特征的重要程度,從而提升有用特征的權(quán)重,抑制當前任務中作用較小的特征。
圖6 采用不同池化方式輸出的特征圖
圖7所示為4種不同池化結(jié)構(gòu)VGG16網(wǎng)絡在NWPU-RESISC45遙感數(shù)據(jù)集上的相關(guān)曲線,其中圖7(a)是識別準確率曲線,max-pool代表最大池化模型的識別準確率曲線,double-pool代表雙池化模型的識別準確率曲線,mean-pool代表平均池化模型的識別準確率曲線,middle-pool代表中值池化模型的識別準確率曲線。隨著模型迭代次數(shù)的增加,每一種池化模型的識別準確率都在提高,但雙池化結(jié)構(gòu)模型的情況顯然優(yōu)于其他幾種池化模型。圖7(b)所示為損失函數(shù)曲線,圖例同圖7(a)。隨著迭代次數(shù)增加,4種池化模型的損失函數(shù)都在不斷下降,雙池化結(jié)構(gòu)效果相對于其他3種池化模型效果更好。在NWPU-RESISC45遙感數(shù)據(jù)集上,雙池化結(jié)構(gòu)VGG網(wǎng)絡在訓練精度和損失函數(shù)收斂效果上較原有網(wǎng)絡有了提升。
(a)準確率曲線
為進一步提高雙池化模型的識別準確率,優(yōu)化不同特征圖權(quán)重,提高模型學習性能,使用遺傳算法對模型進行優(yōu)化。算法中,pop_size設為100前10個最適應的個體直接進入下一代。選擇20個個體進入交配池,產(chǎn)生剩下的90個子代。表1為5種方法在NWPU-RESISC45數(shù)據(jù)集上的識別準確率,雙池化模型的準確率為87.74%,較最大池化模型、平均池化模型、中值池化模型識別準確率分別提高了4.41百分點、9.44百分點、8.01百分點。使用遺傳算法優(yōu)化后,雙池化模型識別準確率提高了1.17百分點。
表1 5種方法在NWPU-RESISC45數(shù)據(jù)集上的識別準確率 單位:%
將本文方法在Cifar-10數(shù)據(jù)集上進行驗證,選取模型為自定義卷積神經(jīng)網(wǎng)絡,該網(wǎng)絡包括4個卷積層和2個池化層,卷積核大小為3×3。相關(guān)曲線如圖8所示,圖例同NWPU-RESISC45數(shù)據(jù)集實驗。隨著模型迭代次數(shù)的增加,每一種池化模型的識別準確率都在提高,但雙池化結(jié)構(gòu)模型的情況顯然優(yōu)于其他幾種池化模型。圖8(b)所示為損失函數(shù)曲線,圖例同圖8(a)。隨著迭代次數(shù)增加,4種池化模型的損失函數(shù)都不斷下降,雙池化結(jié)構(gòu)效果相對于其他3種池化模型效果更好。
(a)準確率曲線
遺傳算法優(yōu)化雙池化模型實驗參數(shù)同NWPU-RESISC45數(shù)據(jù)集實驗。表2為5種方法在Cifar-10數(shù)據(jù)集上的識別準確率,雙池化模型的準確率為83.04%,較最大池化模型、平均池化模型、中值池化模型識別準確率分別提高了3.37百分點、5.11百分點、4.24百分點。使用遺傳算法優(yōu)化后,雙池化模型識別準確率提高了2.68百分點。
表2 5種方法在Cifar-10數(shù)據(jù)集上的識別準確率 單位:%
本文對卷積神經(jīng)網(wǎng)絡的池化層進行改進,用最大池化層和平均池化層構(gòu)成的雙池化結(jié)構(gòu)替代了網(wǎng)絡中原有的池化結(jié)構(gòu),在保證原有池化作用的同時減少了特征信息的損失,提高了模型的識別準確率,優(yōu)化了學習性能。采用遺傳算法對網(wǎng)絡參數(shù)進行優(yōu)化,進一步提高了雙池化模型的識別準確率。本文使用高分辨率遙感圖像數(shù)據(jù)集和彩色圖像數(shù)據(jù)集進行實驗,識別準確率較傳統(tǒng)池化方式有不同程度的提升。同時發(fā)現(xiàn)本文算法對遙感圖像分類精度提升較為明顯,因此將雙池化特征加權(quán)結(jié)構(gòu)應用于遙感圖像處理的其他領(lǐng)域也是值得探索的研究方向之一。實驗結(jié)果表明,本文提出的方法解決了池化操作造成的特征提取不足的問題,在圖像分類問題上取得了良好的效果。