機器學習【5】:生成對抗網絡(GAN,Generative Adversarial Network)

一. 什麼叫生成對抗網絡

     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恰恰相反,他主要是最小化上述損失函數。

發佈了234 篇原創文章 · 獲贊 71 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章