StackGAN mini review
鏈接:https://zhuanlan.zhihu.com/p/24421479
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
arxiv 傳送門
最近 NIPS 上有一篇關于 GAN 的論文很受關注,在 reddit 上也有不少討論,因為它的生成結果實在很 impressive ,如圖:
最下一排是 stackGAN ,生成的圖片不僅分辨率最高,而且最真實。
stackGAN 的主要的 motivation 是,如果我們沒辦法一次生成高分辨率又 plausible 的圖片,那么可以分兩次生成。分階段生成圖片的想法并不鮮見,Denton et all 的 LapGAN 的想法就是將生成的低分辨率的圖片一次次 refine ,XiaoLong et all 的 S^2GAN 也是將生成圖片的過程分成了 Structure and Style 兩個階段。當然這兩者都沒有 caption 作為 condition ,沒法比較。
關于 text to image 這一任務,之前就有人用 GAN 做,比如 Generative Adversarial Text to Image Synthesis ,所用的方法思路與 stackGAN 基本一樣,都是在 generator 與 discriminator 前加入 text 的embedding 作為condition 。但 stackGAN 的結構要 fancy 一點,如下。
第一階段:
從 embedding 開始,stackGAN 沒有直接將 embedding 作為 condition ,而是用 embedding 接了一個 FC 層得到了一個正態分布的均值和方差,然后從這個正態分布中 sample 出來要用的 condition 。之所以這樣做的原因是,embedding 通常比較高維,而相對這個維度來說, text 的數量其實很少,如果將 embedding 直接作為 condition,那么這個 latent variable 在 latent space 里就比較稀疏,這對我們的訓練不利。我的理解是,如果 text 的數量較少,那么即使我們有比較高維的 latent variable ,但其中一大部分都是離散的 text embedding ,相當于真正的隨機變量相對變少了,因此生成數據流形就會變得不連續(因為比較低維),這是我們不想看到的。而從參數化的正態分布中 sample 出要用的 condition 的話,相當于 embedding 周圍的點也會被作為 condition ,這就增加了 text 的數量和 condition 的維數。為了防止這個分布 degenerate 或者方差太大的情況,generator 的 loss 里面加入了對這個分布的正則化: 。
generator 使用的并不是常用的 Deconv ,而是若干個上采樣加保持大小不變的 3x3 的 conv 的組合,這是最近提出的一種避免 Deconv 棋盤效應的上采樣方法 。
discriminator 是若干步長為 2 的 conv ,再與 resize 的 embedding 合起來,接一個 FC。
第二階段:
第二階段的 generator 并沒有噪聲輸入,而是將第一階段的 sample downsample 以后與 augmented embedding (sampled from gaussian) 合起來作為輸入。經過若干 residual blocks ,進行與第一階段相同的上采樣過程得到圖片。
第二階段的 discriminator 與第一階段大體相同。
我的看法
說實在,stackGAN 并沒有太多讓人眼前一亮的新穎觀點與方法,但是它將 two-phased generation, sentence-embedding, semi-supervised learning 結合到了一起,實驗也做的很好(這樣的結構我覺得應該很難訓練)。看到 reddit 上有人說,unsupervised learning 本來是以不用辛辛苦苦的標 label 為目的而發展的,但有點諷刺的是,給越多 label ,它 work 得越好。這當然是必然的,給越多 label ,generator 就可以將一個復雜的分布(譬如 imagenet ),分解成若干簡單的,維數低的分布進行建模,discriminator 也可以分別做判別。
另外,paper 只在最后給了一些失敗的 sample ,一部分是圖文不符,一部分是太像生成樣本,前者我傾向于認為可能是 embedding 的失誤。鑒于結構的復雜性,我覺得不會看到開源實現(如果作者不放出源代碼的話),我確實挺關心他的正確率。
代碼已經 release :
Github
原文地址: https://zhuanlan.zhihu.com/p/24421479
總結
以上是生活随笔為你收集整理的StackGAN mini review的全部內容,希望文章能夠幫你解決所遇到的問題。