cgan = conditional gan
也是最基礎的gan模型,和gan原文同時發表在nips2014上面。事實上,cgan在gan的基礎上並沒有做很大的改動,下文會主要分析一下cgan的改動。
conditional generative adversarial nets
在訓練判別器d的時候,給的label只有「真」和「假」。這樣一來有個什麼問題呢,如果訓練資料之間的差異大的話,那生成的資料可能是兩種以上類別的混合物;舉個栗子:用mnist資料集訓練gan的時候,對於gan而言,只有真圖(是數字)和假圖(不是數字)的區分。但事實上,就算同樣是數字,也有0-9十種分類,不區分細分類的話,gan很容易生成幾個數字之間的混合物,像0像6像8像9,可就不是乙個對的數字。
而cgan的出現,解決了上面的這樣乙個問題。
基本的gan流程如上圖,cgan的做法就是把監督資訊加入原來的gan。如下圖:
這裡的監督資訊就是label值,也以一種很簡單的方式(one-hot編碼)加入進去。這樣一來,gan系統的生成品就更具有導向性了,不會籠統地把10個相差甚遠的數字分作一類。
再舉mnist為栗:訓練生成「2」時,加入的y = [0,0,1,0,0,0,0,0,0,0]。d就會按照「2」的樣子給g生成的打分,g也會按照「2」的樣子去生成。這樣g和d都具有十分類能力了。
cgan相比gan而言,做出的改進並不是什麼革命性的改進,而是主流ai研究方法的順水推舟而已(用監督資訊改進無監督系統,效果肯定好一些)。然而,cgan卻獲得了很大的成功,成為了最基本的gan演算法之一,想想這種基礎演算法在之後的gan研究領域會被引用多少次。cgan和gan在同一年的nips發表,說明cgan研究者第一時間就搞懂並掌握了gan,新出來的基礎演算法可塑性肯定很強。在這裡也得到乙個啟示,一定要追**,追最新的研究方向,這樣才好撿漏。(當然,還得演算法基礎紮實)
生成對抗網路(二)CGAN
之前介紹了生成式對抗網路 gan 關於gan的變種比較多,我打算將幾種常見的gan做乙個總結,也算是激勵自己學習,分享自己的一些看法和見解。之前提到的gan是最基本的模型,我們的輸入是隨機雜訊,輸出的是對應的影象,但是我們沒法控制生成影象的型別。比如,我要生成一張數字0的,但是gan生成的卻是數字0...
半監督生成對抗網路 生成對抗網路
一 生成對抗網路相關概念 一 生成模型在概率統計理論中,生成模型是指能夠在給定某些隱含引數的條件下,隨機生成觀測資料的模型,它給觀測值和標註資料序列指定乙個聯合概率分布。在機器學習中,生成模型可以用來直接對資料建模,也可以用來建立變數間的條件概率分布。通常可以分為兩個型別,一種是可以完全表示出資料確...
生成對抗網路
我們提出乙個框架來通過對抗方式評估生成模型,我們同時訓練兩個模型 乙個生成模型g捕捉資料分布,乙個鑑別模型d估計乙個樣本來自於訓練資料而不是g的概率。g的訓練過程是最大化d犯錯的概率。這個框架與minmax兩個玩家的遊戲相對應。在任意函式g和d的空間存在乙個唯一解,g恢復訓練資料的分布,d等於1 2...