扩散模型(Diffusion Models)中的后验分布通常涉及对潜在变量的条件分布进行推导。以下是推导扩散模型中后验分布方差的详细步骤。我们假设扩散过程是逐步添加噪声的过程,每一步根据高斯分布进行采样。扩散模型基于概率扩散过程,它将数据从原始分布逐步转换为噪声分布,然后再通过逆向过程从噪声恢复出原始数据。这个过程涉及到两个关键的参数:噪声比例$\beta_{t}$和数据保留比例$\alpha_{t}$
背景
扩散模型通常定义一个正向过程,将数据样本 $x_{0}$ 扩散成噪声变量 $x_{T}$,过程为逐步添加高斯噪声。反向过程则旨在从噪声变量逐步恢复原始数据。在反向过程中,我们需要推导后验分布 $q(x_{t-1}|x_t,x_0)$ 以及它的方差。
正向扩散过程:
正向过程逐步对样本 $x_{0}$ 添加噪声:
$$q(x_t|x_{t-1})=\mathcal{N}(x_t;\sqrt{1-\beta_t}x_{t-1},\beta_tI)$$
其中,$\beta_{t}$ 是控制噪声大小的参数,通常称为“噪声调度”。
后验分布:
我们关注后验分布 $q(x_{t-1}|x_t,x_0)$,即在已知 $x_{t}$ 和原始数据 $x_{0}$ 时,如何推断 $x_{t-1}$。这个分布可以通过贝叶斯公式进行推导:
$$q(x_{t-1}|x_t,x_0)\propto q(x_t|x_{t-1})q(x_{t-1}|x_0)$$
多条件贝叶斯定理:
贝叶斯公式实际上可以扩展到多个条件的情况。在扩散模型的推导中,我们引入了第三个变量 $x_{0}$,即模型的初始状态。我们感兴趣的是如何从当前时刻的状态 $x_{t}$ 和初始状态$x_{0}$ 中推断上一时刻的状态 $x_{t-1}$。这就涉及到多条件的情况。
对于多个条件,我们可以写成条件概率形式:
$$P(A|B,C)=\frac{P(B|A,C)P(A|C)}{P(B|C)}$$
这个公式说明,在已知 和 C 的条件下推断 A 的概率。这与贝叶斯定理的标准形式一致,只是引入了额外的条件项 C。
扩散模型中的多条件推导
在扩散模型中,我们关心的是如何从 $x_{t}$ 和 $x_{0}$ 推断 $x_{t-1}$。所以,我们应用贝叶斯定理如下:
$$q(x_{t-1}|x_t,x_0)=\frac{q(x_t|x_{t-1},x_0)q(x_{t-1}|x_0)}{q(x_t|x_0)}$$
现在我们对每一项进行解释:
- $q(x_{t-1}|x_t,x_0)$:这就是我们需要计算的后验分布,即在已知当前状态 $x_{t}$ 和初始状态 $x_{0}$ 的情况下,推断上一时刻 $x_{t-1}$ 的概率。
- $q(x_t|x_{t-1},x_0)$:这是从 $x_{t-1}$ 生成 $x_{t}$ 的条件概率。在扩散模型中,由于过程是马尔可夫链,$x_{t}$ 只依赖于 $x_{t-1}$,与 $x_{0}$ 条件独立。因此,这个概率可以简化为:
$$q(x_t|x_{t-1},x_0)=q(x_t|x_{t-1})$$
即当前时刻的状态 $x_{t}$ 只依赖于上一时刻的状态 $x_{t-1}$。
- $q(x_{t-1}|x_0)$:这是上一时刻 $x_{t-1}$ 在已知初始状态 $x_{0}$ 的条件概率。这是正向扩散过程中产生的分布,描述了从 $x_{0}$ 扩散到中间状态 $x_{t-1}$ 的概率。
- $q(x_t|x_0)$:这是边缘分布,用来归一化后验分布,确保总概率为 1。它表示在已知 $x_{0}$ 的条件下,当前时刻 $x_{t}$ 的概率。它的计算方式为:
$$q(x_t|x_0)=\int q(x_t|x_{t-1})q(x_{t-1}|x_0)dx_{t-1}$$
但因为我们通常只关心后验分布的相对大小,分母部分 $q(x_t|x_0)$ 可以视作常数,从而忽略。
扩散模型中的三个条件项
通过上述推导,我们可以看到贝叶斯公式从两个条件项过渡到三个条件项的原因是:
- $q(x_{t-1}|x_t,x_0)$ 是我们需要的后验分布。
- $q(x_t|x_{t-1})$ 是正向扩散的转移概率,表示从 $x_{t-1}$ 到 $x_{t}$的条件概率。
- $q(x_{t-1}|x_0)$ 是先验分布,表示从初始状态 $x_{0}$到 $x_{t-1}$ 的概率。
这个公式反映了通过初始状态 $x_{0}$ 和当前状态 $x_{t}$,来推断上一时刻 $x_{t-1}$ 的概率。
后验分布通过贝叶斯公式推导的全部步骤
后验分布形式为:
$$q(x_{t-1}|x_t,x_0)\propto q(x_t|x_{t-1})q(x_{t-1}|x_0)$$
-
$q(x_t|x_{t-1})$ 是正向扩散过程的条件分布(从$x_{t-1}$ 到 $x_{t}$ 的转移分布),形式为:
$$q(x_t|x_{t-1})=\mathcal{N}(x_t;\sqrt{1-\beta_t}x_{t-1},\beta_tI)$$
这里 $\beta_{t}$ 是时间步 t 的噪声强度。
-
$q(x_{t-1}|x_0)$ 是先验分布,即在给定初始数据 $x_{0}$ 的情况下,计算 $x_{t-1}$ 的分布,形式为:
$q(x_{t-1}|x_0)=\mathcal{N}(x_{t-1};\sqrt{\bar{\alpha}_{t-1}}x_0,(1-\bar{\alpha}_{t-1})I)$
其中,$\bar{\alpha}_{t-1}=\prod_{s=1}^{t-1}(1-\beta_s)$ 是正向过程中前 t−1 个时间步的系数。
对于高斯分布 $q(x_{t-1}|x_0)$ 和 $q(x_t|x_{t-1})$,我们可以使用高斯分布的乘法规则。高斯分布的乘积仍然是高斯分布,其均值和方差可以通过以下方式推导出来。
后验分布均值公式的推导过程
首先,写出两个正态分布:
$q(x_t|x_{t-1})$ 的形式:
$$q(x_t|x_{t-1})=\mathcal{N}(x_t;\sqrt{1-\beta_t}x_{t-1},\beta_tI)$$
其均值为 $\sqrt{1-\beta_{t}}x_{t-1}$,方差为 $\beta_{t}I$。
$q(x_{t-1}|x_0)$ 的形式:
$$q(x_{t-1}|x_0)=\mathcal{N}(x_{t-1};\sqrt{\bar{\alpha}_{t-1}}x_0,(1-\bar{\alpha}_{t-1})I)$$
其均值为 $\sqrt{\bar{\alpha}_{t-1}}x_{0}$,方差为 $(1-\bar{\alpha}_{t-1})I$。
根据高斯分布的乘法规则,如果两个分布 $p(x)=\mathcal{N}(x;\mu_1,\Sigma_1)$ 和 $q(x)=\mathcal{N}(x;\mu_2,\Sigma_2)$,它们的乘积 $r(x)$ 也是高斯分布,其均值 $\mu $ 和协方差 $\Sigma $ 可以通过以下公式得到:
$$\Sigma=\left(\Sigma_1^{-1}+\Sigma_2^{-1}\right)^{-1}$$
$$\mu=\Sigma\left(\Sigma_1^{-1}\mu_1+\Sigma_2^{-1}\mu_2\right)$$
现在将公式应用于$q(x_t|x_{t-1})$ 和 $q(x_{t-1}|x_0)$:
$q(x_t|x_{t-1})$ 的均值为 $\sqrt{1-\beta_t}x_{t-1}$,方差为 $\beta_{t}I$,因此协方差的逆为:
$$\Sigma_1^{-1}=\frac{1}{\beta_t}I$$
$q(x_{t-1}|x_0)$ 的均值为 $\sqrt{\bar{\alpha}_{t-1}}x_{0}$,方差为 $(1-\bar{\alpha}_{t-1})I$,因此协方差的逆为:
$$\Sigma_2^{-1}=\frac1{1-\bar{\alpha}_{t-1}}I$$
求均值 $\mu(x_t,x_0)$:
根据公式:
$$\mu=\Sigma\left(\Sigma_1^{-1}\mu_1+\Sigma_2^{-1}\mu_2\right)$$
首先,计算权重:
$$\Sigma_1^{-1}\mu_1=\frac{1}{\beta_t}\cdot x_t$$
$$\Sigma_{2}^{-1}\mu_{2}=\frac1{1-\bar{\alpha}_{t-1}}\cdot\sqrt{\bar{\alpha}_{t-1}}x_{0}$$
然后将它们加在一起:
$$\Sigma_1^{-1}\mu_1+\Sigma_2^{-1}\mu_2=\frac{x_t}{\beta_t}+\frac{\sqrt{\bar{\alpha}_{t-1}}x_0}{1-\bar{\alpha}_{t-1}}$$
再计算协方差:
$$\Sigma=\left(\frac{1}{\beta_t}+\frac{1}{1-\bar{\alpha}_{t-1}}\right)^{-1}=\frac{\beta_t(1-\bar{\alpha}_{t-1})}{\beta_t+(1-\bar{\alpha}_{t-1})}$$
最后,均值$\mu(x_t,x_0)$为:
$$\mu(x_t,x_0)=\Sigma\left(\frac{x_t}{\beta_t}+\frac{\sqrt{\bar{\alpha}_{t-1}}x_0}{1-\bar{\alpha}_{t-1}}\right)$$
经过化简,可以得到均值的最终形式:
$$\mu(x_t,x_0)=\frac{\sqrt{\bar{\alpha}_{t-1}}\beta_tx_0+(1-\bar{\alpha}_{t-1})\sqrt{1-\beta_t}x_t}{\beta_t+(1-\bar{\alpha}_{t-1})}$$
后验分布方差公式的推导过程
后验分布的方差由前面推导的 $\Sigma $ 给出:
$$\Sigma=\left(\Sigma_1^{-1}+\Sigma_2^{-1}\right)^{-1}$$
代入协方差的逆:
$$\Sigma=\left(\frac{1}{\beta_t}+\frac{1}{1-\bar{\alpha}_{t-1}}\right)^{-1}$$
化简后得到:
$$\Sigma=\frac{\beta_t(1-\bar\alpha_{t-1})}{\beta_t+(1-\bar\alpha_{t-1})}$$
这就是后验分布的方差。
总结
使用贝叶斯公式将 $q(x_{t-1}|x_t,x_0)$ 分解为 $q(x_t|x_{t-1})$ 和 $q(x_{t-1}|x_{0})$ 的乘积。
后验分布的均值通过结合两个高斯分布的均值计算,最终得到:
$$\mu(x_t,x_0)=\frac{\sqrt{\bar{\alpha}_{t-1}}\beta_tx_0+(1-\bar{\alpha}_{t-1})\sqrt{1-\beta_t}x_t}{\beta_t+(1-\bar{\alpha}_{t-1})}$$
后验分布的方差为:
$$\Sigma=\frac{\beta_{t}(1-\bar{\alpha}_{t-1})}{\beta_{t}+(1-\bar{\alpha}_{t-1})}$$