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。
- 首先通過下式表示可見類和不可見類。
其中代表可見訓練集全體,是CNN特徵,代表有個不交叉的可見類,代表類標籤,代表y類的embedding 屬性集,由語義向量構成。
U代表不可見類,與可見類相比,缺少了圖像和圖像特徵,也就缺少了CNN特徵。 - 在給出S和U的類別定義後,文章給出ZSL和GZSL的任務要求:
ZSL的任務:學習一個分類器;
GZSL的任務:學習一個分類器。
1.f-GAN
- f-GAN的目標是學習一個條件生成器
其中Z是從高斯分佈中隨機採樣的噪聲,是類別的語義向量,這兩者作爲輸入。是類中的CNN feature,作爲輸出。
1.1 original-GAN
- 傳統的GAN網絡的損失函數如下:
算法&訓練步驟如下圖所示。
- distribution 可以是Gaussian distribution或Uniform distribution等等
- generated data 爲生成的圖片
- 分類器的最後一層爲Sigmoid,保證生成的值在0~1之間
- 因爲要讓越大越好,所以採用gradient ascent方法更新判別器的參數
- Lerning D 和Learning G過程中的random vectors 可以不同
1.2.conditional-GAN
conditional-GAN的大致訓練過程如下圖所示。與傳統的GAN相比,conditional-GAN的在接受一個distribution的同時還接受一個文本描述(語義),在接受生成的圖片同時接受文本描述,的真實度和與匹配程度
在 conditonal-GAN中和的學習步驟如下所示。
1.3.f-GAN
- f-GAN的損失函數如下:
其中,是類別的語義向量。判別器的最後一層是Sigmoid函數。試圖最大化,而生成器試圖最小化。因爲 和屬於相同類,所以在loss function中不需要考慮不匹配的問題。
- 文章指出了f-GAN的不足之處:雖然GAN能夠捕獲複雜的數據分佈(比如生成圖片),但它的訓練過程很困難。
2.f-WGAN
2.1.Wasserstein GAN
在original-GAN中衡量的是generated data和real-data之間的JS divergence。但由於兩者的distribution往往沒有任何重疊,下圖給出了沒有重疊的兩個原因。
- 和的支撐集是高維空間中的低維流形。
- 如果沒有足夠多的樣本, 和即使重疊概率也很低。
可以證明,當和不重疊時兩者的JS divergence 是
爲了解決這個問題,2017的Wasserstein GAN的paper中提出了Wasserstein distance的概念,Wasserstein distance又被稱爲Earth-Mover(EM)距離,直觀解釋圖如下所示。
判別器通過下式訓練得到的目標函數值就是Wasserstein distance。
可見,如果來自,那麼的output越大越好,如果來自,那麼越小越好。同時,必須是一個 函數,函數定義如下所示。
這裏不等式左邊可以理解爲爲ouput的變化量,右邊爲input的變化量,所以 函數限制了input變化時output的變化範圍,當爲1時就是 的形式。此時output的變化總是小於input的變化,也就保證了生成器的平滑。
2.2. f-WGAN
-
通過將生成器和判別器的語義屬性混合文章把著名的Wasserstein GAN拓展爲conditional WGAN。損失函數如下所示。
其中、、、 是處罰係數。 -
式子中的前兩項是在近似Wasserstein distance,第三項是梯度懲罰項(gradient penalty),使得判別器D的梯度在1附近。
3.f-CLSWGAN
作者認爲單純使用WGAN還不足以使generator生成的features能夠訓練出一個好的分類器,所以作者提出分類損失並用採用負對數的形式刻畫。
其中。分類器採用線性softmax分類器, 表示被類別標籤真實預測的概率。 分類器的參數θ是根據可見類的實際特徵進行預訓練的。
該分類損失可以看作是正則化項,迫使生成器構造判別性強的特徵。
最終的損失函數如下所示,其中 是一個超參數權重。
4. Discriminator的架構
下圖爲Conditional GAN中兩種經典的架構方式,當輸出的score取低分時,第一種架構沒有辦法判斷低分的原因是不夠真實清晰還是與類別標籤不匹配,第二個模型由於分別輸出兩個網絡的socre,所以可以解決上述問題。
論文模型如下圖所示,與上圖的模型二類似。
圖中第一行是真實圖像的特徵提取過程,裏面的CNN可以通過用的GoogleNet或ResNet,可以是從ImageNet上預訓練的模型,也可以是在特定任務中微調過的模型,本文中採用的預訓練模型。將特徵與所屬類的屬性描述拼接後輸入Discriminator並判別爲真;
圖中第二行是生成數據的分支,用normal distribution的與拼接後輸入生成器,生成特徵xˆ再次將其與屬性描述拼接後輸入Discriminator並判別爲假;同時輸出的值觀察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準確率評估如下三個項目:見到過的類別分類,未見到過的類別分類,二者的調和平均數。
- Top-1 Accuracy:假設ImageNet有1000個分類,模型預測某張圖片時,會給出1000個按概率從高到低的類別排名,Top-1 Accuracy是指排名第一的類別與實際結果相符的準確率。
- 調和平均數:
- 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模型在和之間取得了一個平衡,儘管相比baseline有所下降,但是有大幅上升,直接導致了的上升。
- 另外,藉助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