一. 什麼叫生成對抗網絡
Lan J.Goodfellow等於2014年10月在Generative Adversarial Network中提出的一個通過對抗過程估計生成模型的新框架。框架中同時訓練兩個模型:捕獲數據分佈的生成模型G,和估計樣本來自訓練數據的概率的判別模型D。
舉一個例子來說,現在有一個假的畫家,有一個判別家,假的畫家就是生成器G,判別家就是D,假畫家不斷的畫畫,然後判別家不斷的去判斷這幅畫,是不是真畫家畫的,真畫家的畫也會給到判別家,然後判別家會把這個結果傳遞給G,也就是假畫家,假畫家會進行學習,不斷的去迷惑判別家,判別家也會不斷學習,減少被迷惑的概率,到最後,假畫家畫出來的話,判別家就很難辨認真僞了。
二. GAN模型原理
GAN基本原理:以生成圖片爲例。假設我們有兩個網絡:G(Generator)和D(Discriminator)。他們的功能分別爲:
G:一個生成圖片的網絡,它接收一個隨機噪聲z,通過這個噪聲生成圖片,記做G(z);
D:一個判別網絡,判別一張圖片是不是“真實的”。它的輸入參數是x,x代表一張圖片,輸出D(x)代表x爲真實圖片的概率。
在訓練中,生成器G的目標就是儘量生成真實的圖片去欺騙判別網絡D,而D的目標就是儘量識別出生成器的假圖片。這樣,G和D構成了一個動態的“博弈”。
理想狀態下,G可以生成足以“以假亂真”的圖片G(z)。對D來說,它難以判定G生成的圖片究竟是不是真實的,這樣我們的目的就達到了:我們得到了一個生成模型G,它可以用來生成我們想要的圖片。
三. GAN更新公式
這就是整個模型損失函數的定義,其實是一個交叉熵,其中x表示真實圖片,z表示輸入G網絡的噪聲,G(z)表示G生成器中生成的圖片,D表示D網絡判斷圖片是否真實的概率(判別家的角色)。判別家D的目的是儘可能的使得D(x)接近1,令D(G(z))接近0,所以D主要是最大化上面的損失函數,G恰恰相反,他主要是最小化上述損失函數。