Denoising Diffusion Probabilistic Models
Denoising Diffusion Probabilistic Models
扩散定义
假设原图为$x_0$,每次从高斯噪声分布中采样出噪声添加到图片上,得到$x_t$。
高斯分布的性质:如果$x\sim\mathcal{N}(\mu_X,\sigma_X^2),y\sim\mathcal{N}(\mu_Y,\sigma_Y^2),Z=X+Y$,则有$Z\sim\mathcal{N}(\mu_X+\mu_Y,\sigma_X^2+\sigma_Y^2)$
重参数化:要对高斯分布$\mathcal{N}(\mu,\sigma^2I)$进行采样,可以将一个正态分布引导上去,即
此处$\epsilon_{t}\sim\mathcal{N}(0,1)$,加噪过程满足马尔可夫过程,所以使用递归推导可得
而去噪的分布$q(x_{t-1}|x_t)$是无法直接计算的,因此目标为:训练一个模型$\theta$,拟合对应的分布$p_{\theta}(x_{t-1}|x_t)$。
目标函数
训练过程
$q(x_{t-1}|x_t,x_0)$
训练步骤:
- 随机选取时间步$t\in\{0, 1,\dots,1000\}$并进行编码为嵌入向量$e(t)$。
- 将噪声添加到图片上,得到$x_{t}$。
- 将加噪后的图片$x_t$与时间步的embedding作为UNet的输入,UNet输出预测的噪声,使用L2Loss计算损失函数。
采样过程(Sampling)
采样步骤:
- 将$x_{t}$和时间步$t$对应的嵌入向量$e(t)$输入到UNet,得到预测噪声$\epsilon_{\theta}(x_t,t)$。
- 根据去噪公式得到$x_{t-1}$。
- 重复上述步骤,最终得到$x_0$。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Eternity's Blog!