張冀,曹藝,王亞茹,趙文清,翟永杰
(1.華北電力大學 計算機系,河北 保定 071003;2.華北電力大學 自動化系,河北 保定 071003)
近年來,深度學習算法在機器學習領域取得了高速發展,尤其在圖像識別領域,計算機的識別精度已經達到甚至超過人類識別精度,但需要消耗大量的人力物力以獲得足夠數量的人工標注數據[1-2]。在很多實際應用中,大量有標簽的數據難以獲取,物體種類也處于不斷增長的趨勢,這就要求計算機訓練過程不斷增加新樣本及新物體種類[3]。如何在樣本標簽數據不足甚至完全缺失的情況下利用計算機和已有知識對其進行分類識別,成為深度學習應用研究中亟須解決的問題。為此,零樣本學習應運而生。
零樣本學習(zero-shot learning,ZSL)也稱作零樣本分類,是指根據一些已有類別標簽(seen classes)的樣本數據,輔以相關常識信息或先驗知識(輔助信息),用于訓練某種學習模型,對訓練數據或標注完全缺失的類別(unseen classes)進行預測和識別的一類技術[4-7]。零樣本分類中訓練集和測試集的類別是不相交的,這明顯區別于傳統的基于監督學習的分類任務。該類方法可以看作視覺數據與文本等其他模態數據間的一種跨模態學習。零樣本分類方法的發展主要包括3 個階段[8-9]:
1)早期的零樣本分類方法大多為基于直接語義預測的方法,其中直接屬性預測模型(direct attribute prediction,DAP)是零樣本分類的先驅工作,通過建立視覺數據與屬性特征之間的關系,對無標簽數據進行分類[10-12]。此類模型雖然在零樣本分類領域取得了一定的成果,但依賴于類別的屬性特征,極易受到人工屬性標注的影響。
2)為更好地解決基于直接語義預測方法存在的問題,出現了基于嵌入模型的方法,其核心思想是將不同模態的數據映射到某一個公共空間中,再根據相似性度量進行零樣本分類。Du 等[13]提出基于類內類間約束的語義映射模型,實現類別間知識的有效迀移。陳祥鳳等[14]提出基于度量學習改善SAE 的零樣本分類算法,以緩解跨領域漂移。吳晨等[15]提出將融合的語義詞向量線性映射到圖像特征空間完成分類。謝于中等[16]利用典型相關分析將跨模態特征映射至公共特征空間實現圖像的零樣本分類。但在訓練類與測試類之間建立聯系較為困難,且存在領域漂移問題[17]。
3)為解決上述問題,基于深度網絡進行視覺樣本生成的零樣本分類方法涌現出來。Xian 等[18]通過構建生成模型,以類別屬性作為輔助信息生成未見類別對應的視覺特征。Sariyildiz 等[19]提出新的損失函數來提高生成樣本質量。Mandal 等[20]引入非條件判別器來判別圖像屬于可見類還是未見類,提高分類準確率。Xian 等[21]提出一個結合VAE 和生成對抗網絡(generative adversarvial networks,GAN)優勢的條件生成模型來進行數據生成。Kim 等[22]提出零樣本生成模型ZSGAN,通過學習可見類和未見類圖像與屬性之間的關系生成未見類圖像。Verma 等[23]提出一種基于類屬性條件設置的元學習方法ZSML(zero-shot meta-learning),將生成器模塊和帶有分類器的判別器模塊分別同元學習代理相關聯,利用少量可見類樣本訓練模型。Ma 等[24]提出一種相似度保持損失,使GAN 的生成器減小生成樣本與真實樣本之間的距離,利用相似度消除異常的生成樣本。Liu 等[25]提出一種雙流生成式對抗網絡合成具有語義一致性和明顯類間差異的視覺樣本,同時保留用于零樣本學習的類內多樣性。Liu 等[26]提出一種包含兩個端到端模型的跨類生成對抗網絡用于提高生成的未見類樣本的質量。Tang 等[27]提出一種結構對齊的生成對抗網絡,以緩解語義差距和領域漂移等問題。Li 等[28]通過構建基于增強語義特征的生成網絡來合成未見類別的可分離視覺表示。Gao 等[29]提出一種VAE 與GAN 相結合的生成模型(Zero-VAE-GAN),以緩解領域漂移問題。但已有模型生成圖像的質量仍然不穩定,圖像細節的效果較差,影響零樣本圖像分類的效果。
為此,本文使用VAE/GAN 變體模型作為生成模型主體,同時將StackGAN 模型引入其中,得到生成模型stc-CLS-VAEStackGAN,利用Stack-GAN 分階段生成圖像的特點提高圖像質量,同時使用深度學習方法對各類別文本信息進行句向量的提取,將其作為輔助信息約束變分自編碼器和生成對抗網絡的生成工作。
變分自編碼器(variational auto-encoder,VAE)[30]的作用是求解給定輸入空間和特征空間之間的映射,使得輸入特征的重建誤差達到最小。但VAE只能得到一個平均的結果,這也是導致其生成圖像質量較低,圖像較模糊的原因。研究人員提出VAE/GAN 模型[31],將VAE 與GAN 進行融合,判別器的加入使得VAE 產生的圖像變得清晰。然而,常規VAE/GAN 中編碼器得到的隱變量并不完全符合期望樣式。于是,出現了VAE/GAN 的變體模型,其結構如圖1 所示,它改變了判別器結構,使其能更精細地鑒別輸入圖像的種類。

圖1 VAE/GAN 模型結構Fig.1 Structure of VAE/GAN model
真實圖像作為編碼器輸入,通過編碼得到隱變量作為解碼器的輸入以生成圖像,此時VAE 希望真實圖像和生成圖像之間的差異越小越好。判別器則需判別輸入的圖像屬于真實數據分布pdata還是生成數據分布pG。在VAE 和GAN 的共同作用下,生成更加相似且清晰的圖像。
根據文字描述生成高質量圖像的任務是計算機視覺領域的一個挑戰。條件生成對抗網絡(conditional GAN,CGAN)可以生成和文本比較相關的圖像,但是分辨率不夠,細節部分缺失嚴重,不夠生動具體。如果簡單地增加更多的采樣層來提高分辨率,會導致模型不穩定或者生成一些奇形怪狀的圖像,這種現象在分辨率提高時會更加嚴重。分階段生成對抗網絡StackGAN 本質上是2 個CGAN 的堆疊[32],其結構如圖2 所示,采用分階段的方式(兩個階段)生成高分辨率且置信度高的圖像。

圖2 StackGAN 模型結構Fig.2 Structure of StackGAN model
階段1:主要用于生成粗略的形狀和顏色,通過文本嵌入從中采樣出服從N(μ0(φt),∑0(φt))分布的輔助信息c0,并隨機采樣高斯噪聲zG,二者作為階段1 的輸入,用來訓練生成器Generator1 和判別器Discriminator1,分別對應如下目標函數:

式中:G1和D1分別表示Generator1 和Discriminator1 的函數;真實圖像xreal和文本描述t源自于pdata;zG表示服從高斯分布的噪聲向量;λ為正則化參數。
階段2:在 階段1 的基礎上,修正低分辨率圖像的缺陷,完善被忽略的文本信息細節,生成高分辨率圖像。以輔助語義向量以及階段1 的輸出s0=G1(zG,c0)作為輸入來訓練生成器Generator2 和判別器Discriminator2,其目標函數分別為

式中:G2和D2分別表示Generator2 和Discriminator2 的函數;s0源自于階段1 的生成數據分布。
同時,本模型引入條件增強來從獨立高斯分布N(μ(φt),∑(φt))中隨機采樣產生額外的條件變量λ,使得在給定較少文本-圖像數據對時,能夠產生更多的訓練樣本,增加生成樣本的隨機性。
基于生成對抗網絡的零樣本生成模型f-CLSWGAN 由生成網絡、判別網絡和分類網絡3 部分構成。生成網絡部分采用WGAN 模型,以各類別的屬性信息c(y)和噪聲zG共同作為輸入,生成未知類圖像xg。屬性信息c(y)、未知類圖像xg以及真實圖像xreal作為判別網絡的輸入,判別真偽后產生一個損失值用以優化生成網絡。生成網絡和判別網絡二者相互對抗學習。同時,生成的圖像作為分類網絡的輸入進行分類,同樣產生一個損失值,兩部分共同指導生成網絡進行優化,最終生成足夠接近真實圖像的未知類圖像。
基于生成模型的零樣本圖像分類任務流程如圖3 所示。本文主要針對生成模型部分進行改進,以進一步提高生成的未見類圖像質量。

圖3 基于生成模型的零樣本圖像分類流程圖Fig.3 Flow chart of zero-shot image classification based on generative model
針對現有VAE/GAN 模型訓練不穩定,生成圖像質量低的問題,本文基于VAE/GAN 變體模型引入StackGAN,得到VAE-StackGAN 模型,如圖4 所示。VAE-StackGAN 模型中真實圖像作為VAE 編碼器Encoder 的輸入,通過編碼得到隱變量zV。zV作為VAE 解碼器Decoder 的輸入,得到重構圖像xrec。隨機噪聲zG和輔助信息c0作為StackGAN 模型階段1 生成器Generator1 的輸入,得到生成圖像xg。VAE 和StackGAN 兩生成模型通過解碼器和生成器共享參數進行連接。對于階段1 的判別器Discriminator1,將真實圖像xreal、xrec、xg和c0作為輸入,通過更精細地學習xrec和xg之間的細微差別,使得編碼器得到更接近zG的隱變量zV。則StackGAN 中階段1 的目標函數為

圖4 VAE-StackGAN 網絡結構Fig.4 Network structure of VAE-StackGAN

式中 Enc(·)表示VAE 編碼器Encoder。
VAE 和StackGAN 中的階段1 為VAE-Stack-GAN 模型的主要部分,生成包含基本輪廓和顏色的圖像,而StackGAN 中階段2 的生成器Generator2以階段1 生成的xrec和xg以及階段2 輔助語義信息c作為輸入,在此基礎上根據c對階段1 產生圖像的細節部分進行細化,以生成更真實的圖像xg。將xg和xreal以及c一同作為階段2 判別器Discriminator2的輸入,經過判別得到一個分類結果,產生的損失值用來指導生成器優化。階段2 的目標函數為

式中:sG=G1(zG,c0)表示隨機噪聲通過生成器生成的圖像;sV=G1(Enc(xreal),c0)表示通過解碼器重構得到的圖像。
VAE-StackGAN 模型的目標函數為

VAE-StackGAN 模型改變了判別器結構,使其可以更精細地判別出生成圖像的類別,學習重構圖像xrec與生成圖像xg之間的差異,以優化生成器的參數,但編碼器產生的隱變量zV和生成器輸入的隨機噪聲zG仍存在差異。為此,本文在目標函數中增加正則項,使用KL 散度幫助優化zV和zG之間的距離。此時,VAE-StackGAN 模型的目標函數為

式中:LVAE為VAE 模型的目標函數;LStackGAN為StackGAN 模型的目標函數;p(zG)為StackGAN 的噪聲分布。假設p(zG)為服從高斯分布的隨機噪聲,采用KL 散度計算兩分布之間的距離,目的是使zV不斷向期望的形式更新。
在VAE-StackGAN 模型的基礎上構建本文零樣本圖像分類方法,包括句向量的提取、圖像的生成以及分類器的訓練3 部分。
首先是句向量的提取。本文采用循環卷積神經網絡對各類別的文本信息進行無監督學習,提取各類別的語義句向量,并作為輔助信息輸入到生成模型中。每輪訓練選取文本中不同的句向量以保證后續生成圖像的多樣性。
其次是圖像的生成。零樣本生成模型f-CLSWGAN 采用條件生成對抗網絡,使用基于屬性的語義輔助信息結合Wasserstein 距離計算方法作為生成模型,生成未見類數據特征。但僅采用生成對抗網絡得到的效果并不理想,因此本文采用VAEStackGAN 作為零樣本生成模型的主體網絡。并與語義句向量進行結合,得到零樣本生成模型stc-CLS-VAEStackGAN。
將語義句向量代替屬性信息。編碼器對可見類圖像進行編碼,生成器根據語義信息生成未見類圖像,判別器根據相應類別的句向量對輸入圖像進行判別。同時保留f-CLSWGAN 中的分類器部分,生成的圖像也作為分類器的輸入,進行類別的判斷,此處分類器設置的目的是約束生成器生成具有分類特征的圖像,輔助生成模型進行優化。此時基于語義句向量的零樣本生成模型的目標函數為

最后是分類器的訓練。隨著對分類精度要求的不斷提高,模型深度越來越深,模型復雜度也越來越高。但模型過于龐大會導致響應速度慢、內存不足等問題,因此本文使用深度可分離卷積MobileNet 網絡,結合SoftMax 回歸模型進行分類。
在生成模型部分生成了未見類圖像,填充了數據集,因此現有數據集包括可見類與未見類圖像。生成模型的加入將零樣本圖像分類任務轉變成傳統圖像分類任務,使用多類別分類器進行訓練,訓練好的分類器即可對測試集圖像進行分類。
本文采用零樣本學習領域常用的CUB (caltech-uCSD-Birds-200-2011)[33]和AwA (animals with attributes)[34]數據集進行模型訓練及測試,并采用兩個數據集默認的可見類與未見類劃分方式。CUB數據集共包含200 個鳥類類別,共11 788 張圖片,類別間差異較小,屬于精細分類,可見類包含150個類別,其中的100 個類別為訓練集,50 個類別為驗證集;未見類包含50 個類別,為測試集。AwA數據集中共包含50 個動物類別,共30 475 張圖片,可見類包含40 個類別,其中的27 個類別為訓練集,13 個類別為驗證集;未見類包含10 個類別,為測試集。可見類與未見類樣本不重疊。
GAN 網絡生成圖像的任務中,評價模型表現的一項重要指標是初始評分(inception score,IS)[35],可以用來評價模型生成圖像的清晰度和多樣性。對于一個清晰的圖像,它屬于某一類的概率應該非常大,而屬于其他類的概率應該很小,同時如果一個模型能生成足夠多樣的圖像,那么它生成的圖像在各個類別中的分布應該是平均的。IS 計算公式為

式中:x~pG表示生成器生成圖像;p(y|x)表示該圖像屬于各個類別的概率分布;p(y)表示生成器生成的全部圖像在所有類別上的邊緣分布。
對于本文方法及對比方法的零樣本圖像分類結果,采用類別的平均分類準確率進行評價。該指標是評價模型有效性的較好指標,能更好地反映數據集類內數據量不均衡時分類模型的識別效果,削弱實驗的隨機性。平均分類準確率公式為

式中:Y為總體類別個數;NT為當前類別樣本數量;NC為當前類別分類正確樣本數量。
本文通過在VAE/GAN 變體模型中引入Stack-GAN 網絡,得到VAE-StackGAN 生成模型,用于生成未見類圖像。
基于CUB 數據集,對比VAE-StackGAN、VAE/GAN 和StackGAN 模型的生成圖像效果,并計算IS 指標,計算結果如表1 所示。從表1 中可見,VAE-StackGAN 模型的IS 值較StackGAN 和VAE/GAN 分別提升0.26 和0.33。該指標值在圖像質量方面與人類的感知高度相關,更高的分數意味著更好的圖像質量。因此,VAE-StackGAN模型明顯優于StackGAN 和VAE/GAN 模型。

表1 不同方法在CUB 數據集上的IS 指標Table 1 Inception score of different methods on CUB dataset
圖5 為不同方法的生成圖像對比,可以更直觀地看出,本文生成模型VAE-StackGAN 具有更好的性能,相比于原始模型更加注重目標顏色的細節,從而使得生成的目標圖像更加逼真,更加符合其相應類別特征。因此,整體來看,本文模型生成圖像的效果優于StackGAN 模型。

圖5 生成圖像效果對比Fig.5 Comparison of generate figures
基于CUB 和AwA1 數據集,將本文方法stc-CLS-VAEStackGAN 用于零樣本圖像分類,平均分類準確率隨迭代次數變化的曲線如圖6 所示。隨著迭代次數的增加,平均分類準確率逐漸提升并且趨于穩定,盡管個別值在小范圍內有所波動,但處于正常波動范圍內,證明了本模型具有較好的收斂性。

圖6 平均分類準確率隨迭代次數的變化Fig.6 Variation of the average classification accuracy with the number of iterations
將stc-CLS-VAEStackGAN 與現有其他生成模型進行零樣本圖像分類對比,使用類別平均分類準確率作為評價指標。stc-CLS-VAEStackGAN 為基于生成模型的方法,因此同樣選取基于生成模型且具有代表性、較新提出的模型作為對比方法,包括f-CLSWGAN[18]、FD-fGAN-Attention[36]、Zero-VAE-GAN[29]、ZSML[23]、SPGAN[24]和SAGAN[27]。需說明的是,以上對比方法的相應文獻中所采用的數據集以及訓練集、測試集的劃分均與本文相同,因此這些方法的平均分類準確率指標值采用相應文獻所提供的數值。
表2 為不同方法在CUB 和AwA 兩個數據集上的平均分類準確率指標值。從表中可以看出,本文生成模型stc-CLS-VAEStackGAN 在AwA 數據集上的平均分類準確率明顯高于所有對比算法,在CUB 數據集上的平均分類準確率雖略低于ZSML,但均明顯高于其他對比算法。stc-CLSVAEStackGAN 基于VAE/GAN 的變體模型,通過兩種互補的生成模型VAE 和GAN 分別捕獲不同的數據分布,彌補了各自的缺點,其中變體判別器可以更加精細地學習重構圖像與生成圖像之間差異,提高生成圖像效果。將StackGAN 引入其中,采用分階段方法細化圖像生成過程,進一步提高了圖像生成質量。同時采用句向量代替屬性信息,使得語義描述更加準確,生成圖像更加多樣化。對比實驗結果驗證了本文方法的有效性。

表2 不同方法的平均分類準確率對比Table 2 Comparison of the average classification accuracy of different methods %
為測試本文圖像生成模型VAE-StackGAN 的魯棒性,將數據集中各類別的文本信息進行加噪處理,包括標簽關鍵字刪除、替換、交換順序等,并根據處理后的文本信息提取類別句向量作為輔助信息,分別采用VAE-StackGAN 模型和原始模型StackGAN 進行圖像生成。表3 顯示了兩種模型生成相應類別圖像的IS 評價指標值。對文本信息進行上述加噪處理后,可能造成一些關鍵信息的缺失或異常,因此從表3 中可以看出,文本信息加噪后,兩種模型生成圖像的IS 評價指標均有所下降,但VAE-StackGAN 模型的IS 指標下降幅度小于原始模型StackGAN,驗證了VAE-Stack-GAN 模型的魯棒性有所提高。

表3 生成模型魯棒性測試Table 3 Robustness test of generative models
圖7 為文本信息加噪前后,VAE-StackGAN模型的生成圖像。整體來看,加入噪聲后生成的圖像在細節方面可能會有缺失或者存在多余的噪聲背景,但仍具有相應類別的特征,整體效果并沒有發生巨大的差距。

圖7 生成模型魯棒性測試Fig.7 Robustness test of generative models
為測試本文零樣本圖像分類方法stc-CLSVAEStackGAN 的魯棒性,對實驗中擴充后的圖像數據集樣本進行加噪聲處理,加入高斯噪聲用于模擬實際應用中較為常見的由不良照明引起的圖像模糊問題;加入椒鹽噪聲,隨機改變一些像素值以產生黑白相間的亮暗點,用于模擬實際應用中較常見的由圖像切割引起的噪點問題,然后進行圖像分類,評價分類方法的準確率。stc-CLSVAEStackGAN 是在f-CLSWGAN 和VAE/GAN 的基礎上改進得到的,因此圖8 對比了這3 種方法在圖像加噪后的分類準確率。由圖8 可見,在任意噪聲強度處,stc-CLS-VAEStackGAN 的分類準確率均明顯高于其他兩種方法;隨著加入高斯噪聲的方差逐漸增大,以及椒鹽噪聲的增強,3 種方法的圖像分類準確率均有所下降,但CLS-VAEStackGAN 的準確率下降程度較為平緩。上述結果驗證了,本文stc-CLS-VAEStackGAN 方法不僅提高了零樣本圖像分類準確率,而且具有較好的魯棒性。

圖8 零樣本圖像分類方法魯棒性的測試Fig.8 Robustness test of zero-shot image classification methods
本文提出一種融合VAE 與StackGAN 的零樣本圖像分類方法,通過生成未見類的圖像填充圖像數據集,將零樣本圖像分類任務轉變為傳統的基于監督學習的圖像分類任務。基于VAE/GAN 的變體模型引入StackGAN,采用分階段方法細化圖像生成過程,提高圖像生成質量;并通過提取類別的句向量信息代替其屬性信息,增加語義描述的準確性,使生成圖像更加多樣化,進而提高零樣本圖像分類的準確性。在現有公用數據集上進行對比實驗,實驗結果驗證了本文方法的有效性。