DDPM阅读笔记

DDPM阅读笔记

ddpm

论文(NeurIPS 2020):Denoising Diffusion Probabilistic Models

1 Diffusion Pipeline

1.1 加噪过程

总体过程:

$$x_0 \xrightarrow{q} x_1 \xrightarrow{q} x_2 \xrightarrow{q} \cdots \xrightarrow{q} x_{T-1} \xrightarrow{q} x_T = z$$

定义每一步中,加噪声 $\beta_t=1-\alpha_t$ ,其中 $\beta_t$ 随 $t$ 增加而增加;加噪过程每一步都是步长为 $1$ 的马尔科夫过程:

$$q(x_{1:T}|x_0) := \prod_{t=1}^{T} q(x_t|x_{t-1}), \quad \text{where} \quad q(x_t|x_{t-1}) := \mathcal{N}(x_t; \sqrt{\alpha_t}x_{t-1}, (1-\alpha_t)I)$$

可以看出 $x_t$ 随时间增大,越来越接近高斯分布(下式中,$z_t$ 为标准正态分布):

$$x_t = \sqrt{\alpha_t} x_{t-1} + \sqrt{(1 – \alpha_t)} z_t = \sqrt{\alpha_t} x_{t-1} + \sqrt{\beta_t} z_t$$

将递推式整合,其中 $\overline{\alpha}_t$ 定义为 $\alpha_1$ 到 $\alpha_t$ 的乘积,可以得到:

$$\begin{aligned} q(x_t|x_0) &= \mathcal{N}(x_t; \mu(x_t, t), \sigma^2(x_t, t)I) \\ &= \mathcal{N}\left(x_t; \sqrt{\overline{\alpha}_t}x_0, (1 – \overline{\alpha}_t)I\right) \end{aligned}$$

加噪过程是确定的,没有模型的介入. 其目的是制作训练时标签。

1.2 去噪过程

由贝叶斯公式:

$$p(x_{t-1} | x_t, x_0) = \frac{p(x_t | x_{t-1}, x_0) p(x_{t-1} | x_0)}{p(x_t | x_0)}$$

可以推出 $p(x_{t-1} | x_t, x_0)$ 也服从高斯分布:

$$p(x_{t-1} | x_t, x_0) = \mathcal{N}\left(x_{t-1}; \frac{\sqrt{\alpha_t} (1 – \overline{\alpha}_{t-1})}{1 – \overline{\alpha}_t} x_t + \frac{\sqrt{\overline{\alpha}_{t-1}} (1 – \alpha_t)}{1 – \overline{\alpha}_t} x_0, \frac{1 – \overline{\alpha}_{t-1}}{1 – \overline{\alpha}_t} (1 – \alpha_t)I\right)$$

我们的目标就是让 $p_{\theta}(x_{t-1} | x_t)$ 更接近真实分布 $p(x_{t-1} | x_t,x_0)$ ,即最小化:

$$\underset{\theta}{\mathrm{argmin}} \, \left| u(x_0, x_t), u_\theta(x_t, t) \right|$$

DDPM认为,直接预测真实分布是比较困难的,于是预测每一步加的噪声,并用MSE最小化:

$$\mathbb{E}_{t \sim T} \left\| \epsilon – \epsilon_\theta (x_t, t) \right\|_2^2$$

1.3 训练与推理

  • 在训练过程中,只需要对齐均值(方差是定值);
  • 在推理过程中,自然带有方差,使得生成的图片具有多样性;

训练过程(1000个时间步):

  1. 随机采样一批图片作为数据集;
  2. 随机采样一些时间步;
  3. 随机采样基于高斯分布的噪声;
  4. 加噪:计算在采样时间步上的噪声
  5. 预测噪声:输入 $x_T,t$ 来预测 $t$ 时刻的噪声(使用一个带有时间步编码的UNet),并计算损失、优化模型
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
下一篇