HWC
← Note

No date

DDIM | Denoising Diffusion Implicit Models

PaperDiffusion

快速解釋

DDIM 不是重新訓練一種 diffusion model,而是重新解讀 DDPM 已經學到的去噪器。論文證明,只要保持每個 timestep 的邊際分布不變,就可以把 forward process 從 Markov chain 擴展到 non-Markovian family,並共享 DDPM 的訓練目標。因此同一個已訓練的 DDPM 網路可以在推論時切換成更快的 generative process;當 sigma_t = 0 時,整個 reverse process 變成 deterministic implicit model,能在少很多步數下維持不錯品質。

問題設定

  • DDPM 透過很多步的 reverse Markov chain 逐步去噪,品質高但 sampling 很慢。
  • 原因不是網路太大,而是 probabilistic construction 本身要求沿著長 chain 反推;例如訓練常用 T = 1000,推論通常也得跑接近 1000 steps。
  • 論文真正要解的問題是:能不能不改訓練目標、不重訓模型,只改 inference / sampling process,就把 reverse chain 變短,甚至變成 deterministic?

核心想法

  • DDPM 的 surrogate objective L_gamma 只依賴每個時間點的邊際分布 q(x_t | x_0),而不直接依賴整個 joint q(x_{1:T} | x_0)。
  • 所以只要保住相同的 marginals,就可以重新設計另一族 non-Markovian forward processes q_sigma。這些新 forward process 雖然 joint 結構不同,但對應的 variational objective 仍可化成和 DDPM 相同型態的 denoising objective。
  • 對每個 noisy sample x_t,網路先預測噪聲,再換算出乾淨樣本的估計 hat{x}_0;接著把這個估計代回 q_sigma(x_{t-1} | x_t, x_0),就能得到新的 reverse update。
  • sigma_t 控制生成過程的隨機性:取到 DDPM 的那組值時,得到的是原本的 stochastic reverse chain;取 sigma_t = 0 時,隨機噪聲項消失,便得到 deterministic 的 DDIM。
  • 進一步地,只取一個時間子序列 tau = [tau_1, ..., tau_S] 來採樣,就能把 1000-step sampler 壓成 100、50 甚至 20 steps,而因為訓練目標沒變,不需要重新訓練網路。
  • deterministic 版本還帶來 consistency:固定同一個 x_T,即使使用不同步數採樣,也會保留相近的高層語意,因此 DDIM 可以做 latent interpolation 與近似 reconstruction,這是標準 DDPM 很難做到的。

關鍵公式

DDPM 的邊際分布與加噪表示為

q(xtx0)=N(xt;αtx0,(1αt)I),xt=αtx0+1αtϵ,ϵN(0,I).q(x_t\mid x_0)=\mathcal{N}\left(x_t;\sqrt{\alpha_t}x_0,(1-\alpha_t)I\right), \qquad x_t=\sqrt{\alpha_t}x_0+\sqrt{1-\alpha_t}\,\epsilon, \quad \epsilon\sim\mathcal{N}(0,I).

對應的去噪訓練目標可以寫成

Lγ(ϵθ)=t=1TγtEx0,ϵt[ϵθ(t)(αtx0+1αtϵt)ϵt22].L_{\gamma}(\epsilon_\theta)=\sum_{t=1}^{T}\gamma_t\,\mathbb{E}_{x_0,\epsilon_t}\left[\left\|\epsilon_\theta^{(t)}\left(\sqrt{\alpha_t}x_0+\sqrt{1-\alpha_t}\,\epsilon_t\right)-\epsilon_t\right\|_2^2\right].

DDIM 關鍵在於把 inference family 推廣成

qσ(x1:Tx0)=qσ(xTx0)t=2Tqσ(xt1xt,x0),q_{\sigma}(x_{1:T}\mid x_0)=q_{\sigma}(x_T\mid x_0)\prod_{t=2}^{T} q_{\sigma}(x_{t-1}\mid x_t,x_0),

其中非 Markovian 條件分布可寫成

qσ(xt1xt,x0)=N(αt1x0+1αt1σt2xtαtx01αt,σt2I).q_{\sigma}(x_{t-1}\mid x_t,x_0)=\mathcal{N}\left( \sqrt{\alpha_{t-1}}x_0 +\sqrt{1-\alpha_{t-1}-\sigma_t^2}\,\frac{x_t-\sqrt{\alpha_t}x_0}{\sqrt{1-\alpha_t}}, \sigma_t^2 I \right).

論文的理論核心是:對任意合法的 sigma,其 variational objective 都可以對應到同一類 denoising surrogate objective:

Jσ(ϵθ)=Eqσ[logqσ(x1:Tx0)logpθ(x0:T)]=Lγ(ϵθ)+C.J_{\sigma}(\epsilon_\theta)=\mathbb{E}_{q_{\sigma}}\left[\log q_{\sigma}(x_{1:T}\mid x_0)-\log p_\theta(x_{0:T})\right]=L_{\gamma}(\epsilon_\theta)+C.

這代表同一個已訓練好的去噪網路,不必重訓就能搭配不同的生成過程。

對於每一步 reverse update,先由噪聲預測器還原乾淨樣本估計:

x^0=fθ(t)(xt)=xt1αtϵθ(t)(xt)αt.\hat{x}_0=f_\theta^{(t)}(x_t)=\frac{x_t-\sqrt{1-\alpha_t}\,\epsilon_\theta^{(t)}(x_t)}{\sqrt{\alpha_t}}.

再利用 hat{x}_0 寫出統一的 sampling update:

xt1=αt1x^0+1αt1σt2ϵθ(t)(xt)+σtϵt,ϵtN(0,I).x_{t-1}=\sqrt{\alpha_{t-1}}\,\hat{x}_0 +\sqrt{1-\alpha_{t-1}-\sigma_t^2}\,\epsilon_\theta^{(t)}(x_t) +\sigma_t\,\epsilon_t, \qquad \epsilon_t\sim\mathcal{N}(0,I).
  • 當 sigma_t 取 DDPM 對應值時,這就是原本的 stochastic diffusion sampling。
  • 當 sigma_t = 0 時,最後一項噪聲消失,整個映射變成 deterministic,這就是 DDIM。

論文還用單一參數 eta 控制 stochasticity:

στi(η)=η1ατi11ατi1ατiατi1.\sigma_{\tau_i}(\eta)=\eta\sqrt{\frac{1-\alpha_{\tau_{i-1}}}{1-\alpha_{\tau_i}}}\sqrt{1-\frac{\alpha_{\tau_i}}{\alpha_{\tau_{i-1}}}}.
  • eta = 0 對應 deterministic DDIM。
  • eta = 1 會更接近 DDPM 式的隨機採樣。

最後,DDIM update 還可以改寫成一條 ODE 的 Euler discretization。若定義

xˉ(t)=x(t)α(t),σ(t)=1α(t)α(t),\bar{x}(t)=\frac{x(t)}{\sqrt{\alpha(t)}}, \qquad \sigma(t)=\sqrt{\frac{1-\alpha(t)}{\alpha(t)}},

則有

dxˉ(t)=ϵθ(t)(xˉ(t)σ(t)2+1)dσ(t).d\bar{x}(t)=\epsilon_\theta^{(t)}\left(\frac{\bar{x}(t)}{\sqrt{\sigma(t)^2+1}}\right)d\sigma(t).

這個觀點解釋了為什麼 DDIM 可以做近似的 encode / decode、latent interpolation,以及和 probability flow ODE 的關聯。

模型結構

  1. 訓練網路:DDIM 沒有發明新的 backbone,直接沿用 DDPM 的噪聲預測網路。論文實驗使用的是和 DDPM 相同的 U-Net / Wide ResNet 風格架構。
  2. 訓練方式:完全沿用 DDPM 的 denoising objective,也就是在不同 noise levels 上預測加到資料上的 Gaussian 噪聲。
  3. 推論入口:先選一條 sampling trajectory tau,也就是從原本 1 ... T 中挑出少量 timesteps;再選 stochasticity 參數 eta,決定更像 DDPM 還是 DDIM。
  4. 每一步生成:從目前的 x_t 先用網路預測噪聲,再還原 hat{x}_0,最後用上面的閉式更新公式求出 x_{t-1}。
  5. 速度與品質 trade-off:S = |tau| 越小,採樣越快;但步數太少時品質會下降。DDIM 的重點是:在小 S 的 regime 下,它通常比 DDPM 保持更好的品質。
  6. 隱式模型特性:當 eta = 0 時,從 x_T 到 x_0 的映射是固定的,所以同一個 latent 會對應到穩定的高層語意。這讓 DDIM 額外具備 latent interpolation、近似 reconstruction,以及與 Neural ODE 類似的結構性。