---
# System prepended metadata

title: Untitled

---

## 學習筆記（一）Diffusion Model

### Introduction

Diffusion Model 的核心概念
- 透過給予原圖像
    - 進行逐步加入雜訊的過程（Encoder）
    - 然後再透過（Decoder）來學習如何 Denoise 解析還原成原圖像


### Proposed Method
![DiffusionModelWorkflow](https://hackmd.io/_uploads/HJA9o0qIn.png)
- **Diffusion Model** 整體的 framework/workflow 主要可以概括分為兩個階段
    - **Encoder: 加雜訊**
    - **Decoder: 去雜訊**

![EncoderPseudoCode](https://hackmd.io/_uploads/Bk-pb3tI3.png)

- 從樣本集中抽樣一張未被加入雜訊的原圖像 $x_0 \in R^{M \times N \times C}$。
- 給定 $T \in R^{+}$ 組權重 $\{\overline{a}_1, ..., \overline{a}_T\}, a_t \in [0,1]$，一般而言 $t$ 越大的權重值越小。
- 抽樣一組權重 $\overline{a}_t$
    - 從聯合分佈 $Uniform（\{1,...,T\}）$ 分佈抽樣 $t$，來索引對應的權重 $\overline{a}_t$。
- 抽樣一個雜訊矩陣 $\epsilon$
    - 從高斯分佈 $N(0, 1)$，抽樣一個與 $x_0$ 尺寸一致的雜訊矩陣 $\epsilon \in R^{M \times N \times C}$。
- 計算損失 Loss
    - $\epsilon$: Target Noise
    - $\epsilon_\theta$: Noise Predictor
        - ![Noise Predictor](https://hackmd.io/_uploads/H1D1k6Y8n.png)
    - $\sqrt{\overline{a}_t}x_0 + \sqrt{1-\overline{a}_t}\epsilon$: Noisy Image
        - ![Noisy Image](https://hackmd.io/_uploads/r1IMJ6tUh.png)

#### Implementation
![Implementation](https://hackmd.io/_uploads/HJ1oWTY8h.png)
- 概念上
    - Diffusion Model 的 Encoder 在概念上是逐步針對原圖像加入雜訊，逐漸趨近成一張雜訊圖。
- 實際上
    - Diffusion Model 的 Encoder 在實現上，則是一步到位只會針對原圖像加入一次雜訊。



