首页 > 其他分享 >扩散模型中的后验分布方差推导

扩散模型中的后验分布方差推导

时间:2024-10-06 11:43:54浏览次数:8  
标签:bar 后验 推导 方差 mu beta alpha Sigma

扩散模型(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)}$$

这个公式说明,在已知 B 和 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})}$$

 

标签:bar,后验,推导,方差,mu,beta,alpha,Sigma
From: https://www.cnblogs.com/jinbb/p/18448953

相关文章

  • 10.解析解方法推导线性回归——不容小觑的线性回归算法
    引言线性回归是许多复杂机器学习模型的基础。作为一种基本的机器学习方法,线性回归提供了清晰的思路和工具,通过理解其推导过程,可以更好地掌握机器学习的基本原理和模型设计。通过阅读本篇博客,你可以:1.学会如何用解析解的方法推导线性回归的最优解2.了解如何判定损失函数是凸......
  • 球体上的采样角度:从一般协方差矩阵到浓度参数
    我正在尝试在python中提取球体上的点。我必须定位天空中的事件并使用healpy生成地图。在测试期间,我使用了vonMises-Fisher,因为我假设$'\theta'$的方差与$'\phi'$的方差相同。一切顺利,我能够通过使用$'k=1/\sigma^2'$获得浓度参数$'k'$。我评估像素概率的函......
  • 24/9/21 python的推导式、生成器
    python推导式和生成器介绍1.列表推导式(ListComprehension)列表推导式是最常见的一种推导式,它允许你用一行代码生成列表,形式如下:new_list=[expressionforiteminiterableifcondition]expression:要添加到新列表的值,可以是简单的变量,也可以是运算结果。item:来自迭代......
  • 第七章习题14-输入10个学生5门课的成绩,分别用函数实现下列功能:①计算每个学生的平均分
     ......
  • C++模板函数实现类型推导
    C++模板函数实现类型推导以快读函数举例说明无法类型推导的情况template<typenameT>inlineTread(){Tx=0;intf=1;charch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar(......
  • 多元线性回归损失函数求导过程 均方误差推导过程 最小二乘法推导
    1.方程2-8:          2.对方程2-8关于求导:          3.分别求导:   ,因为 与无关。   ,根据矩阵微分公式。   ,根据矩阵微分公式。   ,根据矩阵微分公式,这里是对称矩阵,所以。4.将求导结果代入:         ......
  • Exgcd 和 Excrt 的一些推导
    Exgcd和Excrt的一些推导ExgcdExgcd是用来求解二元一次不定方程的算法,即\[ax+by=c\]根据贝祖定理,该方程有解当且仅当\(\gcd(a,b)\midc\),所以只用求解\[ax+by=\gcd(a,b)\]又因为\[\gcd(a,b)=\gcd(b,a\bmodb)\]可以先求解\[bx'+(a\bmodb)y'=\gcd(a,b)\]变形得\[......
  • 《深度学习》深度学习 框架、流程解析、动态展示及推导
    目录一、深度学习1、什么是深度学习2、特点3、神经网络构造1)单层神经元•推导•示例2)多层神经网络3)小结4、感知器神经网络的本质5、多层感知器6、动态图像示例1)一个神经元相当于下列状态: 2)两个神经元相当于下列所示:3)三个神经元相当于下图所示:7、多层感......
  • Hodgkin-Huxley Model 完全推导
    Ciallo~(∠・ω<)⌒★我是赤川鹤鸣。本文假设您已经初步了解了Hodgkin-HuxleyModel,这里只是针对其中的公式的一些推导。不会对其优缺点、特性、应用等进行详述。物理基础知识如果已学习过物理学中电流、电容、电导率的概念,可跳过此节。首先,让我们复习一下物理学中电流......
  • Diffusion系列 - DDPM 公式推导 + 代码 -(二)
    DenoisingDiffusionProbabilisticModel(DDPM)原理1.生成模型对比记真实图片为\(x_0\),噪声图片为\(x_t\),噪声变量\(z\sim\mathcal{N}(\mu,\sigma^2)\),噪声变量\(\varepsilon\sim\mathcal{N}(0,I)\),编码过程\(q\),解码过程\(p\)。GAN网络\[z\xrightarrow{p}\hat{......