---
# System prepended metadata

title: Denoising Diffusion Probabilistic Models

---

# 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 模型結構

![螢幕擷取畫面 2025-09-02 001808](https://hackmd.io/_uploads/SJHKvBm5gl.png)

>圖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. 實驗結果

![螢幕擷取畫面 2025-09-02 002253](https://hackmd.io/_uploads/rkSndBm5le.png)

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

![螢幕擷取畫面 2025-09-02 002548](https://hackmd.io/_uploads/B1ALYHX5ge.png)

>圖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 動力學，並與自回歸模型存在關聯。
* 擴散模型在不影響其理論基礎的條件下簡化訓練目標，顯著提升樣本品質。
* 擴散模型在影像生成與壓縮領域具強大潛力，在圖生圖、文生圖與提升圖像品質等應用起到關鍵作用。