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\) ,每步:
\(\beta_t\) 是小雜訊方差(線性或餘弦排程), \(T \approx 1000\) 。利用高斯分布的可加性,可以一步跳到任意時刻:
當 \(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\) 足夠小時,可用高斯近似,且其均值可用網路預測:
2.3 訓練目標:預測雜訊#
DDPM 的漂亮結果:對反向高斯的變分下界化簡後,訓練目標退化為一個加權去噪回歸。若讓網路直接預測加入的雜訊 \(\epsilon_0\) (而不是預測均值),損失成為:
直觀敘述:隨機挑一個時間步 \(t\) ,把圖像與雜訊按比例混合,訓練網路從混合物中猜出雜訊。等價於學習分數函數 \(\nabla_{x_t} \log p(x_t)\) (score matching,與 Song 的分數模型殊途同歸)。訓練時隨機 \(t\) 意味著模型同時學會「重噪时只擦大輪廓、輕噪時補細節」的多尺度分解——這是擴散模型品質的另一個來源。
2.4 採樣與加速#
樸素採樣要跑滿 \(T\) 步(慢),後續加速:DDIM(把馬爾可夫鏈換成非馬爾可夫,可 20-50 步採樣)、蒸餾(progressive/consistency distillation,把多步蒸餾成 1-4 步)。採樣速度從「幾分鐘」壓到「秒級」,是擴散模型可產品化的前提。
flowchart LR
A[x0 真實圖像] -->|前向: 加噪 q(xt-1|xt)| B[xT 純雜訊]
B -->|反向: 去噪 p_theta| A
subgraph 訓練
C[隨機 t + 真雜訊] --> D[目標: 預測 ε<br/>簡單 MSE, 處處有梯度]
end
D --> E[U-Net + Attention]
E --> F[穩定訓練 + 可規模化]三、引導生成:文字如何控制圖像#
3.1 條件機制與引導#
無條件生成只是「畫點什麼」;要「按提示詞畫」,需學條件分佈 \(p(x \mid c)\) ( \(c\) 為文字編碼)。DDPM 把 \(c\) 注入 U-Net(cross-attention),並用引導(guidance)銳化條件效應:
\(\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 解碼回像素:
這正是 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)」這一步,讓視覺生成正式接入語言模型的縮放邏輯。
六、本節重點#
- DDPM:前向固定加噪、反向學去噪;訓練目標化簡為「預測雜訊」的 MSE,隨機時間步使模型同時掌握多尺度去噪。
- 勝負手是訓練穩定與可規模化,而非樣本品質本身——與語言模型「縮放邏輯」同構。
- 文字控制三件套:條件注入(cross-attention)+ 引導(CFG/負提示)+ CLIP 語義橋樑;文字編碼器品質直接決定生成品質。
- Stable Diffusion 用 VAE 潛空間壓縮 48 倍使消費級 GPU 可跑;開源引爆 ControlNet/LoRA 生態,同時引爆版權與治理爭議。
- 擴散成為跨模態統一骨架,DiT(Transformer 化)讓視覺生成接入縮放定律——直接鋪路 Sora(7.1 節)。
七、思考問題#
- 「預測雜訊」與「預測分數函數 \(\nabla_x \log p(x)\) 」等價。為什麼預測雜訊在實務上數值更穩定?
- CFG 的 guidance scale 是「品質 vs 多樣性」的旋鈕。這與 RLHF 的 KL 懲罰有何結構相似?兩者都在「條件強度」與「分佈偏移」之間取捨嗎?
- Stable Diffusion 在 VAE 潛空間擴散,理論上「像素級精確資訊已丟失」。哪些任務會因此受損?如何補救?
- 版權訴訟的本質是「模型是否記憶並複製了訓練資料」。擴散模型的記憶機制與語言模型有何異同?如何技術性檢測?