本文將按時間順序總結gan的paper(非所有,會挑選個人認爲比較重要的),並將參考其它博客(會給出鏈接),如有侵權,請私信刪除。
IS 可以反應圖像的生成質量(越大越好),FID 則會更假注重生成的多樣性(越小越好)。
IS_score=233(真實圖片)
SAGAN的IS=52.52、FID=18.65
BigGAN的IS=166
🔴(2014.06-arXiv)GAN:Generative Adversarial Nets【論文原文】
💡contributions:
- 開山之作;
- 原理:生成網絡和判別網絡的互相對抗。生成網絡儘可能生成逼真樣本,判別網絡則儘可能去判別該樣本是真實樣本,還是生成的假樣本。
- 採用JS散度作爲評判依據。
loss函數(原始gan損失函數的詳細解釋):
- 損失值只由discriminator計算提供。D(x)結果要麼爲real(1),要麼爲fake(0)。
(2014.11-arXiv)CGAN:Conditional Generative Adversarial Nets【論文原文】
💡contributions:
- 將G和D網絡的輸入都添加了類別標籤,通過訓練,既可以通過給與生成器給定的標籤能夠得到給定的輸出。
loss函數:
- 跟原始GAN一樣的結構;只是多了個條件標籤。
🔴(2015.11-ICLR)DCGAN:Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks【論文原文】
💡contributions:
- 在GAN上加了一系列的訓練技巧。
- 去掉了G和D網絡中的polling layer;
- 去掉全連接的隱藏層;
- 在G網絡中最後一層之前所有的層使用RELU,最後一層使用Tanh;
- 在D網絡中的每一層使用LeakRELU。
網絡結構:
(2016.06-NIPS)InfoGAN:Interpretable Representation Learning by Information Maximizing Generative Adversarial Nets【論文原文】【參考文章】
💡contributions:
- 讓網絡學到了可解釋的特徵;
- 添加互信息函數;
- 訓練完成後,可以通過給與生成器特定的隱含編碼得生成包含特定特徵的數據;
- 跟CGAN的區別(CGAN輸入的標籤y是指定的-監督學習,infoGAN輸入的latent C 是通過訓練得到的-無監督學習)
loss函數:
- V(D,G)爲原始GAN的損失函數。只是添加了一個互信息損失函數。
🔴(2016.11-arXiv)LSGAN:Least Squares Generative Adversarial Networks【論文原文】
💡contributions:
- 採用最小二乘loss作爲評判依據。
loss函數:
- abc參數的選擇:1、a=-1 b=1 c=0(b-c=1 and b-a=2);2、a=0、c=b=1(c=b)
🔴(2017.01-arXiv)WGAN:Wasserstein GAN【論文原文】【原理解析】
💡contributions:
- 採用地球移動距離(EM, Earth-mover distance),也叫 Wasserstein 距離,作爲評判依據。
- 判別器最後一層去掉sigmoid;
- 生成器和鑑別器的loss不取log;
- 每次更新鑑別器的參數之後將其絕對值截斷到不超過一個固定常數;
- 不用基於動量的優化算法。
loss函數:
- 將原始GAN的JS散度換成EM距離作爲評判標準;可以計算兩個無交集的分佈之間的距離。
🔴(2017.04-arXiv)WGAN-GP:Improved Training of Wasserstein GANs【論文原文】【原理解析】
💡contributions:
- 出了一種梯度懲罰策略,來取代WGAN中的weight clipping策略。
loss函數:
- 添加一個梯度懲罰項,滿足Lipschitz條件。
(2017.10-ICLR)PGGAN:PROGRESSIVE GROWING OF GANS FOR IMPROVED QUALITY, STABILITY, AND VARIATION【論文原文】
💡contributions:
- 漸進式地增加生成器和判別器的規模,訓練過程中不斷給G和D添加層;
- 爲了防止新加入的層對原網絡產生巨大影響,提出一種平滑的加入新層的方法。
訓練過程:
- 漸進式
(2018.01-?)?-GAN:Which Training Methods for GANs do actually Converge?【論文原文】【參考文章-優秀】
💡contributions:
- 總結之前GAN爲什麼收斂不穩定(從數學角度)。
(2018.02-ICLR)SNGAN:SPECTRAL NORMALIZATION FOR GENERATIVE ADVERSARIAL NETWORKS【論文原文】【原理推導】
💡contributions:
- 提出一種“嚴格”地解決了1-Lipshcitz約束的方法。
- 對權重矩陣做譜範數歸一化就可以更好的訓練。
感想:
- 對WGAN-GP的補充?
🔴(2018.05-arXiv)SAGAN:Self-Attention Generative Adversarial Networks【論文原文】
💡contributions:
- 使用SNGAN的Spectral normalization;
- 引入了Attention機制,讓生成器和判別器可以自動學習圖像中的重要目標(全局);
- 在訓練過程中,給予G和D不同的學習速率,以平衡兩者的訓練速度;
attention機制:
- (1)f(x),g(x)和h(x)都是普通的1x1卷積,差別只在於輸出通道大小不同;
- (2)將f(x)的輸出轉置,並和g(x)的輸出相乘,再經過softmax歸一化得到一個Attention Map;
- (3)將得到的Attention Map和h(x)逐像素點相乘,得到自適應的注意力feature maps.
🔴(2018.07-arxiv)RSGAN:The relativistic discriminator: a key element missing from standard GAN【論文原文】【參考文章】
💡contributions:
- 依據圖靈思想:打亂了數據,是否還能分辨出來?。
- 還提出了一個 RaSGAN,a 是 average 的意思,就是用整個 batch 的平均來代替單一的真/僞樣本。
- 解決了SGAN(standard)存在的問題:訓練生成器時,真實樣本沒有參與,所以判別器必須把關於真實樣本的所有屬性記住,這樣才能指導生成器生成更真實的樣本。
loss函數:
- RGAN:
- RaGAN:
🔴(2018.09-ICLR)Big-GAN:PROGRESSIVE GROWING OF GANS FOR IMPROVED QUALITY, STABILITY, AND VARIATION【論文原文】【參考文章】
💡contributions:
- batch-size=2048;增加每層的通道數;
- 採用先驗分佈 z 的“截斷技巧”,根據IS和FID值進行閾值選擇,允許對樣本多樣性和保真度進行精細控制;
- 將正交正則化的思想引入 GAN,爲截斷技巧提供幫助;
- 傳統的 GAN 都是將 z 作爲輸入直接嵌入生成網絡,而 BigGAN 將噪聲向量 z 送到 G 的多個層而不僅僅是初始層。(FPN?)
共享嵌入:
- 如下,左圖所示將噪聲向量 z 通過 split 等分成多塊,然後和條件標籤 c 連接後一起送入到生成網絡的各個層中,對於生成網絡的每一個殘差塊又可以進一步展開爲右圖的結構。可以看到噪聲向量 z 的塊和條件標籤 c 在殘差塊下是通過 concat 操作後送入 BatchNorm 層,這種嵌入方式就是共享嵌入,線性投影到每個層的 bias 和 weight。共享嵌入與傳統嵌入的差別是,傳統嵌入爲每個嵌入分別設置一個層,而共享嵌入是將z與c的連接一併傳入所有BatchNorm。
(2029.09-?)?-GAN:?【論文原文】【等待更新】
💡contributions:
- 等待更新。
訓練過程:
- 等