楊凌,司寧博
(蘭州大學信息科學與工程學院,蘭州 730000)
稀疏PCA網(wǎng)絡:一種核自適應的卷積神經(jīng)網(wǎng)絡
楊凌,司寧博
(蘭州大學信息科學與工程學院,蘭州730000)
卷積神經(jīng)網(wǎng)絡因其具有的能夠處理高維數(shù)據(jù)和易于并行化的特點,近年來在圖像處理相關問題中受到廣泛應用。相比于目前所流行的使用大量圖片集構(gòu)建深層網(wǎng)絡的設計方法,稀疏PCA網(wǎng)絡更注重卷積核的構(gòu)建。傳統(tǒng)的卷積核構(gòu)建方法需要大量計算時間或復雜的圖像特征提取知識,稀疏PCA網(wǎng)絡使用簡單的PCA基向量來構(gòu)建卷積核,并加入聚類步驟,從而引入自適應性與稀疏性。在結(jié)果上,稀疏PCA網(wǎng)絡相比傳統(tǒng)的PCANet在圖像分類實驗正確率上有所提高,相較于其他深度學習模型也獲得了較好的結(jié)果。
卷積神經(jīng)網(wǎng)絡;PCA;稀疏表達;自適應;圖像分類
神經(jīng)網(wǎng)絡是一種模仿動物神經(jīng)系統(tǒng)的模型,在機器學習問題中應用廣泛。近年來,由于人們所處理的問題越來越大規(guī)?;绾斡行У貜臄?shù)據(jù)中提取特征成了機器學習中的重要問題。神經(jīng)網(wǎng)絡具有靈活的結(jié)構(gòu),可監(jiān)督式地進行分類學習,也可無監(jiān)督地提取特征。受到動物視覺皮層的部分激活這一特性的啟發(fā),卷積神經(jīng)網(wǎng)絡在其基礎上采用了部分連通的結(jié)構(gòu),這使得它的模型參數(shù)大大減少,并且能夠更好地學習到數(shù)據(jù)的局部特征[1],被大量應用于圖像與語音等問題中。卷積神經(jīng)網(wǎng)絡采用局部卷積核來提取特征,可以通過反向迭代算法訓練出卷積核,從而替代傳統(tǒng)的人工設計特征方法。
主成分分析法(PCA)是一種用于特征提取和數(shù)據(jù)降維的無監(jiān)督學習方法,它能夠找到數(shù)據(jù)的最大變化方向。從特征的角度來看,這些主要的變化方向即是數(shù)據(jù)的特征。因此,PCA基向量可以作為卷積核應用于卷積神經(jīng)網(wǎng)絡中。事實上,馬毅等人提出的PCANet[2]就是用PCA基向量作為卷積核構(gòu)建的三層網(wǎng)絡,取得了和其他深層網(wǎng)絡模型相近甚至更好的效果。為了更好地適應圖像的局部特征,在PCANet的基礎上,本文使用聚類算法構(gòu)建出了一個過完備的PCA基向量詞典,在特征提取時,自適應地在詞典中找到對應的卷積核,使得每個圖像片變?yōu)橐粋€稀疏表達。
本文首先介紹了卷積神經(jīng)網(wǎng)絡模型以及傳統(tǒng)的PCANet,之后介紹加入了聚類步驟的稀疏PCA網(wǎng)絡,最后用稀疏PCA網(wǎng)絡在CIFAR 10數(shù)據(jù)集子集上與其他深度學習模型進行了實驗對比。
卷積神經(jīng)網(wǎng)絡從結(jié)構(gòu)上可分為兩個部分:卷積層和池化層。卷積層和池化層可疊加,從而構(gòu)建出深層網(wǎng)絡。圖1是一種簡單的卷積神經(jīng)網(wǎng)絡,由Y.LeCun等人提出[1]。
1.1卷積層
卷積層是將輸入圖片與多個卷積核進行卷積運算,從而得到多張?zhí)卣鲌D。每一個卷積核作為一個特征提取器,在整張輸入圖片上滑動,計算卷積,尋找出可能的邊緣,紋理或者邊角特征。使用多個卷積核,可以對輸入圖片的某一位置提取不同的特征。特征圖表示了輸入圖片在對應位置上對于某種特征的激活程度,如果對應位置處的小區(qū)域圖像片符合卷積核所代表的特征,則會得到較大輸出。對于一張尺度為N×N的輸入圖片X和一個尺度為m×m的卷積核W,經(jīng)過卷積運算的特征圖Y的尺度為(N-m+1)×(N-m+1),特征圖Y上每個點可表示為:
其中yij為特征圖Y在(i,j)位置處的輸出,xij為輸入圖片在(i,j)位置處的灰度值。wab為卷積核W在(a,b)位置處的值。σ()是激活函數(shù)。通常,卷積層會將卷積結(jié)果輸入一個非線性函數(shù),將結(jié)果作為最終特征圖中的值。常用的激活函數(shù)有sigmoid函數(shù)和近年來廣泛使用的ReLU函數(shù)[3]。對于sigmoid函數(shù),卷積層最終輸出為:
對于ReLU函數(shù),卷積層最終輸出為:
1.2池化層
池化層又稱下采樣層,是對卷積層輸出的特征圖進行局部下采樣。一般常用最大值下采樣和平均值下采樣。如果池化窗口維度是k×k,那么最大值池化輸出為該k×k區(qū)域的最大值,平均值池化輸出該k×k區(qū)域的平均值。通過池化操作,特征圖的分辨率減小,并且給特征引入了平移與旋轉(zhuǎn)不變性[1],這使得模型更具魯棒性。
圖1 卷積神經(jīng)網(wǎng)絡
圖中輸入圖片大小N×N,第一層卷積核大小m× m;經(jīng)過第一次卷積運算生成大小為(N-m+1)×(N-m+ 1)的特征圖;第一層池化窗口大小k×k,經(jīng)池化下采樣后輸出的特征圖大小為第二層卷積和池化進行同樣的操作。
卷積神經(jīng)網(wǎng)絡的卷積核作為特征提取器,通常采用隨機初始化,再通過反向迭代算法修正更新的方法獲得[4]。近年來受深度學習理論影響,Ng.Y等人使用RBM預訓練得到卷積核[5]。與之相對地,J.Bruna等人使用小波函數(shù)作為一組固定的卷積核[6],也取得了較好的效果。而馬毅等人所設計的PCANet結(jié)構(gòu)更簡單,能適應不同數(shù)據(jù)和問題,成為了深度學習圖像分類問題的基線實驗[2]。
從結(jié)構(gòu)上看,PCANet是一個三層線性網(wǎng)絡,前兩層為PCA基向量的計算和卷積計算特征圖,第三層是一個輸出層。如圖2所示。下面將分層詳細介紹PCANet。
圖2 PCANet
輸入圖片Ii是訓練數(shù)據(jù)集中的第i張圖片,經(jīng)過第一層PCA網(wǎng)絡的L1個卷積核w1,1…w1,L1,產(chǎn)生第一層特征圖每張?zhí)卣鲌D經(jīng)過L2個第二層卷積核w2,1…w2,L2生成一組輸出,記為O1i…OLi1;經(jīng)過二值量化與映射為整圖H1i…HLi1,最后直方統(tǒng)計為向量fi作為最終輸出。
2.1第一層PCA
PCANet的第一層網(wǎng)絡首先利用數(shù)據(jù)集中的樣本離線計算PCA基向量,之后利用這些PCA基向量作為卷積核,對輸入圖片計算特征。
離線計算PCA基向量的過程如下:對于所有的輸入圖片,首先進行分片操作,找出所有像素點位置處的小片,在這些小片集合上計算出PCA基向量,小片大小即卷積核大小。對于N張大小為m×n的輸入圖片集合{I}Ni=1,小片大小k1×k2,滑動窗口遍歷所有圖像獲得小片集合,并將每個小片分別展開為一個k1k2維向量,得到xi,1,xi,2,...,xi,m'n'∈Rk1k2,其中xi,j表示第i張輸入圖片的第j個位置處的小片展成的向量;對于步長為1的滑動窗口遍歷,一張輸入圖片可以提取m'n'個小片,其中,m'=m-「k1/2?,n'=n-「k1/2?。通過去均值,構(gòu)建出數(shù)據(jù)集中所有小片展成向量組成的矩陣∈Rk1k2×Nm'n'作為數(shù)據(jù)矩陣,其中一層網(wǎng)絡的PCA基向量是數(shù)據(jù)矩陣X的協(xié)方差矩陣XXT的特征向量。記w1,i為第i個特征向量,下標1表示第一層網(wǎng)絡,則W1=[w1,1,w1,2,…,w1,L1]為第一層網(wǎng)絡中XXT前L1個主特征向量組成的矩陣。
在PCA基向量計算結(jié)束后,PCANet進入第一層的特征提取階段。每一個特征向量作為一個卷積核,在輸入圖片上滑動做卷積運算,生成特征圖。其中,第l個卷積核對第i張圖片所產(chǎn)生的特征圖為:
2.2第二層PCA
第二層網(wǎng)絡與第一層結(jié)構(gòu)相同,也經(jīng)過計算PCA基向量和卷積特征提取兩步。
第二層網(wǎng)絡的輸入是上層卷積得到的所有特征圖Yli。PCANet使用同樣的分片和去均值操作,計算第二層PCA基向量。將Yli分片,去均值并向量化,寫成矩陣形式,得到其中表示在特征圖Yli的第j位置處小片所展成的向量去均值的結(jié)果。對于第l個卷積核,記經(jīng)過它卷積產(chǎn)生的所有N張?zhí)卣鲌D的分片向量集合為矩陣將所有L1個核經(jīng)過卷積、分片、去均值后的結(jié)果連接,可得到數(shù)據(jù)矩陣Z=[Z1,Z2,…,ZL1]。對數(shù)據(jù)矩陣Z做PCA分析,即計算ZZT的特征向量,獲得第二層網(wǎng)絡的卷積核,記為W2=[w2,1,w2,2,…,w2,L2],其中w2,L2為ZZT的第L2個特征向量,下標2表示第二層網(wǎng)絡。
在得到第二層L2個卷積核之后,PCANet開始第二層的特征提取。對于每張由上層網(wǎng)絡產(chǎn)生的特征圖Yli1,經(jīng)第二層L2個卷積核的卷積輸出為對應到最初的一張原始輸入圖片,經(jīng)過兩層PCANet網(wǎng)絡共產(chǎn)生了L1L2張?zhí)卣鲌D。
2.3輸出層
PCANet的輸出層將特征圖片做了二進制哈系運算,并轉(zhuǎn)化成直方圖統(tǒng)計向量,作為最終輸出。
對于最初輸入的一張圖片,第一層網(wǎng)絡首先將其轉(zhuǎn)為L1張?zhí)卣鲌D,每張?zhí)卣鲌D經(jīng)第二層網(wǎng)絡又轉(zhuǎn)為L2張?zhí)卣鲌D。首先對這L2張圖經(jīng)過Heaviside階越函數(shù)進行二值化,然后對這L2張二值圖,將每個相同位置像素點的值視為一個L2位二進制數(shù)中的一位,于是L2張二值圖可轉(zhuǎn)為一張整數(shù)圖,記為Hli,表示第i張輸入圖片的第l張第一層特征圖生成的整數(shù)圖,其值域為[0,2L2-1]。將這張整數(shù)圖平均分為B個塊,在每個塊上統(tǒng)計[0,2L2-1]中每個整數(shù)出現(xiàn)的次數(shù),輸出為一個2L2維的向量。對于一張原始輸入圖片,經(jīng)過兩層網(wǎng)絡以及二進制哈希和分塊直方圖統(tǒng)計運算之后,輸出的特征向量為:
其中Bhist()為分塊統(tǒng)計直方圖并將結(jié)果展成向量的算子。
PCANet所使用的卷積核是一組PCA基向量,所以經(jīng)卷積計算得到特征圖是基于PCA詞典的表達系數(shù)。受到這一啟示,我們通過構(gòu)建過完備詞典而得到了輸入圖片的稀疏表達,利用過完備詞典更好的表達圖第片的局部細節(jié)。通常,我們可以使用KSVD來計算過完備詞典[7],然而M.Elad等人證明使用過完備詞典的稀疏編碼是不穩(wěn)定的[9]。因此,我們利用了圖片的非局部特征[10],從圖像自身特點出發(fā),通過對小圖像片聚類,將不同類型的圖片組成一個集合,對每個集合計算PCA基向量,構(gòu)建過完備詞典,從而使圖像片能夠被稀疏表達。聚類與詞典構(gòu)建是稀疏PCA網(wǎng)絡的預訓練步驟,如圖3所示。
圖3 稀疏PCA網(wǎng)絡的預訓練
分為圖像片聚類和聚類PCA基向量計算兩步。
3.1圖像片聚類
為了將不同類型的小圖像片聚類在一起,我們沒有使用圖像本身的灰度值或RGB值,而是先對圖像進行高通濾波,提取出紋理特征,在高頻圖像域?qū)D像片聚類。這是因為,高頻濾波器可以在低層次圖像處理中增強有意義的特征[8]。通常,這種對于高頻圖像片的聚類方法應用與低層次的圖像恢復問題中[11],以學習到更好的詞典來表達出局部特征。在卷積神經(jīng)網(wǎng)絡里,卷積核即是詞典,因此我們將這種低層次圖像處理方法應用于使用卷積神經(jīng)網(wǎng)絡進行的圖像分類問題中。
對于灰度圖,我們直接在灰度域上進行高通濾波;對于RGB圖像,首先我們將其轉(zhuǎn)為YCbCr圖像,只取亮度域通道,對其進行高通濾波。圖4是一組原始圖片,YCbCr亮度域圖片以及高頻圖片的對比??梢钥吹?,經(jīng)過亮度通道高頻濾波之后,圖像的紋理,邊緣特征被突顯出來。將所有圖片做這種轉(zhuǎn)換,并提取出每個像素點位置處的小片。
圖4 高頻濾波特征突顯
圖中第一列為RGB圖像,第二列為YCbCr亮度域圖像,第三列為亮度通道高通濾波后的圖像,紋理特征突出。
在小片集合中,首先過濾掉所有光滑片,光滑片的選取準則是設定閾值,如果小片的方差小于這個閾值則認為它是光滑片。這樣做是為了保留下具有紋理和邊緣等特征的片。之后,在剩余的片中,使用K-means聚類方法,將小片聚為K類,這樣可使得具有相似特征和結(jié)構(gòu)的小片聚為一類。將過濾掉的光滑小片記為第0類,則所有的小片被聚為K+1,表示如下:
{Patches0,Patches1,...,PatchesK}
3.2構(gòu)建過完備詞典
對于光滑片組成的第0類,使用一組固定的DCT基作為其對應的詞典;對于其他的非光滑小片集合,分別對應聚類中的小片集合計算它們的PCA基向量,作為對應的詞典。對于大小為k1×k2的圖像片,我們?nèi)∏癕個基向量,因此可以將詞典表示為:
其中DCT0是k1k2×M維的矩陣,表示光滑圖片對應的一組DCT基向量。PCAj是k1k2×M的矩陣,表示第j類小圖像片的PCA基向量。
3.3卷積核自適應與稀疏表達
小圖像片的聚類和過完備詞典構(gòu)建是稀疏PCA網(wǎng)絡的預訓練步驟。經(jīng)過預訓練后,對于一張輸入圖片,首先找到所有位置處的小片,對每個片,在KMeans計算出的K個聚類中心中尋找最近的中心,找到所屬的類。屬于同一類的圖像片具有相似的特征,因此我們從過完備詞典中選擇該聚類對應的基向量作為一組卷積核。如果該小圖像片屬于第j類,那么此時自適應選擇的詞典為:
其中0k1k2×M為k1k2×M的全0矩陣。
將這個詞典作為卷積核與小片做卷積運算,得到的表達系數(shù)為:
我們只取對應的第j組卷積核計算出的表達系數(shù)放入特征圖的對應位置。稀疏PCA網(wǎng)絡的結(jié)構(gòu)如圖5所示。
在圖像分類實驗里,稀疏PCA網(wǎng)絡作為一個特征提取器,為最終的分類器提供輸入特征。我們使用了CIFAR 10物體分類數(shù)據(jù)集的子集,來和幾種結(jié)構(gòu)相似,并在圖像分類國際比賽中獲得較好成績的神經(jīng)網(wǎng)絡模型[12]:PCANet,ConvNet[13],ScatNet[6]以及一個22層的深層網(wǎng)絡GoogLeNet[14]進行實驗對比。其中,Goog-LeNet使用softmax分類器,其他模型均使用線性SVM作為分類器。
實驗表明,稀疏PCA網(wǎng)絡作為PCANet的改進,對于小樣本數(shù)據(jù)集,實驗結(jié)果在識別錯誤率上有了下降,并且在訓練時間和錯誤率上均優(yōu)于復雜的深層網(wǎng)絡。
4.1實驗數(shù)據(jù)集:CIFAR 10
CIFAR 10是一個用于物體識別的彩色RGB圖片數(shù)據(jù)集[15],共包含10個類別,由50000張訓練圖片和10000張測試圖片組成。其中,每張圖片是一個維度為32×32的RGB圖片。圖6是CIFAR 10部分樣例。
我們對CIFAR 10數(shù)據(jù)集進行采樣,保留了10種類別圖片的數(shù)量比例,構(gòu)建出包含1000張訓練圖片和1000張測試圖片的小樣本數(shù)據(jù)集。
輸入圖片Ii上的每個小圖像片將會被劃分到一個聚類中,隨后使用該聚類的PCA基向量p1,1…p1,L1作為卷積核進行第一層卷積運算。
4.2參數(shù)設置
實驗中使用了和PCANet一樣的網(wǎng)絡層數(shù)以及卷積核個數(shù),即兩層網(wǎng)絡,第一層40個卷積核,第二層8個卷積核,小圖像片大小為5×5。在預訓練階段使用KMeans將小圖像片聚為兩類。訓練過程中,每個小圖像片將自適應地在兩組PCA基向量中選擇卷積核。圖7為使用K-means聚類出的兩個類小圖像片計算得到的PCA基向量,即第一層網(wǎng)絡的卷積核。
圖5 稀疏PCA網(wǎng)絡
圖6 CIFAR 10彩色圖片分類數(shù)據(jù)集數(shù)據(jù)示例圖中的三列圖片分別屬于car,ship,cat類
圖7
4.3實驗結(jié)果比對
使用CIFAR 10采樣得到的子數(shù)據(jù)集,分別在稀疏PCA網(wǎng)絡,PCANet,ScatNet,22層的GoogLeNet和一個3層的ConvNet上進行訓練。實驗結(jié)果使用錯誤率作為評判標準。我們所使用的計算機CPU為主頻1.7GHz的Intel Core i5。
各模型的識別錯誤率如表1所示,訓練與測試總時間如表2所示??梢钥吹剑∈鑀CA網(wǎng)絡在相同訓練集和測試集的情況下,獲得了最低的錯誤率。由于GooLeNet是一個22層的深層網(wǎng)絡,在數(shù)據(jù)集規(guī)模較小的情況下容易陷入過擬合,使得錯誤率較高。在運行時間方面,ConvNet使用反向傳播算法不迭代修正卷積核,需要大量時間訓練;稀疏PCA網(wǎng)絡和PCANet運行時間基本相當;相比ScatNet,由于稀疏PCA網(wǎng)絡和PCANet使用了簡單的PCA基向量作為卷積核,訓練時間相對更少。
表1 各模型在CIFAR 10子集上的識別錯誤率
表2 各模型在CIFAR 10子集上的訓練與測試運行時間
稀疏PCA網(wǎng)絡是PCANet的改進,是一種利用圖片相似性聚類,進行特征稀疏表達的核自適應卷積神經(jīng)網(wǎng)絡。經(jīng)實驗證實,稀疏PCA網(wǎng)絡在圖像分類實驗上可獲得比結(jié)構(gòu)類似的模型更低的錯誤率,并在訓練時間上遠小于深層神經(jīng)網(wǎng)絡。
[1]LeCun.Y,Bengio,Yoshua.Convolutional Networks for Images,Speech,and Time Series[M].The Handbook of Brain Theory and Neural networks,Michael A.Arbib(Ed.).MIT Press,1998,3361(10):255-258.
[2]Chan.T.H,Jia.K,Gao.S,Lu.J,Zeng.Z,Ma.Y,PCANet:A Simple Deep Learning Baseline for Image Classification[J].IEEE Transactions on Image Processing,2015,24(12):5017-5032.
[3]Alex.K,Sutskever,Ilya,Geoffrey E.H.ImageNet Classification with Deep Convolutional Neural Networks[C].Advances in Neural Information Processing Systems 25,Curran Associates,Inc.2012:1097-1105.
[4]LeCun.Y,Boser.B,Denker.J.S,Henderson.D,Howard.R.E.Backpropagation Applied to Handwritten Zip Code Recognition[J]. Neural Computation,1989,1(4):541-551,.
[5]Lee.H,Grosse.R,Ranganath.R,Ng.Y.Convolutional Deep Belief Networks for Scalable Unsupervised Learning of Hierarchical Representations[C].Proceedings of the 26th Annual International Conference on Machine Learning.ACM,New York,NY,USA,2009:609-616.
[6]Bruna.J,Mallat.S,Bacry.E.Intermittent Process Analysis with Scattering Moments[J].The Annals of Statistics.2013,35(8):1872-1886.
[7]Aharon.M,Elad.M,Bruckstein.A.K-SVD:An Algorithm for Designing Overcomplete Dictionaries for Sparse Representation[J]. IEEE Transactions on Signal Processing.2006,54(11):4311-4322.
[8]Freeman,W.T.Example-Based Super-Resolution[J].Computer Graphics and Applications,IEEE.2002,22(2):56-65.
[9]Elad.M,Yavneh.I.A Plurality of Sparse Representations Is Better Than the Sparsest One Alone[J].IEEE Transactions on Information Theory.2009,55(10):4701-4714.
[10]Dong.W,Zhang.L,Shi.G,Li.X,Nonlocally Centralized Sparse Representation for Image Restoration[J].IEEE Transactions on Image Processing.2013,22(4):1620-1630.
[11]Yang.J,Wright.J,Huang.T.S,Ma.Y.Image Super-Resolution Via Sparse Representation[J].IEEE Transactions on Image Processing.2010,19(11):2861-2873.
[12]Krizhevsky.A,Hinton,G.Learning Multiple Layers of Features from Tiny Images[D].Department of Computer Science,University of Toronto.2009
[13]Zeiler,Matthew.D,F(xiàn)ergus.R.Visualizing and Understanding Convolutional Networks[C].Computer Vision,ECCV 2014,Proceedings,Part I.2014:818-833.
[14]Szegedy.C,Liu.W,Jia.Y,Sermanet.Going Deeper with Convolutions[C].2015 IEEE Conference on Computer Vision and Pattern Recognition.2015:1-9.
[15]Russakovsky.O,Deng.J,Su.H,Krause.J.ImageNet Large Scale Visual Recognition Challenge[J].International Journal of Computer Vision.2015,115(3):211-252.
CNN;PCA;Sparse Representation;Self-Adaptation;Image Classification
Sparse Pcanet:a Kernel Adaptive Convolutional Neural Network
YANG Ling,SI Ning-bo
(School of Information Science and Engineering,Lanzhou University,Lanzhou 730000)
Convolutional Neural Network(CNN)has the ability of training on high dimension data,and it is inherently parallel.Because of this,it is widely used in image problems.Current trend is to train large image dataset on a deep architecture CNN.Different from this,sparse PCANet mainly focus on the designing of convolutional kernels.Traditional ways take a lot of time to train kernels or need to have some knowledge on the feature extracting,sparse PCANet simply uses PCA bases,and by adding a clustering step,the self-adaptive ability and sparse property are introduced in sparse PCANet.In the image classification experiment,sparse PCANet has a better accuracy than the traditional PCANet in image classification experiment,and the result also outperforms other deep learning models.
1007-1423(2016)29-0026-07
10.3969/j.issn.1007-1423.2016.29.006
楊凌(1966-),女,副教授,碩士,甘肅張掖人,蘭州大學,研究方向為人工神經(jīng)網(wǎng)絡及非線性電路司寧博(1990-),男,碩士,甘肅平?jīng)鋈?,蘭州大學,研究方向為深度學習和圖像識別
2016-08-11
2016-09-30