林麗惠,殷 瑞,李紹滋 *,蘇松志,曹冬林
(1.廈門大學信息科學與技術(shù)學院,福建廈門361005;2.武夷學院數(shù)學與計算機學院,福建武夷山354300; 3.福建省仿腦智能系統(tǒng)重點實驗室,福建廈門361005;4.認知計算與智能信息處理 福建省高校重點實驗室,福建武夷山354300)
分類問題是計算機視覺的一個經(jīng)典問題,大多數(shù)視覺任務(wù)最終都能轉(zhuǎn)換為分類問題,如目標檢測、人臉識別、行為識別等.分類系統(tǒng)可分為兩部分:特征提取和分類.首先提取圖像特征,包括局部特征或全局特征,然后將提取的特征作為分類器的輸入.傳統(tǒng)的特征提取方法大多根據(jù)經(jīng)驗手動設(shè)計,如局部二值模式(LBP)[1]、尺度不變特征變換(SIFT)[2]、二元魯棒獨立元特征(BRIEF)[3]、快速旋轉(zhuǎn)BRIEF(ORB)[4]、二元提升算法(BINBOOST)[5]等.而分類器一般采用線性支持向量機(support vector machine,SVM)[6]、非線性的提升(boost)分類器或者核支持向量機(kernel SVM)等.
近幾年,卷積神經(jīng)網(wǎng)絡(luò)(CNN)[7]在目標分類問題上取得了巨大的成功,也引領(lǐng)了深度學習在計算機視覺應用的新潮流.CNN先在ImageNet上預訓練一個分類網(wǎng)絡(luò),再根據(jù)具體任務(wù)微調(diào)這個卷積網(wǎng)絡(luò).雖然這種基于神經(jīng)網(wǎng)絡(luò)的方法模糊了特征提取器和分類器的界線,但仍可以確定一個邏輯分界.將全連接層認為是分類器,即可以將CNN的pool5層的輸出作為圖像特征提取,將多層感知機(MLP)看作是一個分類器.目前,基于CNN的分類系統(tǒng)相較于傳統(tǒng)方法有非常明顯的優(yōu)勢.
但很多研究者為了得到好的網(wǎng)絡(luò),將大量的時間、精力用在網(wǎng)絡(luò)調(diào)參上,而調(diào)參很大程度依賴于經(jīng)驗規(guī)則,某些時候也具有一定的偶然性.這種工作對于計算機視覺的發(fā)展無法起到有力的推進作用.在分類系統(tǒng)中,分類器常采用比較簡單的分類器,很少有人將精力投入到分類器的研究,但分類器對于圖像分類的準確率與圖像特征表示可能有著同樣重要的影響.為了探究是否可以設(shè)計出更好的分類器,本研究構(gòu)建了一個基于卷積特征的棧自編碼器(stacked autoencoder on convolutional feature maps,SACF).這個分類系統(tǒng)以卷積特征為特征表示,分類器采用棧式自編碼器 (stacked autoencoder,SAE)而不是簡單的MLP,并在數(shù)據(jù)集CUB-200和VGG-flower上進行實驗,對比其與基于卷積特征和MLP的CNN的分類效果.
圖1 自編碼器的網(wǎng)絡(luò)結(jié)構(gòu) Fig.1The network structure of AE
(1)
(2)
(3)
SAE即多層的AE,它把前一層AE的輸出作為后一層AE的輸入,即把多個AE的編碼部分疊加起來,然后再疊加對應AE的解碼部分,這樣就形成了一個含有多個隱含層的SAE.
SAE的編碼步驟如下:
a(l)=f(z(l)),
(4)
z(l+1)=W(l,1)a(l)+b(l,1),
(5)
其解碼步驟為
a(n+l)=f(z(n+l)),
(6)
z(n+l+1)=W(n-l,2)a(n+l)+b(n-l,2).
(7)
其中:a(n)是最深層隱藏單元的激活值,是對輸入值的更高階的表示;W(k,1),W(k,2),b(k,1),b(k,2)分別表示第k個自編碼器對應的W(1),W(2),b(1),b(2)參數(shù),n為神經(jīng)元數(shù),l為神經(jīng)網(wǎng)絡(luò)的層數(shù).
如果把最后一個自編碼器的隱含層作為輸入數(shù)據(jù)的高階特征表示輸入到softmax分類器,就可以實現(xiàn)分類.SAE網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示.
圖2 SAE的網(wǎng)絡(luò)結(jié)構(gòu) Fig.2The network structure of SAE
由于SAE包含多層,整個網(wǎng)絡(luò)的參數(shù)非常多,如果采用端到端(end-to-end)的訓練方法,很容易過擬合.因此,為了防止過擬合現(xiàn)象,在網(wǎng)絡(luò)訓練時,從前到后依次對每一層的AE單獨訓練,每次只訓練一個隱含層.在訓練每一層參數(shù)時,其他各層參數(shù)保持不變.逐層訓練將參數(shù)訓練到快要收斂時,通過反向傳播算法調(diào)整所有層的參數(shù)以改善結(jié)果.
AE可以學習到數(shù)據(jù)的特征表示;SAE則具有深度網(wǎng)絡(luò)的所有優(yōu)點,可以學習到更強大的表達能力.SAE第一層可以學習到一階特征,更高層可以學習到更加抽象的特征表示.對于圖像而言,第一層可以學習到邊緣,第二層可以學習到由邊組合形成的輪廓,更高層次可以學習到更形象、更有意義的特征.
Harr特征是一種基于圖像矩形區(qū)域灰度差異的特征表示方法,模板反映了圖像局部的灰度變化情況.不同類型的Haar特征可以用來檢測人臉的不同部位,如眼睛、鼻子、嘴等,這樣極大地提高了人臉檢測的準確率.方向梯度直方圖(histogram of oriented gradient,HOG)通過統(tǒng)計梯度的方向信息提取圖像特征,梯度是刻畫邊緣非常有用的方法,而邊緣具有較強的表達能力,通??梢院芎玫孛枋瞿繕耍虼薍OG在行人檢測中獲得了極大的成功.
上述特征雖然在某些任務(wù)上取得了不錯的效果,然而由于它們是手工設(shè)計的,不僅極大地依賴于人的經(jīng)驗,而且只在某些任務(wù)上有效,不具有普適性.另外,手工設(shè)計的特征只是片面地考慮某些圖像特征,并不能提取圖像的本質(zhì)特征.卷積神經(jīng)網(wǎng)絡(luò)很好地解決了手工設(shè)計特征所存在的問題,可由網(wǎng)絡(luò)自動學習圖像的特征.淺層網(wǎng)絡(luò)學習到簡單的邊緣特征(圖3);深層網(wǎng)絡(luò)學習到的特征由淺層特征組合而成,因此更加具體,如目標輪廓.對于具體的人臉檢測,深層網(wǎng)絡(luò)可以學習到眼睛、鼻子、嘴等更加抽象的特征.使用神經(jīng)網(wǎng)絡(luò)提取特征不僅比傳統(tǒng)特征提取更加魯棒,并且具有普適性,在一個任務(wù)上訓練得到的網(wǎng)絡(luò)可以遷移到其他任務(wù)上.這樣只需在一個足夠大的數(shù)據(jù)集上訓練網(wǎng)絡(luò)模型作為預訓練,然后在新任務(wù)上進行微調(diào)即可,這樣極大地提高了訓練速度.
圖3 神經(jīng)網(wǎng)絡(luò)學習到的邊緣特征 Fig.3Edge features learned by the neural network
為了提取圖像特征,本研究采用的預訓練網(wǎng)絡(luò)是在ImageNet數(shù)據(jù)集上預訓練的深度CNN網(wǎng)絡(luò),具體的網(wǎng)絡(luò)模型使用Zeiler 和Fergus提出的ZF(Zeiler and Fergus)網(wǎng)絡(luò)[8],包含5 個卷積層和3個全連接層(fully connected layer,fc).在ZF網(wǎng)絡(luò)中池化層一般采用極大池化或平均池化,而本研究采用矩池化(moment pooling)[9].矩池化優(yōu)于以上2種池化方法,它不僅可以保持高頻分量,而且能有效地預防過擬合現(xiàn)象.更重要的是,池化層所采用的池化方法具有無參性,改變池化方法不會增加網(wǎng)絡(luò)的訓練復雜度,也不需要重新訓練網(wǎng)絡(luò),只需要在特征提取時將池化方法替換成矩池化即可,也可以再對網(wǎng)絡(luò)進行微調(diào),但這對最終的網(wǎng)絡(luò)性能沒有實質(zhì)性的影響.
基于上述卷積特征,本研究在卷積特征圖上構(gòu)建了一個新的分類系統(tǒng),稱為基于卷積特征的棧式自編碼器(stacked autoencoder on convolutional feature maps,SACF).這個分類系統(tǒng)將CNN網(wǎng)絡(luò)的pool5層的輸出作為圖像特征提取,分類器采用SAE而不是簡單的MLP,因為SAE可以學習到更好的特征表示.SACF的結(jié)構(gòu)如圖4所示.
圖4 SACF的結(jié)構(gòu)圖 Fig.4The structure diagram of SACF
SAE的隱含層疊加在一起構(gòu)成的網(wǎng)絡(luò)與MLP網(wǎng)絡(luò)很相似,不同的是前者是一種無監(jiān)督學習方法,而后者是有監(jiān)督學習方法.由于SAE的訓練過程是一個無監(jiān)督過程,可以獲得大量的訓練數(shù)據(jù)用于訓練以得到一個非常好的初始網(wǎng)絡(luò).
將本研究提出的SACF與單純的MLP在數(shù)據(jù)集Caltech-UCSD Birds 200[10](CUB-200)和Oxford Flower 102[11](VGG-flower)上進行比較.為了進一步探究在分類器部分網(wǎng)絡(luò)層數(shù)對模型的影響,分別嘗試不同的網(wǎng)絡(luò)深度以獲得最好的網(wǎng)絡(luò)模型,網(wǎng)絡(luò)深度分別為2,3,4.最后一個全連接層是(n+1)維的softmax,其他全連接層是4096-d的受限線性單元(rectified linear units,ReLUs)[12].例如:把3層的網(wǎng)絡(luò)表示為“f4096-f4096-f200”,其中f表示全連接層,200表示CUB-200 的類別數(shù);如果使用VGG-flower數(shù)據(jù)集,那么本實驗中為102.
實驗采用Theano[13-14]構(gòu)建模型.Theano 是一個python 庫,它可以定義、優(yōu)化及評價數(shù)學公式,尤其適用于處理模型的數(shù)學表達式中包含大量矩陣運算的情況.對于處理包含大量數(shù)據(jù)的問題,相較于C 語言的解決方案,Theano 可以大大地提高程序的處理效率.它的另外一個優(yōu)勢是可以使用GPU 進行加速.
Theano的編譯器對于各種復雜的表達式采用了很多優(yōu)化方法,這些方法包括:
1) 使用numpy.ndarray編譯函數(shù);
2) 使用GPU時的透明化:處理大量數(shù)據(jù)運算時的效率最大可達CPU的40倍;
3) 合并相同的子圖,以避免重復計算;
5) 快速、穩(wěn)定的優(yōu)化:即使x非常小也可以得到log(1+x)的正確結(jié)果;
6) 單元測試和自我校正:發(fā)現(xiàn)并修正許多錯誤.
CUB-200是一個致力于子類別分類的數(shù)據(jù)集,包含6 033張標注好的鳥類圖片,鳥的類別有200 種(大部分存在于美國北部),訓練集和測試集分別有3 000 和3 033 張圖片.每一張圖片的標注信息包含:粗分割、目標窗口和一個二值的屬性.VGG-flower 數(shù)據(jù)集由102 種花的圖片組成,每一個類別至少包含40 張圖片.該數(shù)據(jù)集與CUB-200 一樣,都是用于子類別分類的數(shù)據(jù)集,然而它增加了分類的難度,既擴大了類間的相似性,且縮小了類內(nèi)的相似性.這2種數(shù)據(jù)集可用于評測圖片分類模型和圖片分割模型.
作為一種普適性的方法,本研究采用在ImageNet的數(shù)據(jù)集上預訓練的1 000類深度卷積神經(jīng)網(wǎng)絡(luò)(deep CNN) 模型提取圖片特征.實驗中采用ZF網(wǎng)絡(luò),包含5個卷積層和3個全連接層.
在訓練階段將特征圖作為新的數(shù)據(jù)源,然后訓練不同的SACF網(wǎng)絡(luò)對該數(shù)據(jù)進行分類.SACF網(wǎng)絡(luò)可以有多種不同的網(wǎng)絡(luò)深度,它的最后一層是一個(n+1)類的分類器(n個目標類別加上背景),這個分類器是一個(n+1)維的softmax分類器.使用反向傳播和隨機梯度下降法[15]訓練每一個SACF網(wǎng)絡(luò).預訓練階段將SACF網(wǎng)絡(luò)的每一個AE當作單獨的網(wǎng)絡(luò)訓練,而微調(diào)則將SACF網(wǎng)絡(luò)的SAE作為一個整體訓練,是一種端到端的過程.當訓練得到一個理想的網(wǎng)絡(luò)后,把最后一個AE的隱含層作為輸入數(shù)據(jù)的高階特征表示,輸入到softmax分類器,就可以實現(xiàn)分類,這與R-CNN[16]類似.訓練中使用高斯分布隨機初始化權(quán)重,因此不同的SACF 可以非常公平地進行比較.
表1是基于卷積特征的MLP和SACF在數(shù)據(jù)集CUB-200上的實驗結(jié)果.可以看出,采用不同層數(shù)的MLP,分類準確率不同,當采用網(wǎng)絡(luò)f4096-f200時,分類準確率最高,為87.9%;而對于SACF,采用網(wǎng)絡(luò)f4096-f4096-f200時,獲得最高分類準確率89.8%.雖然MLP與SACF在不同層次中獲得最高分類準確率,但可以看出在不同網(wǎng)絡(luò)結(jié)構(gòu)中SACF的分類準確率都大于或者等于MLP的分類準確率.SACF的最高分類準確率比MLP的最高分類準確率提高了1.9個百分點.在SACF中,4-fc網(wǎng)絡(luò)與3-fc網(wǎng)絡(luò)分類準確率接近,為了減少模型復雜度,選擇3-fc網(wǎng)絡(luò).
表1 在數(shù)據(jù)集CUB-200上的分類準確率Tab.1 The classification accuracy obtained on the CUB-200 dataset
表2是MLP和SACF在數(shù)據(jù)集VGG-flower上的實驗結(jié)果.與CUB-200類似,MLP在2-fc網(wǎng)絡(luò)上獲得最高分類準確率31.0%,SACF在3-fc網(wǎng)絡(luò)上獲得最高分類準確率34.6%.在不同的網(wǎng)絡(luò)結(jié)構(gòu)上,SACF的分類準確率都大于或者等于MLP的分類準確率.SACF的最高分類準確率比MLP的最高分類準確率提高了3.6個百分點.
表2 在數(shù)據(jù)集VGG-flower上的分類準確率Tab.2 The classification accuracy obtained on the VGG-flower dataset
綜上,在不同的數(shù)據(jù)集上SACF都表現(xiàn)出其優(yōu)越性,因此在分類器層面使用SAE可以提高網(wǎng)絡(luò)的分類效果.這也驗證了分類器與特征提取器對于分類系統(tǒng)同等重要的假設(shè),在后續(xù)的工作中,可以繼續(xù)研究性能更優(yōu)異的分類器以提高網(wǎng)絡(luò)性能.
本研究深入探究了圖像分類系統(tǒng),并且提出系統(tǒng)中的每個部件都同等重要的關(guān)鍵性見解,發(fā)現(xiàn)深度網(wǎng)絡(luò)與深度特征提取器對系統(tǒng)性能都很重要.僅通過隨機初始化深度網(wǎng)絡(luò)就能取得良好的分類結(jié)果,說明微調(diào)并不是唯一提升性能的策略.本研究提出圖像分類系統(tǒng)SACF,嘗試不同網(wǎng)絡(luò)深度以選擇最佳的網(wǎng)絡(luò)結(jié)構(gòu).在數(shù)據(jù)集CUB-200和VGG-flower上通過端到端訓練深度特征提取器和基于SAE的深度分類器,表明本文中提出的SACF分類系統(tǒng)相對于CNN有更高的分類準確率.
[1] OJALA T,PIETIKINEN M,MENPT.Multiresolution gray-scale and rotation invariant texture classification with local binary patterns[J].IEEE Transactions on Pattern Analysis & Machine Intelligence,2002,24(7):971-987.
[2] LOWE D G.Distinctive image features from scale-invariant keypoints [J].International Journal of Computer Vision,2004,60(2):91-110.
[3] CALONDER M,LEPETIT V,OZUYSAL M,et al.BRIEF:Computing a local binary descriptor very fast [J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2012,34(7):1281-1298.
[4] RUBLEE E,RABAUD V,KONOLIGE K,et al.ORB:An efficient alternative to SIFT or SURF[C]∥International Conference on Computer Vision.Barcelona:IEEE,2011:2564-2571.
[5] TRZCINSKI T,CHRISTOUDIAS M,FUA P,et al.Boosting binary keypoint descriptors[C]∥Computer Vision and Pattern Recognition.Portland:IEEE,2013:2874-2881.
[6] VAPNIK V.The nature of statistical learning theory [M].New York:Springer-Verlag,2000.
[7] KRIZHEVSKY A,SUTSKEVER I,HINTON G E.Imagenet classification with deep convolutional neural networks[C]∥International Conference on Neural Information Processing Systems.Nevada:NIPS,2012:1097-1105.
[8] ZEILER M D,FERGUS R.Visualizing and understanding convolutional networks[C]∥European Conference on Computer Vision.Cham:Spinger,2014:818-833.
[9] 殷瑞,蘇松志,李紹滋.一種卷積神經(jīng)網(wǎng)絡(luò)的圖像矩正則化策略[J].智能系統(tǒng)學報,2016,11(1):43-48.
[10] WELINDER P,BRANSON S,MITA T,et al.Caltech-UCSD birds 200,CNS-TR-2010-001 [R].California:California Institute of Technology,2010.
[11] NILSBACK M E,ZISSERMAN A.Automated flower classification over a large number of classes[C]∥Conference on Computer Vision,Graphics & Image Processing.Indian:IEEE,2008:722-729.
[12] NAIR V,HINTON G E.Rectified linear units improve restricted boltzmann machines[C]∥International Conference on Machine Learning.Israel:ICML,2010:807-814.
[13] BASTIEN F,LAMBLIN P,PASCANU R,et al.Theano:new features and speed improvements [EB/OL].[2016-01-15].https:∥arxiv.org/pdf/1211.5590v1.pdf.
[14] BAHRAMPOUR S,RAMAKRISHNAN N,SCHOTT L,et al.Comparative study of caffe,neon,theano,and torch for deep learning [EB/OL].[2016-01-15].https:∥arxiv.org/abs/1511.06435v1.
[15] BOTTOU L.Stochastic gradient descent tricks [J].Lecture Notes in Computer Science,2012,7700:421-436.
[16] GIRSHICK R,DONAHUE J,DARRELL T,et al.Rich feature hierarchies for accurate object detection and semantic segmentation[C]∥Computer Vision and Pattern Recognition.Columbus:IEEE,2014:580-587.