生成對抗網路-GAN-公式推導和證明

來自專欄耀勇的煉丹師之路4 人贊了文章

生成對抗網路分為:1.生成模型,2.鑒別模型。其中,生成模型從無到有不斷地生成數據,而鑒別模型不斷鑒別生成器生成的模型;二者不斷對抗,生成模型拚命生成不讓鑒別模型識別出來的數據,鑒別模型拚命鑒別生成模型生成的數據;二者不斷成長,得到最好的生成模型鑒別模型

具體推倒如下:

首先是符號說明, 注意GAN,主要學習的是數據的分佈,最終得到的是兩個一樣的數據分佈。

定義數據分佈,generator,discriminator等輸出

定義鑒別模型:

當鑒別模型輸出D(x)為1時,即可以輕鬆判別數據,此時上式取值最大。

當鑒別模型輸出D(G(z))為0時,即鑒別模型輕鬆地鑒別出生成模型的數據,此時上式取值最大。

故而為了鑒別模型越來越好,定義以下目標函數:

很顯然,最好的鑒別模型是使得V(G,D)最大的,即:

當鑒別模型取最好的時候,最好的生成模型即使得目標函數最小的,如下:

然後這個問題就轉變成了最大最小問題:

這個問題真的有最優解嗎?下面證明這個問題。

先證明有最優鑒別模型:

得到最優鑒別模型是

下面我們再來考慮一下GAN最終的目的是,得到生成模型可以生成非常逼真的數據,也就是說和真實數據分佈一樣的數據,此時鑒別模型的輸出為:

其中,數據分佈一樣

當DG輸出為0.5時,說明鑒別模型已經完全分不清真實數據和GAN生成的數據了,此時就是得到了最優生成模型了。

下面證明,生成模型存在:

充分性:

必要性:

上式最終可以轉化為KL散度,如下:

KL散度永遠大於等於0,可以知道目標函數最終最優值為-log4。

以上即是,GAN證明的推倒。

參考文獻:

Goodfellow I, Pouget-Abadie J, Mirza M, et al. Generative adversarial nets[C]//Advances in neural information processing systems. 2014: 2672-2680.

An Annotated Proof of Generative Adversarial Networks with Implementation Notes

推薦閱讀:

相關文章