GAN系列文(3)–Wasserstein GAN

這篇文章基本上延續了《GAN系列文(2)–Generative Adversarial Nets》對於 GAN 這個模型的研究。先稍微對 GAN 的幾個重要結論做個小複習:

GAN 的目標函數是:

\min_G\max_D \mathbb{E}_{x\sim P_{data}}[log(D(x))]+\mathbb{E}_{x\sim P_G}[log(1-D(x))] — (1)

而最佳的 discriminator 是:

D^*(x)=P_{data}(x)/(P_{data}(x)+P_{G}(x)) — (2)

當手上握有那麼好的 discriminator 時,Generator 的目標就是去最小化 P_{data}P_{G} 的 JS divergence。又理想上,最小值發生在當

P_{G}(x)=P_{data}(x) — (3)

以及 GAN 的演算法:

GAN-algorithm

本篇的主軸會放在回答那一篇文章最後提問的, GAN 在理論上似乎可行,但在實務上卻有很多困難:

  • 訓練困難、不穩定。也就是 discriminator 跟 generator 學習的速度如果不好好控制,就會失控。〈Train 不起來〉
  • Discriminator 和 Generator 的 loss 沒有辦法充分顯示訓練到底進行得如何了。
  •  Generator 產生的樣本雖然真實,但缺乏多樣性,也就是當生成很多很多圖片後,會發現有某一些是非常像。

繼續閱讀 “GAN系列文(3)–Wasserstein GAN"

GAN系列文(5)–GAN 真的有學到真實分佈嗎?

這篇文章其實是延續《GAN 系列文 (4)》中提到的一項理論猜測:對於只有 n 個參數的 discriminator , generator 只要學會由 m=O (n log(n)/\epsilon^2 ) 個 sample 構成的 distribution,就足以騙過 discriminator。意思是,當 discriminator 的能力受到限制時,其實也沒有辦法督促 generator 學到更多的東西,造成產出來的圖片歧異度 ( diversity ) 不夠。但光是理論的猜測是不夠的,因此這篇文章是 Arora 和 Yi Zhang 在 2017 年 7 月提出的實驗證明。

p.s. 文章中會不斷出現『support』這個字,是表示『由 X 個 sample 構成的 distribution』的意思。

繼續閱讀 “GAN系列文(5)–GAN 真的有學到真實分佈嗎?"

GAN系列文(4)–Generalization and Equilibrium in GANs

這篇文章基本上延續了《GAN系列文(2)–Generative Adversarial Nets》對於 GAN 這個模型的研究。先稍微對 GAN 的幾個重要結論做個小複習:

GAN 的目標函數是:

\min_G\max_D \mathbb{E}_{x\sim P_{data}}[log(D(x))]+\mathbb{E}_{x\sim P_G}[log(1-D(x))] — (1)

而最佳的 discriminator 是:

D^*(x)=P_{data}(x)/(P_{data}(x)+P_{G}(x)) — (2)

當手上握有那麼好的 discriminator 時,Generator 的目標就是去最小化 P_{data}P_{G} 的 JS divergence。又理想上,最小值發生在當

P_{G}(x)=P_{data}(x) — (3)

本篇的主軸會放在回答那一篇文章最後提問的部分問題:

  1. 當訓練資料不夠多時、或是當 discriminator 的類神經網路不夠強大時,整個訓練過程還會有一個平衡點 ( Equilibrium ) 嗎?(類神經網路其實也是有很多的參數去調控的,當參數量不夠多時,網路的可調性也受限,此時就不一定能有 D^* 那麼好的 discriminator 了。)
  2. 若真有一個平衡點,那一定會是 Generator 贏過 Discriminator 嗎?
  3. Generator 贏過 Discriminator 時,就表示 P_G\approx P_{real} 嗎?

繼續閱讀 “GAN系列文(4)–Generalization and Equilibrium in GANs"

GAN系列文(2)–Generative Adversarial Nets

這篇要談論的是一個從 2014 年被 Goodfellow 提出來後就十分火紅〈截至三年後的現在已經有1748 次引用〉,並且直到現在已經有數不清種改版的Generative Adversarial Nets,簡稱 GAN。顧名思義,這樣的模型很顯然的是希望機器能夠自己『產生』一些夠真實的東西,像是圖片、影片、甚至文章等等。那這個模型跟以前有的生成模型比起來,到底好在哪裡呢?為什麼會這樣被廣為使用呢?這篇文章將一一說明。

繼續閱讀 “GAN系列文(2)–Generative Adversarial Nets"

GAN系列文(1)–distance of distribution

在很多時候我們都需要『距離』的概念,比如果我問我們兩個離的很近嗎?你可能回答:『大概距離 100 公尺吧!』而這樣的度量就會在我們的心中成形,例如我大概可以估計我們大概在距離跑步 20 秒的距離吧。那在機器學習問題中,『距離』也是個不可或缺的度量,例如我手上有 A、B、C 三張長寬是 100 * 100 個小格子組成的圖片好了,那我問:『是圖 A 跟圖 B 比較像?還是圖 A 跟圖 C 比較像?』這時該怎麼辦?

繼續閱讀 “GAN系列文(1)–distance of distribution"