CVAE-GAN: Fine-Grained Image Generation through Asymmetric Training
摘要
我們提出了一個變分生成對抗網絡,一個包含了與生成對抗網絡結合的變分子編碼器,用於合成細粒度類別的圖像,比如具體某個人的臉或者某個類別的目標。我們的方法構建一張圖片作為概率模型中的一個標簽成分和潛在屬性。通過調整輸入結果生成模型的細粒度類別標簽,我們能夠通過隨機繪制潛在屬性向量中的值來生成指定類別的圖像。我們方法的創新點在於兩個方面:
- 首先是我們提出了在判別器和分類器網絡中使用交叉熵損失,對於生成器網絡則使用平均差異目標函數。這種不對稱損失函數能夠使得訓練出來的GAN網絡更穩定。
- 其次是我們使用了encoder網絡去學習潛在空間和真實圖片空間中的關系,並使用成對的特性去保持生成圖像的結構。
我們使用人臉、花和鳥的自然圖片來訓練,並說明了提出的模型有能力去生成有着細粒度類別標簽的真實且不同的樣本。我們進一步將展示我們的模型應用於其他任務的效果,如圖像修復、高分辨率以及用於訓練更好的人臉識別模型的數據增強。
1. Introduction
構建自然圖像的有效的生成模型是計算機視覺中的主要問題。它目標是根據潛在的自然圖像分布來調整一些潛在向量來生成不同的真實圖片。因此,期望的生成模型是能夠捕獲錢在的數據分布。這可以說是一個很難的任務,因為圖像樣本的收集可能會依賴於十分復雜的manifold。然而目前深度卷積網路的進步豐富了深度生成模型系列[14, 12, 8, 31, 29, 34, 15, 4, 33, 6] ,造成了很大的進步,主要是因為深度網絡在學習表征上的能力的進步。
通過享用目前研究的成功果實,我們對生成細粒度目標類別的圖像有了更進一步的興趣。比如,我們想要為某個人合成圖像,或者為花或鳥的某具體物種生成一張新的圖片等,如圖1所示:
受CVAE和VAE/GAN的啟發,我們提出了一種生成學習框架,一個包含了與生成對抗網絡結合的變分子編碼器,在條件生成過程中來處理這個問題
但是我們發現這種簡單的連接並不足以在實際中使用,VAE的結果通常過於模糊。判別器能簡單地將它們分類為“fake”。即使對於一張人臉圖像來說它們有時看起來還不錯
梯度消失問題仍然存在,所以生成的圖像與僅使用VAE的結果是很相似的。在該論文中,我們為生成器提出了一個新的目標函數。替代在判別器網絡中使用相同的交叉熵損失,新的目標函數需要生成器能夠縮小生成圖像和真實圖像之間的L2距離。對於多類圖像的生成,一種類別的生成樣本也需要匹配該類別的真實圖像的平均特性。由於特征距離與可分性呈正相關。它解決了在某個范圍中梯度消失的問題。除此之外,這種類別的不對稱損失函數能部分幫助阻止出現一些崩潰問題,如所有的輸出都移到某一個點,其讓GAN網絡更加穩定。
雖然使用平均特性匹配將減少模型崩潰的機會,但它沒有完全解決這個問題。一旦模型崩潰發生了,梯度下降將不能分離相同的輸出。為了保證生成樣例的多樣性,我們利用了VAE和GAN的結合。我們使用encoder網絡去映射真實圖像到一個潛在向量,然后生成器被用於重構原始像素,將原始圖像的特性與給定的潛在向量相匹配。在這種方法中,我們明顯地建立了潛在空間和真實圖像空間之間的關系。因為這些anchor點的存在,生成器被強迫呈現出不同的樣本。而且,像素重構損失函數也能幫助保持結構,如圖片中的直線和人臉結構。
如圖2(g)所示,我們的框架包含了4部分:
- encoder網絡E,用來映射數據樣本x到潛在表征z
- 生成器網絡G,根據潛在向量生成圖像x'
- 判別器網絡D,區分真/假圖像
- 分類器網絡,測量數據的類別概率
將我們的網絡命名為CVAE-GAN。這4個部分無縫地級聯在一起,整個網絡進行端到端地訓練
一旦我們的CVAE-GAN被訓練,其就能夠被使用在不同的應用中,如圖像生成、圖像修復和屬性變形(morphing)。我們的方法建立了一個輸入圖像的好的表征,因此生成的圖像變得更真實。我們展示了其是優於CVAE和CGAN以及其他最好的方法。與GAN相對比,提出的框架訓練更容易,收斂更快一個在訓練階段中更穩定。在該實驗中,我們進一步展示了我們模型的圖像合成能夠應用在其他任務中,如用於訓練更好的人臉識別模型的數據增強。
2. Related work
傳統智慧和生成模型的早期研究,包括Principle Component Analysis (PCA) [40], Independent Component Analysis (ICA) [10], Gaussian Mixture Model (GMM) [46, 27, 37],都假設數據的簡單構造。他們很難對不規則分布的復雜模式進行建模。之后的工作有Hidden Markov Model (HMM) [35], Markov Ran- dom Field (MRF) [19], restricted Boltzmann machines (RBMs) [9, 32], discriminatively trained generative mod- els [39],在紋理patches、數字和更好地對齊人臉上對其結果也有所限制,因為其缺少有效的特征表示
最近深度生成模型的發展,[14, 12, 8, 31, 29, 15, 4, 33, 6]引起了很多研究者的注意。當深度層次結構允許它們捕獲數據復雜的結構時,所有的這些方法都展示了在生成自然圖像上的優秀成果,其比傳統生成模型更加地真實。這些模型主要有三大主題:
- 變分子編碼器(VAE)[12,31]
- 生成對抗網絡(GAN)[8,29,33]
- 子回歸器[14]
VAE[12,31]將decoder/生成器網絡和encoder配對。VAE的一個缺點是,由於注入噪聲和不完善的元素度量,如平方誤差,生成的樣本往往是模糊的。
生成對抗網絡(GAN)[8,29,33]是另一個流行的生成模型。其同時訓練兩個模型,一個生成模型去合成樣本,一個判別模型去區分自然和生成樣本。但是GAN模型在訓練過程中很難收斂,從GAN中生成的樣本往往和真實圖相差很大。最近,很多工作嘗試去改進生成樣本的質量。比如Wasserstein GAN (WGAN) [2] 使用Earth Mover距離作為訓練GANs的目標函數,以及McGAN[20]使用平均和協方差特征匹配。但是它們需要限制判別器參數的范圍,這將降低判別器的能力。Loss-Sensitive GAN [28] 學習能夠提高生成樣本質量的損失函數,然后使用該損失函數來生成高質量的圖像。也有方法嘗試結合VAE和GAN,如VAE/GAN[15]和對抗自編碼器[17]。它們與我們的工作密切相關,並在一定程度上啟發了我們的工作。
VAEs和GANs能被訓練來構造條件生成器,如CVAE[34]和CGAN[18]。通過介紹額外的條件,他能夠解決概率一對多的映射問題。最近有很多有趣的基於CVAE和CGAN的研究,包括條件人臉生成[7]、屬性-圖像[47]和文字-圖像生成[30]、靜態圖像預測[42]和條件圖像生成[25]。都得到了很好的結果
生成ConvNet[44]證明了由常用的判別ConvNet可導出一個生成模型。Dosovitskiy et al. [5] 和Nguyen et al. [22] 介紹了從訓練的分類模型中抽取的特征生成高質量圖像的方法。PPGN[23]通過使用梯度上升法和超前於生成器的潛在空間能生成優質的樣本。
自回歸[14]方法則提出了不一樣的想法。它使用自回歸連接對圖像逐像素建模。它的兩個變體PixelRNN[41]和PixelCNN[26]也產生了很好的樣本。
我們的模型與這些模型都不同。如上面圖2所示,我們將所提出的CVAE-GAN結構與所有這些模型進行了比較。除了結構上的差異,更重要的是,我們利用了統計和兩兩匹配的優點,使訓練過程收斂得更快、更穩定。
3. Our formulation: the CVAE-GAN
在該部分,我們將介紹CVAE-GAN網絡。如圖3所示,我們提出的方法包含四部分:
- encoder網絡E
- 生成網絡G
- 判別網絡D
- 分類網絡C
網絡E和G的函數與條件變分自編碼器(CVAE[34])相同。encoder網絡E通過一個可學習分布P(z|x, c)映射數據樣本x為一個潛在表征x,c表示數據的類別。生成網絡G通過從可學習分布P(x|z, c)中采樣生成圖像x'。G和D的函數則和生成對抗網絡(GAN[8])相同。網絡G嘗試通過來自能夠區分真/假圖的判別器網絡D的梯度來學習真實數據的分布。C網絡的函數則是去測量P(c|x)的后驗
可是簡單的VAE和GAN的結合是不夠的。最近的研究[1]表明了如果采用了原始的KL散度損失,訓練GAN時將會出現網絡G的梯度消失問題。因為,我們今保持網絡E、D和C的訓練過程與原始的VAE和GAN相同,然后提出一個新的平均特征匹配目標函數給生成網絡G,用來改善原始GAN網絡的穩定性
即使使用了平均特征匹配目標函數,這里仍然存在可能導致模型崩潰的發生。所以我們使用encoder網絡E和生成網絡G去獲得一個從真實樣本x到合成樣本x'的映射,通過使用基於像素的L2損失和基於對的特征匹配,生成器模型將會強迫呈現出不同的樣本並生成結構保留的樣本
在下面的部分中,我們首先描述基於GAN的平均特征匹配方法(3.1部分)。然后展示平均特征匹配能夠被使用在條件圖像生成任務中(3.2部分)。接着是介紹通過一個添加的encoder網絡實現的基於對的特征匹配(3.3部分)。最后分析提出方法的目標函數,並提供訓練管道的實現細節(3.4部分)
3.1. Mean feature matching based GAN
在傳統GANs中,生成器G和一個判別器D一個最小最大游戲中競爭。判別器嘗試去從合成圖像中區分真的訓練數據,生成器則嘗試去騙過判別器。具體來說就是網絡D嘗試去最小化下面的損失函數:
而網絡G則嘗試去最小化:
可是在實際中,真實數據的分布和虛假數據可能互不相關,尤其是在早期的訓練過程中。判別器網絡D能夠很完美地區別它們。我們總能得到D(x) -> 1和D(x') -> 0,x'=G(z)即生成的圖像。因此,我們將更新網絡G,使梯度 ∂L'GD/∂x' -> 0。網絡G會可容易陷在局部的最小解中,因為G不是一個凸函數。最近的研究[1,2]也理論上戰術了GAN的訓練經常遇見網絡G的梯度消失問題。
為了解決這個問題,我們建議為生成器使用平均特征匹配目標函數。該目標函數需要合成樣本的特征中心去匹配真實樣本的特征中心。讓fD(x)表示判別器中間層的特征,然后G嘗試去最小化損失函數為:
在我們的實驗中,為了簡化,選擇了網絡D的最后一個全連接層的輸入作為特征fD。結合多層的特征能夠稍微改善收斂速度。在訓練過程中,我們使用mini-batch的數據估計平均特征。然后我們還使用歷史的移動平均來使它更穩定。
因此,在訓練階段,我們使用公式1)更新網絡D,使用公式2)去更新網絡G。使用這個用於訓練GAN的非對稱損失有三個優勢:
- 當公式2)隨着可分性的增加,在特征中心的L2損失就能夠解決梯度消失問題。
- 當生成的圖像足夠好,平均特征匹配損失將為0,這使得訓練更穩固
- 與WGAN[2]相比較,我們不需要剪切參數。網絡D的判別能力也能夠保持
3.2. Mean feature matching for conditional image generation
在這部分,我們將介紹用於條件圖像生成的平均特征匹配方法。假設我們有一個屬於K類別的數據集,我們使用網絡C去測量是否一個圖像屬於這個特殊的細粒度類別。這里我們使用了分類的標准方法。網絡C將x作為輸入,然后輸出一個K維的向量,然后使用softmax函數將其轉為類概率值。輸出的每個口都表示了后驗概率P(c|x)。在訓練階段,網絡C嘗試最小化softmax損失:
同時對於網絡G,如果我們仍然使用相同的softmax損失函數的話,它將會同樣導致3.1部分所說的梯度消失問題。
因此我們為生成網絡G提出了使用平均特征匹配目標函數。讓fC(x)表示分類器的中間層,然后讓網絡G嘗試去最小化:
在這里,為了簡化,我們選擇網絡C的最后一個全連接層的的輸入作為特征。我們也嘗試去合並多層的特征,這僅僅是稍微提高了網絡G的身份保持能力。因此在mini-batch中緊緊只有一些樣本屬於同一類別,有必要對真實樣本和生成的樣本使用特征的移動平均。
3.3. Pairwise feature matching
雖然使用平均移動匹配方法能夠阻止所有輸出移動到某個點,但它不能完全解決這個問題。盡管生成樣本和真實圖像有着相同的特征中心,但是它們可能有着不同的分布。一旦模型奔潰發生,生成網絡將會為不同的潛在向量生成相同的圖像,因此梯度下降將不能分離出相同的輸出
為了生成不同的樣本,DCGAN[29]使用Batch Normalization,McGAN[20]同時使用均值和協方差特征統計,Salimans et al.[33]使用mini-batch判別。他們都是基於使用多生成樣例。與這些方法的不同在於我們添加了encoder網絡E去獲得真實圖像x到潛在樣本空間z的映射。因此,我們直接設置了真實圖像和潛在空間的關系
與VAE相同,對於每個樣本,encoder網絡輸出潛在向量的均值和協方差,即μ和ε。使用KL損失減小先驗P(z)和推薦分布的邊界:
然后我們能夠從潛在向量:
這樣獲得從 x到z的映射后,我們能夠使用網絡G去獲得生成的圖像x'。然后,我們能夠在x和x'中添加一個L2重構損失和基於對特征匹配損失:
fD和fC分別是判別網絡D和分類器C中間層的特征。
3.4. Objective of CVAE-GAN
因此總結一下,我們方法的目標就是去最小化下面的損失函數:
上面的每一部分都是有意義的。LKL僅與encoder網絡E相關,表示是否潛在向量的分布是符合期望的。LG、LGD和LGC是與生成器網絡G相關的,表示合成圖像是否分別和輸入訓練樣本、真實圖像和相同類別中的其他樣本相同。LC與分類器網絡C相關,表示網絡用來分類不同類別圖像的能力;LD則與判別器網絡相關,表示該網絡區分真/合成圖像的能力有多好。所有這些目標函數都是互相的補充,並最后能夠使我們算法獲得最優的結果。整個訓練過程如算法1所述:
4. Analysis with a toy example
在這個部分,我們使用一個例子來表示和闡述基於GAN的平均特征匹配方法的好處。我們假設有一個真實數據分布如圖4(a)的環形所示:
環的中心設置為(100, 100),其一開始與生成的分布離得很遠。我們比較傳統GAN、WGAN和我們在3.1部分介紹的基於GAN的平均特征匹配方法去學習真實數據分布。
這三個比較的模型共享相同的設置,生成器G為分別有32,64,64個單元的三個隱藏層的MLP。判別器D也是分別有32,64,64個單元的三個隱藏層的MLP。對所有方法都使用RMSProp和固定的學習率0.00005。每個模型都訓練2M次迭代,直到都收斂。每個模型在不同迭代的生成樣本都如上圖4所示,從結果中我們能夠觀察到:
- 對於傳統GAN來說(圖4(b)的第一行),生成的樣本僅坐落在真實數據分布中的有限區域,這就是一直的模型崩潰問題。
- 對於WGAN來說(圖4(b)的第二行),在早期的迭代中不能夠學習真正數據的分布,我們認為這個問題是由初始化權重的技巧操作導致的,這影響了D區分真實/虛假圖像的能力。我們還嘗試改變權重初始化的值來加速訓練過程,發現如果取值過小,會導致梯度消失問題。如果取值過大,網絡就會分化。
- 第三行展示了推薦的基於GAN的特征匹配方法的結果,他能正確學習真實數據的分布,並且速度最快
5. Experiments
在這個部分,我們將驗證提出方法的有效性。在三個數據集中評估我們的模型:the FaceScrub [21], the CUB-200 [43],和102 Category Flower [24] 數據集。
這三個數據集包含三類完全不同的目標,分別是人類、鳥和花,來測試我們模型的生成能力
所有實驗輸入的大小和合成圖像的大小為128*128。對於FaceScrub數據集,我們先使用JDA人臉檢測器[3]檢測人臉區域,然后使用SDM[45]定位人臉坐標(兩個眼睛、鼻子和嘴巴的兩個角)。之后就是使用基於人臉坐標的相似性變換將人臉對齊到一個標准位置。最后則是剪切一個以鼻子為中心的128*128的人臉區域。對於CUB-200數據集,我們直接使用該數據集的原始圖像。對於102 Category Flower數據集,我們在包含花朵的真實mask的基礎上緊緊裁剪出一個矩形區域,然后將其調整為128×128。
在我們的實驗中,encoder網絡E是一個GoogleNet[36]網絡,類型信息和圖像在encoder網絡E的最后的全連接層合並。生成網絡G包含兩個全連接層,然后跟着6個反卷積層,實現2-by-2的上采樣。卷積層的過濾器大小分別為3*3、3*3、5*5、5*5、5*5、5*5,通道數大小分別為256、256、128、92、64、3。對於判別器網絡,我們使用和DCGAN[29]相同的判別器網絡。對於分類器網絡,我們使用Alexnet[13]結構,更改輸入為128*128。固定潛在向量維度為256,且對於生成圖像來說該配置就足夠了。batch normaliza層[11]在每一個卷積層后面都使用。該模型使用學習框架Torch實現。
5.1. Visualization comparison with other models
在實驗中,我們將與基於在3.2部分(FM-CGAN)介紹的CGAN的推薦的特征匹配方法和帶有用於生成細粒度圖像的其他生成器模型結合的CVAE-GAN相對比
為了公平地對比每個模型,我們為所有方法使用相同的結構。對於CVAE,對encoder網絡E和生成器網絡G使用相同的卷積結構。對於CGAN,我們使用和CVAE-GAN網絡相同的生成器網絡G和判別器網絡D。所有方法使用相同的訓練數據。在測試階段,網絡結構也相同。這三個辦法進使用網絡G去生成圖像。因此,雖然我們的方法在訓練階段有更多的參數,我們相信這個對比是公平的
我們在三個數據集中實行實驗:the FaceScrub [21], the CUB-200 [43],和102 Category Flower [24] 數據集。我們為所有方法實現分類條件圖像生成任務。對於每個數據集,所有方法都在該數據集的所有數據中訓練。在測試階段,我們首先隨機選擇一個類別c,然后通過采樣潛在樣本z~N(0,I)來隨機選擇該類別的生成樣本。為了評估,我們可視化了所有方法的樣本生成。
比較結果顯示在圖5:
所有圖像都是隨機選擇的,沒有任何偏好
我們能夠觀察到CVAE生成的圖像一般都比較模糊。也注意到CVAE不能保持圖像的身份信息,一些從CVAE中生成的圖像與在FaceScrub數據集中該類別的人看起來並不像。對於傳統的CGAN,類別中的方差很小,這將導致模型崩潰。對於FM-CGAN,我們能夠觀察到保持住身份信息的清楚圖像,但是一些圖像失去了目標的結構,如臉的形狀。
從另一方面來說,通過提出的方法生成的圖像看起來更真實和清楚,且互相之間都有這比較大的差異,尤其是在觀測點和背景顏色上。我們的模型能夠保持身份信息。顯示了提出的CVAE-GAN模型的能力。
5.2. Quantitative comparison
評估生成圖像的質量是具有很大挑戰性的,因為概率標准[38]的不同。我們企圖從三方面測量生成模型:判別力、多樣性和真實性
我們使用該實驗的人臉圖。首先,從CVAE、CGAN、FM-CGAN和CVAE-GAN模型中隨機生成53k樣本(每個類100個)用於評估
為了測量判別力,我們使用在真實數據中預訓練的人臉分類網絡,在這里使用的是Inception網絡[36]。在訓練模型中,我們評估從每個方法中生成樣本的top-1精確度,結果顯示在表1中:
可見,我們模型獲得了最好的top-1結果,並遠遠高於其他生成模型,其表示該推薦方法的有效性。
遵循[33]方法,我們使用Inception分數來評估真實性和生成樣本的多樣性。我們在CASIA[48]數據集中訓練一個分類模型,采用exp(EzKL(p(y|x) || p(y)))作為測量生成模型真實性和多樣性的度量標准。p(y|x)表示每個類生成樣本的后驗概率。包含有意義目標的圖像應該有一個帶着低熵的條件標簽分布p(y|x)。而且如果模型生成多樣的圖像,其p(y) = ∫p(y|G(z)) dz應該有着高熵。更大的分數意味着生成器能生成更真實和多樣的圖像。如表1所示,我們的方法和FM-CGAN能夠獲取更高的分數,並與真實數據的值很接近
5.3. Attributes morphing
在這部分,我們將驗證生成圖像中的屬性會隨着潛在向量的變化而不斷變化。我們將其稱為屬性變形。我們將在the FaceScrub [21], the CUB-200 [43],和102 Category Flower [24]三個數據集中測試我們的模型。首先挑選一對相同類型的圖x1和x2,然后使用encoder網絡E抽取潛在向量z1和z2。最后通過線性插值獲得一系列潛在向量z,如z = α*z1 + (1-α)*z2, α屬於[0,1]。圖6展示了屬性變形的結果:
每一行中的屬性,如位置、情緒和顏色或花的數量,都從左到右逐漸變化
5.4. Image inpainting
在這部分,展示了我們的模型能夠應用在圖像修補中。首先隨機從原始128*128的圖像x中破壞50*50的補丁圖像,如圖7b:
然后將其輸入encoder網絡E去獲得潛在向量z,然后通過G(z,c)去生成圖像x',c是類別標簽,然后通過如下的等式來更新圖像:
修補結果顯示在上圖的7(c)。我們應該強調所有的輸入圖像都是從網上下載的,沒有一個屬於訓練數據。當然,我們能迭代地輸入結果圖像到模型中去獲得更好的結果,如上圖7(d,e)所示
5.5. CVAE-GAN for data augmentation
我們進一步展示了我們模型的圖像生成能夠用於訓練更好的人臉識別模型中的數據增強。我們使用FaceScrub數據集為訓練數據集,LFW[16]為測試數據集
FaceScrub數據集僅包含530個人,不足以訓練一個好的識別模型。因此,我們的目標是驗證額外生成訓練數據的使用能夠改善人臉識別的精確度。一個更大的數據集能用於訓練。我們將其留到未來的研究中。我們采用帶有softmax損失的GoogleNet,就像我們的網絡一樣。
我們使用兩種數據增強策略:
- 生成更多訓練數據集中已有身份的圖像
- 通過混合不同的身份來生成新的身份
我們測試這兩類數據增強方法:
- 隨機為每個人生成200張圖像,總共100k張。
- 通過隨機混合三個不同的已有身份來創建5k個新身份,然后對每個新生成的身份生成100張圖
對於這兩個策略,生成的圖像將於FaceScrub數據集結合來一起訓練一個人臉識別模型
在測試階段中,我們直接使用cosine特征的相似度來測量兩張圖之間的相似度。表2中對比了在LFW數據集和沒有額外生成數據的人臉識別精度:
帶着新身份的數據增強方法與無增強的方法相比精確度有1.0%的改善。這表示了我們的生成網絡有着一些推斷能力
6. Conclusion
本文提出了一種用於細粒度分類圖像生成的CVAE-GAN模型。在三個不同數據集上的優越性能顯示了它生成各種對象的能力。該方法可以支持多種應用,包括圖像生成、屬性變形、圖像修復和數據增強,用於訓練更好的人臉識別模型。我們未來的工作將探索如何生成未知類別的樣本,例如訓練數據集中不存在的人臉圖像。
補充材料
S7. Comparing different combination of losses
在該模型中,提出了在圖像的像素級別上使用基於對的特征匹配方法,在分類器網絡C和判別器網絡D的特征級別上更新G網絡。為了理解每個loss成分的作用,我們分離下面的損失:
為三部分:
LG(img)是圖像像素級別的L2損失, LG(D)是判別器網絡D在特征級別上的L2損失,LG(C)是分類器網絡C在特征級別上的L2損失
我們重復訓練相同設置的CVAE-GAN模型,但使用不同 LG(img)、LG(D)和LG(C)的損失組合,對比它們重構圖像的質量。如圖S8所示:
我們能發現移除對抗損失LG(D)將導致模型生成模糊圖像。移除像素級別的重構損失LG(img)將導致圖像失去細節。最后一處特征級別的損失LG(C),生成的樣本將失去類別信息
S8. Analysis of the latent vector z
由於網絡G只能用潛在向量z和類別標簽c重構輸入圖像。因此期望其能夠在潛在向量中輕松地編碼所有的屬性信息,如位置、顏色、光照、甚至是更復雜的高級風格。我們將介紹關於潛在向量的一些有趣的發現。
相同的潛在向量表示相同的屬性。一個重要的發現是雖然我們不在屬性上使用任何監督,對於不同標簽的相同潛在向量將會生成帶有不同類別標簽但是有着相同屬性的圖像。該現象的原因是可能有着相同屬性的圖像在像素級別上表示某些相似之處。所以網絡通過無監督聚類自動將它們放在了一起
為了證實它,我們在人臉數據集FaceScrub中訓練了一個模型,然后抽取所有人臉圖像的潛在向量。為了清楚地表示分布,我們通過PCA方法將所有的潛在向量投射為二維空間,如圖S9所示:
可見潛在向量的分布如期望是一個高斯分布,而圖像的屬性,如人臉位置、照明和背景對於相同的潛在分布來說都是相同的。
在該特性下,我們的算法能夠用在其他應用中,如屬性轉換,即生成的圖像有着不同的類別標簽,但是有着相同屬性;以及屬性搜索,即搜索其他有着相同屬性的圖像
S8.1. Attributes transformation
在該部分,我們實驗證明屬性轉換的有效性。我們在數據集FaceScrub上進行測試。給定一張源數據,我們首先使用encoder網絡E去抽取潛在向量z。然后使用該潛在向量,我們就能夠生成具體類別的圖像了,如圖S10所示:
展示了屬性轉換的結果。我們生成了某目標類別的圖像,其屬性和源圖像相同。源圖像即左邊的圖像,用來提取潛在向量,得到該圖像的屬性,如在笑等,然后右邊的每一列表示輸入的標簽c,表示使用的人臉,即要將抽取的屬性使用在哪張臉上
S8.2. Attributes retrieval
通過上面對潛在向量的分析,我們提出下面的推斷:
相同的潛在向量表示相同的屬性。因此我們能夠使用我們的encoder模型E去抽取屬性特征,然后使用它們去搜索在數據集中有着相同屬性的圖像。使用數據集FaceScrub進行測試。我們首先通過encoder網絡E抽取所有屬性特征。然后使用L2距離簡單構造一個圖像檢索任務。如圖S11所示:
展示了與左邊查詢的圖像最相似的前5的結果,但是有着不同的類別,即不同的人但是有着相同表情特征。我們發現得到的人臉有着相同的膚色、視角和情緒。
S9. Nearest Neighbors Test
在該部分,我們想要說明我們的模型在訓練部分不僅僅只存儲了所有的訓練樣本。我們的模型能夠生成不是訓練樣本的復制體的樣本。使用數據集FaceScrub進行實驗。首先我們隨機從8個類別中生成8個樣本。然后我們使用像素級別的L2距離簡單地構造一個圖像搜索任務,如S12所示:
我們顯示了與生成圖像最相似的前5個結果,我們發現生成的圖像與最近鄰比較有着相同的身份,但是不同的屬性,如位置、照明和情緒