Skip to content

擴散模型:從雜訊中重建世界

擴散模型(Diffusion Models)是一種生成模型,其基本想法是透過模擬「正向擴散」(加入雜訊)與「反向擴散」(去除雜訊)的過程,來學會從純隨機的雜訊中逐步生成真實圖像。這種方法不僅在圖像生成領域取得了驚人的成果,也是目前許多高品質影像生成系統(如 DALL·E 2、Stable Diffusion)背後的核心技術。

首先,我們定義一個正向馬可夫鏈 {x0,x1,,xT}\{x_0, x_1, \dots, x_T\},其中 x0x_0 是真實資料,xTx_T 是幾乎純雜訊。正向過程的目標是逐步對資料加入高斯雜訊:

q(xtxt1)=N(xt;1βtxt1,βtI),q(x_t \mid x_{t-1}) = \mathcal{N}(x_t; \sqrt{1 - \beta_t} x_{t-1}, \beta_t \mathbf{I}),

其中 βt\beta_t 是控制第 tt 步雜訊強度的參數(稱為擴散率),通常設計成逐步遞增的序列。當 tt 趨近最大值 TT 時,xTx_T 變成幾乎純高斯白雜訊。

利用公式遞推可得:

q(xtx0)=N(xt;αˉtx0,(1αˉt)I),q(x_t \mid x_0) = \mathcal{N}(x_t; \sqrt{\bar{\alpha}_t} x_0, (1 - \bar{\alpha}_t)\mathbf{I}),

其中 αˉt=s=1t(1βs)\bar{\alpha}_t = \prod_{s=1}^{t}(1 - \beta_s),表示累積保留原始資訊的比例。

反向過程的目標是從雜訊資料 xTx_T 中一步步去除雜訊,最終還原出資料 x0x_0。這個過程的機率分佈定義如下:

pθ(xt1xt)=N(xt1;μθ(xt,t),Σθ(xt,t)),p_\theta(x_{t-1} \mid x_t) = \mathcal{N}(x_{t-1}; \mu_\theta(x_t, t), \Sigma_\theta(x_t, t)),

其中 μθ\mu_\thetaΣθ\Sigma_\theta 是透過神經網路(例如 U-Net 架構)所學習的平均與變異數函數,參數由 θ\theta 表示。

在實作中,通常簡化假設 Σθ\Sigma_\theta 為固定常數,模型只預測雜訊 ϵθ(xt,t)\epsilon_\theta(x_t, t),並藉由以下方式還原 x0x_0

x^0=1αˉt(xt1αˉtϵθ(xt,t)).\hat{x}_0 = \frac{1}{\sqrt{\bar{\alpha}_t}} \left( x_t - \sqrt{1 - \bar{\alpha}_t} \, \epsilon_\theta(x_t, t) \right).

為了讓模型學會如何還原雜訊,我們隨機抽取 tUniform(1,T)t \sim \text{Uniform}(1, T) 並構造帶雜訊的樣本:

xt=αˉtx0+1αˉtϵ,ϵN(0,I),x_t = \sqrt{\bar{\alpha}_t} x_0 + \sqrt{1 - \bar{\alpha}_t} \, \epsilon, \quad \epsilon \sim \mathcal{N}(0, \mathbf{I}),

然後令模型預測 ϵ\epsilon,訓練目標是最小化下列均方誤差(MSE)損失:

Lsimple=Ex0,ϵ,t[ϵϵθ(xt,t)2].\mathcal{L}_{\text{simple}} = \mathbb{E}_{x_0, \epsilon, t} \left[ \left\| \epsilon - \epsilon_\theta(x_t, t) \right\|^2 \right].

這個簡化目標已被證實能有效訓練出高品質的生成模型。

當模型訓練完成後,我們可以從標準高斯雜訊 xTN(0,I)x_T \sim \mathcal{N}(0, \mathbf{I}) 開始,根據模型學到的反向轉移機率 pθ(xt1xt)p_\theta(x_{t-1} \mid x_t) 逐步還原出 x0x_0。這個過程類似於圖像的「魔術顯影」,每一步都讓影像更加清晰。

與生成對抗網路(GAN)相比,擴散模型雖然生成速度較慢,但在穩定性與樣本多樣性方面表現更好。它不需要對抗式訓練,訓練目標明確,且能自然地進行多步推理與條件生成(如 text-to-image)。

擴散模型的魅力在於它結合了數理簡潔與深度學習的強大表現力。從高斯雜訊中逐步「洗回」一幅圖像的過程,不僅優雅,也打開了創意 AI 應用的新視野。