劉 帥,黃 剛,戴曉峰,顏金花
(1.南京郵電大學 計算機學院,江蘇 南京 210023; 2.南京工業大學 計算機科學與技術學院,江蘇 南京 211816)
近年來,隨著深度學習的發展,深度學習在自然圖像識別領域(如圖像識別與分類、圖像的文本描述以及圖像分割等)都取得了突破性的進展,在對人臉、車牌號等特定的對象識別與分類方面表現的尤為突出。但算法的發展過程中也逐漸暴露出泛化能力差、訓練所需數據量大等缺點。尤其是近年來的圖像分類數據量都非常大,訓練數據過大則導致人工標注難度大,而傳統方法分類圖像需要大量被標注的標簽,因此傳統的方法無法滿足現有需求。
為了解決上述問題,Larochelle等于2008年提出了零樣本學習這一概念[1]。零樣本可以將可見類拓展到不可見類而不需要額外的標簽[2-8]。零樣本圖像分類的過程與人類識別未見過的物體很相似,但是人類可以只通過一句話的描述就能識別出物體。例如,如果一個孩子以前見過馬,并且知道“斑馬”就像一匹黑白條紋的馬,那么他/她識別“斑馬”就沒有問題。零樣本分類依賴于一個有標記的可見類,以及一個擁有語義信息描述的不可見類。傳統的零樣本方法主要是建立視覺空間和語義特征空間之間的映射函數,包括視覺空間到語義空間的映射[2],語義空間到視覺空間的映射[9],視覺空間和語義空間映射到一個共享的隱空間[10]。但是由于視覺和語義之間的差異,相互映射會導致語義信息丟失,最終對圖像分類的效果不理想。
同時,由于深度網絡的訓練缺少注釋樣本,訓練數據生成成為了研究熱點[11]。生成對抗網絡[12]特別有吸引力,因為它們允許生成真實而清晰的圖像,例如,生成以對象類別為條件的圖像[13-14]。盡管生成對抗網絡已經可以解決多數問題,但是其難以訓練和梯度消失等問題仍是一大阻礙。強大的WGAN[15]解決了這些問題。
因此,可以通過融合生成對抗網絡來解決零樣本存在的問題,利用高斯噪聲和不可見類的語義信息生成圖像特征,然后利用可見類和生成的圖像特征訓練分類器。雖然上述方法可以解決零樣本存在的問題,但是也引入了新的問題:如何訓練出能夠生成符合語義信息的圖像特征。因此,該文改進了生成器,將生成的圖像特征重構回語義信息,從而約束生成器生成高質量圖像特征。
主要貢獻如下:改進生成對抗網絡的生成器網絡,在原本生成器網絡基礎上引入重構網絡,將生成的圖像特征重構回語義信息,以此來限制生成器,使得生成的圖像特征能夠更加貼合語義信息,從而確保圖像和語義直接的結構相關性。
本節介紹零樣本學習和生成對抗網絡,為后面改進融合生成對抗網絡的零樣本圖像分類模型做鋪墊。
在早期的零樣本方法中,主要可以分為直接語義預測和模型嵌入兩類。其中第一類,直接預測方法,最具代表性的為2013年Lampert提出的兩種拓撲結構零樣本學習模型,即直接屬性預測(DAP)模型以及間接屬性預測(IAP)模型。其中DAP,就是對輸入的每一個屬性訓練一個分類器,然后將訓練得出的模型用于屬性的預測,測試時,對測試樣本的屬性進行預測,再從屬性向量空間里面找到和測試樣本最接近的類別。IAP則是利用可見類建立一種關聯關系來將測試樣本和不可見類相關聯,該方法是將測試樣本分類到可見類別中,隨后根據可見類和不可見類的語義信息建立的語義關系對測試樣本進行預測。文獻[16]提出利用隨機森林算法來訓練模型以提高對語義信息的預測準確度,通過對每個類別的屬性預測損失來提升預測準確率。基于嵌入的方法則是將可見類和不可見類關聯在一個高維向量空間中,即語義嵌入空間,該空間可以是語義屬性空間或語義詞向量空間。由于視覺和語義的差異,三種語義和視覺空間的映射會導致語義丟失問題。Chen等于2017年提出了SP-AEN模型[17],通過引入一個獨立的視覺到語義空間嵌入器來防止語義丟失,該嵌入器將語義空間分解為兩個子空間,以實現兩個可能沖突的目標:分類和重構。通過兩個子空間的對抗學習,SP-AEN可以將語義從重構子空間轉移到判別子空間,實現對不可見類的零樣本識別。
雖然傳統的零樣本方法能夠在一定程度上實現零樣本圖像分類,但取得的效果并不理想。于是Xian等[18]提出了利用生成對抗網絡體系結構來直接生成圖像特征。通過利用可見類訓練生成器和鑒別器,以及不可見類的語義信息生成類似不可見類的圖像特征來訓練分類器,最終使得分類器的效果好于之前的傳統方法。
生成對抗網絡,最初是由Goodfellow作為一種學習生成模型的方法提出,該模型從一個特定的領域(圖像等)捕獲任意的數據分布。生成對抗網絡由生成器和鑒別器兩個部分組成,生成器輸入隨機噪聲試圖生成“真實圖像”來欺騙鑒別器,鑒別器則區分真假圖像,兩個網絡通過相互對抗的方式進行。在隨后的發展中,通過將類別標簽,句子描述輸入到生成器和鑒別器中,GAN也被擴展為條件GAN。GAN的理論在文獻[19]中進行了研究,表明Jenson-Shannon發散會導致不穩定性問題。為了解決GAN的不穩定訓練問題,文獻[20]提出了Wasserstein-GAN(WGAN),優化了Wasserstein距離的有效逼近。雖然WGAN獲得了比原始GAN更好的理論性能,但它仍然受到梯度消失和爆炸問題的困擾。因此,文獻[15]提出了一個改進的WGAN版本,通過梯度懲罰對鑒別器進行1-Lipschitz約束來緩解梯度消失和爆炸問題。
首先設S={(x,y,c(y))|x∈X,y∈Y,c(y)∈C},其中S代表可見類的訓練數據,x∈Rdx為經過CNN處理的圖像特征,y表示類別標簽Ys={y1,…,yK},由K個離散的可見類組成,c(y)∈Rdc是類別嵌入,例如類y的屬性,它模擬類之間的語義關系。另外,還有一個不相交的類標簽集Yu={u1,…,uL},包含L個不可見類,其類別嵌入集合U={u,c(u)|u∈Yu,c(u)∈C}可用,但缺少圖像特征,以此來訓練分類器,最終使得分類器的效果好于之前的傳統方法。


圖1 CLSWGAN網絡結構
生成對抗網絡損失函數LWGAN:
(1)
式中,前兩項近似于Wasserstein距離,第三項是梯度懲罰,λ為懲罰系數。
分類器的損失函數LCLS:
(2)

整體的損失函數為:

(3)
由于生成對抗網絡容易產生模式崩潰的問題,僅通過生成器和鑒別器之間相互對抗會使得最終生成的圖像特征趨向單一化。計算機視覺的另一種方法─變分自動編碼器(VAE)也可以生成圖像[21]。VAE由編碼器Encoder和解碼器Decoder構成。如圖2所示,VAE本質上是提取圖像的隱性特征,構建從特征生成目標圖像的模型。編碼器從輸入圖像中提取均值向量和標準差向量,然后對編碼得到的結果向量加上高斯噪聲來約束,生成潛在變量,潛在變量服從高斯分布的隱含特征。解碼器將潛在變量映射到重新生成的概率分布中。編碼之后的分布要與原始的分布越接近越好。

圖2 VAE網絡結構
VAE的損失函數如下:
L(φ,θ,x)=Eqφ(z|x)[logpθ(x|z)]-
DKL(qφ(z|x)‖pθ(z))
(4)
式中,E為編碼器網絡,D為解碼器網絡,qφ(z|x)表示從圖像編碼成向量的分布,pθ(x|z)表示從向量重構為圖像的分布。第一項為解碼器D的誤差,驅使分布pθ(x|z)接近于輸入分布pθ(x),第二項旨在減少KL散度,令qφ(z|x)更接近于先驗分布pθ(x)。
VAE本質上就是在對Encoder的均值向量結果加上了高斯噪聲,使得Decoder能夠對噪聲有魯棒性。而額外的KL損失目的是讓均值為0,方差為1,事實上就是相當于對Encoder的一個正則項,希望Encoder出的結果有均值。另外,Encoder的標準差向量用于動態調節噪聲的強度。當Decoder還沒有訓練好即重構誤差遠大于KL損失時,就會適當降低噪聲使得擬合起來容易一些;反之,如果Decoder訓練的效果不錯,重構誤差小于KL損失,這時候噪聲就會增加,使得擬合更加困難,這時候Decoder就要提高Decoder生成能力。
基于VAE網絡的原理,推理出可以在f-CLSWGAN的基礎上引入重構網絡來比較生成器生成的圖像特征和原始的語義信息之間的差異來約束生成器,以改進f-CLSWGAN模型,提升分類準確度。


圖3 f-WGRN網絡結構
重構網絡的損失函數如下:
(5)
生成對抗網絡損失函數LWGRAN:
(6)
整體的損失函數為:
(7)
實驗采用了4個不同的經典數據集,分別是AWA[4]、CUB[22]、FLO[23]、SUN[24],其中CUB、FLO、SUN都是細粒度數據集,AWA是粗粒度數據集。CUB包含來自200種不同的類型鳥類的11 788張圖片,這些圖片帶有312種屬性。FLO有102種不同類型的鮮花圖片共8 189張,但是沒有屬性注釋,所以通過視覺描述對FLO進行注釋。SUN是一個場景數據集,其包含717個場景的14 340張,且場景標注有102種屬性。AWA是一個動物數據集,包含30 475張圖片,共用50個類別,包含85種屬性。
數據集具體參數如表1所示,同時將數據集分割為兩部分,可見類作為訓練集,不可見類作為測試集,可見類與不可見類之間沒有交集。

表1 AWA、CUB、FLO、SUN數據集
參考Xian等的對于數據集的操作,采用Res101[25]對整幅圖像提取2 048維的圖像特征,并在ImageNet上進行了預訓練。沒有對圖像進行預處理,例如裁剪或者其他的數據增強技術。此外,把每個類別的屬性AWA(85維),CUB(312維)和SUN(102維)作為語義信息。對于SUN和FLO,從細粒度的視覺描述(每幅圖像10句)中提取了1 024維的基于字符的CNN-RNN特征。
該模型在ubuntu16.04、Python2.6、pytorch環境下搭建,在一張Tesla P100顯卡上訓練并測試。實驗在四個不同數據集上分別進行了100輪訓練,圖4為四個不同數據集的分類準確度。

圖4 實驗結果
可以看出,該模型在訓練AWA上只經過了30輪訓練便達到了最大值,隨之便逐漸下降;在CUB數據集上數據震蕩較大,在45輪左右達到最大值;在FLO數據集上經過40輪訓練后開始在最大值附件震蕩,直到95輪左右達到了最大值;在SUN數據集上,經過30輪訓練后,便逐漸趨于穩定。分類準確度的訓練輪次能夠很快達到穩定,主要原因在于f-WGRAN模型采用了重構網絡,可以約束生成器使得生成的圖像特征與語義信息的相關性更加緊密。
與不同方法對比結果如表2所示。觀察實驗結果可知,f-WGRAN關于四種不同數據集的分類準確度均優于之前的方法。同時,可以看出引入生成對抗網絡的模型分類準確度明顯高于傳統的零樣本圖像分類方法。原始的f-CLSWGAN網絡模型只是利用生成器和鑒別器直接相互對抗,使得生成的圖像特征越來越單一。而提出的f-WGRAN模型對生成器進行改進,引入重構網絡來限制生成器生成更符合屬性的圖像特征,從而使得分類準確度有所提升。

表2 不同模型方法在4個數據集上的分類準確度比較
該模型在AWA數據集取得了69.2%的分類準確度,比f-CLSWGAN模型提升了1.0個百分點,在FLO和SUN模型分別取得了68.4%和61.7%的分類準確度,相比f-CLSWGAN分別提升了1.2和0.9個百分點,在CUB數據集上幾乎沒有提升。實驗證明,f-WGRAN能夠取得更高的分類準確度,證明該模型方法是可行的。
零樣本圖像分類經過十多年的發展仍是深度學習領域的具有挑戰性的研究方向[26-27]。該文通過分析以往的零樣本分類方法,分析存在的問題,結合生成對抗網絡提出了一種利用生成對抗網絡生成圖像特征來進行判別的模型f-WGRAN,以此來解決零樣本圖像分類問題。f-WGRAN在生成對抗網絡上增加一個重構網絡,通過將生成器生成的視覺特征重構回語義信息,以此來限制生成器生成更符合屬性的圖像特征,加強了生成器的特征生成能力,并且在很少的輪次就可以達到最大分類準確度。經過實驗論證,該模型分別在AWA、CUB、FLO、SUN四個數據集提升了1、0.1、1.2和0.9個百分點。該文主要針對生成對抗網絡來進行改進,并且此改進可以應用于不同的生成對抗網絡上。在后續的工作中將考慮如何提升鑒別器的鑒別能力。