跳轉到

6.2 擴散模型 DDPM 與 Stable Diffusion(2020-2022)#

一、歷史背景:第三條路的時機#

2014-2019 年,GAN 壟斷了圖像生成的話語權,但它的訓練脆弱性(模式崩潰、超參敏感、難以規模化)始終是懸頂之劍。擴散模型的思想其實更早(2015 年 Sohl-Dickstein 等人的《Deep Unsupervised Learning using Nonequilibrium Thermodynamics》已提出框架),卻沉寂五年。轉折點是 2020 年 6 月 Ho 等人的 DDPM(Denoising Diffusion Probabilistic Models):把擴散框架與當時已成熟的網路組件(U-Net、注意力)組合,在 CIFAR-10 上首次達到與 GAN 相當的 IS/FID。2021 年的改進(分類器引導 classifier guidance)與 2022 年的 Stable Diffusion(潛在擴散 + CLIP 條件 + 開源)完成了對 GAN 的全面取代。

擴散模型獲勝的原因值得深思:它不是在「生成品質」上打敗 GAN,而是在「訓練穩定性與可規模性」上打敗 GAN——一個簡單的迴歸損失、處處有梯度、可堆大模型、可加條件。這正是深度學習時代最稀缺的品質,也是語言模型路線「縮放就是一切」的同一邏輯在視覺領域的重演。

二、DDPM:去噪即生成#

2.1 前向過程:把資料泡進雜訊#

定義一個固定的馬爾可夫前向過程,逐步給資料加高斯雜訊。給定資料 \(x_0\) ,每步:

\[ q(x_t \mid x_{t-1}) = \mathcal{N}(x_t; \sqrt{1-\beta_t}\, x_{t-1},\; \beta_t I), \qquad t = 1, \dots, T \]

\(\beta_t\) 是小雜訊方差(線性或餘弦排程), \(T \approx 1000\) 。利用高斯分布的可加性,可以一步跳到任意時刻:

\[ q(x_t \mid x_0) = \mathcal{N}(x_t; \sqrt{\bar\alpha_t}\, x_0,\; (1-\bar\alpha_t) I), \qquad \bar\alpha_t = \prod_{s=1}^{t} (1-\beta_s) \]

當 \(t = T\) , \(\bar\alpha_T \approx 0\) , \(x_T\) 近乎純高斯雜訊——任何圖像最終都泡成一團雜訊。

2.2 反向過程:學會「逐步去噪」#

生成就是前向的逆過程:從 \(x_T \sim \mathcal{N}(0, I)\) 開始,逐步去噪回 \(x_0\) 。反向轉移 \(q(x_{t-1} \mid x_t)\) 不可直接得(需要邊緣化整條軌跡),但當 \(\beta_t\) 足夠小時,可用高斯近似,且其均值可用網路預測:

\[ p_\theta(x_{t-1} \mid x_t) = \mathcal{N}(x_{t-1};\; \mu_\theta(x_t, t),\; \sigma_t^2 I) \]

2.3 訓練目標:預測雜訊#

DDPM 的漂亮結果:對反向高斯的變分下界化簡後,訓練目標退化為一個加權去噪回歸。若讓網路直接預測加入的雜訊 \(\epsilon_0\) (而不是預測均值),損失成為:

\[ \mathcal{L}_{\text{simple}} = \mathbb{E}_{x_0,\, \epsilon \sim \mathcal{N}(0,I),\, t}\left[\left\| \epsilon - \epsilon_\theta\!\left(\sqrt{\bar\alpha_t}\,x_0 + \sqrt{1-\bar\alpha_t}\,\epsilon,\; t\right)\right\|^2\right] \]

直觀敘述:隨機挑一個時間步 \(t\) ,把圖像與雜訊按比例混合,訓練網路從混合物中猜出雜訊。等價於學習分數函數 \(\nabla_{x_t} \log p(x_t)\) (score matching,與 Song 的分數模型殊途同歸)。訓練時隨機 \(t\) 意味著模型同時學會「重噪时只擦大輪廓、輕噪時補細節」的多尺度分解——這是擴散模型品質的另一個來源。

2.4 採樣與加速#

樸素採樣要跑滿 \(T\) 步(慢),後續加速:DDIM(把馬爾可夫鏈換成非馬爾可夫,可 20-50 步採樣)、蒸餾(progressive/consistency distillation,把多步蒸餾成 1-4 步)。採樣速度從「幾分鐘」壓到「秒級」,是擴散模型可產品化的前提。

三、引導生成:文字如何控制圖像#

3.1 條件機制與引導#

無條件生成只是「畫點什麼」;要「按提示詞畫」,需學條件分佈 \(p(x \mid c)\) ( \(c\) 為文字編碼)。DDPM 把 \(c\) 注入 U-Net(cross-attention),並用引導(guidance)銳化條件效應:

\[ \epsilon_\theta(x_t, t, c) \;+\; \gamma \left[\epsilon_\theta(x_t, t, c) - \epsilon_\theta(x_t, t, \varnothing)\right] \]

\(\gamma\) (guidance scale)越大越貼合提示詞但越多樣性損失;「負提示詞」把 \(\varnothing\) 換成不想要的內容描述。分類器引導(2021)→ 無分類器引導(CFG, 2022)的演進,讓條件控制變成標準配置。

3.2 CLIP:文字-圖像的羅塞塔石碑#

文字控制的語義橋樑是 CLIP(Radford et al., 2021):用 4 億圖文對,對比學習把圖像與文字嵌入同一空間(最大化匹配對的餘弦相似度)。CLIP 的意義遠超評分:

  • 它證明網路級圖文對足以對齊兩個模態,不需要人工標籤;
  • 它成為文生圖的條件編碼器(Stable Diffusion 用 CLIP 文字編碼器)與評估器(CLIP score);
  • 它是多模態大模型的直系祖先(7.2 節)。

四、Stable Diffusion:潛在擴散與開源革命#

4.1 潛在擴散(Latent Diffusion, Rombach et al. 2022)#

像素級擴散太貴(512×512×3 的張量逐層去噪)。Stable Diffusion(LDM)的關鍵一步:先用 VAE 把圖像壓縮到潛空間(512×512×3 → 64×64×4,約 48 倍壓縮),在潛空間做擴散,最後用 VAE 解碼回像素:

\[ z_0 = \mathcal{E}(x_0) \;\xrightarrow{\text{潛空間擴散}}\; \hat{z}_0 \;\xrightarrow{\mathcal{D}}\; \hat{x}_0 \]

這正是 6.1 節 VAE 潛空間思想的回收:VAE 負責「語義壓縮」(丟掉對細節的過度精度),擴散負責「語義生成」。計算量降兩個數量級,使消費級 GPU 可跑。

4.2 架構與開源效應#

SD 1.x 的組成:CLIP ViT-L 文字編碼器 + VAE(f=8 自編碼器)+ 在潛空間的 U-Net(含 cross-attention 注入文字)。訓練於 LAION-5B 圖文對。2022 年 8 月,Stability AI 以寬鬆許可開源 SD 1.4/1.5——與 LLaMA(4.2 節)同樣的開源引爆模式:

  • ControlNet(2023):把邊緣、深度、姿態等條件注入 U-Net,精確控制構圖;
  • LoRA 生態:低秩適配微調使風格/角色客製化以 MB 為單位分發,Civitai 等社區爆發;
  • 商業與倫理衝擊:插畫行業震盪、訓練資料版權訴訟(Getty、藝術家集體訴訟)、「訓練資料是否需要授權」成為 AI 政策核心爭議。技術中立與利益再分配的衝突,自此成為生成模型時代的主題曲。

4.3 DALL·E 2 / Imagen:閉源側的競賽#

同期閉源模型(DALL·E 2 的 unCLIP、Google Imagen 的 T5 條件 + 大規模擴散)證明了同一範式的天花板更高:更好的文字編碼器(T5 vs CLIP)顯著提升提示遵循度——語言理解品質直接決定文生圖品質,這是語言模型路線反哺視覺的第一個鐵證。

五、範式總結:擴散為何勝出#

維度 GAN VAE DDPM/SD
訓練穩定性 差(博弈) 好 好(純回歸)
樣本品質 銳利 模糊 銳利且多樣
多樣性 模式崩潰 好 好
可規模化 難 中 好(堆 U-Net/DiT)
似然/控制 無似然 有 ELBO 有 ELBO + 條件易加
採樣速度 快 快 慢(後被蒸餾解決)

擴散模型幾乎在所有維度上取得折衷最優,唯一劣勢(採樣慢)被 DDIM/蒸餾修復。此後擴散成為生成模型的統一骨架:視頻(Sora 的 DiT,7.1 節)、音頻、3D、分子生成全部擴散化。而「把 U-Net 換成 Transformer(DiT)」這一步,讓視覺生成正式接入語言模型的縮放邏輯。

六、本節重點#

  1. DDPM:前向固定加噪、反向學去噪;訓練目標化簡為「預測雜訊」的 MSE,隨機時間步使模型同時掌握多尺度去噪。
  2. 勝負手是訓練穩定與可規模化,而非樣本品質本身——與語言模型「縮放邏輯」同構。
  3. 文字控制三件套:條件注入(cross-attention)+ 引導(CFG/負提示)+ CLIP 語義橋樑;文字編碼器品質直接決定生成品質。
  4. Stable Diffusion 用 VAE 潛空間壓縮 48 倍使消費級 GPU 可跑;開源引爆 ControlNet/LoRA 生態,同時引爆版權與治理爭議。
  5. 擴散成為跨模態統一骨架,DiT(Transformer 化)讓視覺生成接入縮放定律——直接鋪路 Sora(7.1 節)。

七、思考問題#

  1. 「預測雜訊」與「預測分數函數 \(\nabla_x \log p(x)\) 」等價。為什麼預測雜訊在實務上數值更穩定?
  2. CFG 的 guidance scale 是「品質 vs 多樣性」的旋鈕。這與 RLHF 的 KL 懲罰有何結構相似?兩者都在「條件強度」與「分佈偏移」之間取捨嗎?
  3. Stable Diffusion 在 VAE 潛空間擴散,理論上「像素級精確資訊已丟失」。哪些任務會因此受損?如何補救?
  4. 版權訴訟的本質是「模型是否記憶並複製了訓練資料」。擴散模型的記憶機制與語言模型有何異同?如何技術性檢測?