CAAE解讀

CAAE即Conditional Adversarial Autoencoder,這個概念最早來自論文Age Progression/Regression by Conditional Adversarial Autoencoder,發表於CVPR 2017。

問題設定

文章討論的任務是Age Progression/Regression,指的是根據當前的人臉繪製出指定年齡的人臉,既包括預測未來年齡變大時的人臉(Age Progression),也包括估計以前年齡較小時的人臉(Age Regression)。

基本思路

作者首先假設人臉圖像處於一種高維流形(high-dimensional manifold)中,然後我們希望的就是圖像在這個流形中沿着某個特定方向移動,使得人臉反映的年齡出現特定的變化。


在這個示意圖中,虛線的軌跡就是理想的變化方向,它使人臉隨着年齡的改變呈現自然的變化。

但是在高維流形中操作人臉圖像是一件非常困難的事情,我們沒法描繪出上述的軌跡。解決辦法是把圖像映射到低維的latent space中,可以在這個latent space中對代表原圖像的向量進行操作,最後再把處理後的低維向量映射到高維流形中。這前後兩次映射分別由Encoder和Generator實現,基本的示意圖是:


模型設計

創新往往不是一次到位的,這篇論文同樣是站在巨人的肩膀上進行創新的。

上述的建模思路大致參考的是Adversarial Autoencoder(AAE),AAE的一個版本爲:


這個模型同樣利用一個Encoder把圖像映射成低維的latent variable z,然後與一個label向量拼接,傳入一個Decoder中映射成高維圖像,同時,用一個Discriminator約束z的分佈,使其逼近預先設定的先驗分佈。值得一提的是,AAE同樣也站在了Variational Autoencoder(VAE)和GAN的肩膀上:Encoder-Decoder的思想來源於VAE,加入Discriminator進行對抗訓練的方式則是受到GAN的啓發。

言歸正傳,這篇論文提出的模型名爲Conditional Adversarial Autoencoder(CAAE),它與AAE的不同之處僅在於多設置了一個針對Decoder(Generator)的Discriminator,用於約束Decoder生成更加真實的圖像。Decoder原有的約束只有“生成的圖像與原圖像的平方誤差”,這個約束是像素層面的,因而容易使生成的圖像雖然在像素上與原圖像很接近,但整體上卻顯得很模糊,Discriminator的約束大大改善了這一問題。

從另一個角度,CAAE也可以被看作是GAN的改進——使用Encoder來對z進行建模,避免了原始GAN那種對z取樣隨機性很高的方式,從而使z的可解釋性更強。

最終的模型就由一個Encoder、一個Decoder(Generator)及兩個Discriminator構成:


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