徐樹振 朱 青
(北京工業(yè)大學(xué)信息學(xué)部 北京 100124)
教會機(jī)器認(rèn)識世界是人工智能發(fā)展的必經(jīng)之路,其中深度學(xué)習(xí)技術(shù)的突破得益于互聯(lián)網(wǎng)發(fā)展過程中所積累下來的海量標(biāo)注數(shù)據(jù)。ResNet[1]是卷積神經(jīng)網(wǎng)絡(luò)(CNN)分類模型的杰出代表,在ImageNet分類任務(wù)中,其誤差率低至3.57%,但其分類能力仍局限于訓(xùn)練數(shù)據(jù)集中的圖像類別。然而,很多情況下難以獲得足夠有標(biāo)注的數(shù)據(jù)來訓(xùn)練識別或預(yù)測模型,越來越多的研究者將零樣本學(xué)習(xí)(Zero-Shot learning,ZSL)引入圖像分類。
零樣本學(xué)習(xí)旨在借助輔助知識,如屬性[2]、詞向量[3]、文本描述[4]等,使圖像分類模型能夠識別訓(xùn)練集中從未出現(xiàn)過的圖像類別。這種知識遷移的能力很符合現(xiàn)實生活中海量類別的存在形式,比如,能夠通過閱讀動物的描述來對不同種類的動物進(jìn)行分類,而不是必須看到它們。
近年來,研究人員試圖通過學(xué)習(xí)圖像及其語義特征之間的相容函數(shù),為兩者構(gòu)建一個共同的嵌入空間。DeViSE模型[3]和ALE模型[5]通過求解hinge ranking損失函數(shù)學(xué)習(xí)線性變換矩陣。Socher等[6]使用一個兩層的神經(jīng)網(wǎng)絡(luò)將未見圖像映射到語義特征空間。ESZSL模型[7]設(shè)計了一個弗羅貝尼烏斯范數(shù)(Frobenius norm)正則化矩陣。SJE模型[8]將多個兼容函數(shù)線性組合成一個聯(lián)合嵌入,從輔助信息的不同方面捕獲非冗余信息。SAE模型[9]從線性自動編碼器中吸取了成功的經(jīng)驗,除了借助編碼器將圖像映射到語義空間外,它還利用解碼器使模型能夠從映射到的語義特征重構(gòu)出原始的視覺特征。與DeViSE和ALE類似,Karessli等[10]優(yōu)化了hinge ranking損失函數(shù),創(chuàng)新性地將凝視信息作為輔助信息引入到ZSL任務(wù)中。除了直接學(xué)習(xí)兼容性函數(shù)外,混合模型提出了另一種零樣本學(xué)習(xí)的方式?;旌夏P蚚11-12]的基本思想是利用可見類的組合對不可見圖像進(jìn)行分類。
上述方法幾乎都側(cè)重于構(gòu)建圖像特征和語義特征的嵌入空間。嵌入空間建立在所見圖像與其語義特征之間的對應(yīng)關(guān)系上。在測試階段,將不可見的圖像特征映射到嵌入空間,在嵌入空間中,采用最近鄰(NN)搜索等分類方法。這些方法大多采用獨立的兩步管道,即從預(yù)訓(xùn)練的CNN模型中提取圖像特征,再借助固定的圖像特征學(xué)習(xí)嵌入空間。這種趨勢導(dǎo)致了圖像特征在ZSL任務(wù)中缺乏語義信息。SCoRe模型[13]雖然提出了端到端的訓(xùn)練結(jié)構(gòu),但是其在圖像特征提取階段沒有考慮任何語義結(jié)構(gòu)約束,仍然采用標(biāo)準(zhǔn)的CNN圖像特征提取方式。
本文認(rèn)為分別進(jìn)行圖像特征提取和嵌入空間的構(gòu)造會嚴(yán)重?fù)p害ZSL模型的性能。從固定的預(yù)訓(xùn)練CNN模型中提取的圖像特征并不能捕捉到輔助信息中豐富的語義信息。本文提出了一種基于膠囊網(wǎng)絡(luò)[14](CapsNet)用于零樣本學(xué)習(xí)的深度語義結(jié)構(gòu)約束模型,并對該模型進(jìn)行端到端訓(xùn)練,利用語義信息對圖像特征提取和嵌入空間構(gòu)造進(jìn)行監(jiān)督學(xué)習(xí)。實驗結(jié)果表明,本文模型有助于提升零樣本學(xué)習(xí)的性能。
在圖像分析和分類方面,卷積網(wǎng)絡(luò)是目前最先進(jìn)的技術(shù)。但訓(xùn)練好的網(wǎng)絡(luò)可能會錯誤地識別具有一定旋轉(zhuǎn)的同一類型的圖像,這就是為什么訓(xùn)練經(jīng)常伴隨著數(shù)據(jù)增強(qiáng)和平均/最大池化的原因。池化是一種通過選擇神經(jīng)元子集建立新的下一層的方法,使下一層的計算負(fù)荷更小,而且也使網(wǎng)絡(luò)更少地依賴于圖像中特征的原始位置。因此,卷積網(wǎng)絡(luò)假定特征的確切位置對于考慮圖像中是否存在物體并不重要。
與CNN一樣,膠囊網(wǎng)絡(luò)同樣讓更高級別的膠囊覆蓋圖像更大的區(qū)域,但與池化不同的是,它不會丟棄實體在區(qū)域內(nèi)精確的位置信息。即便是被檢測物體發(fā)生平移、旋轉(zhuǎn)和縮放等變化,模型能夠理解這些變化同時輸出足夠豐富的信息,并對圖像中變化的物體輸出相同的類別判定(理解為等變量)。然而這在使用池化時是不可能做到的。
膠囊網(wǎng)絡(luò)之所以能夠理解圖像中的變化,更好地概括所感知的內(nèi)容,主要源于神經(jīng)膠囊的工作原理。膠囊是一組神經(jīng)元,它們的激活向量表示特定類型實體(對象或?qū)ο蟛考?的實例化參數(shù)。傳統(tǒng)結(jié)構(gòu)用深度來討論深度學(xué)習(xí),膠囊網(wǎng)絡(luò)則引入嵌套的概念作為新的深度維度。膠囊網(wǎng)絡(luò)的核心分為基礎(chǔ)膠囊(Primary Capsules)和類別膠囊(Class Capsules)兩部分。
在一個普通的卷積層上,創(chuàng)建一個由M×C個通道構(gòu)成的卷積層。M表示膠囊通道的數(shù)量,C表示每個膠囊的大小。這樣就創(chuàng)建了長和寬大小為(T,T)的M×C個新通道,下一步就是重新排列卷積層來創(chuàng)建T×T×M個大小為C的基礎(chǔ)膠囊(Primary Capsules)。
Class Capsules層由K個膠囊組成,每個膠囊代表一個特定的類別。長度最大的膠囊確定模型的預(yù)測。在此之前,模型通過“迭代路由”方法來選擇前一層中的哪些膠囊必須與輸出層膠囊Class Capsules相關(guān)聯(lián)。特征的選擇不再像池化那樣是任意完成的。
(1)
(2)
最后,模型將一個非線性擠壓函數(shù)應(yīng)用于各膠囊。該函數(shù)保持向量的方向不變,將向量模長壓縮(歸一化)到[0,1)區(qū)間:
(3)
本文使用如圖1所示的膠囊網(wǎng)絡(luò)體系結(jié)構(gòu)來學(xué)習(xí)圖像的視覺特征。該體系結(jié)構(gòu)由輸入層、四個卷積層和一個全連接層組成。雖然模型要比通用的CNN模型淺得多,但是借助向量神經(jīng)元和動態(tài)路由,使得其性能不遜于其他深層卷積網(wǎng)絡(luò)。
圖1 基于膠囊網(wǎng)絡(luò)的圖像視覺特征提取結(jié)構(gòu)圖
Conv1、Conv2和Conv3分別有64、128和256個通道,所有通道均采用2×2的卷積核,每個卷積核步長為2且采用ReLU激活函數(shù)。這些層將輸入層像素強(qiáng)度轉(zhuǎn)換為局部特征輸出。
接下來的卷積層Conv4為基礎(chǔ)膠囊層(Primary Capsules),在這一層中參與卷積操作的不再是單個神經(jīng)元,而換成了神經(jīng)膠囊。在Conv3層中有256個通道,每個通道有一個卷積核,共可以提取256個特征。在Primary Capsules層中,采用5×5,步長為2的卷積核,輸出通道數(shù)為16,每個通道包含16個卷積核。從Conv3到Primary Capsules總通道數(shù)不變,結(jié)構(gòu)被“重塑”了。由于每個卷積核可以提取一個特征,每個通道可以提取16個特征,在每個通道里,長度為16的向量被封裝為一個初級膠囊。
Class Capsules層是膠囊網(wǎng)絡(luò)的全連接層,該層為每個類別分配一個32D膠囊,由于是全連接的拓?fù)浣Y(jié)構(gòu),每個膠囊都會接收上一層(Primary Capsules)所有膠囊的輸出信息。Primary Capsules共有16×10×10=1 600個膠囊單元(每個膠囊輸出向量的維度為[16,1]),Class Capsules層有K個(訓(xùn)練集中的類別數(shù))膠囊單元(每個膠囊輸出向量的維度為[32,1]),兩層之間相關(guān)膠囊的權(quán)值總數(shù)為(1 600×K)×(16×32),借助一個額外的數(shù)據(jù)矩陣完成數(shù)據(jù)傳輸。Class Capsules層第j個膠囊接收輸入的sj向量,通過壓縮整流函數(shù)(膠囊的激活函數(shù))得到輸出υj。
在CapsNet中,Class Capsules層中每個膠囊輸出的實例化向量的長度(即L2范數(shù))用來表示一個膠囊實體的存在概率,只有當(dāng)某類存在時,該類的頂層膠囊才期望包含最長的實例化向量。
CapsNet選擇為每個類別計算邊緣損失(Margin Loss)作為模型優(yōu)化的目標(biāo):
(4)
此外,本文根據(jù)Class Capsules層的實例化參數(shù),重建輸入圖像,進(jìn)而計算重構(gòu)圖像和原始圖像的L2損失作為重構(gòu)損失Lreconstruction。圖像重構(gòu)依據(jù)處于激活狀態(tài)膠囊(未激活膠囊的實例化參數(shù)被屏蔽)的實例化參數(shù),將膠囊向量視為真實的實體,先實施一次全連接(Fully Connected)網(wǎng)絡(luò)調(diào)參,然后將全連接層重塑(Reshape),再經(jīng)過一系列的反卷積操作還原輸入圖像。重構(gòu)結(jié)構(gòu)如圖2所示,在反卷積各層采用2×2的卷積核,除最后一層采用Sigmoid激活函數(shù)外,其他各層采用ReLU激活函數(shù)。
ZSL模型旨在學(xué)習(xí)視覺特征和語義信息的關(guān)聯(lián)。定義訓(xùn)練集S≡{(xs,ys,as)n,n=1,2,…,N},xs∈XS表示所見類的圖像集,ys∈YS表示對應(yīng)的類別標(biāo)簽集。同樣定義測試集U≡{(xu,yu,au)n′,n′=1,2,…,N′},xu∈XU表示不可見類的圖像集,yu∈YU表示對應(yīng)的類別標(biāo)簽集,au,as∈A表示所有類別的語義特征集合。以往大多數(shù)的ZSL方法,采用語義空間A作為嵌入空間。
參考以往大多數(shù)的ZSL方法,采用語義空間A作為嵌入空間:
s=〈WTφ(xu),φ(yc)〉
(5)
式中:s為深度網(wǎng)絡(luò)提取的圖像視覺特征表示,即將Class Capsules層的K個膠囊重構(gòu)為維度為[32×K,1]的向量;φ(y)是類別y的語義特征,φ(y)∈A;W是在全連接層中學(xué)習(xí)的權(quán)重,其可以被視為一個把圖像的特征表示φ(x)映射到語義空間A的線性投影矩陣。圖2為視覺特征與語義特征映射,以及網(wǎng)絡(luò)損失計算的結(jié)構(gòu)圖。
圖2 視覺與語義映射以及損失計算結(jié)構(gòu)圖
通過相容性分?jǐn)?shù)s衡量圖像與類別的語義表示之間的匹配程度,如式(6)所示,使用一個標(biāo)準(zhǔn)的Softmax損失函烽來訓(xùn)練模型,其中N為語義特征的維度。
(6)
綜上,網(wǎng)絡(luò)總的損失計算公式為:
Ltotal=Lmargin+0.005Lreconstruction+Lsoftmax
(7)
其中,邊緣損失函數(shù)和Softmax損失函數(shù)占主導(dǎo)地位。
在測試階段,只需要從測試(未參與訓(xùn)練)類中選擇最匹配的類別,就可以得到未見圖像xu的分類結(jié)果:
(8)
圖像表示φ(x)是在模型端到端訓(xùn)練過程中學(xué)到的,先前的方法多通過固定的φ(x)借助額外的正則化約束學(xué)習(xí)投影矩陣W。然而,實驗證明端到端的模型更有助于使圖像特征與ZSL任務(wù)的輔助信息兼容,提高識別的準(zhǔn)確率。
本文在AwA[15](Animals with Attributes)和CUB[16](Caltech-UCSD Birds)兩個標(biāo)準(zhǔn)的零樣本學(xué)習(xí)基準(zhǔn)數(shù)據(jù)集上進(jìn)行了實驗,并與現(xiàn)有最先進(jìn)的方法進(jìn)行了比較。表1概括了數(shù)據(jù)集的統(tǒng)計信息。AwA包括來自50個動物類別的30 475幅圖片;Caltech-UCSD Birds 200-2011(CUB)[16]是一個細(xì)粒度的鳥類數(shù)據(jù)集,包含200種不同鳥類的11 788幅圖像。
表1 ZSL數(shù)據(jù)集信息
將本文方法與現(xiàn)有一些最先進(jìn)的方法進(jìn)行了比較,進(jìn)而驗證本文膠囊網(wǎng)絡(luò)提取視覺特征的有效性。為方便起見,DAP[2]、SSE[17]、ESZSL[7]、SJE[8]、SYNC[12]、MFMR[18]和SCoRE[13]等方法的準(zhǔn)確率直接引用自原文獻(xiàn)。如表2所示,本文方法在AwA和CUB兩個數(shù)據(jù)集上的準(zhǔn)確率均超過了現(xiàn)有的方法。
表2 定量比較本文方法與其他方法之間的分類性能 %
圖3在AwA2數(shù)據(jù)集上定性地展示了方法5個類別的分類的結(jié)果。每個類別中最相近的前6幅圖片被選出。被錯誤判別的圖片用矩形邊框標(biāo)記,其正確類別在該圖下面標(biāo)注。盡管相同類別的測試圖像在外觀上差別很大,但是方法依舊能夠捕獲到每個類別共性的視覺信息,并將視覺信息對應(yīng)到該類別的語義屬性,比如鹿、狐貍和長頸鹿的測試圖像都能預(yù)測準(zhǔn)確。然而,也可以觀察到一些被錯誤分類的圖像,比如第二行的蝙蝠和第五行的海象。分析發(fā)現(xiàn):(1) 深度網(wǎng)絡(luò)依然不能準(zhǔn)確區(qū)分過于相似的類別之間的視覺特征。事實上,海豹和海象的視覺外觀是如此接近,以至于沒有專家的知識,人眼也幾乎不能區(qū)分它們。同時,被遮擋住的蝙蝠和老鼠也看起來很像。(2) 一些屬性標(biāo)注信息不夠準(zhǔn)確。例如,對于斑點這個屬性,海豹有描述而海象沒有描述。這種不明確的監(jiān)督信息會誤導(dǎo)映射函數(shù)的學(xué)習(xí)。
圖3 在AwA數(shù)據(jù)集上5個類別的定性結(jié)果
以往的零樣本識別方法多采用兩部管道,導(dǎo)致特定的識別任務(wù)缺乏語義結(jié)構(gòu)信息。另外,卷積網(wǎng)絡(luò)提取的視覺特征對物體的平移、旋轉(zhuǎn)和縮放等變化缺乏魯棒性。針對這些問題,本文基于膠囊網(wǎng)絡(luò)提取視覺特征信息,構(gòu)造視覺特征與語義信息的嵌入空間,并進(jìn)行端到端訓(xùn)練,實驗結(jié)果表明該方法提升了零樣本識別的準(zhǔn)確率。