Zero-Shot Learning論文學習筆記(第三週)

Feature Generating Networks for Zero-Shot Learning

原文鏈接:

http://openaccess.thecvf.com/content_cvpr_2018/papers/Xian_Feature_Generating_Networks_CVPR_2018_paper.pdf

摘要

在這裏插入圖片描述
深度學習經常被用於計算機視覺任務中,但是深度學習需要大量的訓練數據,然而實際情況中常常缺乏這些數據,這也就造成了seen class和unseen class訓練數據大多數情況下的極度不平衡。

GAN網絡可以生成很真實且清晰的圖像,但是由於這種圖像類別間的不平衡,現有的ZSL方法在GZSL任務上的性能很差。

文章提出基於GAN框架,利用語義信息來生成不可見類的CNN特徵。文章的方法利用Wasserstein GAN和分類損失,生成判別性強的CNN特徵,來訓練分類器。作者的實驗結果表明,在零樣本學習和廣義零樣本學習設置中,在五個具有挑戰性的數據集(CUB,FLO,SUN,AWA和ImageNet)上的準確率比其他方法有顯著提高。

由下圖所示,CNN的特徵可以從以下幾個方面提取:
1)真實圖像,但是在零次學習中,無法獲得任何不可見類的真實圖像;
2)合成圖像,但是它們不夠精確,無法提高圖像分類性能。
文章爲了解決了這兩個問題,提出了一種新的基於屬性條件特徵生成對抗性網絡公式,即f-CLSWGAN,用於生成不可見類的cnn特徵。在這裏插入圖片描述
論文提出了兩個任務,zero shot learning (ZSL)和generalized zero shot learning(GZSL),前者只需要解決未見過的數據的分類任務,後者需要同時對見過的和未見過的數據進行分類。

算法簡介:

使用GAN在特徵空間生成數據的原因

文章提到了DC-GAN,InfoGAN和Wasserstein-GAN(WGAN),指出這些先進的GAN雖然已經可以生成逼真的圖像,但是並沒有將這一思想應用到圖像特徵生成中的先例。
(1)生成的特徵數據是無限制的。
(2)生成的特徵通過大規模數據集學習到的具有代表性的特徵表示,可以在某種程度上泛化未知類別的特徵。
(3)學習的特徵具有很強的判別性。

  • 作者使用三種conditional GAN的變體來循序漸進的生成圖像特徵:embedding feature。
  1. 首先通過下式表示可見類和不可見類。
    S={(x,y,c(y))xX,yYs,c(y)C}S = \{ ( x , y , c ( y ) ) | x \in X , y \in Y ^ { s } , c ( y ) \in C \}
    U={(u,c(u))uYu,c(u)C}U = \{ ( u , c ( u ) ) | u \in Y ^ { u } , c ( u ) \in C \}
    其中SS代表可見訓練集全體,xRdxx \in R ^ { d _ { x } }是CNN特徵,ys={y1,...,yk}y^s=\{y_1,...,y_k\}代表有kk個不交叉的可見類,yy代表類標籤,c(y)Rdcc(y)\in R^{d_c}代表y類的embedding 屬性集,由語義向量構成。
    U代表不可見類,與可見類相比,缺少了圖像和圖像特徵,也就缺少了CNN特徵。
  2. 在給出S和U的類別定義後,文章給出ZSL和GZSL的任務要求:
    ZSL的任務:學習一個分類器fzsl:XYuf_{zsl}:X\to Y^u;
    GZSL的任務:學習一個分類器fgzsl:XYsYuf_{gzsl}:X\to Y^s \cup Y^u

1.f-GAN

  • f-GAN的目標是學習一個條件生成器G:Z×CXG:Z\times C\to X
    其中Z是從高斯分佈中隨機採樣的噪聲zZRdzz \in Z \subset R ^ { d _ { z } }c(y)Cc(y)\in C是類別yy的語義向量,這兩者作爲輸入。x^X\hat { x } \in Xyy類中的CNN feature,作爲輸出。

1.1 original-GAN

  • 傳統的GAN網絡的損失函數如下:
    minGmaxDGAN=ExP data [logD(x)]+EzPz[log(1D(G(z)))]{ \operatorname { min } _ { G } \operatorname { max } _ { D } G A N } = E _ { x \sim P _ { \text { data } } } [ \operatorname { log } D ( x ) ] + E _ { z \sim P _ { z } } [ \operatorname { log } ( 1 - D ( G(z) ) ) ]
    算法&訓練步驟如下圖所示。

在這裏插入圖片描述

  1. distribution 可以是Gaussian distribution或Uniform distribution等等
  2. generated data x^\hat { x }爲生成的圖片
  3. 分類器DD的最後一層爲Sigmoid,保證生成的值在0~1之間
  4. 因爲要讓V^\hat{V}越大越好,所以採用gradient ascent方法更新判別器DD的參數θd\theta_d
  5. Lerning D 和Learning G過程中的random vectors 可以不同

1.2.conditional-GAN

conditional-GAN的大致訓練過程如下圖所示。與傳統的GAN相比,conditional-GAN的GG在接受一個distributionzz的同時還接受一個文本描述(語義)ccDD在接受GG生成的圖片xx同時接受文本描述cc,xx的真實度和ccxx匹配程度
在這裏插入圖片描述
在 conditonal-GAN中DDGG的學習步驟如下所示。
在這裏插入圖片描述

1.3.f-GAN
  • f-GAN的損失函數如下:

minGmaxDLGAN=E[logD(x,c(y))]+E[log(1D(x~,c(y)))]\left. \begin{array}{l}{ \operatorname { min } _ { G } \operatorname { max } _ { D } L _ { G A N } = E [ \operatorname { log } D ( x , c ( y ) ) ] + }{ E [ \operatorname { log } ( 1 - D ( \tilde { x } , c ( y ) ) ) ] }\end{array} \right.
其中x^=G(z,c(y))\hat { x }=G(z,c(y)),c(y)c(y)是類別yy的語義向量。判別器D:X×C[0,1]D:X\times C\to [0,1]的最後一層是Sigmoid函數。DD試圖最大化lossloss,而生成器GG試圖最小化lossloss。因爲 x~\tilde { x }c(y)c ( y )屬於相同類,所以在loss function中不需要考慮不匹配的問題。

  • 文章指出了f-GAN的不足之處:雖然GAN能夠捕獲複雜的數據分佈(比如生成圖片),但它的訓練過程很困難。

2.f-WGAN

2.1.Wasserstein GAN

在original-GAN中衡量的是generated data和real-data之間的JS divergence。但由於兩者的distribution往往沒有任何重疊,下圖給出了沒有重疊的兩個原因。

  1. PGP_GPdataP_data的支撐集是高維空間中的低維流形。
  2. 如果沒有足夠多的樣本, PGP_GPdataP_data即使重疊概率也很低。
    在這裏插入圖片描述
    可以證明,當PGP_GPdataP_data不重疊時兩者的JS divergence 是log2log2
    爲了解決這個問題,2017的Wasserstein GAN的paper中提出了Wasserstein distance的概念,Wasserstein distance又被稱爲Earth-Mover(EM)距離,直觀解釋圖如下所示。
    在這裏插入圖片描述
    判別器DD通過下式訓練得到的目標函數值就是Wasserstein distance。
    maxD1Lipschitz{ExPdata[D(x)]ExPG[D(x)]}\operatorname { max } _ { D \in 1 - L i p s c h i t z } \{ E _ { x \sim P _ { d a t a } } [ D ( x ) ] - E _ { x \sim P _ { G } } [ D ( x ) ] \}
    可見,如果xx來自PdataP_{data},那麼DD的output越大越好,如果來自PGP_G,那麼越小越好。同時,DD必須是一個1Lipschitz1-Lipschitz 函數,LipschitzLipschitz函數定義如下所示。
    f(x1)f(x2)Kx1x2| f ( x _ { 1 } ) - f ( x _ { 2 } ) | \leq K | x _ { 1 } - x _ { 2 } |
    這裏不等式左邊可以理解爲爲ouput的變化量,右邊爲input的變化量,所以LipschitzLipschitz 函數限制了input變化時output的變化範圍,當KK爲1時就是1Lipschitz1-Lipschitz 的形式。此時output的變化總是小於input的變化,也就保證了生成器DD的平滑。

2.2. f-WGAN

  • 通過將生成器GG和判別器DD的語義屬性混合文章把著名的Wasserstein GAN拓展爲conditional WGAN。損失函數如下所示。
    minGmaxDLWGAN=E[D(x,c(y))]E[D(x~,c(y))]λE[(x^D(x^,c(y))21)2]\left. \begin{array}{l}\operatorname { min } _ { G } \operatorname { max } _ { D } { L _ { W G A N } = E [ D ( x , c ( y ) ) ] - E [ D ( \tilde { x } , c ( y ) ) ] - }{ \lambda E [ ( \| \nabla _ { \hat { x } } D ( \hat { x } , c ( y ) ) \| _ { 2 } - 1 ) ^ { 2 } ] }\end{array} \right.其中x~=G(z,c(y))\tilde { x }=G(z,c(y))x^=αx+(1α)x~\hat { x } = \alpha x + ( 1 - \alpha ) \tilde { x }αU(0,1)\alpha \sim U(0,1)λ\lambda 是處罰係數。

  • 式子中的前兩項是在近似Wasserstein distance,第三項是梯度懲罰項(gradient penalty),使得判別器D的梯度在1附近。

3.f-CLSWGAN

作者認爲單純使用WGAN還不足以使generator生成的features能夠訓練出一個好的分類器,所以作者提出分類損失並用採用負對數的形式刻畫。
LCLS=Ex~px~[logP(yx~;θ)]L _ { C L S } = - E _ { \tilde { x } \sim p _ { \tilde { x } } } [ \operatorname { log } P ( y | \tilde { x } ; \theta ) ]
其中x^=G(z,c(y))\hat { x }=G(z,c(y))。分類器採用線性softmax分類器, P(yx~;θ)P ( y | \tilde { x } ; \theta )表示x~\tilde { x }被類別標籤yy真實預測的概率。 分類器的參數θ是根據可見類的實際特徵進行預訓練的。

該分類損失可以看作是正則化項,迫使生成器構造判別性強的特徵。
最終的損失函數如下所示,其中β\beta 是一個超參數權重。
minGmaxDLWGAN+βLCLS\operatorname { min } _ { G } \operatorname { max } _ { D } L _ { W G A N } + \beta L _ { C L S }

4. Discriminator的架構

下圖爲Conditional GAN中兩種經典的架構方式,當輸出的score取低分時,第一種架構沒有辦法判斷低分的原因是xx不夠真實清晰還是與類別標籤cc不匹配,第二個模型由於分別輸出兩個網絡的socre,所以可以解決上述問題。
在這裏插入圖片描述
論文模型如下圖所示,與上圖的模型二類似。
圖中第一行是真實圖像的特徵提取過程,裏面的CNN可以通過用的GoogleNet或ResNet,可以是從ImageNet上預訓練的模型,也可以是在特定任務中微調過的模型,本文中採用的預訓練模型。將特徵xxxx所屬類的屬性描述c(y)c(y)拼接後輸入Discriminator並判別爲真;

圖中第二行是生成數據的分支,用normal distribution的zzc(y)c(y)拼接後輸入生成器,生成特徵xˆ再次將其與屬性描述拼接後輸入Discriminator並判別爲假;同時輸出P(yx~;θ)P ( y | \tilde { x } ; \theta )的值觀察Generator構造的特徵性的強弱。
在這裏插入圖片描述

實驗

1.f-CLSWGAN模型在ZSL和GZSL任務上的性能。

數據集簡介

1)Caltech-UCSD-Birds 200-2011 (CUB)包含來自200個鳥類的11788幅圖片,並且帶有312個屬性描述,如圖一中顯示的頭和腹部的顏色、鳥喙的形狀等;
2)Ox- ford Flowers (FLO) 包含來自102類花的8189幅圖片,沒有屬性描述;
3)SUN Attribute (SUN) 包含來自717個場景下的14340幅圖片,並帶有102個屬性描述;
4)Animals with Attributes (AWA)包含來自50個動物類的30475幅圖片,帶有85個屬性。

關於準確率

論文使用top-1準確率評估如下三個項目:見到過的類別分類ss,未見到過的類別分類uu,二者的調和平均數H,H=2(su)(s+u)H,H=\frac{2(s∗u)}{(s+u)}

  • Top-1 Accuracy:假設ImageNet有1000個分類,模型預測某張圖片時,會給出1000個按概率從高到低的類別排名,Top-1 Accuracy是指排名第一的類別與實際結果相符的準確率。
  • 調和平均數:Hn=11ni=1n1xi=ni=1n1xiH _ { n } = \frac { 1 } { \frac { 1 } { n } \sum _ { i = 1 } ^ { n } \frac { 1 } { x _ { i } } } = \frac { n } { \sum _ { i = 1 } ^ { n } \frac { 1 } { x _ { i } } }

在這裏插入圖片描述

  • ZSL方面:將f-CLSWGAN模型應用到DEVISE等方法後,性能都有所提升,驗證了 f-CLSWGAN能夠爲unseen class生成有效的視覺特徵;其中在算法ALE的基礎上得到了the-state-of-the-art的表現。
  • GZSL方面:使用 f-CLSWGAN模型後性能提升,驗證了該方法的有效性。此外,我們觀察到,在使用f-CLSWGAN前,seen class的準確率顯著高於unseen class,說明很多圖像被錯誤地判別爲seen class。而f-CLSWGAN模型在ssuu之間取得了一個平衡,儘管ss相比baseline有所下降,但是ss有大幅上升,直接導致了HH的上升。
  • 另外,藉助f-CLSWGAN模型,僅使用最簡單softmax分類器就已經可以達到很好的效果,甚至部分情況下性能已經超過其他模型,在GZSL上取得了the-state-of-the-art的性能,表明了說明論文提出的方法對於未見過的數據生成非常有效,也說明了基於特徵生成的思想在其他任務上也具有泛化能力。

f-xGAN各種變體在ZSL和GZSL任務上的性能

在這裏插入圖片描述
1、在ZSL和GZSL場景下,f-xGAN模型都能夠提升性能,在GZSL任務上更是顯著提升;
2、文章中最後提出的f-CLSWGAN模型在生成模型中性能最好;
3、即使f-WGAN比f-GMMN表現差(在FLO數據集GSZL方法上),f-CLSWGAN模型也能夠藉助分類損失達到最佳性能。

不同條件下分析f-xGAN各種變體

穩定性測試:首先分析不同的生成模型擬合seen class的能力。生成seen class的CNN特徵,再訓練softmax分類器。黑色虛線是在真實圖像上的準確率,與之相比,f-GAN模型欠擬合,其他模型性能很好,說明f-xGAN模型訓練穩定而且能生成有效的特徵。在這裏插入圖片描述

泛化性測試:使用預先訓練的模型訓練unseen class的cnn特徵。再把這些cnn特徵和 seen classes的真實CNN特徵輸入softmax分類器,下圖顯示了在unseen class中生成特徵數量的增加將會顯著提高預測準確性。
在這裏插入圖片描述

f-CLSWGAN在不同CNN網絡結構下的表現情況

在這裏插入圖片描述
由實驗結果可知,ResNet的總體性能要優於GoogleNet;且對於這兩種CNN結構,使用f-xGAN模型後性能都有提升,驗證了f-xGAN模型適用於不同的CNN結構。

Yongqin Xian, Tobias Lorenz, Bernt Schiele, Zeynep Akata. “Feature Generating Networks for Zero-Shot Learning.” CVPR (2018)
Arjovsky M , Chintala S , Bottou, Léon. Wasserstein GAN[J]. 2017.
https://zhuanlan.zhihu.com/p/25071913
https://youtu.be/3JP-xuBJsyc

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章