Generative Adversarial Network (GAN) 的基礎理論

Original article was published by Jia-Yau Shiau on Deep Learning on Medium


GAN原本是為了訓練generative model所提出的對抗設計,而訓練generative model是一個高維空間中尋找特定資料分布的問題。這個問題很適合unsupervised learning,因為找到這個空間分布就是最大目標。

以下藉由容易直觀理解的圖像生成問題介紹GAN的背後的想法與理論。

Image Generation

在圖像生成的問題中,我們會先設定一個想得到的圖像類型,比如說貓,也就是一個dataset D,由於每張影像可以視為高維空間的一種低維表現 (manifold),dataset D 裡的影像就可以從中形成一個高維空間中的分布 (distribution)。只要我們可以找到這個distribution,就可以從這個distribution中sample出無窮無盡的影像 (貓的影像)。

也就是說,所謂的圖像生成問題,就是如何找到一個function,這個function的輸出分布與目標dataset D 的分布很接近。或者說專業點,maximize這兩個distribution之間的likelihood。

Image generation或一般generation問題的概念 (資料來源: 1, 2, 3)

為了找到這個distribution,我們需要先定義一個可以描述資料分布的distribution model,比如說最基本的Gaussian mixture model。接下來,我們要最大化我們的modeled distribution P與dataset D之間的likelihood,或者說是最小化他們兩者之間的某種divergence (比如說KL divergence)。

假如是Gaussian mixture model,這就是一個數學上的問題,我們知道如何計算divergence。但是Gaussian mixture model並不是一個夠廣泛的模型,可能無法很好的模擬dataset D 的分布,這時候neural network就可以充當一個更強大的distribution model。一個neural network可以視作一個廣泛的function,輸出的分布比Gaussian mixture model複雜很多,也因此可以更加地fit目標dataset的distribution。