1.概述
CGAN即條件對抗網絡。GAN可以學習到訓練樣本的分布,進而生成新的資料。GAN雖然能生成新的資料,但是無法确切的控制新樣本的類型。比如手寫數字集,我們無法通過GAN來指定要生成的具體數字。條件對抗網絡就是為了解決這個問題。
2. 了解CGAN
-
下面通過GAN 和CGAN的輸入輸出對比來了解CGAN.
GAN:
生成器G, 輸入一個噪聲z, 輸入一個圖像G(Z)
判别器D, 輸入一個圖檔x,輸出一個圖像是真實圖檔的機率(D(x)),x是真實樣本或生成樣本
損失函數: V(D, G) = log(D(x)) + log((1- D(G(z)))) , 這裡僅x是真實樣本, D(z)是生成樣本
CGAN:
生成器G, 輸入一個噪聲z,一個條件y, 輸出符合條件y的圖像(G(z/y))
判别器D,輸入一張圖檔x, 一個條件y, 輸出x,在條件y下是真實圖像的機率D(x/y).x是真實樣本或生成樣本
損失函數: V(D, G) = log(D(x/y)) + log((1- D(G(z/y))))這裡x僅是真實樣本, D(z/y)是生成樣本
條件y就是希望生成的标簽,是以生成器必須要生成和标簽比對的樣本, 而判别器要做的不僅是判段圖檔是否是真實圖檔,還要判讀圖像和條件是否比對。
是以在訓練完之後,可以通過标簽和噪聲來使G生成指定的資料樣本!
- CGAN基本結構圖解
Conditional Generative Adversarial Networks(CGAN)筆記