作者丨洪佳鵬
學校丨北京大學
研究方向丨生成式對抗網路
本文經授權轉載自公眾號「學術興趣小組」。
如今,隨著 GAN 在生成清晰影象(sharp images)上的成功,GAN 在影象翻譯任務上的方法越來越多,pix2pix,CycleGAN,UNIT,DTN,FaderNets,DistanceGAN,GeneGAN,pix2pixHD,StarGAN 等等。現在的方法太多了,影象質量也從 64×64 解析度一路做到了 1024×2048。
我關註這個方向已經超過半年了,在這裡總結一點小經驗:
關於生成高質量影象
這裡不談怎麼調參能夠得到更好的結果,這裡談兩個不用經過調參就能獲得不錯效果的方法。
有三個可以借鑒的經驗,其一來自於 pix2pixHD,採用 multi-scale 的 Discriminator 和 coarse2fine 的 Generator 能夠有效幫助提升生成的質量。
所謂 multi-scale 的 Discriminator 是指多個 D,分別判別不同解析度的真假影象。比如採用 3 個 scale 的判別器,分別判別 256×256,128×128,64×64 解析度的影象。至於獲得不同解析度的影象,直接經過 pooling 下取樣即可。
Coarse2fine 的 Generator 是指先訓一個低解析度的網路,訓好了再接一個高解析度的網路,高解析度網路融合低解析度網路的特徵得到更精細的生成結果。具體介紹可以參考 pix2pixHD [1]。
下圖以及題圖是 CelebA 資料上交換屬性的實驗,影象解析度 256×256,如果單個 Discriminator,生成質量很差,加上 multi-scale 之後生成質量有了很大提升,並且沒有經過調參哦。
△ 圖1:交換劉海
△ 圖2:交換眼鏡
其二是採用 progressive growing 的訓練方式,先訓小解析度,再逐漸增加網路層數以增大解析度,這個跟 coarse2fine 有點像。具體可以參看 PGGAN [2],或者這裡。
其三則是借鑒 LAPGAN 的做法,從低解析度起步,透過不斷生成高解析度下的殘差,累加得到高解析度。圖中 z1,z2,z3 是不同解析度的輸入。這個做法還沒有嘗試過,不知道生成質量怎樣,圖中的虛線是我認為可能不必要的連線。
關於生成樣本多樣性
這裡其實有兩個問題,一個是多模態多樣性,一個是屬性強弱的多樣性。
對於多模態多樣性,現有的技術不多,總結起來有三種。
其一,引入 noise,透過變分的方式讓 noise 得到表達,獲得多樣性。這個方法來自於 BicycleGAN [3] 的 cVAE-GAN。
△ 圖3:圖片來自於 BicycleGAN [3]
其二,引入 noise,透過回歸的方法在生成影象上預測所引入的 noise。這個方法失敗率比較高。當然,它也可以跟第一種方法結合。具體介紹參考 BicycleGAN [3] 的 cLR-GAN。
△ 圖4:圖片來自於 BicycleGAN [3]
前兩種方法都比較容易想到。在文章出來以前,我也曾經嘗試過第二種方法,但是沒有 work。這也印證了它失敗率高。
第三種方法是透過交換來實現多模態。交換的影象可以是多種多樣,一個不帶屬性的圖,可以透過跟具有不同型別的劉海(眼鏡、帽子等)的圖片進行交換,以給標的人物加上不同型別的劉海(眼鏡、帽子等)。這個方法可以參考 GeneGAN [4] 或者 DNA-GAN [5]。題圖就是一個交換屬性的例子。
另一種多樣性是屬性強弱。對於需要輸入 label 的生成方法(如 FaderNets,StarGAN),可以透過控制喂給生成器的 label 強弱來得到生成影象的屬性強弱。
關於屬性強弱,有一類方法比較特殊,它沒有辦法實現,那就是 CycleGAN,因為它只需要輸入影象,並不需要輸入 label,沒有控制 label 強弱的操作。
下麵介紹一種原創的方法,能夠對 CycleGAN 引入屬性強弱的控制(不打算寫成論文,因為沒有什麼特別的貢獻,不想灌水。如使用該方法請註明出處)。
我們透過精簡 CycleGAN 來實現,以兩個域為例,原始 CycleGAN 需要 2 個 Generator 和 2 個 Discriminator,我們不難發現,可以把域轉換稱 condition,這樣只需要一個 Generator 和 Discriminator 了。
不妨給兩個域 X = {x_i} 和 Y = {y_j} 分別編碼為 -1 和 1:
這樣就實現了 x -> y -> x 和 y -> x -> y 的 cycle。剩下的跟 CycleGAN 一樣即可。在測試的時候,就可以透過調節編碼的強度來控制屬性的強弱了。
關於 inference
模型訓練好了,測試的時候還有一道關要過。雖然現在很多影象翻譯方法訓練的時候都不需要配對資料,但是它們都需要弱監督,也就是需要提供 label。
而測試集上我們不一定有 label,這其實是很常見的一個問題,使用者上傳的影象不會給你打好標簽,況且還存在使用者「故意」製造錯誤標簽誤導演演算法(測試演演算法效能)的可能。有什麼解決方案呢?
我們很容易想到,加一個分類器,先分類具有什麼屬性,然後再轉換屬性。這個想法簡單,但是需要額外的網路,會增加計算量。
有沒有不引入分類器的方法呢?仍然以兩個域互轉的 CycleGAN 為例。訓練的時候,我們強迫生成器具有分類器的功能。具體來說,生成器需要需要額外做兩個任務(原創方法,沒有發表,使用請註明出處):
這兩項的 loss 為重構誤差:
這可以說是一種自監督。這麼做也就確保了生成器能夠處理「故意誤導」性的轉換,也實現了 label-free 的 inference。
下圖是季節轉換的一個例子。圖片從左到右依次為秋季原圖、轉成夏季圖、夏季圖轉回秋季圖、秋季原圖轉到秋季圖。
△ 圖5:label=0.5
△ 圖6:label=1.0
註意到上圖 checkerboard 效應很嚴重。怎麼解決 checkerboard 呢?
關於 inference
生成模型很容易產生 checkerboard 效應,影象翻譯任務尤為嚴重。據研究 [6],checkerboard 主要來自於反摺積(convolution transpose,通常也稱 deconvolution)操作,而跟對抗訓練關係不大。
[6] 指出,使用 nearest upsample + conv 替代 deconv 可以移除 checkerboard。在實驗中我發現這個替換確實發現能夠很好地解決問題。
△ 圖7:反摺積帶來了 overlap,從而引入了 checkerboard,圖來自於[6]
替代 deconv 需要引入其他的上取樣方法。上取樣的方法除了 nearest upsample 和 bilinear upsample 等型別之外,還有一種不叫上取樣,但是可以得到類似效果的操作:pixel shuffle [7]。它只改變了資料的擺放位置,(N, C*k^2, H, W) -> (N, C, kH, kW))。
這也是實現影象從小到大的方法,但是實驗中我發現沒有效果,可能是因為 channel 數太少。註意到 channel 數是增長是很快的,為了減少視訊記憶體,減少摺積層數或者減少第一個摺積層的 channel 數都會影響網路的表達能力。
也就是說,目前比較好的解決方案還是使用 nearest upsample + conv 替代 deconv。
參考文獻
1. Wang T C, Liu M Y, Zhu J Y, et al. High-Resolution Image Synthesis and Semantic Manipulation with Conditional GANs[J]. arXiv preprint arXiv:1711.11585, 2017.
2. Karras T, Aila T, Laine S, et al. Progressive growing of gans for improved quality, stability, and variation[J]. arXiv preprint arXiv:1710.10196, 2017.
3. Zhu J Y, Zhang R, Pathak D, et al. Multimodal Image-to-Image Translation by Enforcing Bi-Cycle Consistency[C]//Advances in Neural Information Processing Systems. 2017: 465-476.
備註:文章發表時是這個名字,但是後來改名了,找原文請搜 Toward Multimodal Image-to-Image Translation
4. Zhou S, Xiao T, Yang Y, et al. GeneGAN: Learning Object Transfiguration and Attribute Subspace from Unpaired Data[J]. arXiv preprint arXiv:1705.04932, 2017.
5. Xiao T, Hong J, Ma J. DNA-GAN: Learning Disentangled Representations from Multi-Attribute Images[J]. arXiv preprint arXiv:1711.05415, 2017.
6. https://distill.pub/2016/deconv-checkerboard
7. Shi W, Caballero J, Huszár F, et al. Real-time single image and video super-resolution using an efficient sub-pixel convolutional neural network[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016: 1874-1883.
我是彩蛋
解鎖新功能:熱門職位推薦!
PaperWeekly小程式升級啦
今日arXiv√猜你喜歡√熱門職位√
找全職找實習都不是問題
解鎖方式
1. 識別下方二維碼開啟小程式
2. 用PaperWeekly社群賬號進行登陸
3. 登陸後即可解鎖所有功能
職位釋出
請新增小助手微信(pwbot01)進行諮詢
長按識別二維碼,使用小程式
*點選閱讀原文即可註冊
關於PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智慧前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號後臺點選「交流群」,小助手將把你帶入 PaperWeekly 的交流群裡。