理解 DDPM 和 DDIM

扩散模型,特别是 DDPM(Denoising Diffusion Probabilistic Models)和 DDIM(Denoising Diffusion Implicit Models),是一种强大的生成模型,通过逐步添加噪声并学习去噪过程,从真实数据生成新图像或音频。DDPM 依赖于随机的反向去噪过程,而 DDIM 则采用确定性反向过程,提升了生成效率,允许更少的步骤生成高质量图像。这些模型在图像生成领域展现出显著的能力,为创作提供了新的可能性。

  ·   1 min read

在深度学习中,扩散模型是一种强大的生成模型,可以用来生成新的图像、音频等。我们将逐步推导 DDPM(Denoising Diffusion Probabilistic Models)和 DDIM(Denoising Diffusion Implicit Models)的过程,帮助大家理解其基本原理和工作方式。

什么是扩散模型?

扩散模型的核心思想是通过逐步添加噪声,模拟从真实数据分布(例如一张真实图片)到简单分布(如标准高斯分布)的过程。我们可以把这个过程想象成从一张清晰的图片开始,逐渐让它变得模糊,最终看起来就像是随机的噪声。

添加噪声的过程

我们从真实的数据 $x_0$ 开始(比如一张清晰的猫的图片)。通过一个特定的过程,我们逐步向它添加噪声,直到它变成几乎看不出是什么的噪声。这个过程可以用一个公式表示:

$$ q(x_t | x_{t-1}) = \mathcal{N}(x_t; \sqrt{1 - \beta_t} x_{t-1}, \beta_t I) $$

  • $x_t$:表示经过第 $t$ 步后的数据。
  • $\beta_t$:控制噪声强度的参数。一般来说,$\beta_t$ 是一个逐渐增大的值,意味着在后面的步骤中添加的噪声越来越多。
  • $I$:是单位矩阵,表示每个维度的噪声都是独立的。

经过多个步骤后,数据 $x$ 将最终趋近于标准正态分布,也就是“完全噪声”状态:

$$ q(x_T | x_0) = \mathcal{N}(x_T; 0, I) $$

这意味着,经过 $T$ 步后,我们的图片就完全变成了随机噪声。

去噪扩散概率模型(DDPM)

学习去噪

为了能够从噪声中恢复出有意义的数据,我们需要训练一个模型,帮助我们逐步去掉噪声。这个模型可以看作是一个去噪网络,记作 $\epsilon_\theta(x_t, t)$,它的任务是预测在时间步 $t$ 下的真实噪声。

我们定义反向过程的分布为:

$$ p_{\theta}(x_{t-1} | x_t) = \mathcal{N}(x_{t-1}; \mu_\theta(x_t, t), \Sigma_\theta(x_t, t)) $$

  • 这里,$\mu_\theta$ 和 $\Sigma_\theta$ 是通过神经网络预测的均值和方差,表示在当前噪声 $x_t$ 下我们应该得到的更清晰的图像 $x_{t-1}$。

训练模型

我们需要让模型学会如何去除噪声,训练目标是最小化模型预测的噪声与真实噪声之间的差距。我们通过下面的公式来计算损失:

$$ L(\theta) = \mathbb{E}_{t, x_0, \epsilon} \left[ L_1 \right] $$

其中 $L_1$ 表示:

$$ L_1 = \left| \epsilon - \epsilon_\theta(x_t, t) \right|^2 $$

这里的 $\epsilon$ 是我们在添加噪声时实际加入的噪声,而 $\epsilon_\theta(x_t, t)$ 是模型预测的噪声。我们希望这两者尽可能接近。

去噪扩散隐式模型(DDIM)

DDIM 是对 DDPM 的一种改进,目的是提高生成的效率。

确定性反向过程

与 DDPM 的随机反向过程不同,DDIM 采用确定性的方式来生成数据。这意味着我们可以在生成过程中更加精准地控制输出结果。DDIM 的反向过程可以表示为:

$$ x_{t-1} = \sqrt{\alpha_{t-1}} \left( \frac{x_t - \sqrt{1 - \alpha_t} \epsilon_\theta(x_t, t)}{\sqrt{\alpha_t}} \right) + \sigma_t z $$

  • $\sigma_t$:控制我们添加噪声的强度。
  • $z$:是随机噪声项,通常为标准正态分布的样本。

优化采样步骤

DDIM 的一个重要优势是我们可以减少生成过程中的采样步骤。假设我们通常需要 $T$ 步来生成图像,但 DDIM 允许我们只使用 $T’ < T$ 的步骤,从而加快生成速度。这使得模型在生成高质量图像时更为高效。

总结

通过扩散模型,DDPM 和 DDIM 提供了一种有效的生成方法。DDPM 依赖于随机的去噪过程,而 DDIM 则通过确定性过程提升了生成的效率。两者都在图像生成领域展现出了强大的能力。

希望这篇文章能够帮助你更清楚地理解 DDPM 和 DDIM 的基本原理和推导过程!如果你对扩散模型或其他主题有更多问题,欢迎随时交流!