GAN學習筆記 生成對抗網路

2021-08-11 20:55:55 字數 1281 閱讀 3223

看了ian大神的**,學習一下gan。

一、基本介紹

生成對抗網路由兩部分組成:generatative model 和 discriminative model,以下分別簡稱為g 和 d。

在gan中,訓練集是無標籤資料集data,g接受資料z,產生g(z),而d判定g產生的資料是來自於真實資料data還是由g產生的。在訓練過程中,雙方不斷優化自己,直到d無法再區分真實資料和g產生的資料,這時,雙方達到了那什均衡。可以說,g相當於造假方,而d相當於警察,gan的訓練過程就是雙方進行博弈的過程。

下面給出gan的minimax公式,其中d(x)代表x來自正式資料集的概率。

我們先來看優化d的部分。我們可以看到,當x來自真實資料集data時,d(x)應該越接近1越好,而當處理g產生的資料時,d(g(z))應該越接近0越好,所以式子中,log(d(x)),log(1-d(g(z)))應該越大越好。

再來看優化g的部分,這裡只要看式子的第二項就可以了。g作為生成方,它所要做的就是迷惑d,讓d將自己生成的資料誤認為成來自真實資料集的資料,所以d(g(z))應該越接近1越好,即log(1-d(g(z)))應該越小越好。

此外,在優化g時,由於在學習初期,g的表現較差,d很容易區分出g產生的資料,即d(g(z))=0, 導致log(1-d(g(z)))可能會出現飽和的問題。在出現這種問題時,可以轉而用最大化log(d(g(z)))來優化g。

**中的這張比較直觀地展示了整個過程。

圖中黑線表示真實資料集data,綠線表示g生成的資料,藍線表示d的判定。這裡可以看到g生成的資料逐漸向真實資料data靠攏,直至d真假難分的過程。

二、演算法

在訓練過程中,先訓練d,訓練k次,再訓練g,訓練1次,如此迴圈。

三、數學推導

下面證明當d達到最優時

我們回到之前的公式,寫出它的期望形式。

對於這個式子,可以通過對d(x)求導,令其導數等於0,從而命題得證。

GAN 生成對抗網路

原理 假設我們有兩個網路 乙個生g generator 乙個判別d discriminator g是乙個生成的的網路,它接受乙個隨機的雜訊z,通過這個雜訊生成,記做g z d是乙個判別網路,判斷一張是不是 真實的 它的輸入引數是x,x代表一張的。輸出d x 代表x為真實的概率,如果為1,就代表100...

生成對抗網路 GAN

原文 generative adversarial networks 模型組成 核心公式 演算法圖示化描述 全域性最優點 pg pdata 效果與對比展望 ming maxdv d,g exp data x logd x exp x x log 1 d g z 分析 上方為 gan 網路的核心演算法...

GAN(生成對抗網路)

gan,generative adversarial network.起源於2014年,nips的一篇文章,generative adversarial net.gan,是一種二人博弈的思想,雙方利益之和是乙個常數,是固定的。你的利益多點,對方利益就少點。gan裡面,博弈雙方是 乙個叫g 生成模型 ...