# Denoising Diffusion Probabilistic Models
Jonathan Ho, Ajay Jain, Pieter Abbeel, (NeurIPS 2020)
https://proceedings.neurips.cc/paper/2020/hash/4c5bcfec8584af0d967f1ab10179ca4b-Abstract.html
## 1. 摘要
本研究提出高品質影像生成的擴散機率模型(Diffusion Probabilistic Models),此類模型源於非平衡熱力學的啟發,屬於潛變數模型的一種。研究中發現,當模型以特定參數化方式訓練時,能與多層雜訊等級的去雜訊分數匹配(Denoising Score Matching)以及退火 Langevin 動力學等價,並可自然延伸為漸進式有損解碼(Progressive Lossy Decoding)。在 CIFAR10 上達到 Inception Score 9.46 與 FID 3.17 的成果,在 256×256 LSUN 上的樣本品質接近 ProgressiveGAN。
## 2. 研究目的
* 驗證擴散模型能否生成高品質影像,與其他生成模型競爭。
* 建立擴散模型與去雜訊分數匹配及退火 Langevin 動力學之間的數學連結。
* 提出簡化變分下界的訓練目標,以提升樣本品質與訓練穩定性。
* 探索擴散模型在漸進式影像壓縮與生成上的應用可能性。
## 3. 研究方法
### 3.1 模型結構

>圖1. 本研究考慮的有向圖模型。
* 前向過程(Forward Process):
逐步向資料加入高斯雜訊,直至訊號被完全摧毀:$q(x_t \mid x_{t-1}) = \mathcal{N}\!\left(x_t;\, \sqrt{1-\beta_t}\,x_{t-1},\, \beta_t I\right)$。可閉式取樣:$q(x_t|x_0) = \mathcal{N}(\sqrt{\bar{\alpha}_t}x_0, (1-\bar{\alpha}_t)I)$
* 反向過程(Reverse Process):
學習高斯轉移分佈以逆轉前向過程:$p_\theta(x_{t-1}|x_t) = \mathcal{N}(\mu_\theta(x_t, t), \Sigma_\theta(x_t, t))$
* 參數化策略:
採用 $\epsilon$-prediction 形式:$\mu_\theta(x_t, t) = \frac{1}{\sqrt{\alpha_t}}\left(x_t - \frac{\beta_t}{\sqrt{1-\bar{\alpha}_t}} \epsilon_\theta(x_t, t)\right)$
* 網路架構:
以 U-Net 為骨幹,融合 PixelCNN++ 改良與自注意力機制
* 參數說明:
| 符號/式子 | 名稱 | 定義/意義 | 備註 |
| --------------------------------------------------------------------------------------------------------------------------- | --------------------------- | ------------------ | ------------------------------------------------------------------------------------------------------ |
| $x_0$ | 乾淨資料 | 原始樣本(如影像) | — |
| $x_t$ | 噪聲狀態 | 時間步 $t$ 的含噪樣本 | $t=1,\dots,T$ |
| $\beta_t$ | 噪聲步長 | 前向過程每步加入的噪聲強度 | 通常小且遞增(schedule) |
| $\alpha_t=1-\beta_t$ | 保留係數 | 單步保留訊號比例 | — |
| $\bar\alpha_t=\prod_{s=1}^t \alpha_s$ | 累積保留 | 前 $t$ 步後的訊號比例 | 常用於閉式取樣 |
| $q(x_t\!\mid\!x_{t-1})=\mathcal N(\sqrt{1-\beta_t}\,x_{t-1},\,\beta_t I)$ | 前向轉移 | 逐步加高斯噪聲 | 將訊號漸「毀損」至各向同性高斯 |
| $q(x_t\!\mid\!x_0)=\mathcal N(\sqrt{\bar\alpha_t}\,x_0,(1-\bar\alpha_t)I)$ | 前向閉式 | 不經歷全部步驟也能直接取樣 | 常用重參數化:$x_t=\sqrt{\bar\alpha_t}x_0+\sqrt{1-\bar\alpha_t}\,\epsilon$, $\epsilon\!\sim\!\mathcal N(0,I)$ |
| $p_\theta(x_{t-1}\!\mid\!x_t)=\mathcal N(\mu_\theta(x_t,t),\Sigma_\theta(x_t,t))$ | 反向轉移 | 學習把噪聲「去掉」 | 近似真實後驗 $q(x_{t-1}\!\mid\!x_t,x_0)$ |
| $\epsilon_\theta(x_t,t)$ | 噪聲預測網路 | 輸入 $x_t,t$,預測加入的噪聲 | U-Net 類架構常見 |
| $\mu_\theta(x_t,t)=\frac{1}{\sqrt{\alpha_t}}\!\left(x_t-\frac{\beta_t}{\sqrt{1-\bar\alpha_t}}\epsilon_\theta(x_t,t)\right)$ | 反向均值($\epsilon$-prediction) | 用預測噪聲還原均值 | DDPM 經典參數化 |
| $\Sigma_\theta(x_t,t)$ | 反向方差 | 反向步驟的噪聲協方差 | 常固定為 $\tilde\beta_t I$ 或學習;$\tilde\beta_t=\frac{1-\bar\alpha_{t-1}}{1-\bar\alpha_t}\beta_t$ |
### 3.2 簡化訓練目標
* 原始變分下界 $L$ 包含多個 KL 項,對應不同 $t$ 的去雜訊任務:$L_{\text{simple}}(\theta) = \mathbb{E}{t,x_0,\epsilon} \left[ |\epsilon - \epsilon\theta(\sqrt{\bar{\alpha}_t}x_0 + \sqrt{1-\bar{\alpha}_t}\epsilon, t)|^2 \right]$
* 隨機均勻取樣 $t \in {1, \dots, T}$ 進行訓練。
* 參數說明:
| 元素 | 定義/公式 | 角色/意義 | 取樣/範圍(常見設定) |
| ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- | ------------------------------------------------------------ |
| $L$(ELBO) | 由多個 KL 與邊界項組成的變分下界 | 真實對數似然 $\log p_\theta(x_0)$ 的下界;每個時間步 $t$ 對應一個「去雜訊子任務」 | 訓練與評估時可計算;論文多用來**報告逼真度** |
| $L_{\text{simple}}(\theta)$ | $\displaystyle \mathbb{E}_{t,x_0,\epsilon}\!\left[\left\|\epsilon-\epsilon_\theta\!\big(\sqrt{\bar\alpha_t}x_0+\sqrt{1-\bar\alpha_t}\,\epsilon,\;t\big)\right\|_2^2\right]$ | **簡化訓練損失**;在固定或恰當參數化的方差下,與 ELBO 中主要 KL 項僅差常數/權重 | 實作上即用這個 MSE 當作訓練目標 |
| $t$ | 擴散時間步 | 抽樣不同噪聲強度的去雜訊子任務 | **均勻隨機**:$t\sim\text{Unif}\{1,\dots,T\}$ |
| $x_0$ | 乾淨資料 | 原始樣本 | $x_0\sim p_{\text{data}}$ |
| $\epsilon$ | 加入的高斯噪聲 | 重參數化用的隨機性來源 | $\epsilon\sim\mathcal N(0,I)$ |
| $x_t$ | 含噪樣本 | 由閉式前向式產生 | $x_t=\sqrt{\bar\alpha_t}x_0+\sqrt{1-\bar\alpha_t}\,\epsilon$ |
| $\epsilon_\theta(x_t,t)$ | 噪聲預測網路 | 輸入 $x_t,t$ 輸出對 $\epsilon$ 的估計 | U-Net 類架構常見 |
| $\beta_t,\alpha_t,\bar\alpha_t$ | 噪聲日程 | $\alpha_t=1-\beta_t,\;\bar\alpha_t=\prod_{s=1}^t\alpha_s$ | $\beta_t$ 小且遞增(線性/餘弦等) |
## 4. 實驗結果

>圖2. CIFAR10 結果。NLL 以 bits/dim 衡量。

>圖3. 無條件 CIFAR10 反向過程的參數化與訓練目標消融。空白項目在訓練時不穩定,且生成了品質不佳的樣本,並出現超出範圍的分數。
* CIFAR10(無條件生成)最佳結果:
IS = 9.46,FID = 3.17(訓練集計算),NLL ≤ 3.75 bits/dim。與 StyleGAN2、NCSN 等比較,樣本品質具競爭力甚至超越多數模型。
* 參數化與目標函數對比:
$\epsilon$-prediction + $L_{\text{simple}}$ 明顯優於 $\tilde{\mu}$-prediction。固定方差 $\Sigma$ 比學習方差更穩定,且樣本品質更佳。
* Progressive Coding:
發現模型在有損壓縮表現優秀,大部分比特用於不可感知細節。漸進生成時,大尺度結構先生成,細節後補。
* 影像插值:
在潛空間進行線性插值,再由反向過程解碼,可生成平滑且屬性連續變化的影像。
## 5. 結論
* 擴散模型的靈感來自分數匹配、Langevin 動力學,並與自回歸模型存在關聯。
* 擴散模型在不影響其理論基礎的條件下簡化訓練目標,顯著提升樣本品質。
* 擴散模型在影像生成與壓縮領域具強大潛力,在圖生圖、文生圖與提升圖像品質等應用起到關鍵作用。