GAN 變體家族互動實驗室:DCGAN、WGAN、StyleGAN 各自解決什麼問題,並互動理解 WGAN 為何更穩定、StyleGAN 的潛在空間插值與風格混合。

GAN Family · DCGAN · WGAN · StyleGAN

GAN 變體家族 · 互動實驗室

原始 GAN 會了「對抗」,但訓練不穩、會模式崩潰、也控制不了生成內容。後續三個里程碑各補一塊:DCGAN 給它卷積骨架、WGAN 換了更穩的損失、StyleGAN 讓潛在空間變得可控可插值。這裡用兩個互動小實驗,親手感受 WGAN 與 StyleGAN 的關鍵想法。

2014
GAN
Generative Adversarial Network
🎯 開創
生成器 vs 判別器的對抗訓練。能生成,但訓練不穩、常模式崩潰。
關鍵:minimax 對抗、JS 散度
2015
DCGAN
Deep Convolutional GAN
🧱 給它骨架
把 G/D 換成卷積網路,加 BatchNorm、去池化。第一個能穩定生出像樣圖片的架構範式。
關鍵:轉置卷積上採樣、架構準則
2017
WGAN
Wasserstein GAN
📉 換損失
用 Wasserstein(推土機)距離取代 JS。判別器變「評論家」,梯度不再消失,損失還能反映品質。
關鍵:1-Lipschitz、梯度不消失 → 見分頁 2
2018–19
StyleGAN
Style-based GAN
🎛️ 給它旋鈕
不再把雜訊直接餵進去,而是先映射到 W 空間、逐層注入「風格」。可插值、可分層混合(粗略姿態 / 細節顏色)。
關鍵:W 潛在空間、風格混合 → 見分頁 3

一句話總結這條演化線

原始 GAN 解決「能不能生成」;DCGAN 解決「用什麼網路生成」;WGAN 解決「怎麼穩定地訓練」;StyleGAN 解決「怎麼控制生成什麼」。四步剛好對應:目標 → 架構 → 損失 → 可控性。

想看原始 GAN 的對抗訓練本身(模式崩潰、決策邊界演化),請看另一頁「GAN · 對抗訓練實驗室」。這頁專講它的三個後代。

為什麼 WGAN 更穩?

原始 GAN 用 JS 散度衡量真假分佈的差距。當兩個分佈幾乎不重疊(訓練初期常見),JS 散度飽和成常數 → 判別器太完美 → 傳給生成器的梯度趨近 0,生成器學不動。WGAN 改用 Wasserstein 距離,就算不重疊也給出平滑、有意義的梯度。

把 θ 拉大(分佈分開)→ 看右圖:GAN 梯度崩到 0,而 WGAN 梯度維持恆定。這就是 WGAN 能穩定訓練的核心。

原始 GAN(JS 散度) 分佈不重疊 → JS = log2(常數)→ ∂/∂G ≈ 0
WGAN(Wasserstein / 推土機距離) W(Pr,Pg) = 把一堆土從 Pg 搬成 Pr 的最小成本 ∝ θ

評論家(critic)須滿足 1-Lipschitz(斜率有上限),WGAN 用權重裁剪、WGAN-GP 用梯度懲罰來達成。

真假分佈 + 判別器/評論家輸出θ = 2.00

真實 Pr 生成 Pg GAN 判別器 D(x) WGAN 評論家 f(x)

傳給生成器的梯度 vs 分佈距離

GAN 梯度(會消失) WGAN 梯度(恆定)
分佈距離 θ
2.00
GAN 對 G 的梯度
–
WGAN 對 G 的梯度
–

分佈分開時,GAN 梯度幾乎為 0(生成器學不動);WGAN 仍給出穩定梯度,把生成分佈平順地拉向真實。

潛在空間插值 & 風格混合

StyleGAN 先把雜訊 z 映射到「風格空間 W」,再逐層注入到生成過程。低層決定粗略特徵(臉形、姿態),高層決定細節特徵(膚色、光澤)。因此可以「A 的姿態 + B 的顏色」。下面用程序化肖像示範同樣的分層概念。

拖動 α,看肖像從 A 平滑變到 B。潛在空間是連續的,中間每一點都是合理的臉 → 這就是「可插值」。

真正的 StyleGAN 生成的是照片級人臉;這裡用可解釋的程序化肖像,重點在示範「潛在向量連續、風格可分層控制」這兩個概念。

輸出

插值結果(A 與 B 的混合)

來源 A(姿態/形狀)
來源 B(顏色/細節)