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=1Tq(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=1Tq(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,βtI)
参数 β 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 βtI
方差 β t I \beta_t I βtI表示在每一步中添加的噪声的强度,其中 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=1Tpθ(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=1Tpθ(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的过程。
分步骤展开
-
从终点开始: x T x_T xT是初始的高斯噪声,所以 p θ ( x T ) p_\theta(x_T) pθ(xT)是已知的初始分布。
-
反向过程: 从 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=1Tpθ(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
σtI。
在模型学习过程中不断去逼近这个训练目标
贝叶斯法则
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−αˉt1)xt−12−(βt2αt +1−αˉt2αt )xtxt−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),β~tI)
其中
μ ~ 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 βtx0+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−11)xt−12−(βt2αt xt+1−αt−12α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(σ21x2−σ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),β~tI)
其中
μ ~ 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−βt1−αt ϵ)
标签:frac,概率模型,sqrt,DDPM,beta,数学原理,alpha,x0,xt From: https://blog.csdn.net/weixin_48136514/article/details/140134948