徐樹振 朱 青
(北京工業大學信息學部 北京 100124)
教會機器認識世界是人工智能發展的必經之路,其中深度學習技術的突破得益于互聯網發展過程中所積累下來的海量標注數據。ResNet[1]是卷積神經網絡(CNN)分類模型的杰出代表,在ImageNet分類任務中,其誤差率低至3.57%,但其分類能力仍局限于訓練數據集中的圖像類別。然而,很多情況下難以獲得足夠有標注的數據來訓練識別或預測模型,越來越多的研究者將零樣本學習(Zero-Shot learning,ZSL)引入圖像分類。
零樣本學習旨在借助輔助知識,如屬性[2]、詞向量[3]、文本描述[4]等,使圖像分類模型能夠識別訓練集中從未出現過的圖像類別。這種知識遷移的能力很符合現實生活中海量類別的存在形式,比如,能夠通過閱讀動物的描述來對不同種類的動物進行分類,而不是必須看到它們。
近年來,研究人員試圖通過學習圖像及其語義特征之間的相容函數,為兩者構建一個共同的嵌入空間。DeViSE模型[3]和ALE模型[5]通過求解hinge ranking損失函數學習線性變換矩陣。Socher等[6]使用一個兩層的神經網絡將未見圖像映射到語義特征空間。ESZSL模型[7]設計了一個弗羅貝尼烏斯范數(Frobenius norm)正則化矩陣。SJE模型[8]將多個兼容函數線性組合成一個聯合嵌入,從輔助信息的不同方面捕獲非冗余信息。SAE模型[9]從線性自動編碼器中吸取了成功的經驗,除了借助編碼器將圖像映射到語義空間外,它還利用解碼器使模型能夠從映射到的語義特征重構出原始的視覺特征。與DeViSE和ALE類似,Karessli等[10]優化了hinge ranking損失函數,創新性地將凝視信息作為輔助信息引入到ZSL任務中。除了直接學習兼容性函數外,混合模型提出了另一種零樣本學習的方式。混合模型[11-12]的基本思想是利用可見類的組合對不可見圖像進行分類。
上述方法幾乎都側重于構建圖像特征和語義特征的嵌入空間。嵌入空間建立在所見圖像與其語義特征之間的對應關系上。在測試階段,將不可見的圖像特征映射到嵌入空間,在嵌入空間中,采用最近鄰(NN)搜索等分類方法。這些方法大多采用獨立的兩步管道,即從預訓練的CNN模型中提取圖像特征,再借助固定的圖像特征學習嵌入空間。這種趨勢導致了圖像特征在ZSL任務中缺乏語義信息。SCoRe模型[13]雖然提出了端到端的訓練結構,但是其在圖像特征提取階段沒有考慮任何語義結構約束,仍然采用標準的CNN圖像特征提取方式。
本文認為分別進行圖像特征提取和嵌入空間的構造會嚴重損害ZSL模型的性能。從固定的預訓練CNN模型中提取的圖像特征并不能捕捉到輔助信息中豐富的語義信息。本文提出了一種基于膠囊網絡[14](CapsNet)用于零樣本學習的深度語義結構約束模型,并對該模型進行端到端訓練,利用語義信息對圖像特征提取和嵌入空間構造進行監督學習。實驗結果表明,本文模型有助于提升零樣本學習的性能。
在圖像分析和分類方面,卷積網絡是目前最先進的技術。但訓練好的網絡可能會錯誤地識別具有一定旋轉的同一類型的圖像,這就是為什么訓練經常伴隨著數據增強和平均/最大池化的原因。池化是一種通過選擇神經元子集建立新的下一層的方法,使下一層的計算負荷更小,而且也使網絡更少地依賴于圖像中特征的原始位置。因此,卷積網絡假定特征的確切位置對于考慮圖像中是否存在物體并不重要。
與CNN一樣,膠囊網絡同樣讓更高級別的膠囊覆蓋圖像更大的區域,但與池化不同的是,它不會丟棄實體在區域內精確的位置信息。即便是被檢測物體發生平移、旋轉和縮放等變化,模型能夠理解這些變化同時輸出足夠豐富的信息,并對圖像中變化的物體輸出相同的類別判定(理解為等變量)。然而這在使用池化時是不可能做到的。
膠囊網絡之所以能夠理解圖像中的變化,更好地概括所感知的內容,主要源于神經膠囊的工作原理。膠囊是一組神經元,它們的激活向量表示特定類型實體(對象或對象部件)的實例化參數。傳統結構用深度來討論深度學習,膠囊網絡則引入嵌套的概念作為新的深度維度。膠囊網絡的核心分為基礎膠囊(Primary Capsules)和類別膠囊(Class Capsules)兩部分。
在一個普通的卷積層上,創建一個由M×C個通道構成的卷積層。M表示膠囊通道的數量,C表示每個膠囊的大小。這樣就創建了長和寬大小為(T,T)的M×C個新通道,下一步就是重新排列卷積層來創建T×T×M個大小為C的基礎膠囊(Primary Capsules)。
Class Capsules層由K個膠囊組成,每個膠囊代表一個特定的類別。長度最大的膠囊確定模型的預測。在此之前,模型通過“迭代路由”方法來選擇前一層中的哪些膠囊必須與輸出層膠囊Class Capsules相關聯。特征的選擇不再像池化那樣是任意完成的。

(1)

(2)
最后,模型將一個非線性擠壓函數應用于各膠囊。該函數保持向量的方向不變,將向量模長壓縮(歸一化)到[0,1)區間:
(3)
本文使用如圖1所示的膠囊網絡體系結構來學習圖像的視覺特征。該體系結構由輸入層、四個卷積層和一個全連接層組成。雖然模型要比通用的CNN模型淺得多,但是借助向量神經元和動態路由,使得其性能不遜于其他深層卷積網絡。

圖1 基于膠囊網絡的圖像視覺特征提取結構圖
Conv1、Conv2和Conv3分別有64、128和256個通道,所有通道均采用2×2的卷積核,每個卷積核步長為2且采用ReLU激活函數。這些層將輸入層像素強度轉換為局部特征輸出。
接下來的卷積層Conv4為基礎膠囊層(Primary Capsules),在這一層中參與卷積操作的不再是單個神經元,而換成了神經膠囊。在Conv3層中有256個通道,每個通道有一個卷積核,共可以提取256個特征。在Primary Capsules層中,采用5×5,步長為2的卷積核,輸出通道數為16,每個通道包含16個卷積核。從Conv3到Primary Capsules總通道數不變,結構被“重塑”了。由于每個卷積核可以提取一個特征,每個通道可以提取16個特征,在每個通道里,長度為16的向量被封裝為一個初級膠囊。
Class Capsules層是膠囊網絡的全連接層,該層為每個類別分配一個32D膠囊,由于是全連接的拓撲結構,每個膠囊都會接收上一層(Primary Capsules)所有膠囊的輸出信息。Primary Capsules共有16×10×10=1 600個膠囊單元(每個膠囊輸出向量的維度為[16,1]),Class Capsules層有K個(訓練集中的類別數)膠囊單元(每個膠囊輸出向量的維度為[32,1]),兩層之間相關膠囊的權值總數為(1 600×K)×(16×32),借助一個額外的數據矩陣完成數據傳輸。Class Capsules層第j個膠囊接收輸入的sj向量,通過壓縮整流函數(膠囊的激活函數)得到輸出υj。
在CapsNet中,Class Capsules層中每個膠囊輸出的實例化向量的長度(即L2范數)用來表示一個膠囊實體的存在概率,只有當某類存在時,該類的頂層膠囊才期望包含最長的實例化向量。
CapsNet選擇為每個類別計算邊緣損失(Margin Loss)作為模型優化的目標:

(4)

此外,本文根據Class Capsules層的實例化參數,重建輸入圖像,進而計算重構圖像和原始圖像的L2損失作為重構損失Lreconstruction。圖像重構依據處于激活狀態膠囊(未激活膠囊的實例化參數被屏蔽)的實例化參數,將膠囊向量視為真實的實體,先實施一次全連接(Fully Connected)網絡調參,然后將全連接層重塑(Reshape),再經過一系列的反卷積操作還原輸入圖像。重構結構如圖2所示,在反卷積各層采用2×2的卷積核,除最后一層采用Sigmoid激活函數外,其他各層采用ReLU激活函數。
ZSL模型旨在學習視覺特征和語義信息的關聯。定義訓練集S≡{(xs,ys,as)n,n=1,2,…,N},xs∈XS表示所見類的圖像集,ys∈YS表示對應的類別標簽集。同樣定義測試集U≡{(xu,yu,au)n′,n′=1,2,…,N′},xu∈XU表示不可見類的圖像集,yu∈YU表示對應的類別標簽集,au,as∈A表示所有類別的語義特征集合。以往大多數的ZSL方法,采用語義空間A作為嵌入空間。
參考以往大多數的ZSL方法,采用語義空間A作為嵌入空間:
s=〈WTφ(xu),φ(yc)〉
(5)
式中:s為深度網絡提取的圖像視覺特征表示,即將Class Capsules層的K個膠囊重構為維度為[32×K,1]的向量;φ(y)是類別y的語義特征,φ(y)∈A;W是在全連接層中學習的權重,其可以被視為一個把圖像的特征表示φ(x)映射到語義空間A的線性投影矩陣。圖2為視覺特征與語義特征映射,以及網絡損失計算的結構圖。

圖2 視覺與語義映射以及損失計算結構圖
通過相容性分數s衡量圖像與類別的語義表示之間的匹配程度,如式(6)所示,使用一個標準的Softmax損失函烽來訓練模型,其中N為語義特征的維度。
(6)
綜上,網絡總的損失計算公式為:
Ltotal=Lmargin+0.005Lreconstruction+Lsoftmax
(7)
其中,邊緣損失函數和Softmax損失函數占主導地位。
在測試階段,只需要從測試(未參與訓練)類中選擇最匹配的類別,就可以得到未見圖像xu的分類結果:
(8)
圖像表示φ(x)是在模型端到端訓練過程中學到的,先前的方法多通過固定的φ(x)借助額外的正則化約束學習投影矩陣W。然而,實驗證明端到端的模型更有助于使圖像特征與ZSL任務的輔助信息兼容,提高識別的準確率。
本文在AwA[15](Animals with Attributes)和CUB[16](Caltech-UCSD Birds)兩個標準的零樣本學習基準數據集上進行了實驗,并與現有最先進的方法進行了比較。表1概括了數據集的統計信息。AwA包括來自50個動物類別的30 475幅圖片;Caltech-UCSD Birds 200-2011(CUB)[16]是一個細粒度的鳥類數據集,包含200種不同鳥類的11 788幅圖像。

表1 ZSL數據集信息
將本文方法與現有一些最先進的方法進行了比較,進而驗證本文膠囊網絡提取視覺特征的有效性。為方便起見,DAP[2]、SSE[17]、ESZSL[7]、SJE[8]、SYNC[12]、MFMR[18]和SCoRE[13]等方法的準確率直接引用自原文獻。如表2所示,本文方法在AwA和CUB兩個數據集上的準確率均超過了現有的方法。

表2 定量比較本文方法與其他方法之間的分類性能 %
圖3在AwA2數據集上定性地展示了方法5個類別的分類的結果。每個類別中最相近的前6幅圖片被選出。被錯誤判別的圖片用矩形邊框標記,其正確類別在該圖下面標注。盡管相同類別的測試圖像在外觀上差別很大,但是方法依舊能夠捕獲到每個類別共性的視覺信息,并將視覺信息對應到該類別的語義屬性,比如鹿、狐貍和長頸鹿的測試圖像都能預測準確。然而,也可以觀察到一些被錯誤分類的圖像,比如第二行的蝙蝠和第五行的海象。分析發現:(1) 深度網絡依然不能準確區分過于相似的類別之間的視覺特征。事實上,海豹和海象的視覺外觀是如此接近,以至于沒有專家的知識,人眼也幾乎不能區分它們。同時,被遮擋住的蝙蝠和老鼠也看起來很像。(2) 一些屬性標注信息不夠準確。例如,對于斑點這個屬性,海豹有描述而海象沒有描述。這種不明確的監督信息會誤導映射函數的學習。

圖3 在AwA數據集上5個類別的定性結果
以往的零樣本識別方法多采用兩部管道,導致特定的識別任務缺乏語義結構信息。另外,卷積網絡提取的視覺特征對物體的平移、旋轉和縮放等變化缺乏魯棒性。針對這些問題,本文基于膠囊網絡提取視覺特征信息,構造視覺特征與語義信息的嵌入空間,并進行端到端訓練,實驗結果表明該方法提升了零樣本識別的準確率。