首页 > 其他分享 >DDPM扩散概率模型数学原理推导

DDPM扩散概率模型数学原理推导

时间:2024-07-03 11:00:24浏览次数:18  
标签:frac 概率模型 sqrt DDPM beta 数学原理 alpha x0 xt

DDPM正向过程

定义

前向过程被定义为一个从初始数据 x 0 x_0 x0​开始的马尔可夫链。而他的目标是要由 x 0 x_0 x0​的分布去推 x 1 : T x_{1:T} x1:T​联合概率密度的分布,由马尔可夫链定义,即:马尔可夫定理是指一个随机过程的未来状态仅依赖于当前状态,而与过去的状态无关。比如 x t x_t xt​只由 x t − 1 x_{t-1} xt−1​的状态决定,与 x t − 1 x_{t-1} xt−1​之前的状态无关

q ( x 1 : T ∣ x 0 ) = ∏ t = 1 T q ( x t ∣ x t − 1 ) q(x_{1:T} | x_0) = \prod_{t=1}^T q(x_t | x_{t-1}) q(x1:T​∣x0​)=∏t=1T​q(xt​∣xt−1​)

推导过程:

q ( x 1 : T ∣ x 0 ) = q ( x 1 , x 2 , . . . x T ∣ x 0 ) q(x_{1:T} | x_0) =q(x_1,x_2,...x_T | x_0) q(x1:T​∣x0​)=q(x1​,x2​,...xT​∣x0​)

由概率论链式法则可知,联合概率密度可以理解为条件概率的乘积:

q ( x 1 , x 2 , . . . x T ∣ x 0 ) = q ( x 1 ∣ x 0 ) q ( x 2 ∣ x 1 , x 0 ) q ( x 3 ∣ x 2 , x 1 , x 0 ) . . . q ( x T ∣ x T − 1 , x T − 2 , . . . , x 0 ) q(x_1,x_2,...x_T | x_0) =q(x_{1} | x_0)q(x_2 | x_1,x_0)q( x_3|x_2, x_1,x_0)...q(x_T | x_{T-1},x_{T-2},...,x_0) q(x1​,x2​,...xT​∣x0​)=q(x1​∣x0​)q(x2​∣x1​,x0​)q(x3​∣x2​,x1​,x0​)...q(xT​∣xT−1​,xT−2​,...,x0​)

由马尔可夫链的性质可知,每一个 x t x_t xt​只由前一个的 x t − 1 x_{t-1} xt−1​的状态决定,即:

q ( x t ∣ x t − 1 , x t − 2 , . . . , x 0 ) = q ( x t ∣ x t − 1 ) q(x_t| x_{t-1},x_{t-2},...,x_0)=q(x_t | x_{t-1}) q(xt​∣xt−1​,xt−2​,...,x0​)=q(xt​∣xt−1​)

由此可以推导化简条件概率乘积为:

q ( x 1 , x 2 , . . . x T ∣ x 0 ) = q ( x 1 ∣ x 0 ) q ( x 2 ∣ x 1 ) q ( x 3 ∣ x 2 ) . . . q ( x T ∣ x T − 1 ) q(x_1,x_2,...x_T | x_0) =q(x_{1} | x_0)q(x_2 | x_1)q( x_3|x_2)...q(x_T | x_{T-1}) q(x1​,x2​,...xT​∣x0​)=q(x1​∣x0​)q(x2​∣x1​)q(x3​∣x2​)...q(xT​∣xT−1​)

因此 q ( x 1 : T ∣ x 0 ) q(x_{1:T} | x_0) q(x1:T​∣x0​)

= q ( x 1 , x 2 , . . . x T ∣ x 0 ) q(x_1,x_2,...x_T | x_0) q(x1​,x2​,...xT​∣x0​)

= q ( x 1 ∣ x 0 ) q ( x 2 ∣ x 1 ) q ( x 3 ∣ x 2 ) . . . q ( x T ∣ x T − 1 ) q(x_{1} | x_0)q(x_2 | x_1)q( x_3|x_2)...q(x_T | x_{T-1}) q(x1​∣x0​)q(x2​∣x1​)q(x3​∣x2​)...q(xT​∣xT−1​)

= ∏ t = 1 T q ( x t ∣ x t − 1 ) \prod_{t=1}^T q(x_t | x_{t-1}) ∏t=1T​q(xt​∣xt−1​)

推导结束

该马尔可夫链在延展的过程中逐渐添加高斯噪声,即:

q ( x t ∣ x t − 1 ) = N ( x t ; 1 − β t x t − 1 , β t I ) q(x_t | x_{t-1}) = \mathcal{N}(x_t; \sqrt{1 - \beta_t} x_{t-1}, \beta_t I) q(xt​∣xt−1​)=N(xt​;1−βt​ ​xt−1​,βt​I)

参数 β t ∈ ( 0 , 1 ) \beta_t \in (0, 1) βt​∈(0,1)。

这句话的意思是在给定 x t − 1 x_{t-1} xt−1​的情况下,由此求 x t x_t xt​的概率分布,这个分布是一个高斯分布记作 N \mathcal{N} N

他的均值为 1 − β t x t − 1 \sqrt{1 - \beta_t} x_{t-1} 1−βt​ ​xt−1​,这个均值表示当前步 x t x_t xt​的值主要是由前一步 x t − 1 x_{t-1} xt−1​的值通过一个缩放因子 1 − β t \sqrt{1 - \beta_t} 1−βt​ ​得到的。这说明在每一步,数据会逐渐缩小一些,且保留前一步的信息。

方差为 β t I \beta_t I βt​I

方差 β t I \beta_t I βt​I表示在每一步中添加的噪声的强度,其中 I I I是单位矩阵。这意味着每一步都会向数据添加一些高斯噪声,噪声的强度由 β t \beta_t βt​控制

高斯分布的线性组合仍然是高斯分布,即:

q ( x t ∣ x 0 ) = N ( x t ; α ˉ t x 0 , ( 1 − α ˉ t ) I ) q(x_t | x_0) = \mathcal{N}(x_t; \sqrt{\bar{\alpha}_t} x_0, (1 - \bar{\alpha}_t) I) q(xt​∣x0​)=N(xt​;αˉt​ ​x0​,(1−αˉt​)I)

其中

α ˉ t = ∏ s = 1 t ( 1 − β s ) \bar{\alpha}_t = \prod_{s=1}^t (1 - \beta_s) αˉt​=∏s=1t​(1−βs​)

通过适当地选择 β t \beta_t βt​(易于满足,例如所有 β t < 1 \beta_t < 1 βt​<1的常数)可以确保:

lim ⁡ t → ∞ α ˉ t = 0 \lim_{t \to \infty} \bar{\alpha}_t = 0 limt→∞​αˉt​=0

lim ⁡ t → ∞ q ( x t ∣ x 0 ) = N ( 0 , I ) \lim_{t \to \infty} q(x_t | x_0) = \mathcal{N}(0, I) limt→∞​q(xt​∣x0​)=N(0,I)

1. x t x_t xt​的形状相同,与它们的维度无关,即可以是1/2/3维张量。
2. 如果 β t \beta_t βt​作为超参数是常数(大多数情况下),前向过程中没有需要训练的参数。

若不考虑占比不断消失的问题,如何由数学关系推导 x 0 x_0 x0​得到 x t x_t xt​时刻的分布(前向扩散)
α t = 1 − β t \alpha_t = 1 - \beta_t αt​=1−βt​( β 1 , β 2 , … , β T \beta_1, \beta_2, \ldots, \beta_T \quad β1​,β2​,…,βT​他们是一系列常数,是直接设定的超参数,随着 T 的增加越来越大)

β t \beta_t βt​越来越大,从而使 α \alpha α也就是要越来越小。
x t x_t xt​和 x t − 1 x_{t-1} xt−1​的关系为

x t = α t x t − 1 + 1 − α t ϵ 1 x_t = \sqrt{\alpha_t} x_{t-1} + \sqrt{1 - \alpha_t} \epsilon_1 xt​=αt​ ​xt−1​+1−αt​ ​ϵ1​

但是现在只能由后一时刻分布推导前一时刻分布得到的,但是由数学关系推导 x 0 x_0 x0​得到 x t x_t xt​时刻的分布怎么实现?
x t − 1 x_{t-1} xt−1​和 x t − 2 x_{t-2} xt−2​的关系为

x t − 1 = α t − 1 x t − 2 + 1 − α t − 1 ϵ 2 x_{t-1} = \sqrt{\alpha_{t-1}} x_{t-2} + \sqrt{1 - \alpha_{t-1}} \epsilon_2 xt−1​=αt−1​ ​xt−2​+1−αt−1​ ​ϵ2​

将上式带入 x t x_t xt​和 x t − 1 x_{t-1} xt−1​的关系式可以得到下式:

x t = α t ( α t − 1 x t − 2 + 1 − α t − 1 ϵ 2 ) + 1 − α t ϵ 1 x_t = \sqrt{\alpha_t} \left( \sqrt{\alpha_{t-1}} x_{t-2} + \sqrt{1 - \alpha_{t-1}}\epsilon_2 \right) + \sqrt{1 - \alpha_t} \epsilon_1 xt​=αt​ ​(αt−1​ ​xt−2​+1−αt−1​ ​ϵ2​)+1−αt​ ​ϵ1​

x t = α t α t − 1 x t − 2 + α t ( 1 − α t − 1 ) ϵ 2 + 1 − α t ϵ 1 x_t = \sqrt{\alpha_t \alpha_{t-1}} x_{t-2} + \sqrt{\alpha_t (1 - \alpha_{t-1})} \epsilon_2 + \sqrt{1 - \alpha_t} \epsilon_1 xt​=αt​αt−1​ ​xt−2​+αt​(1−αt−1​) ​ϵ2​+1−αt​ ​ϵ1​

其中每次加入的噪声都服从高斯分布 ϵ 1 ϵ 2 , … ∼ N ( 0 , I ) \epsilon_1 \epsilon_2, \ldots \sim \mathcal{N}(0, I) ϵ1​ϵ2​,…∼N(0,I)

这步就是展开而已:

x t = α t α t − 1 x t − 2 + ( α t ( 1 − α t − 1 ) ϵ 2 + 1 − α t ϵ 1 ) x_t = \sqrt{\alpha_t \alpha_{t-1}} x_{t-2} + \left( \sqrt{\alpha_t (1 - \alpha_{t-1})} \epsilon_2 + \sqrt{1 - \alpha_t} \epsilon_1 \right) xt​=αt​αt−1​ ​xt−2​+(αt​(1−αt−1​) ​ϵ2​+1−αt​ ​ϵ1​)

= α t α t − 1 x t − 2 + 1 − α t α t − 1 ϵ = \sqrt{\alpha_t \alpha_{t-1}} x_{t-2} + \sqrt{1 - \alpha_t \alpha_{t-1}} \epsilon =αt​αt−1​ ​xt−2​+1−αt​αt−1​ ​ϵ

其中 1 − α t ϵ 1 \sqrt{1 - \alpha_t} \epsilon_1 1−αt​ ​ϵ1​和 α t ( 1 − α t − 1 ) ϵ 2 \sqrt{\alpha_t (1 - \alpha_{t-1})} \epsilon_2 αt​(1−αt−1​) ​ϵ2​
都服从高斯分布,分别为:

N ( 0 , 1 − α t ) \mathcal{N}(0, 1 - \alpha_t) N(0,1−αt​)

N ( 0 , α t ( 1 − α t − 1 ) ) \mathcal{N}(0, \alpha_t (1 - \alpha_{t-1})) N(0,αt​(1−αt−1​))

他们相加后仍服从高斯分布:

N ( 0 , 1 − α t ) \mathcal{N}(0, 1 - \alpha_t) N(0,1−αt​)+ N ( 0 , α t ( 1 − α t − 1 ) ) \mathcal{N}(0, \alpha_t (1 - \alpha_{t-1})) N(0,αt​(1−αt−1​)) ∼ N ( 0 , ( 1 − α t + α t ( 1 − α t − 1 ) ) \sim \mathcal{N}(0, (1 - \alpha_t+\alpha_t (1 - \alpha_{t-1})) ∼N(0,(1−αt​+αt​(1−αt−1​))= N ( 0 , 1 − α t − 1 ) \mathcal{N}(0, 1 - \alpha_{t-1}) N(0,1−αt−1​)

经过递推累乘可得 x t = α t α t − 1 . . . α 1 x 0 + 1 − α t α t − 1 . . . α 1 ϵ x_t= \sqrt{\alpha_t \alpha_{t-1}...\alpha_1} x_0 + \sqrt{1 - \alpha_t \alpha_{t-1}...\alpha_1} \epsilon xt​=αt​αt−1​...α1​ ​x0​+1−αt​αt−1​...α1​ ​ϵ
又因为 α ˉ t = α 1 α 2 ⋯ α t \bar{\alpha}_t = \alpha_1 \alpha_2 \cdots \alpha_t αˉt​=α1​α2​⋯αt​可得
x t = α ˉ t x 0 + 1 − α ˉ t ϵ x_t= \sqrt{\bar{\alpha}_t} x_0 + \sqrt{1 - \bar{\alpha}_t} \epsilon xt​=αˉt​ ​x0​+1−αˉt​ ​ϵ

DDPM 中的反向过程

目标

通过去噪标准高斯噪声 x T x_T xT​来生成数据,即:

p θ ( x 0 ) = ∫ p θ ( x 0 : T ) d x 1 : T p_\theta(x_0) = \int p_\theta(x_{0:T}) dx_{1:T} pθ​(x0​)=∫pθ​(x0:T​)dx1:T​

推导过程:

首先详细展开这个公式:

p θ ( x 0 ) = ∫ p θ ( x 0 : T )   d x 1 : T p_\theta(x_0) = \int p_\theta(x_{0:T}) \, dx_{1:T} pθ​(x0​)=∫pθ​(x0:T​)dx1:T​

利用联合分布来展开 p θ ( x 0 : T ) p_\theta(x_{0:T}) pθ​(x0:T​):

p θ ( x 0 : T ) = p θ ( x T ) ∏ t = 1 T p θ ( x t − 1 ∣ x t ) p_\theta(x_{0:T}) = p_\theta(x_T) \prod_{t=1}^T p_\theta(x_{t-1} \mid x_t) pθ​(x0:T​)=pθ​(xT​)∏t=1T​pθ​(xt−1​∣xt​)

因此,可以将公式写成:

p θ ( x 0 ) = ∫ p θ ( x T ) ∏ t = 1 T p θ ( x t − 1 ∣ x t )   d x 1 : T p_\theta(x_0) = \int p_\theta(x_T) \prod_{t=1}^T p_\theta(x_{t-1} \mid x_t) \, dx_{1:T} pθ​(x0​)=∫pθ​(xT​)∏t=1T​pθ​(xt−1​∣xt​)dx1:T​

相当于是在通过这个联合分布的概率去求 x 0 x_0 x0​边缘分布概率。相当于一个很多重的积分,把除了 x 0 x_0 x0​以外的量都积掉,只保留 x 0 x_0 x0​,这样的过程是通过从 x t x_t xt​开始逐步推导出下一项,然后对该项积分,当只剩下 x 0 x_0 x0​的时候就实现了由 x t x_t xt​推导得 x 0 x_0 x0​的过程。

分步骤展开

  1. 从终点开始: x T x_T xT​是初始的高斯噪声,所以 p θ ( x T ) p_\theta(x_T) pθ​(xT​)是已知的初始分布。

  2. 反向过程: 从 x T x_T xT​开始,逐步计算 x T − 1 , x T − 2 , … , x 1 , x 0 x_{T-1}, x_{T-2}, \ldots, x_1, x_0 xT−1​,xT−2​,…,x1​,x0​。每一步都依赖于前一步的结果(马尔可夫链)。

定义

反向过程是由马尔可夫链定义的联合分布 p θ ( x 0 : T ) p_\theta(x_{0:T}) pθ​(x0:T​),即:

p θ ( x 0 : T ) = p θ ( x T ) ∏ t = 1 T p θ ( x t − 1 ∣ x t ) p_\theta(x_{0:T}) = p_\theta(x_T) \prod_{t=1}^T p_\theta(x_{t-1} | x_t) pθ​(x0:T​)=pθ​(xT​)∏t=1T​pθ​(xt−1​∣xt​)

每个因子 p θ ( x t − 1 ∣ x t ) p_\theta(x_{t-1} | x_t) pθ​(xt−1​∣xt​)通过以下方式学习逼近未知的 q ( x t − 1 ∣ x t ) q(x_{t-1} | x_t) q(xt−1​∣xt​):
一个可学习的过程去不断逼近不可学习的过程。

p θ ( x t − 1 ∣ x t ) = N ( x t − 1 ; μ θ ( x t , t ) , Σ θ ( x t , t ) ) p_\theta(x_{t-1} | x_t) = \mathcal{N}(x_{t-1}; \mu_\theta(x_t, t), \Sigma_\theta(x_t, t)) pθ​(xt−1​∣xt​)=N(xt−1​;μθ​(xt​,t),Σθ​(xt​,t))

- μ θ \mu_\theta μθ​是可学习的映射(例如 U-Net)。
- Σ θ \Sigma_\theta Σθ​可以是可学习的,但通常简单设定为 σ t I \sigma_t I σt​I。

在模型学习过程中不断去逼近这个训练目标

贝叶斯法则

q ( x t − 1 ∣ x t ) q(x_{t-1} | x_t) q(xt−1​∣xt​)是不可识别的,但可以使用贝叶斯法则来识别 q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1} | x_t, x_0) q(xt−1​∣xt​,x0​):( x 0 x_0 x0​存在的意义是需要 x 0 x_0 x0​去推导 q ( x t − 1 ∣ x 0 ) 和 q ( x t ∣ x 0 ) {q(x_{t-1} | x_0)}和{q(x_t | x_0)} q(xt−1​∣x0​)和q(xt​∣x0​)这两项。)

q ( x t − 1 ∣ x t , x 0 ) = 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) = \frac{q(x_t | x_{t-1}, x_0) q(x_{t-1} | x_0)}{q(x_t | x_0)} q(xt−1​∣xt​,x0​)=q(xt​∣x0​)q(xt​∣xt−1​,x0​)q(xt−1​∣x0​)​

∝ exp ⁡ ( − 1 2 ( ( x t − α t x t − 1 ) 2 β t + ( x t − 1 − α t x 0 ) 2 1 − α ˉ t ) ) \propto \exp\left(-\frac{1}{2} \left( \frac{(x_t - \sqrt{\alpha_t} x_{t-1})^2}{\beta_t} + \frac{(x_{t-1} - \sqrt{\alpha_t} x_0)^2}{1 - \bar{\alpha}_t} \right) \right) ∝exp(−21​(βt​(xt​−αt​ ​xt−1​)2​+1−αˉt​(xt−1​−αt​ ​x0​)2​))

如果遵循高斯分布,

= exp ⁡ ( − 1 2 ( ( α t β t + 1 1 − α ˉ t ) x t − 1 2 − ( 2 α t β t + 2 α t 1 − α ˉ t ) x t x t − 1 ) ) + C ( x t , x 0 ) = \exp\left(-\frac{1}{2} \left( \left(\frac{\alpha_t}{\beta_t} + \frac{1}{1 - \bar{\alpha}_t}\right) x_{t-1}^2 - \left(\frac{2\sqrt{\alpha_t}}{\beta_t} + \frac{2\sqrt{\alpha_t}}{1 - \bar{\alpha}_t}\right) x_t x_{t-1} \right) \right) + C(x_t, x_0) =exp(−21​((βt​αt​​+1−αˉt​1​)xt−12​−(βt​2αt​ ​​+1−αˉt​2αt​ ​​)xt​xt−1​))+C(xt​,x0​)

简而言之,我们写作

q ( x t − 1 ∣ x t , x 0 ) = N ( x t − 1 ; μ ~ t ( x t , x 0 ) , β ~ t I ) q(x_{t-1} | x_t, x_0) = \mathcal{N}(x_{t-1}; \tilde{\mu}_t(x_t, x_0), \tilde{\beta}_t I) q(xt−1​∣xt​,x0​)=N(xt−1​;μ~​t​(xt​,x0​),β~​t​I)

其中

μ ~ t ( x t , x 0 ) = α t − 1 β t 1 − α t x 0 + α t ( 1 − α t − 1 ) 1 − α t x t \tilde{\mu}_t(x_t, x_0) = \frac{\sqrt{\alpha_t - 1} \beta_t}{1 - \alpha_t} x_0 + \frac{\sqrt{\alpha_t}(1 - \alpha_t - 1)}{1 - \alpha_t} x_t μ~​t​(xt​,x0​)=1−αt​αt​−1 ​βt​​x0​+1−αt​αt​ ​(1−αt​−1)​xt​

β ~ t = β t ( 1 − α t ) 1 − α t \tilde{\beta}_t = \frac{\beta_t (1 - \alpha_t)}{1 - \alpha_t} β~​t​=1−αt​βt​(1−αt​)​


q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1} \mid x_t, x_0) q(xt−1​∣xt​,x0​)为后验概率, q ( x t ∣ x t − 1 , x 0 ) q(x_t \mid x_{t-1}, x_0) q(xt​∣xt−1​,x0​)为似然估计, q ( x t − 1 ∣ x 0 ) q(x_{t-1} \mid x_0) q(xt−1​∣x0​)为先验概率, q ( x t ∣ x 0 ) q(x_t \mid x_0) q(xt​∣x0​)为证据(evidence)。

根据先前的公式可以得到以下有利于贝叶斯推导的公式:

q ( x t − 1 ∣ x t , x 0 ) = α t x 0 + 1 − α t ϵ ∼ N ( α t x 0 , 1 − α t ) q(x_{t-1} \mid x_t, x_0) = \sqrt{\alpha_t} x_0 + \sqrt{1 - \alpha_t} \epsilon \sim \mathcal{N}(\sqrt{\alpha_t} x_0, 1 - \alpha_t) q(xt−1​∣xt​,x0​)=αt​ ​x0​+1−αt​ ​ϵ∼N(αt​ ​x0​,1−αt​)

q ( x t ∣ x 0 ) = α t x 0 + 1 − α t ϵ ∼ N ( α t x 0 , 1 − α t ) q(x_t \mid x_0) = \sqrt{\alpha_t} x_0 + \sqrt{1 - \alpha_t} \epsilon \sim \mathcal{N}(\sqrt{\alpha_t} x_0, 1 - \alpha_t) q(xt​∣x0​)=αt​ ​x0​+1−αt​ ​ϵ∼N(αt​ ​x0​,1−αt​)

q ( x t − 1 ∣ x 0 ) = α t − 1 x 0 + 1 − α t − 1 ϵ ∼ N ( α t − 1 x 0 , 1 − α t − 1 ) q(x_{t-1} \mid x_0) = \sqrt{\alpha_{t-1}} x_0 + \sqrt{1 - \alpha_{t-1}} \epsilon \sim \mathcal{N}(\sqrt{\alpha_{t-1}} x_0, 1 - \alpha_{t-1}) q(xt−1​∣x0​)=αt−1​ ​x0​+1−αt−1​ ​ϵ∼N(αt−1​ ​x0​,1−αt−1​)

将有利于贝叶斯推导的公式带入以后贝叶斯公式的表示可以转化为:

∝ exp ⁡ ( − 1 2 ( ( x t − α t − 1 x t − 1 ) 2 β t + ( x t − 1 − α t − 1 x 0 ) 2 1 − α t − 1 + ( x t − α t x 0 ) 2 1 − α t ) ) \propto \exp \left( -\frac{1}{2} \left( \frac{(x_t - \sqrt{\alpha_{t-1}} x_{t-1})^2}{\beta_t} + \frac{(x_{t-1} - \sqrt{\alpha_{t-1}} x_0)^2}{1 - \alpha_{t-1}} + \frac{(x_t - \sqrt{\alpha_t} x_0)^2}{1 - \alpha_t} \right) \right) ∝exp(−21​(βt​(xt​−αt−1​ ​xt−1​)2​+1−αt−1​(xt−1​−αt−1​ ​x0​)2​+1−αt​(xt​−αt​ ​x0​)2​))

平方展开,合并同类项可以得到:

( − 1 2 ( ( α t β t + 1 1 − α ‾ t − 1 ) x t − 1 2 − ( 2 α t β t x t + 2 α t − 1 1 − α ‾ t − 1 x 0 ) x t − 1 + C ( x t , x 0 ) ) ) \left( -\frac{1}{2} \left( \left( \frac{\alpha_t}{\beta_t} + \frac{1}{1 - \overline{\alpha}_{t-1}} \right) x_{t-1}^2 - \left( \frac{2 \sqrt{\alpha_t}}{\beta_t} x_t + \frac{2 \sqrt{\alpha_{t-1}}}{1 - \overline{\alpha}_{t-1}} x_0 \right) x_{t-1} + C(x_t, x_0) \right) \right) (−21​((βt​αt​​+1−αt−1​1​)xt−12​−(βt​2αt​ ​​xt​+1−αt−1​2αt−1​ ​​x0​)xt−1​+C(xt​,x0​)))

其中 C C C是常数项。因为最终求解的是 x t x_t xt​与 x t − 1 x_{t-1} xt−1​的关系,所以其他项无关。所以上述贝叶斯公式中的各项可以写为标准正态分布的形式,而标准正态分布表示为:

N ( μ , σ 2 ) ∝ exp ⁡ ( − ( x − μ ) 2 2 σ 2 ) = exp ⁡ ( − x 2 + μ 2 − 2 x μ 2 σ 2 ) = exp ⁡ ( − x 2 2 σ 2 + μ 2 2 σ 2 − 2 x μ 2 σ 2 ) ) = exp ⁡ ( − 1 2 ( 1 σ 2 x 2 − 2 μ σ 2 x + μ 2 σ 2 ) ) \mathcal{N}(\mu, \sigma^2) \propto \exp \left( -\frac{(x - \mu)^2}{2\sigma^2} \right) =\exp \left( -\frac{x ^2+ \mu^2-2x\mu}{2\sigma^2} \right) =\exp \left( -\frac{x ^2}{2\sigma^2} + \frac{\mu^2}{2\sigma^2} -\frac{2x\mu}{2\sigma^2} \right)) =\exp \left( -\frac{1}{2} \left(\frac{1}{\sigma^2}x ^2- \frac{2\mu}{\sigma^2}x + \frac{\mu^2}{\sigma^2} \right)\right) N(μ,σ2)∝exp(−2σ2(x−μ)2​)=exp(−2σ2x2+μ2−2xμ​)=exp(−2σ2x2​+2σ2μ2​−2σ22xμ​))=exp(−21​(σ21​x2−σ22μ​x+σ2μ2​))
将相关系数进行对应可得


图片 3:DDPM 中的反向过程 (3/3)

q ( x t − 1 ∣ x t , x 0 ) = N ( x t − 1 ; μ ~ t ( x t , x 0 ) , β ~ t I ) q(x_{t-1} | x_t, x_0) = \mathcal{N}(x_{t-1}; \tilde{\mu}_t(x_t, x_0), \tilde{\beta}_t I) q(xt−1​∣xt​,x0​)=N(xt−1​;μ~​t​(xt​,x0​),β~​t​I)

其中

μ ~ t ( x t , x 0 ) = α t ( 1 − α t ) 1 − α t x 0 + α t ( 1 − α t ) 1 − α t x t \tilde{\mu}_t(x_t, x_0) = \frac{\sqrt{\alpha_t (1 - \alpha_t)}}{1 - \alpha_t} x_0 + \frac{\sqrt{\alpha_t}(1 - \alpha_t)}{1 - \alpha_t} x_t μ~​t​(xt​,x0​)=1−αt​αt​(1−αt​) ​​x0​+1−αt​αt​ ​(1−αt​)​xt​

q ( x t ∣ x 0 ) = N ( x t ; α t x t − 1 , ( 1 − α t ) I ) q(x_t | x_0) = \mathcal{N}(x_t; \sqrt{\alpha_t} x_{t-1}, (1 - \alpha_t) I) q(xt​∣x0​)=N(xt​;αt​ ​xt−1​,(1−αt​)I)

使用重参数化(即 N ( a , b ) = a + b N ( 0 , 1 ) \mathcal{N}(a, b) = a + b \mathcal{N}(0, 1) N(a,b)=a+bN(0,1)),我们可以通过 x 0 x_0 x0​和 ϵ ∼ N ( 0 , 1 ) \epsilon \sim \mathcal{N}(0, 1) ϵ∼N(0,1)表示 x t x_t xt​:

x t = x t ( x 0 , ϵ ) = α t x 0 + 1 − α t ϵ x_t = x_t(x_0, \epsilon) = \sqrt{\alpha_t} x_0 + \sqrt{1 - \alpha_t} \epsilon xt​=xt​(x0​,ϵ)=αt​ ​x0​+1−αt​ ​ϵ

反之,我们可以通过 x t x_t xt​和 ϵ \epsilon ϵ表示 x 0 x_0 x0​:

μ ~ t = μ ~ t ( x t , ϵ ) = 1 α t ( x t − β t 1 − α t ϵ ) \tilde{\mu}_t = \tilde{\mu}_t(x_t, \epsilon) = \frac{1}{\sqrt{\alpha_t}} \left( x_t - \beta_t \sqrt{1 - \alpha_t} \epsilon \right) μ~​t​=μ~​t​(xt​,ϵ)=αt​ ​1​(xt​−βt​1−αt​ ​ϵ)

标签:frac,概率模型,sqrt,DDPM,beta,数学原理,alpha,x0,xt
From: https://blog.csdn.net/weixin_48136514/article/details/140134948

相关文章

  • 机器学习笔记 LightGBM:理解算法背后的数学原理
    一、简述        在一次数据科学的比赛中,我有机会使用LightGBM,这是一种最先进的机器学习算法,它极大地改变了我们处理预测建模任务的方式。我对它在数千个数据点上进行训练的速度感到着迷,同时保持了其他算法难以达到的准确性。LightGBM是LightGradientBoostingMac......
  • Diffusion Model-DDPM
      扩散过程是一个逐渐在数据上加噪的马尔科夫链,直到最终变成一个完全的噪声。而扩散模型就是一个使用变分推断训练的参数化马尔科夫链。如上图所示。学习的是一个reverseprocess。 前提条件:1.马尔可夫性质:当前的状态只与之前一个时刻的状态有关;2.前向和反向状态服从高......
  • diffusion model(一):DDPM技术小结 (denoising diffusion probabilistic)
    发布日期:2023/05/18主页地址:http://myhz0606.com/article/ddpm1从直觉上理解DDPM在详细推到公式之前,我们先从直觉上理解一下什么是扩散对于常规的生成模型,如GAN,VAE,它直接从噪声数据生成图像,我们不妨记噪声数据为\(z\),其生成的图片为\(x\)对于常规的生成模型:学习一个解码函......
  • DDPM原理
    生成模型核心原理解释:将观测变量(数据集图片)进行编码为具有某个确定分布(一般为正太分布)的隐变量,然后再将该隐变量解码为观测变量。在推理过程中就可以通过在隐变量的分布中进行随机采样,然后将其解码为生成的图片,进而实现生成内容的多样性。DDPMDDPM相比VAE,在将观测变量编码为......
  • As a reader --> TabDDPM: Modelling Tabular Data with Diffusion Models
    ......
  • 神经网络背后的数学原理
    原文地址:TheMathBehindNeuralNetworks2024年3月29日深入研究现代人工智能的支柱——神经网络,了解其数学原理,从头开始实现它,并探索其应用。神经网络是人工智能(AI)的核心,为从发现照片中的物体到翻译语言的各种应用提供动力。在本文中,我们将深入探讨神经网络是什么,它......
  • 【Paper Reading】7.DiT(VAE+ViT+DDPM) Sora的base论文
    VAEDDPM 分类内容论文题目ScalableDiffusionModelswithTransformers作者WilliamPeebles(UCBerkeley),SainingXie(NewYorkUniversity)发表年份2023摘要介绍了一类新的扩散模型,这些模型利用Transformer架构,专注于图像生成的潜在扩散模型。这些......
  • Denoising Diffusion Probabilistic Models去噪扩散模型(DDPM)
    DenoisingDiffusionProbabilisticModels去噪扩散模型(DDPM)2024/2/28论文链接:DenoisingDiffusionProbabilisticModels(neurips.cc)这篇文章对DDPM写个大概,公式推导会放在以后的文章里。一、引言Introduction各类深度生成模型在多种数据模态上展示了高质量的样本。生成......
  • Part3: Dive into DDPM
    背景整个系列有相对完整的公式推导,若正文中有涉及到的省略部分,皆额外整理在Part4,并会在正文中会指明具体位置。在Part2基于\(\text{VariationalInference}\),找到原目标函数\(-\ln{p_\theta(x_0)}\)的上界\(L\),定义如下:\[\begin{aligned}L:=&\mathbb{E}_q\left[-\log\frac......
  • 模板匹配里的一些数学原理
    模板匹配里的一些数学原理我们知道,在openCV里,模板匹配中匹配度的计算公式有三类。SQDIFF、CCORR、CCOEFF。下面我们来简单介绍一下这三类计算方法,并比较其不同之处。openCV里的模板匹配SQDIFFSQDIFF全称SumofSquaredDifference(SSD),即差的平方和。其离散形式为:\[E(\v......