Denoising Diffusion Probabilistic Models -- 概率扩散模型 数学推导(1)

Probabilistic Diffusion Model概率扩散模型

注:

image

扩散模型由扩散(前向)过程生成(反向)过程构成:

  • 扩散过程 \((X_0 \to X_T)\)
    从原始数据 (\(X_0\)) 开始,通过逐步添加高斯噪声,将复杂的真实数据分布逐渐转化为标准正态分布 (\(X_T \sim \mathcal{N}(0, I)\))。
    这一过程将数据映射到一个易处理的、简单的分布,为生成过程的学习和生成提供了一个可控的起点。

  • 生成过程 \((X_T \to X_0)\)
    从标准正态分布 (\(X_T\)) 开始,利用神经网络参数化的去噪模型,逐步还原数据分布,最终生成逼真的样本 (\(X_0\))。
    神经网络通过学习反向扩散过程,掌握从噪声中还原原始数据的能力,从而实现数据生成。

一. 扩散过程

  1. 给定初始数据分布\(x_0 \sim g(x)\),不断地向上一步的分布中添加高斯噪声,添加过程为\(x_t = \sqrt{1-\beta_t}x_{t-1}+\sqrt{\beta_t}\epsilon_{t-1}\) , 得到的分布为: \(q(x_t|x_{t-1})=\mathcal{N}(\sqrt{1-\beta_t}x_{t-1}, \sqrt{\beta_t}I)\)。这个过程是一个马尔科夫链过程

  2. 随着的不断增大,最终数据分布\(x_t\)变成了完全的高斯分布

    • \(β_t\)是第\(t\)步的噪声系数, \(β_t∈(0,1)\),且随\(t\)增大而增大(加噪强度逐步提升), 可以是线性增大, 也可以是余弦函数等其他形式
    • \(\sqrt\beta_t = \sqrt{1-\alpha_t}\) , \(\alpha_t\)是第\(t\)步的数据保留系数,\(α_t\)\(t\)增大而减小)

实际上, 我们不用一步一步进行加噪, 可以直接一步到位
image

  • \(\bar{\alpha} = \alpha_t\alpha_{t-1}...\alpha_1\)
  • 式子中\(\epsilon_t, \epsilon_{t-1},...\)都是标准正态分布
  • 式子中\((\sqrt{\alpha_t-\alpha_t\alpha_{t-1}}\epsilon_{t-2} + \sqrt{1-\alpha_t}\epsilon_{t-1}) \sim \mathcal{N}(0, \alpha_t-\alpha_t\alpha_{t-1}+1-\alpha_t)\)
    即服从\(\mathcal{N}(0, 1-\alpha_t\alpha_{t-1})\), 也就所以\(\sqrt{\alpha_t-\alpha_t\alpha_{t-1}}\epsilon_{t-2} + \sqrt{1-\alpha_t}\epsilon_{t-1} = \sqrt{1-\alpha_t\alpha_{t-1}}\epsilon\)

所以我们可以得到

\[q(x_t|x_0) \sim \mathcal{N}(\sqrt{\bar{\alpha_t}}x_0, \sqrt{1-\bar{\alpha_t}}I) \]

二. 生成过程

扩散过程的目标是学习分布 \(q(x_t | x_{t-1})\),生成过程与其相反, 是学习逆向的去噪过程,即分布\(q(x_{t-1} | x_t)\),也就是说如果我们可以逆转前向过程, 就能够从高斯噪声 \(x_T \sim \mathcal{N}(0, I)\)逐步还原到原始数据分布\(x_0 \sim q(x_0)\)

然而我们并不能直接得到\(q(x_{t-1} | x_t)\),因为它涉及从 \(x_t\) 反推 \(x_{t-1}\) 的所有可能性,这是一个非常复杂的分布。但如果知道\(x_0\), 那么\(q(x_{t-1} | x_t, x_0)\), 即在已知当前噪声图 x_t 和最终目标图 x_0 的情况下,求上一时刻的图 x_{t-1} 应该是什么分布

当扩散模型的前向过程被设计为高斯分布的前提下,这个“上帝视角”下的分布 \(q(x_{t-1} | x_t, x_0)\) 也是一个高斯分布。这意味着我们可以写出它的解析表达式(均值和方差):

\[\begin{aligned} 根据贝叶斯公式:\\ q(x_{t-1} | x_t, x_0)&=\frac{q(x_{t-1}, x_t, x_0)}{q( x_t, x_0)} \\ &= \frac{q(x_0)q(x_{t-1}|x_0)q(x_{t}|x_{t-1},x_0)}{q(x_0)q( x_t|x_0)} \\ &=q(x_{t}|x_{t-1},x_0)\frac{q(x_{t-1}|x_0)}{q( x_t|x_0)} \\ 根据马尔可夫性&质, x_t只与x_{t-1}有关, 与x_0无关,所以\\ &=q(x_{t}|x_{t-1})\frac{q(x_{t-1}|x_0)}{q( x_t|x_0)} \end{aligned} \]

这时可以发现, 等式右边都是前向扩散, 由前面推导得到的:

\[q(x_t|x_{t-1}) \sim \mathcal{N}(\sqrt{\alpha_t}x_{t-1}, \sqrt{\beta_t}I) \\ q(x_t|x_0) \sim \mathcal{N}(\sqrt{\bar{\alpha_t}}x_0, \sqrt{1-\bar{\alpha_t}}I) \]

可知:

\[\begin{aligned} q(X_{t}|X_{t-1})&=N(X_{t};\sqrt{\alpha_{t}}X_{t-1},\beta_{t}I)\\ q(X_{t-1}|X_{0})&=N(X_{t-1};\sqrt{\overline{\alpha}_{t-1}}X_{0},(1-\overline{\alpha}_{t-1})N)\\ q\left(X_{t}|X_{0}\right)&=\mathrm{N}(X_{t};\sqrt{\overline{\alpha}_{t}}X_{0,}\left(1-\overline{\alpha}_{t}\right)I) \end{aligned} \]

将这几个分布的高斯函数带入\(q(x_{t}|x_{t-1})\frac{q(x_{t-1}|x_0)}{q( x_t|x_0)}\)中, 可得:

\[\begin{aligned} q\left(X_{t-1}|X_t,X_0\right) &\propto \frac{1}{\sqrt{2\pi}\left(\frac{\sqrt{1-a_t}\sqrt{1-\bar{a}_{t-1}}}{\sqrt{1-\bar{a}_t}}\right)} \mathrm{exp}\left(-\frac{1}{2}\left(\frac{\left(X_t-\sqrt{\alpha_t}X_{t-1}\right)^2}{\beta_t}+\frac{\left(X_{t-1}-\sqrt{\overline{\alpha}_{t-1}}X_0\right)^2}{1-\overline{\alpha}_{t-1}}-\frac{\left(X_t-\sqrt{\overline{\alpha}_t}X_0\right)^2}{1-\overline{\alpha}_t}\right)\right) \\ &\propto \frac{1}{\sqrt{2\pi}\left(\frac{\sqrt{1-a_t}\sqrt{1-\bar{a}_{t-1}}}{\sqrt{1-\bar{a}_t}}\right)}\exp\left(-\frac{1}{2}\left(\frac{{X_{t}}^{2}-2\sqrt{\alpha_{t}}X_{t-1}X_{t}+\alpha_{t}X_{t-1}{}^{2}}{\beta_{t}}+\frac{{X_{t-1}}^{2}-2\sqrt{\overline{\alpha}_{t-1}}X_{0}X_{t-1}+\overline{\alpha}_{t-1}X_{0}{}^{2}}{1-\overline{\alpha}_{t-1}}+C(X_{t},X_{0})\right)\right)\\ &对指数中X_{t-1}的系数进行合并得到: \\ &\propto \frac{1}{\sqrt{2\pi}\left(\frac{\sqrt{1-a_t}\sqrt{1-\bar{a}_{t-1}}}{\sqrt{1-\bar{a}_t}}\right)} \exp\left(-\frac{1}{2}\left((\frac{\alpha_{t}}{\beta_{t}}+\frac{1}{1-\overline{\alpha}_{t-1}})X_{t-1}{}^{2}-2(\frac{\sqrt{\alpha_{t}}}{\beta_{t}}X_{t}+\frac{\sqrt{\overline{\alpha}_{t-1}}}{1-\overline{\alpha}_{t-1}}X_{0})X_{t-1}+C(X_{t},X_{0})\right)\right) \end{aligned} \]

又因为高斯分布的密度函数\(\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-\mu)^2}{2\sigma^2}}\) 可以写为:

\[\frac{1}{\sqrt{2\pi}\sigma}e^{(-\frac{1}{2}(\frac{1}{\sigma^2}x^2-\frac{2\mu}{\sigma^2}x+\frac{\mu^2}{\sigma^2}))} \]

所以:

\[\begin{aligned} \sigma^2 &= \frac{1}{\frac{\alpha_{t}}{\beta_{t}}+\frac{1}{1-\overline{\alpha}_{t-1}}} \\ &=\frac{1-\bar{\alpha}_{t-1}}{1-\bar{\alpha}_{t}}(1-\alpha_{t}) \\ \mu &=(\frac{\sqrt{\alpha_{t}}}{\beta_{t}}X_{t}+\frac{\sqrt{\overline{\alpha}_{t-1}}}{1-\overline{\alpha}_{t-1}}X_{0})\sigma^2 \\ &=\frac {\sqrt{\bar{\alpha} _ {t}}(1-\overline {\alpha }_ {t-1})}{1-\bar{\alpha} _ {t}}X_ {t} + \frac {\sqrt {\bar{\alpha} _ {t-1}}\beta _ {t}}{1-\bar{\alpha} _ {t}} X_ {0} \end{aligned} \]

这是我们观察到均值中包含\(X_0\), 但\(X_0\)是我们最终想要生成的结果, 所以需要将其替换掉, 这里可以根据前向过程中的式子:

\[ x_ {t} = \sqrt {\bar{\alpha} _ {t}} X_ {0} + \sqrt {1-\bar{\alpha} _ {t}} \varepsilon _ {t} \]

得到\(X_0\)的表达式:

\[X_0 = \frac{1}{\sqrt{\bar{\alpha}_t}}(X_t-\sqrt{1-\bar{\alpha}_t}\epsilon_t) \]

带入均值\(\mu\), 得到:

\[\begin{aligned} \mu &= \frac{\sqrt{\alpha_{t}}(1-\overline{\alpha}_{t-1})}{1-\overline{\alpha}_{t}}X_{t}+\frac{\sqrt{\overline{\alpha}_{t-1}}\beta_{t}}{1-\overline{\alpha}_{t}}\frac{1}{\sqrt{\bar{\alpha}_t}}(X_t-\sqrt{1-\bar{\alpha}_t}\epsilon_t) \\ =&\left[\frac{\sqrt{\alpha_t}(1-\bar{\alpha}_{t-1})} {1-\bar{\alpha}_t} + \frac{\sqrt{\bar{\alpha}_{t-1}}(1-\alpha_t)}{1-\bar{\alpha}_t}\cdot\frac{1}{\sqrt{\bar{\alpha}_t}}\right]X_t - \frac{\sqrt{\bar{\alpha}_{t-1}}\beta_t}{(1-\bar{\alpha}_t)\sqrt{\bar{\alpha}_t}}\cdot\sqrt{1-\bar{\alpha}_t}\varepsilon_t\\ =&\frac{1}{\sqrt{\alpha_t}}\left[\frac{\alpha_t(1-\bar{\alpha}_{t-1})}{1-\bar{\alpha}_t} + \frac{1-\alpha_t}{1-\bar{\alpha}_t}\right]X_t - \frac{\beta_t\sqrt{1-\bar{\alpha}_t}}{(1-\bar{\alpha}_t)\sqrt{\alpha_t}}\varepsilon_t\\ =&\frac{1}{\sqrt{\alpha_t}}\left[\frac{\alpha_t-\bar{\alpha}_t + 1-\alpha_t}{1-\bar{\alpha}_t}\right]X_t + \frac{(1-\alpha_t)\sqrt{1-\bar{\alpha}_t}}{(1-\bar{\alpha}_t)\sqrt{\alpha_t}}\varepsilon_t\\ =&\frac{1}{\sqrt{\alpha_t}}X_t + \frac{1-\alpha_t}{\sqrt{1-\bar{\alpha}_t}}\cdot\frac{1}{\sqrt{\alpha_t}}\varepsilon_t\\ =&\frac{1}{\sqrt{\alpha_t}}\left(X_t + \frac{1-\alpha_t}{\sqrt{1-\bar{\alpha}_t}}\varepsilon_t\right) \end{aligned} \]

所以

\[q\left(X_{t-1}|X_t,X_0\right) \sim N\left(X_{t-1};\frac{1}{\sqrt{\alpha_t}}(X_t-\frac{1-\alpha_t}{\sqrt{1-\overline{\alpha}_t}}\epsilon_t),\frac{1-\overline{\alpha}_{t-1}}{1-\overline{\alpha}_t}\left(1-\alpha_t\right)I\right) \]

上式中的\(\alpha\)是正向过程中的衰减系数, 在扩散过程已知, \(X_t\)是上一时刻的数据, \(\epsilon_t\)是前向过程添加的随机高斯噪声, 所以只要给出\(X_t\)\(\epsilon_t\)就可以计算出\(X_{t-1}\)的分布.即实现了生成过程

Denoising Diffusion Probabilistic Models -- 概率扩散模型 数学推导(2)

posted @ 2026-03-03 09:51  liuyihh  阅读(40)  评论(0)    收藏  举报