CAAE即Conditional Adversarial Autoencoder灼卢,這個(gè)概念最早來自論文Age Progression/Regression by Conditional Adversarial Autoencoder,發(fā)表于CVPR 2017来农。
問題設(shè)定
文章討論的任務(wù)是Age Progression/Regression鞋真,指的是根據(jù)當(dāng)前的人臉繪制出指定年齡的人臉,既包括預(yù)測未來年齡變大時(shí)的人臉(Age Progression)沃于,也包括估計(jì)以前年齡較小時(shí)的人臉(Age Regression)涩咖。
基本思路
作者首先假設(shè)人臉圖像處于一種高維流形(high-dimensional manifold)中海诲,然后我們希望的就是圖像在這個(gè)流形中沿著某個(gè)特定方向移動(dòng),使得人臉反映的年齡出現(xiàn)特定的變化檩互。
在這個(gè)示意圖中特幔,虛線的軌跡就是理想的變化方向,它使人臉隨著年齡的改變呈現(xiàn)自然的變化闸昨。
但是在高維流形中操作人臉圖像是一件非常困難的事情蚯斯,我們沒法描繪出上述的軌跡。解決辦法是把圖像映射到低維的latent space中饵较,可以在這個(gè)latent space中對(duì)代表原圖像的向量進(jìn)行操作拍嵌,最后再把處理后的低維向量映射到高維流形中。這前后兩次映射分別由Encoder和Generator實(shí)現(xiàn)循诉,基本的示意圖是:
模型設(shè)計(jì)
創(chuàng)新往往不是一次到位的横辆,這篇論文同樣是站在巨人的肩膀上進(jìn)行創(chuàng)新的。
上述的建模思路大致參考的是Adversarial Autoencoder(AAE)茄猫,AAE的一個(gè)版本為:
這個(gè)模型同樣利用一個(gè)Encoder把圖像映射成低維的latent variable z狈蚤,然后與一個(gè)label向量拼接,傳入一個(gè)Decoder中映射成高維圖像募疮,同時(shí)炫惩,用一個(gè)Discriminator約束z的分布,使其逼近預(yù)先設(shè)定的先驗(yàn)分布阿浓。值得一提的是他嚷,AAE同樣也站在了Variational Autoencoder(VAE)和GAN的肩膀上:Encoder-Decoder的思想來源于VAE,加入Discriminator進(jìn)行對(duì)抗訓(xùn)練的方式則是受到GAN的啟發(fā)芭毙。
言歸正傳筋蓖,這篇論文提出的模型名為Conditional Adversarial Autoencoder(CAAE),它與AAE的不同之處僅在于多設(shè)置了一個(gè)針對(duì)Decoder(Generator)的Discriminator退敦,用于約束Decoder生成更加真實(shí)的圖像粘咖。Decoder原有的約束只有“生成的圖像與原圖像的平方誤差”,這個(gè)約束是像素層面的侈百,因而容易使生成的圖像雖然在像素上與原圖像很接近瓮下,但整體上卻顯得很模糊,Discriminator的約束大大改善了這一問題钝域。
從另一個(gè)角度讽坏,CAAE也可以被看作是GAN的改進(jìn)——使用Encoder來對(duì)z進(jìn)行建模,避免了原始GAN那種對(duì)z取樣隨機(jī)性很高的方式例证,從而使z的可解釋性更強(qiáng)路呜。
最終的模型就由一個(gè)Encoder、一個(gè)Decoder(Generator)及兩個(gè)Discriminator構(gòu)成: