生成式視覺:GAN 與 VAE

對抗損失

對抗損失是生成器對判別器這場賽局的計分板——是兩個網路朝相反方向拉扯的那單一目標。它的決定性特徵在於它是學習而來的,而非固定的:生成器的「損失」不是用手寫公式(如像素誤差)把生成影像與目標相比,而是「我把當前的判別器騙得多漂亮?」,判別器的損失則是「我把贗品抓得多好?」。由於裁判不斷進步,損失地景也不斷變動。

標準的對抗損失是真/假分類的二元交叉熵:判別器最大化「對真實 x 取期望值的 log D(x)」加上「對 z 取期望值的 log(1 − D(G(z)))」,而生成器最小化同一式子(它只掌控第二項)。在判別器的最佳處,這驅使生成器最小化真實分布與生成分布之間的 Jensen–Shannon 散度。如同生成器一節所述,最小化形式 log(1 − D(G(z))) 在贗品容易被抓時會飽和,因此非飽和變體改讓生成器最大化 log D(G(z))——固定點相同,但早期梯度好得多。

許多變體在保留對抗結構的同時更換損失函數。最小平方 GAN(least-squares GAN)以對標籤的平方誤差取代交叉熵(懲罰遠離決策邊界的樣本,減少梯度消失)。鉸鏈損失(hinge loss,用於 SAGAN 與 BigGAN)採用基於間隔(margin)的項。Wasserstein 損失則完全捨棄 log/sigmoid,在 Lipschitz 約束下使用原始的評論者分數差 E[D(真)] − E[D(假)],給出更平滑、更有意義且與樣本品質相關的損失。在影像轉換模型中,對抗損失通常會與一個非對抗項結合——pix2pix 的像素 L1、CycleGAN 的循環一致性——好讓「逼真」與「忠於輸入」彼此平衡。

對抗損失的數值並不是進度條。由於目標會移動,下降的生成器損失既可能代表生成器進步了,也可能只是判別器變弱了;你無法像一般監督式訓練那樣,從損失曲線讀出收斂。請用基於樣本的指標(FID、precision/recall)來評斷 GAN——唯獨 WGAN 例外,那裡評論者對 Wasserstein 距離的估計具有有意義的單調性。