楊凌,司寧博
(蘭州大學信息科學與工程學院,蘭州 730000)
稀疏PCA網絡:一種核自適應的卷積神經網絡
楊凌,司寧博
(蘭州大學信息科學與工程學院,蘭州730000)
卷積神經網絡因其具有的能夠處理高維數據和易于并行化的特點,近年來在圖像處理相關問題中受到廣泛應用。相比于目前所流行的使用大量圖片集構建深層網絡的設計方法,稀疏PCA網絡更注重卷積核的構建。傳統的卷積核構建方法需要大量計算時間或復雜的圖像特征提取知識,稀疏PCA網絡使用簡單的PCA基向量來構建卷積核,并加入聚類步驟,從而引入自適應性與稀疏性。在結果上,稀疏PCA網絡相比傳統的PCANet在圖像分類實驗正確率上有所提高,相較于其他深度學習模型也獲得了較好的結果。
卷積神經網絡;PCA;稀疏表達;自適應;圖像分類
神經網絡是一種模仿動物神經系統的模型,在機器學習問題中應用廣泛。近年來,由于人們所處理的問題越來越大規模化,如何有效地從數據中提取特征成了機器學習中的重要問題。神經網絡具有靈活的結構,可監督式地進行分類學習,也可無監督地提取特征。受到動物視覺皮層的部分激活這一特性的啟發,卷積神經網絡在其基礎上采用了部分連通的結構,這使得它的模型參數大大減少,并且能夠更好地學習到數據的局部特征[1],被大量應用于圖像與語音等問題中。卷積神經網絡采用局部卷積核來提取特征,可以通過反向迭代算法訓練出卷積核,從而替代傳統的人工設計特征方法。
主成分分析法(PCA)是一種用于特征提取和數據降維的無監督學習方法,它能夠找到數據的最大變化方向。從特征的角度來看,這些主要的變化方向即是數據的特征。因此,PCA基向量可以作為卷積核應用于卷積神經網絡中。事實上,馬毅等人提出的PCANet[2]就是用PCA基向量作為卷積核構建的三層網絡,取得了和其他深層網絡模型相近甚至更好的效果。為了更好地適應圖像的局部特征,在PCANet的基礎上,本文使用聚類算法構建出了一個過完備的PCA基向量詞典,在特征提取時,自適應地在詞典中找到對應的卷積核,使得每個圖像片變為一個稀疏表達。
本文首先介紹了卷積神經網絡模型以及傳統的PCANet,之后介紹加入了聚類步驟的稀疏PCA網絡,最后用稀疏PCA網絡在CIFAR 10數據集子集上與其他深度學習模型進行了實驗對比。
卷積神經網絡從結構上可分為兩個部分:卷積層和池化層。卷積層和池化層可疊加,從而構建出深層網絡。圖1是一種簡單的卷積神經網絡,由Y.LeCun等人提出[1]。
1.1卷積層
卷積層是將輸入圖片與多個卷積核進行卷積運算,從而得到多張特征圖。每一個卷積核作為一個特征提取器,在整張輸入圖片上滑動,計算卷積,尋找出可能的邊緣,紋理或者邊角特征。使用多個卷積核,可以對輸入圖片的某一位置提取不同的特征。特征圖表示了輸入圖片在對應位置上對于某種特征的激活程度,如果對應位置處的小區域圖像片符合卷積核所代表的特征,則會得到較大輸出。對于一張尺度為N×N的輸入圖片X和一個尺度為m×m的卷積核W,經過卷積運算的特征圖Y的尺度為(N-m+1)×(N-m+1),特征圖Y上每個點可表示為:

其中yij為特征圖Y在(i,j)位置處的輸出,xij為輸入圖片在(i,j)位置處的灰度值。wab為卷積核W在(a,b)位置處的值。σ()是激活函數。通常,卷積層會將卷積結果輸入一個非線性函數,將結果作為最終特征圖中的值。常用的激活函數有sigmoid函數和近年來廣泛使用的ReLU函數[3]。對于sigmoid函數,卷積層最終輸出為:

對于ReLU函數,卷積層最終輸出為:

1.2池化層
池化層又稱下采樣層,是對卷積層輸出的特征圖進行局部下采樣。一般常用最大值下采樣和平均值下采樣。如果池化窗口維度是k×k,那么最大值池化輸出為該k×k區域的最大值,平均值池化輸出該k×k區域的平均值。通過池化操作,特征圖的分辨率減小,并且給特征引入了平移與旋轉不變性[1],這使得模型更具魯棒性。

圖1 卷積神經網絡
圖中輸入圖片大小N×N,第一層卷積核大小m× m;經過第一次卷積運算生成大小為(N-m+1)×(N-m+ 1)的特征圖;第一層池化窗口大小k×k,經池化下采樣后輸出的特征圖大小為第二層卷積和池化進行同樣的操作。
卷積神經網絡的卷積核作為特征提取器,通常采用隨機初始化,再通過反向迭代算法修正更新的方法獲得[4]。近年來受深度學習理論影響,Ng.Y等人使用RBM預訓練得到卷積核[5]。與之相對地,J.Bruna等人使用小波函數作為一組固定的卷積核[6],也取得了較好的效果。而馬毅等人所設計的PCANet結構更簡單,能適應不同數據和問題,成為了深度學習圖像分類問題的基線實驗[2]。
從結構上看,PCANet是一個三層線性網絡,前兩層為PCA基向量的計算和卷積計算特征圖,第三層是一個輸出層。如圖2所示。下面將分層詳細介紹PCANet。

圖2 PCANet
輸入圖片Ii是訓練數據集中的第i張圖片,經過第一層PCA網絡的L1個卷積核w1,1…w1,L1,產生第一層特征圖每張特征圖經過L2個第二層卷積核w2,1…w2,L2生成一組輸出,記為O1i…OLi1;經過二值量化與映射為整圖H1i…HLi1,最后直方統計為向量fi作為最終輸出。
2.1第一層PCA
PCANet的第一層網絡首先利用數據集中的樣本離線計算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?。通過去均值,構建出數據集中所有小片展成向量組成的矩陣∈Rk1k2×Nm'n'作為數據矩陣,其中一層網絡的PCA基向量是數據矩陣X的協方差矩陣XXT的特征向量。記w1,i為第i個特征向量,下標1表示第一層網絡,則W1=[w1,1,w1,2,…,w1,L1]為第一層網絡中XXT前L1個主特征向量組成的矩陣。
在PCA基向量計算結束后,PCANet進入第一層的特征提取階段。每一個特征向量作為一個卷積核,在輸入圖片上滑動做卷積運算,生成特征圖。其中,第l個卷積核對第i張圖片所產生的特征圖為:

2.2第二層PCA
第二層網絡與第一層結構相同,也經過計算PCA基向量和卷積特征提取兩步。
第二層網絡的輸入是上層卷積得到的所有特征圖Yli。PCANet使用同樣的分片和去均值操作,計算第二層PCA基向量。將Yli分片,去均值并向量化,寫成矩陣形式,得到其中表示在特征圖Yli的第j位置處小片所展成的向量去均值的結果。對于第l個卷積核,記經過它卷積產生的所有N張特征圖的分片向量集合為矩陣將所有L1個核經過卷積、分片、去均值后的結果連接,可得到數據矩陣Z=[Z1,Z2,…,ZL1]。對數據矩陣Z做PCA分析,即計算ZZT的特征向量,獲得第二層網絡的卷積核,記為W2=[w2,1,w2,2,…,w2,L2],其中w2,L2為ZZT的第L2個特征向量,下標2表示第二層網絡。
在得到第二層L2個卷積核之后,PCANet開始第二層的特征提取。對于每張由上層網絡產生的特征圖Yli1,經第二層L2個卷積核的卷積輸出為對應到最初的一張原始輸入圖片,經過兩層PCANet網絡共產生了L1L2張特征圖。
2.3輸出層
PCANet的輸出層將特征圖片做了二進制哈系運算,并轉化成直方圖統計向量,作為最終輸出。
對于最初輸入的一張圖片,第一層網絡首先將其轉為L1張特征圖,每張特征圖經第二層網絡又轉為L2張特征圖。首先對這L2張圖經過Heaviside階越函數進行二值化,然后對這L2張二值圖,將每個相同位置像素點的值視為一個L2位二進制數中的一位,于是L2張二值圖可轉為一張整數圖,記為Hli,表示第i張輸入圖片的第l張第一層特征圖生成的整數圖,其值域為[0,2L2-1]。將這張整數圖平均分為B個塊,在每個塊上統計[0,2L2-1]中每個整數出現的次數,輸出為一個2L2維的向量。對于一張原始輸入圖片,經過兩層網絡以及二進制哈希和分塊直方圖統計運算之后,輸出的特征向量為:

其中Bhist()為分塊統計直方圖并將結果展成向量的算子。
PCANet所使用的卷積核是一組PCA基向量,所以經卷積計算得到特征圖是基于PCA詞典的表達系數。受到這一啟示,我們通過構建過完備詞典而得到了輸入圖片的稀疏表達,利用過完備詞典更好的表達圖第片的局部細節。通常,我們可以使用KSVD來計算過完備詞典[7],然而M.Elad等人證明使用過完備詞典的稀疏編碼是不穩定的[9]。因此,我們利用了圖片的非局部特征[10],從圖像自身特點出發,通過對小圖像片聚類,將不同類型的圖片組成一個集合,對每個集合計算PCA基向量,構建過完備詞典,從而使圖像片能夠被稀疏表達。聚類與詞典構建是稀疏PCA網絡的預訓練步驟,如圖3所示。

圖3 稀疏PCA網絡的預訓練
分為圖像片聚類和聚類PCA基向量計算兩步。
3.1圖像片聚類
為了將不同類型的小圖像片聚類在一起,我們沒有使用圖像本身的灰度值或RGB值,而是先對圖像進行高通濾波,提取出紋理特征,在高頻圖像域對圖像片聚類。這是因為,高頻濾波器可以在低層次圖像處理中增強有意義的特征[8]。通常,這種對于高頻圖像片的聚類方法應用與低層次的圖像恢復問題中[11],以學習到更好的詞典來表達出局部特征。在卷積神經網絡里,卷積核即是詞典,因此我們將這種低層次圖像處理方法應用于使用卷積神經網絡進行的圖像分類問題中。
對于灰度圖,我們直接在灰度域上進行高通濾波;對于RGB圖像,首先我們將其轉為YCbCr圖像,只取亮度域通道,對其進行高通濾波。圖4是一組原始圖片,YCbCr亮度域圖片以及高頻圖片的對比。可以看到,經過亮度通道高頻濾波之后,圖像的紋理,邊緣特征被突顯出來。將所有圖片做這種轉換,并提取出每個像素點位置處的小片。

圖4 高頻濾波特征突顯
圖中第一列為RGB圖像,第二列為YCbCr亮度域圖像,第三列為亮度通道高通濾波后的圖像,紋理特征突出。
在小片集合中,首先過濾掉所有光滑片,光滑片的選取準則是設定閾值,如果小片的方差小于這個閾值則認為它是光滑片。這樣做是為了保留下具有紋理和邊緣等特征的片。之后,在剩余的片中,使用K-means聚類方法,將小片聚為K類,這樣可使得具有相似特征和結構的小片聚為一類。將過濾掉的光滑小片記為第0類,則所有的小片被聚為K+1,表示如下:
{Patches0,Patches1,...,PatchesK}
3.2構建過完備詞典
對于光滑片組成的第0類,使用一組固定的DCT基作為其對應的詞典;對于其他的非光滑小片集合,分別對應聚類中的小片集合計算它們的PCA基向量,作為對應的詞典。對于大小為k1×k2的圖像片,我們取前M個基向量,因此可以將詞典表示為:

其中DCT0是k1k2×M維的矩陣,表示光滑圖片對應的一組DCT基向量。PCAj是k1k2×M的矩陣,表示第j類小圖像片的PCA基向量。
3.3卷積核自適應與稀疏表達
小圖像片的聚類和過完備詞典構建是稀疏PCA網絡的預訓練步驟。經過預訓練后,對于一張輸入圖片,首先找到所有位置處的小片,對每個片,在KMeans計算出的K個聚類中心中尋找最近的中心,找到所屬的類。屬于同一類的圖像片具有相似的特征,因此我們從過完備詞典中選擇該聚類對應的基向量作為一組卷積核。如果該小圖像片屬于第j類,那么此時自適應選擇的詞典為:

其中0k1k2×M為k1k2×M的全0矩陣。
將這個詞典作為卷積核與小片做卷積運算,得到的表達系數為:

我們只取對應的第j組卷積核計算出的表達系數放入特征圖的對應位置。稀疏PCA網絡的結構如圖5所示。
在圖像分類實驗里,稀疏PCA網絡作為一個特征提取器,為最終的分類器提供輸入特征。我們使用了CIFAR 10物體分類數據集的子集,來和幾種結構相似,并在圖像分類國際比賽中獲得較好成績的神經網絡模型[12]:PCANet,ConvNet[13],ScatNet[6]以及一個22層的深層網絡GoogLeNet[14]進行實驗對比。其中,Goog-LeNet使用softmax分類器,其他模型均使用線性SVM作為分類器。
實驗表明,稀疏PCA網絡作為PCANet的改進,對于小樣本數據集,實驗結果在識別錯誤率上有了下降,并且在訓練時間和錯誤率上均優于復雜的深層網絡。
4.1實驗數據集:CIFAR 10
CIFAR 10是一個用于物體識別的彩色RGB圖片數據集[15],共包含10個類別,由50000張訓練圖片和10000張測試圖片組成。其中,每張圖片是一個維度為32×32的RGB圖片。圖6是CIFAR 10部分樣例。
我們對CIFAR 10數據集進行采樣,保留了10種類別圖片的數量比例,構建出包含1000張訓練圖片和1000張測試圖片的小樣本數據集。
輸入圖片Ii上的每個小圖像片將會被劃分到一個聚類中,隨后使用該聚類的PCA基向量p1,1…p1,L1作為卷積核進行第一層卷積運算。
4.2參數設置
實驗中使用了和PCANet一樣的網絡層數以及卷積核個數,即兩層網絡,第一層40個卷積核,第二層8個卷積核,小圖像片大小為5×5。在預訓練階段使用KMeans將小圖像片聚為兩類。訓練過程中,每個小圖像片將自適應地在兩組PCA基向量中選擇卷積核。圖7為使用K-means聚類出的兩個類小圖像片計算得到的PCA基向量,即第一層網絡的卷積核。

圖5 稀疏PCA網絡

圖6 CIFAR 10彩色圖片分類數據集數據示例圖中的三列圖片分別屬于car,ship,cat類

圖7
4.3實驗結果比對
使用CIFAR 10采樣得到的子數據集,分別在稀疏PCA網絡,PCANet,ScatNet,22層的GoogLeNet和一個3層的ConvNet上進行訓練。實驗結果使用錯誤率作為評判標準。我們所使用的計算機CPU為主頻1.7GHz的Intel Core i5。
各模型的識別錯誤率如表1所示,訓練與測試總時間如表2所示。可以看到,稀疏PCA網絡在相同訓練集和測試集的情況下,獲得了最低的錯誤率。由于GooLeNet是一個22層的深層網絡,在數據集規模較小的情況下容易陷入過擬合,使得錯誤率較高。在運行時間方面,ConvNet使用反向傳播算法不迭代修正卷積核,需要大量時間訓練;稀疏PCA網絡和PCANet運行時間基本相當;相比ScatNet,由于稀疏PCA網絡和PCANet使用了簡單的PCA基向量作為卷積核,訓練時間相對更少。

表1 各模型在CIFAR 10子集上的識別錯誤率

表2 各模型在CIFAR 10子集上的訓練與測試運行時間
稀疏PCA網絡是PCANet的改進,是一種利用圖片相似性聚類,進行特征稀疏表達的核自適應卷積神經網絡。經實驗證實,稀疏PCA網絡在圖像分類實驗上可獲得比結構類似的模型更低的錯誤率,并在訓練時間上遠小于深層神經網絡。
[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,Fergus.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-),女,副教授,碩士,甘肅張掖人,蘭州大學,研究方向為人工神經網絡及非線性電路司寧博(1990-),男,碩士,甘肅平涼人,蘭州大學,研究方向為深度學習和圖像識別
2016-08-11
2016-09-30