前兩天我們介紹並實作了DCGAN,而今天要來介紹GAN的第二個種類-DCGAN,是一個可以決定生成結果的GAN,那我們就廢話不多說吧!
CGAN引入了一個額外的條件,這個條件用來控制生成結果。可以是任何形式,比如一個類別標籤、一個文本描述,或者其他任何有助於生成特定類型數據的訊息。這就意味著生成的結果不再是純粹隨機噪聲生成的,而是在給定條件下生成的。
換句話來說,如果條件是一個類別標籤,生成器可以生成與該類別相關的結果
CAN可以在生成器和鑑別器都受到額外訊息 y 而成為一個有條件的模型。這個 y 可以是各種類型,例如類別標籤或來自其他模式的數據。我們可以通過將 y 作為額外的輸入層添加到鑑別器和生成器中來實現這種條件約束。
在CGAN中,生成器的輸入不僅包括隨機噪聲,通常是從正態分佈或均勻分佈中取樣的隨機向量,還包括條件。生成器通過這些資訊生成與條件相關的假數據。與此同時,鑑別器也接收條件信息和真實的數據作為輸入,並在考慮條件的情況下區分真實數據和生成的數據。
以下是CGAN的架構
圖源:網址
與標準的GAN一樣,CGAN中的生成器和鑑別器之間進行博弈。生成器試圖在有條件的情況下生成能夠迷惑鑑別器的數據,而鑑別器試圖區分真實數據和假數據,同時考慮條件。這個博弈過程導致生成器生成更具特定特徵的數據,從而擴展了GAN的應用範圍。
CGAN的訓練目標是使生成器生成的數據在給定條件下與真實數據的分佈盡量接近。這可以通過最小化生成器和鑑別器之間的損失函數來實現。損失函數通常包括生成器的生成損失和鑑別器的判斷損失。通過訓練過程,生成器和鑑別器逐漸提高性能,最終達到一個平衡點,使生成的數據在給定條件下非常逼真。
參考網站:論文
以上就是CGAN的簡單介紹啦,明天我們要來實作簡單的CGAN,那我們明天見!