曹 真,謝紅薇
(太原理工大學 軟件學院,太原 030024)
在傳統的圖像分類任務中,模型的訓練過程必須提供所需識別某類事物的圖像樣本[1]。但是,這種假設在現實問題中有時無法成立,因為在現實世界中存在著大量的事物類別沒有相應的圖像樣本。零樣本分類(zero-shot classification,ZSC)也稱作零樣本學習(zero-shot learning,ZSL),是一種特殊的圖像分類方法,可以作為一種解決上述問題的有效途徑[2]。零樣本學習的思想是利用一些已知類別的先驗知識獲得識別新類別的能力,即將未知與已知類別通過語義描述信息建立聯系,通過有標簽的已知類別在視覺和語義空間之間建立映射關系,最后根據已知類別數據和未知類別在視覺和語義上的聯系,對未知類別的圖像進行分類。近年來,零樣本分類問題得到了廣泛的關注。零樣本分類問題最早由LAMPERT et al[3]提出,同時提出了基于語義屬性的零樣本學習的DAP和IAP模型。之后的研究中,學者又提出了聯合嵌入模型[4],將語義特征和圖像特征共同嵌入到同個特征空間來解決零樣本分類問題。現有的大多數零樣本分類方法都著眼于從各個方面提高語義特征空間在圖像特征空間的映射效果。
然而,由于樣本的缺失和映射關系存在偏差,通過語義特征映射的零樣本學習方法存在很大的偏向性,這樣就導致未知類別會被誤識別為已知類別,產生領域漂移(Domain Shift)問題[5],從而導致模型泛化能力低。同時在現實問題中,理想化數據集很難找到,數據集往往存在類別樣本不平衡的問題[7]。因此,零樣本分類問題的另一種思路是利用生成模型生成未知類別的樣本,將零樣本分類問題轉化為數據缺失問題,通過生成樣本的方式對數據集進行有監督學習。LONG et al[6]提出了基于已知類樣本生成未知類別的方法,構建了一個能夠同時保持跨模態數據分布以及局部信息的語義屬性到視覺空間的映射函數。該方法與直接語義預測和基于嵌入模型的零樣本分類算法進行無監督分類相比,在基于生成模型的零樣本分類算法中,語義信息將作為生成模型的引導信息,生成所需的樣本。本文在此基礎上提出了一種改進的基于最大均值差異分離噪聲變分自編碼器的零樣本分類模型(zero-shot classifycation algorithm via variational auto-encoder with maximum mean discrepancy,MD-VAE),基本思路是利用變分自編碼器進行樣本生成,在已知樣本輸入編碼器時利用最大均值差異對編碼器產生的隱變量進行約束,之后利用樣本標簽信息控制生成,通過解碼器生成目標類別訓練樣本,利用生成樣本在分類模型中進行有效地監督學習,最終對未知類別進行分類。
零樣本分類是指依據一些可見類別的數據,輔以相關常識信息或先驗知識,通過模型實現對不可見類別的數據進行類別預測的問題[2]。與傳統的分類任務不同,零樣本分類中測試樣本Xs所屬的類別和訓練樣本Xt所屬的類別是不相交的,而傳統的目標分類中測試樣本所屬的類別包含于訓練樣本類別的集合。如圖1所示訓練樣本中有“馬”與“熊貓”,測試樣本中有“斑馬”。模型雖然沒有見過“斑馬”這個未知類別樣本,但是訓練樣本中具有測試樣本中的特征,即可以通過對未知類別的樣本描述,通過訓練樣本進行未知類別圖像分類。
零樣本分類問題的基本思路是利用訓練樣本和樣本對應的輔助信息(例如文本描述或者屬性特征等)對模型進行訓練,在測試階段利用在訓練過程中得到的信息,以及模型的測試類輔助信息對模型進行補足[3],提高訓練后的模型的泛化能力,使得模型的泛化能力足夠強大到對未知類別的測試類樣本進行分類,從而確定測試樣本的類標簽。而要把訓練后的模型推廣到未知類別的測試樣本[2],需要訓練樣本和測試樣本都具有輔助信息,并在訓練時學習輔助信息的表示模型。測試時利用訓練時學習到的輔助信息模型和測試樣本的輔助信息,預測測試樣本的類標簽。

圖1 零樣本圖像分類
SAENK et al[5]從自然語言處理和計算機視覺方面引入領域移位問題。在給定設置的數據上訓練分類器,并在不同場景中進行測試,因為訓練集與測試集屬于不同的域,最終導致性能不佳。該問題的一個規范形式描述如下:
由于零樣本分類問題中,訓練集和測試集無交集,需通過語義等輔助信息進行域之間的信息傳遞,現有的零樣本分類方法多采用語義特征空間在圖像特征空間的映射,或反向映射,或將它們同時映射到一個子空間。假設在源域和目標域中分別存在兩種類別:蝴蝶和蜂鳥,它們都具備翅膀這種語義屬性,但它們的視覺屬性是不完全相同的,例如分類器在蝴蝶類樣本上學習到的翅膀屬性,當用于蜂鳥類樣本時分類結果就會出現偏差,導致模型泛化能力差。
基于語義特征空間向圖像特征空間映射的零樣本分類模型常面臨領域漂移的問題。由于在訓練模型使用的數據集中并未包含需要測試的數據類別,當訓練樣本與測試樣本的類別相差較大時,零樣本分類模型的效果將受到很大影響。
零樣本圖像分類的難點主要是對未知類別無法得到具體的樣本,因此本文利用變分自編碼器生成未知類別圖像,從而將零樣本圖像分類轉化為有監督圖像分類。本文對VAE模型編碼器部分進行改進,加入類別標簽信息控制已知類別噪聲,從而優化隱變量生成[8]。
變分自編碼器(variational auto-encoders,VAE)是一種深度生成模型,是基于變分貝葉斯(variational bayes,VB)推斷的生成式網絡結構[9]。變分自編碼器包含兩個概率分布模型:一個用于原始輸入數據的變分推斷,生成隱變量的變分概率分布推斷網絡,即編碼器;另一個根據生成的隱變量變分概率分布,還原生成原始數據的近似概率分布的生成網絡,即解碼器。相較于自編碼器,變分自編碼器的編碼器與解碼器的輸出都是受參數約束變量的概率密度分布,而不是某種特定的編碼。
假設原始數據集X,每個數據樣本xi都是隨機產生相互獨立、連續或離散的分布變量,生成數據樣本集合為X′,并且假設該過程產生隱變量Z,即有部分變量是不可直接觀測的。其中可觀測變量X是一個高維空間的隨機向量,不可觀測變量Z是一個相對低維空間的隨機向量,如圖2所示該生成模型可以分成如下過程:
1) 隱變量Z后驗分布的近似推斷過程qφ(z|x),即推斷網絡編碼器。該過程會產生兩個向量,一個是均值向量μ,一個是標準差向量σ.
2) 生成變量Xi的條件分布生成過程Pθ(z|x),即生成網絡解碼器。該過程會從標準差向量中采樣加到均值向量上輸入到生成網絡中。
由于隱變量Z無法直接使用變分推斷進行求解,VAE在推斷網絡中引入一個識別模型qφ(z|x)來代替無法確定的真實后驗分布Pθ(z|x),并且假設識別模型qφ(z|x)是一個已知的分布形式,這樣識別模型qφ(z|x)就可以作為VAE的推斷網絡部分,條件分布Pθ(x′|z)作為生成網絡部分。使識別模型qφ(z|x)和真實后驗分布Pθ(z|x)近似相等,VAE使用KL散度(Kullback-Leibler)[10]來衡量兩者之間的相似度,并希望通過優化約束參數θ和φ使KL散度最小化,即:
φ,θ=argminDKL(qφ(z|x)‖Pθ(z|x))=Eqθ(z|x)[lbqφ(z│x)-lbPθ(x,z)]+lbPθ(x) .
(1)
假設記:
L(θ,φ;X)=Eqθ(z|x)[-lbqφ(z|x)+lbPθ(x,z)] .
(2)
由以上兩個公式可得:
lbPθ(X)=DKL(qφ(z|x)‖Pθ(z│x))+L(θ,φ;X) .
(3)
由于KL散度DKL≥0恒成立,所以lbPθ(X)≥L(θ,φ;X)恒成立,L(θ,φ;X)被稱為集合X對數邊際似然lbPθ(X)的變分下界函數。
為了使生成的樣本與目標樣本相似程度更高,因此需要使qφ(z|x)和Pθ(z|x)近似相等,即KL散度最小化。由式(3)可知,為了使KL散度最小化,推斷網絡和生成網絡的優化目標都是最大化變分下界函數,因此變分自編碼器模型的整體優化目標即為最大化變分下界函數L(θ,φ;X).生成模型的訓練過程最終目標就是讓下界函數得到最大值,即:
L(θ,φ;X)=-DKL(*)+lbPθ(X) .
(4)
由于Pθ(x)可以直接通過神經網絡計算,并且qφ(z|x)服從正態分布,因此可以通過隨機梯度下降進行優化計算。

圖2 變分自編碼器結構圖
最大均值差異(maximum mean discrepancy,MMD)作為一種損失函數在域適應問題中使用廣泛[11],可以定量度量兩個不同但相關的分布距離。因此對于使用生成模型解決零樣本分類問題中可以定量地對隱變量層進行控制,從而生成所需的未知類別樣本。最大均值差異定義如下:
假設分別存在一個滿足P分布的源領域XS=[xnt1,…xnt]和一個滿足Q分布的目標領域Xt=[xt1,…,xtm],令H表示再生核希爾伯特空間(reproducing kernel Hilbert space,RKHS),φ(*):X→H表示原始特征空間映射到RKHS映射函數,當ns,nt→∞時Xs和Xt在RKHS中的最大均值差異(maximum mean discrepancy,MMD) 可以表示為:
(5)
由上式可以看出最大均值差異的原理是對每一個樣本進行投影并求和,利用和的大小表述兩個數據的分布差異。當MMD值越小則源域和目標域越相近,因此可以作為正則項來對數據樣本內噪聲因素進行可計算的優化,同時對樣本類別信息進行控制從而對未知類別樣本進行分類。
為了使條件變分自編碼器更好地對已知類別樣本進行生成,使生成的未知類別圖像精度更高,從而提高零樣本圖像分類的準確率,本文提出將噪聲因素與隱變量信息分離之后加入樣本標簽信息控制未知類別樣本生成,使得模型更加明確地學習某些非變性因素的特征表示。
本文根據2.1節和2.2節設計了基于改進變分自編碼器的零樣本分類框架。如圖3所示為MMD-VAE模型結構,分為生成模型部分和分類模型部分。

圖3 最大均值差異改進變分自編碼器結構示意圖
對于生成模型部分,利用改進的變分自編碼器進行樣本生成,主要分為編碼器層,2個隱變量層以及解碼器層。原始數據集X={xi}中包含了部分噪聲因素S={si},在隱變量Z的表示學習過程中,將噪聲因素S單獨分離出來,以便提高隱變量Z表示學習的準確度,從而提高零樣本圖像分類的準確率。如果直接根據變分后驗分布qφ(z|x)將原始數據映射到隱變量空間,則無法徹底消除隱變量Z與噪聲因素S之間的依賴關系,于是提出加入最大均值差異作為正則項,懲罰由噪聲S得到的隱變量Z的后驗分布qφ(z|x),使得qφ(z|x)盡可能小,則可以起到弱化隱變量Z與噪聲因素S之間依賴關系的作用,即:
Dmmd=argminMMD(qφ(z|x‖s)) .
(6)
同時在生成模型模型中,噪聲因素S和數據標簽Y={yi}可能存在一定的聯系,分離了噪聲因素S也會對標簽信息Y造成一定的影響,本文所提出的解決辦法是增加一個隱變量層Z1,在經過噪聲因素分離之后再將標簽信息Y重新注入Z1,從而使得模型標簽信息不受影響。通過添加了標簽信息Y可以對生成樣本類型進行控制。根據未知類別所屬的標簽信息可以生產未知類別圖像。根據公式(4)和(6)可得:
L(θ,φ;X,Y)=-DKL(qφ(z|x,y)‖Pθ(z│x,y))-Dmmd(qφ(z|x‖s)+lbPθ(X) .
(7)
由以上公式可得最終目標為讓L(θ,φ;X,Y)最大化,根據以上公式可得:
argmaxL(θ,φ;X,Y)=-DKL-Dmmd+lbPθ(X) .
(8)
對于分類模型部分,生成未知類別的訓練樣本,按照傳統有監督訓練方法進行訓練,構造分類器進行未知類別圖像的分類,得到未知類別的分類結果。在本文中使用支持向量機(SVM,support vector machine)作為分類模型,值得注意的是,本文提出的零樣本分類模型中,分類模型部分可以進行改變。為了改進分類效果,可以使用分類效果更強的模型。
利用MMD作為正則項對樣本噪聲分離,改進變分自編碼器在零樣本圖像分類實驗準確度和非變性特征提取的過程,表現出較好的權衡關系,使生成樣本與已有樣本更接近,從而提高圖像分類的準確性。
由此可得,本文提出的模型算法步驟歸納如下:
1) 使用訓練集樣本X輸入編碼器,進行樣本特征輸入。
2) 在編碼器內利用最大均值差異作為正則項,對樣本進行噪聲分離,得到噪聲分離后的隱變量層Z.
3) 在得到的隱變量層Z后新增一個隱變量層Z1,加入樣本標簽信息Y控制樣本生成未知類別樣本。
4) 使用生成的未知類別樣本訓練SVM分類器,進行圖像分類。
本文使用軟硬件環境為:Linux,Python3.6,pyTorch0.4.0,NVIDIA 1080ti,RAM16G及i7-4790.
本文使用AWA動物數據集、CUB鳥類數據集以及ImageNet-2數據集[12],數據為開源數據集。其中AWA與CUB數據集為小型數據集,ImageNet-2數據集為大型數據集,因此本文可以在不同維度的數據集上驗證模型算法的有效性。
AWA是動物數據集,共有40個已知類,10個未知類,包含30 475個圖片樣本,其中24 295個已知類的樣本,6 180個為未知類的樣本。CUB鳥類數據庫包含11 788個圖片樣本,150個已知類和50個未知類,其中8 855個已知類樣本,2 933個未知類的測試樣本。CUB和AWA兩個數據集各自提供語義特征。
ImageNet-2數據集包含254 000個圖片樣本,其中1 000個已知類,360個未知類,數據集沒有特征注釋。為了進行對照實驗,使用1 000維由Word2vec訓練的語義特征。數據集描述如表1所示。

表1 實驗數據集詳細信息
對于AWA,CUB數據集,本文使用類的平均分類準確率來和其他零樣本分類模型進行比較。平均類別的分類準確率是評價所使用數據集較好的指標,削弱了實驗的隨機性。定義如下:
(9)
其中,Y為總體類別個數,NT為當前類別樣本數量,NC為當前類別分類正確樣本數量。
對于ImageNet-2大型數據集,由于類別數量較多,因此本文的評價標準是測量top-k準確率[13],即模型的最高k類預測中出現真標簽的平均值,本文根據對照的零樣本分類模型統一設置k值為5,即最高5類分類準確率。
零樣本圖像分類模型的性能還可以進行可視化研究,本文使用基于t分布的隨機領域嵌入法(T-distributed stochastic neighbor embedding,T-SNE)[14]來進行每個類的圖像特征可視化。T-SNE基于隨機鄰域嵌入法(stochastic neighbor embedding,SNE) 進行改進, 是一種非線性的降維方法,適合將高維數據降至2或3維,從而進行特征的可視化,即為每個類生成相應的圖像特征向量。本文以AWA數據集為例將測試圖像的原始特征分布、經改進條件變分自編碼器生成樣本的特征分布進行了比較。
實驗由于生成模型部分采用自適應生成模型,因此只需要將隱藏層Z和Z1的維度λ作為超參數。實驗中生成模型部分采用交叉驗證的方式找到隱變量層維度超參數λ.采用十折交叉驗證,將數據集分為10份,每次選取9份作為訓練集,余下為測試集。由圖4可知,將超參數隱變量層維度設置為150時,可得到模型最佳分類效果。

圖4 平均分類準確率隨超參數λ變化曲線
對于利用生成樣本進行訓練的分類模型,本文采用支持向量機作為分類模型,需要確定模型的懲罰系數C作為參數,需要兼顧模型的分類準確性與模型的訓練耗時。如圖5所示可知,在懲罰系數為100時,在分類準確性較高的情況下,訓練耗時較低。因此選擇懲罰系數為100,這時模型分類效果最好。
同時為了保證模型的魯棒性,本文還驗證了模型在小樣本數據集AWA和CUB上的生成能力,經過驗證在生成大約400個生成樣本數據后模型性能在AWA和CUB數據集上達到飽和。

圖5 支持向量機懲罰系數C分類準確率曲線
本文對比的零樣本圖像分類算法有IAP[3]、DAP[3]、ConSE[15]、DeviSE[16]、SJE[17]、SAE[18]、GAZSL[19]、VAE[8]。實驗結果在AWA,CUB和ImageNet-2數據集的對比見表2和表3.
如表2所示為本文提出的模型在AWA數據集合和CUB數據集上進行50次實驗的平均結果??梢钥闯鰷蚀_率均得到了提高。在AWA數據集上本文提出的方法與其他算法相比準確率增加了4.8%.在CUB數據集上與其他算法相比分類準確率增加了4.5%.橫向對比,在CUB數據集中,相比在AWA數據集上分類性能稍差。其原因是CUB數據集圖像存在細粒度特性,其中的類別非常的接近,僅靠語義信息作為輔助生成的樣本在一定程度上存在誤差。

表2 各方法在AWA和CUB數據集分類準確率均值
如表3所示為在大型數據集ImageNet-2上30次實驗平均結果。由表3可知,本文算法在ImageNet-2大型數據集上圖像分類準確率相比對照的方法提高了5.4%.

表3 在ImageNet-2數據集top-5分類準確率均值
圖6為使用3.2節提出的T-SNE特征可視化圖進行零樣本模型分析。以AWA數據集為例隨機選取了9個已知類別樣本,分別是原始特征分布和經過改進變分自編碼器映射后的特征分布的可視化。從圖6(a)可以得知原始圖像的特征是雜亂的,在不同類間存在噪聲,會對未知類別樣本生成產生干擾。對比圖(a)和(b)可知噪聲分離改進變分自編碼器后的生成樣本分布類別相同的特征分布變得緊湊,不同類別之間的間隔更大,可以明顯看出9個不同類別樣本中的噪聲干擾得到消除,減緩領域漂移問題,保證零樣本圖像分類模型訓練的魯棒性。
另一方面由于生成的樣本經過樣本標簽信息控制與未知類別樣本高度相似,樣本特征更加集中。同時源域和目標域的映射是屬性與類別一一對應的,因此可以直觀看出本文提出的方法有效避免源域和目標域的映射偏差,改善了零樣本圖像分類問題中存在的領域漂移問題,即對生成樣本特征進行極大約束,更有利于對未知類別進行分類。

圖6 視覺特征分布T-SNE可視化
針對零樣本圖像分類問題以及在分類過程中存在的領域漂移問題,本文提出了一種利用最大均值化差異改進變分自編碼器的零樣本圖像分類算法,將零樣本圖像分類問題轉化為樣本缺失的圖像分類問題,該算法在變分自編碼器基礎上利用最大均值化差異在隱藏層中進行噪聲分離,提高生成樣本質量,生成了更加符合原樣本的生成樣本數據集,然后按照有監督學習的方法利用生成樣本對圖像進行分類。
實驗結果表明,該方法改善了零樣本學習任務中的領域漂移問題,提高了零樣本圖像分類問題的準確率,在AWA數據集提高了4.8%,在CUB數據集提高了4.5%,在ImageNet-2數據集提高了5.4%.但是在ImageNet-2大型數據集上面準確率仍然有待提高,這是下一步的研究方向。