深度学习(四十五)——Stack GAN, GAN Ensemble, Pix2Pix, CycleGAN
Stack GAN
論文:
《StackGAN: Text to Photo-realistic Image Synthesis with Stacked Generative Adversarial Networks》
早期以DCGAN為代表的網絡生成的圖片分辨率太低,質量不夠好,都不超過100×100,在32×32或者64×64左右。這是因為難以一次性學習到生成高分辨率的樣本,收斂過程容易不穩定。因此采用級聯結構,逐次提升分辨率的Stack GAN應運而生。
上圖是Stack GAN的網絡結構圖。其中的Conditioning Augmentation,顯然使用了和VAE類似的添加隨機噪聲的技術。
類似想法的還有LAPGAN。
論文:
《Deep Generative Image Models using a Laplacian Pyramid of Adversarial Networks》
上圖是LAPGAN的網絡結構圖。顧名思義,這是使用了Laplacian Pyramid來不斷提升生成圖片的分辨率。
另,StackGAN還有后續版本StackGAN++。
參考:
https://www.cnblogs.com/wangxiaocvpr/p/5966776.html
LAPGAN論文筆記
https://zhuanlan.zhihu.com/p/30532830
眼見已不為實,迄今最真實的GAN:Progressive Growing of GANs
GAN Ensemble
除了級聯結構之外,以下結構用的也比較多。
多判別器單生成器
論文:
《Generative Multi-Adversarial Networks》
采用多個判別器的好處帶來了類似于boosting的優勢,訓練一個過于好的判別器,會損壞生成器的性能,這是GAN面臨的一個大難題。如果能夠訓練多個沒有那么強的判別器,然后進行boosting,可以取得不錯的效果,甚至連dropout技術都可以應用進來。
多個判別器還可以相互進行分工,比如在圖像分類中,一個進行粗粒度的分類,一個進行細粒度的分類。在語音任務中,各自用于不同聲道的處理。
單判別器多生成器
論文:
《Multi-Agent Diverse Generative Adversarial Networks》
一般來說,生成器相比判別器要完成的任務更難,因為它要完成數據概率密度的擬合,而判別器只需要進行判別,導致影響GAN性能的一個問題就是模式坍塌,即生成高度相似的樣本。采用多個生成器單個判別器的方法,可以有效地緩解這個問題。
從上圖結構可以看出,多個生成器采用同樣的結構,在網絡的淺層還共享權重。
增加分類器
論文:
《Triple Generative Adversarial Nets》
在利用GAN進行半監督的圖像分類任務時,判別器需要同時擔任兩個角色,即判別生成的假樣本,以及預測類別,這對判別器提出了較高的要求。通過增加一個分類器可以分擔判別器的工作量,即將捕捉樣本和標簽的條件分布這一任務交給生成器和分類器,而判別器只專注于區分真實樣本和生成的樣本。
Pix2Pix
論文:
《Image-to-image translation with conditional adversarial networks》
代碼:
https://github.com/phillipi/pix2pix
torch版本
https://github.com/affinelayer/pix2pix-tensorflow
tensorflow版本
https://github.com/williamFalcon/pix2pix-keras
keras版本
Pix2Pix對于user control的要求比一般的CGAN更高,這里的監督信息不再是一個類別,而是一張圖片。上圖就是一個使用Pix2Pix對素描圖上色的示例。其中的素描圖就相當于CGAN中的類別信息。
Pix2Pix相對于傳統GAN的改進在于:
**1.D網絡的輸入同時包括生成的圖片X和它的素描圖Y,X和Y使用Concat操作進行融合。**例如,假設兩者都是3通道的RGB顏色圖,則D網絡的Input就是一個6通道的tensor,即所謂的Depth-wise concatenation。
**2.G網絡使用dropout來提供隨機性。**作者在實踐中發現,傳統的噪聲向量在這個模型的學習過程中,被模型忽略掉了,起不到相應的作用。
**3.G網絡使用U-NET。**實踐表明,U-NET比AE的效果要好。
4.L1損失函數的加入來保證輸入和輸出之間的一致性。
5.使用PatchGAN來保證局部精準。
一般的GAN的D網絡,只需要輸出一個true or fasle的矢量,這代表對整張圖像的評價。而PatchGAN輸出的是一個NxN的矩陣,這個NxN的矩陣的每一個元素,對應著原圖中的一個Patch。
判別器對每一個patch做真假判別,將一張圖片所有patch的結果取平均作為最終的判別器輸出。這一步在具體實現上,就是使用Conv來代替D網絡最后一層的FC。由于Conv操作不在乎輸入尺寸,因此可以用不同尺寸的圖片訓練網絡。
這是使用不同大小的patch的效果。可以看出patch size越大,則效果越好,但是計算量也越大。s
參考:
https://blog.csdn.net/stdcoutzyx/article/details/78820728
Pix2Pix-基于GAN的圖像翻譯
https://zhuanlan.zhihu.com/p/38411618
pix2pix
https://www.jianshu.com/p/8c7a7cb7198c
pix2pix
https://blog.csdn.net/gdymind/article/details/82696481
一文讀懂GAN, pix2pix, CycleGAN和pix2pixHD
https://mp.weixin.qq.com/s/_PlISSOaowgvVW5msa7GlQ
條件GAN高分辨率圖像合成與語義編輯pix2pixHD
https://mp.weixin.qq.com/s/PoSA6JXYE_OexEoJYzaX4A
利用條件GANs的pix2pix進化版:高分辨率圖像合成和語義操作
https://blog.csdn.net/xiaoxifei/article/details/86506955
關于PatchGAN的理解
CycleGAN
除了基于紋理的Style Transfer之外,基于GAN的Style Transfer是另外一個流派。
CycleGAN是朱俊彥2017年的作品。
朱俊彥,清華本科(2012)+UCB博士(2018)。
個人主頁:
http://people.csail.mit.edu/junyanz/
論文:
《Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks》
Pix2Pix要求訓練數據的X和Y是成對的,因此它只適合于圖片翻譯任務。對于一般的Style Transfer來說,訓練數據顯然是不配對的,那么又該怎么辦呢?
首先,簡單的按照CGAN的做法,肯定是行不通的。最終生成的圖片,實際上只是Y的復刻,一點X的影子都沒有。
上圖是CycleGAN的網絡結構圖。它的要點如下:
1.既然G網絡缺乏配對的生成數據,那么不妨采用類似AE的手法來處理。
1)我們首先使用GX→YG_{X\to Y}GX→Y?將X變成Domain Y的數據Y′Y'Y′。
2)再使用GY→XG_{Y\to X}GY→X?將Y′Y'Y′變成Domain X的數據X′X'X′。
3)X和X′X'X′顯然是配對的,因此也就是可以比較的。
2.D網絡不需要配對數據即可訓練。
3.為了增加訓練穩定性,我們可以交替訓練兩個網絡:$→Y′→X′\to Y'\to X'→Y′→X′和Y→X′→Y′Y\to X'\to Y'Y→X′→Y′。其中的GX→YG_{X\to Y}GX→Y?和GY→XG_{Y\to X}GY→X?在兩個網絡中的參數是相同的。
CycleGAN不僅可用于Style Transfer,還可用于其他用途。
上圖是CycleGAN用于Steganography(隱寫術)的示例。
值得注意的是,CycleGAN的idea并非該文作者獨有,同期(2017.3)的DualGAN和DiscoGAN采用了完全相同做法。
DualGAN論文:
《DualGAN: Unsupervised Dual Learning for Image-to-Image Translation》
DiscoGAN論文:
《Learning to Discover Cross-Domain Relationswith Generative Adversarial Networks》
Cycle-consistency的思想也可用于其他領域。例如:
參考:
https://zhuanlan.zhihu.com/p/28342644
CycleGAN的原理與實驗詳解
https://mp.weixin.qq.com/s/7GHBH79kWIpEBLYX-VEd7A
CycleGAN:圖片風格,想換就換
https://mp.weixin.qq.com/s/sxa0BfXtylHXzjq0YBn-Kg
伯克利圖像遷移cycleGAN,貓狗互換效果感人
https://mp.weixin.qq.com/s/tzPCU1bxQ7NWtQ7o2PjF0g
BAIR提出MC-GAN,使用GAN實現字體風格遷移
https://mp.weixin.qq.com/s/A2VhfO3CkyQGCs5GqBWzOg
實景照片秒變新海誠風格漫畫:清華大學提出CartoonGAN
https://mp.weixin.qq.com/s/rt4uuqh8IrZTjsYXEZvxKQ
阿里提出全新風格化自編碼GAN,圖像生成更逼真!
https://mp.weixin.qq.com/s/3lrCRiq5zuX9yWxiQRQE9A
CartoonGAN不靠手繪,也能成為漫畫達人
https://mp.weixin.qq.com/s/PhaDqX3OT-mqyFHohDMfdA
從Pix2Code到CycleGAN:2017年深度學習重大研究進展全解讀
https://mp.weixin.qq.com/s/dwEHorYSJuX9JapIYLHiXg
BicycleGAN:圖像轉換多樣化,大幅提升pix2pix生成圖像效果
https://mp.weixin.qq.com/s/VU06PqZ4OaLxpjLwIObWZw
加強版CycleGAN!賈佳亞等提出卡通圖與真實人臉轉換模型,看女神突破次元壁長啥樣
https://mp.weixin.qq.com/s/eT7K78e2xKkTqmz67pqmEg
炫酷的圖像轉換:從pix2pix到CycleGAN
https://mp.weixin.qq.com/s/iFuZ8IqyrKGTxJ2ChU6NJA
CycleGAN之美:賽馬翻譯成斑馬背后的直覺和數學
總結
以上是生活随笔為你收集整理的深度学习(四十五)——Stack GAN, GAN Ensemble, Pix2Pix, CycleGAN的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度学习(四十四)——GAN的评估指标,
- 下一篇: C全局变量的用法