DDPM扩散模型公式推理----扩散和逆扩散过程
目录
说明
本文章旨在梳理DDPM这篇论文中的各个公式含义及推导,很多内容从其他博客处摘录,在文后列举。一篇文章发不全,拆开成两篇了。
1.Diffusion model的直观理解
打个比方,就像是给你一块木头,让你把它雕刻成一个佛像,需要栩栩如生。Diffusion model在推理阶段就是在执行逆扩散过程,也就是雕刻佛像的过程。
用数学语言进行描述,生成式模型本质上是从一组概率分布中得到另一组概率分布。如下图所示,左边是一个训练数据集,里面所有的数据都是从某个数据
p
data
p_{\text {data }}
pdata 中独立同分布取出的随机样本。右边就是其生成式模型(概率分布),在这种概率分布中,找出一个分布
p
θ
p_ {\theta }
pθ使得它离
p
data
p_{\text {data }}
pdata 的距离最近。接着在
p
θ
p_ {\theta }
pθ上采新的样本,可以获得源源不断的新数据。
Diffusion model由
p
data
p_{\text {data }}
pdata 得到
p
θ
p_ {\theta }
pθ的过程分为两个阶段:
扩散过程 q q q,在 p data p_{\text {data }} pdata 上不断加噪声,使得他最终变成一个纯噪声分布 N ( 0 , I ) \mathcal{N}\left(0, I\right) N(0,I)
逆扩散过程 p p p,将噪声 N ( 0 , I ) \mathcal{N}\left(0, I\right) N(0,I)分布逐步地去噪以映射到 p data p_{\text {data }} pdata ,有了这样的映射,我们从噪声分布中采样,最终可以得到一张想要的图像,也就是可以做生成了。
而从单个图像样本来看这个过程,扩散过程
q
q
q就是不断往图像上加噪声直到图像变成一个纯噪声,逆扩散过程
p
p
p就是从纯噪声生成一张图像的过程。
2.数学解析Diffusion Model
2.1 Diffusion 前向过程(扩散过程)
给定真实图片样本
x
0
∼
q
(
x
)
x_{0} \sim q(x)
x0∼q(x),diffusion 前向过程通过
T
T
T次累计对其添加高斯噪声,得到
x
1
,
x
2
,
…
,
x
T
x_{1}, x_{2}, \ldots, x_{T}
x1,x2,…,xT,如下图的
q
q
q过程。每一步的大小是由一系列的高斯分布方差的超参数
{
β
t
∈
(
0
,
1
)
}
t
=
1
T
\left\{\beta_{t} \in(0,1)\right\}_{t=1}^{T}
{βt∈(0,1)}t=1T来控制的。 前向过程由于每个时刻
t
t
t只与
t
−
1
t-1
t−1时刻有关,所以也可以看做马尔科夫过程:
q
(
x
t
∣
x
t
−
1
)
=
N
(
x
t
;
1
−
β
t
x
t
−
1
,
β
t
I
)
,
q
(
x
1
:
T
∣
x
0
)
=
∏
t
=
1
T
q
(
x
t
∣
x
t
−
1
)
q\left(x_{t} \mid x_{t-1}\right)=\mathcal{N}\left(x_{t} ; \sqrt{1-\beta_{t}} x_{t-1}, \beta_{t} \mathbf{I}\right), q\left(x_{1: T} \mid x_{0}\right)=\prod_{t=1}^{T} q\left(x_{t} \mid x_{t-1}\right)
q(xt∣xt−1)=N(xt;1−βtxt−1,βtI),q(x1:T∣x0)=t=1∏Tq(xt∣xt−1)
- β t \beta_{t} βt为方差
- 1 − β t \sqrt{1-\beta_{t}} 1−βt为均值,且之后要用到的 α t = 1 − β t \alpha_t = 1-\beta_{t} αt=1−βt,即 α t \alpha_t αt为均值的平方
这个过程中,随着 t t t的增大, x t x_t xt越来越接近纯噪声。当 T → ∞ T \rightarrow \infty T→∞, x T x_T xT是完全的高斯噪声(下面会证明,且与均值系数 1 − β t \sqrt{1-\beta_{t}} 1−βt的选择有关)。
将其中的第 t t t 步提取出来解析, x t x_t xt的分布为 q ( x t ∣ x t − 1 ) = N ( x t ; 1 − β t x t − 1 , β t I ) q\left(x_{t} \mid x_{t-1}\right)=\mathcal{N}\left(x_{t} ; \sqrt{1-\beta_{t}} x_{t-1}, \beta_{t} \mathbf{I}\right) q(xt∣xt−1)=N(xt;1−βtxt−1,βtI),而 x t − 1 x_{t-1} xt−1在该步中为已知,即已经被第 t − 1 t-1 t−1步求解出来了,所以 x t − 1 x_{t-1} xt−1 可以看作常数。所以 x t x_t xt 的均值为常数 1 − β t x t − 1 \sqrt{1-\beta_{t}} x_{t-1} 1−βtxt−1 ,方差为 β t \beta_{t} βt
2.1.1 重参数技巧(reparameterization trick)
如果要从高斯分布
z
∼
N
(
z
;
μ
θ
,
σ
θ
2
I
)
z \sim \mathcal{N}\left(z ; \mu_{\theta}, \sigma_{\theta}^{2} \mathbf{I}\right)
z∼N(z;μθ,σθ2I) 采样一个
z
z
z ,我们可以写成:
z
=
μ
θ
+
σ
θ
⊙
ϵ
,
ϵ
∼
N
(
0
,
I
)
z=\mu_{\theta}+\sigma_{\theta} \odot \epsilon, \epsilon \sim \mathcal{N}(0, \mathbf{I})
z=μθ+σθ⊙ϵ,ϵ∼N(0,I)
所以
q
(
x
t
∣
x
t
−
1
)
=
N
(
x
t
;
1
−
β
t
x
t
−
1
,
β
t
I
)
q\left(x_{t} \mid x_{t-1}\right)=\mathcal{N}\left(x_{t} ; \sqrt{1-\beta_{t}} x_{t-1}, \beta_{t} \mathbf{I}\right)
q(xt∣xt−1)=N(xt;1−βtxt−1,βtI) 可以写作:
x
t
=
α
t
x
t
−
1
+
1
−
α
t
ϵ
t
−
1
\mathbf{x}_{t}=\sqrt{\alpha_{t}} \mathbf{x}_{t-1}+\sqrt{1-\alpha_{t}} \boldsymbol{\epsilon}_{t-1}
xt=αtxt−1+1−αtϵt−1
其中
α
t
=
1
−
β
t
\alpha_t = 1-\beta_{t}
αt=1−βt ,
ϵ
t
−
1
∼
N
(
0
,
I
)
\boldsymbol{\epsilon}_{t-1} \sim \mathcal{N}(0, \mathbf{I})
ϵt−1∼N(0,I)
2.1.2 任意时刻的 x t x_t xt 可以由 x 0 x_0 x0 和 β t \beta_{t} βt 直接表示
在前向过程中,有一个性质非常棒,就是我们其实可以通过 x 0 x_0 x0 和 β t \beta_{t} βt 直接得到 x t x_t xt。
x
t
=
α
t
x
t
−
1
+
1
−
α
t
ϵ
t
−
1
=
α
t
(
α
t
−
1
x
t
−
2
+
1
−
α
t
−
1
ϵ
t
−
2
)
+
1
−
α
t
ϵ
t
−
1
=
α
t
[
α
t
−
1
(
α
t
−
2
x
t
−
3
+
1
−
α
t
−
2
ϵ
t
−
3
)
+
1
−
α
t
−
1
ϵ
t
−
2
]
+
1
−
α
t
ϵ
t
−
1
=
⋯
=
α
t
α
t
−
1
⋯
α
1
x
0
+
α
t
α
t
−
1
⋯
α
2
1
−
α
1
ϵ
0
+
α
t
α
t
−
1
⋯
α
3
1
−
α
2
ϵ
1
+
⋯
+
α
t
1
−
α
t
−
1
ϵ
t
−
2
+
1
−
α
t
ϵ
t
−
1
\begin{array}{rlr} \mathbf{x}_{t} & =\sqrt{\alpha_{t}} \mathbf{x}_{t-1}+\sqrt{1-\alpha_{t}} \boldsymbol{\epsilon}_{t-1} \\ \\ & = \sqrt{\alpha_{t}} \left( \sqrt{ \alpha_{t-1}}\mathbf{x}_{t-2} + \sqrt{1-\alpha_{t-1}}\boldsymbol{\epsilon}_{t-2} \right) + \sqrt{ 1-\alpha_{t}} \boldsymbol{\epsilon}_{t-1}\\ \\ & = \sqrt{\alpha_{t}} \left[ \sqrt{ \alpha_{t-1}} \left( \sqrt{ \alpha_{t-2}}\mathbf{x}_{t-3} + \sqrt{1-\alpha_{t-2}}\boldsymbol{\epsilon}_{t-3} \right) + \sqrt{1-\alpha_{t-1}}\boldsymbol{\epsilon}_{t-2} \right] \\ \\ &+ \sqrt{ 1-\alpha_{t}} \boldsymbol{\epsilon}_{t-1}\\ \\ &= \cdots\\ \\ &= \sqrt{\alpha_{t}} \sqrt{\alpha_{t-1}} \cdots \sqrt{\alpha_{1}} x_0 + \sqrt{\alpha_{t}} \sqrt{\alpha_{t-1}} \cdots \sqrt{\alpha_{2}}\sqrt{1-\alpha_{1}} \boldsymbol{\epsilon}_{0} \\ \\ &+ \sqrt{\alpha_{t}} \sqrt{\alpha_{t-1}} \cdots \sqrt{\alpha_{3}}\sqrt{1-\alpha_{2}} \boldsymbol{\epsilon}_{1} + \cdots + \sqrt{\alpha_{t}} \sqrt{1-\alpha_{t-1}} \boldsymbol{\epsilon}_{t-2} \\ \\ &+ \sqrt{1-\alpha_{t}} \boldsymbol{\epsilon}_{t-1}\\ \end{array}
xt=αtxt−1+1−αtϵt−1=αt(αt−1xt−2+1−αt−1ϵt−2)+1−αtϵt−1=αt[αt−1(αt−2xt−3+1−αt−2ϵt−3)+1−αt−1ϵt−2]+1−αtϵt−1=⋯=αtαt−1⋯α1x0+αtαt−1⋯α21−α1ϵ0+αtαt−1⋯α31−α2ϵ1+⋯+αt1−αt−1ϵt−2+1−αtϵt−1
其中,
ϵ
0
⋯
ϵ
t
−
1
\boldsymbol{\epsilon}_{0} \cdots \boldsymbol{\epsilon}_{t-1}
ϵ0⋯ϵt−1 都为标准正态分布,服从
N
(
0
,
I
)
\mathcal{N}(0, \mathbf{I})
N(0,I)。正态分布有两个性质:
- c ϵ c \boldsymbol{\epsilon} cϵ也为正态分布,且 c ϵ ∼ N ( 0 , c 2 I ) c \boldsymbol{\epsilon} \sim \mathcal{N}(0, \mathbf{c^2I}) cϵ∼N(0,c2I), c c c 为常数
- 可加性,即 N ( 0 , σ 1 2 I ) + N ( 0 , σ 2 2 I ) ∼ N ( 0 , ( σ 1 2 + σ 2 2 ) I ) \mathcal{N}\left(0, \sigma_{1}^{2} \mathbf{I}\right)+\mathcal{N}\left(0, \sigma_{2}^{2} \mathbf{I}\right) \sim \mathcal{N}\left(0,\left(\sigma_{1}^{2}+\sigma_{2}^{2}\right) \mathbf{I}\right) N(0,σ12I)+N(0,σ22I)∼N(0,(σ12+σ22)I)
所以上式中,
α
t
α
t
−
1
⋯
α
2
1
−
α
1
ϵ
0
\sqrt{\alpha_{t}} \sqrt{\alpha_{t-1}} \cdots \sqrt{\alpha_{2}}\sqrt{1-\alpha_{1}} \boldsymbol{\epsilon}_{0}
αtαt−1⋯α21−α1ϵ0服从正态分布,均值为0,方差为
α
t
α
t
−
1
⋯
α
2
(
1
−
α
1
)
\alpha_{t} \alpha_{t-1} \cdots \alpha_{2} (1- \alpha_{1})
αtαt−1⋯α2(1−α1),再由可加性,上式方差为:
α
t
α
t
−
1
⋯
α
2
(
1
−
α
1
)
+
α
t
α
t
−
1
⋯
α
3
(
1
−
α
2
)
+
⋯
⋯
+
α
t
(
1
−
α
t
−
1
)
+
(
1
−
α
t
)
=
α
t
[
α
t
−
1
⋯
α
2
(
1
−
α
1
)
+
α
t
−
1
⋯
α
3
(
1
−
α
2
)
+
⋯
⋯
+
(
1
−
α
t
−
1
)
−
1
]
+
1
=
α
t
[
α
t
−
1
⋯
α
2
(
1
−
α
1
)
+
α
t
−
1
⋯
α
3
(
1
−
α
2
)
+
⋯
⋯
+
α
t
−
1
(
1
−
α
t
−
2
)
−
α
t
−
1
]
+
1
=
α
t
α
t
−
1
[
α
t
−
2
⋯
α
2
(
1
−
α
1
)
+
α
t
−
2
⋯
α
3
(
1
−
α
2
)
+
⋯
⋯
+
α
t
−
2
(
1
−
α
t
−
3
)
−
α
t
−
2
]
+
1
=
α
t
α
t
−
1
⋯
α
3
[
α
2
(
1
−
α
1
)
+
(
1
−
α
2
)
−
1
]
+
1
=
1
−
α
t
α
t
−
1
⋯
α
3
α
2
α
1
=
1
−
α
ˉ
t
\begin{array}{rlr} &\alpha_{t} \alpha_{t-1} \cdots \alpha_{2} (1-\alpha_{1})+ \alpha_{t} \alpha_{t-1} \cdots \alpha_{3} (1-\alpha_{2}) + \cdots\cdots + \alpha_{t} (1-\alpha_{t-1}) \\ \\ &+ (1-\alpha_{t}) \boldsymbol \\ \\ &= \alpha_{t} \left[\alpha_{t-1} \cdots \alpha_{2}(1-\alpha_1) + \alpha_{t-1} \cdots \alpha_{3}(1-\alpha_2) + \cdots\cdots + (1 - \alpha_{t-1}) - 1\right] + 1\\ \\ & = \alpha_{t} \left[\alpha_{t-1} \cdots \alpha_{2}(1-\alpha_1) + \alpha_{t-1} \cdots \alpha_{3}(1-\alpha_2) + \cdots\cdots+ \alpha_{t-1} (1-\alpha_{t-2}) - \alpha_{t-1} \right] + 1\\ \\ & = \alpha_{t}\alpha_{t-1} \left[\alpha_{t-2} \cdots \alpha_{2}(1-\alpha_1) + \alpha_{t-2} \cdots \alpha_{3}(1-\alpha_2) + \cdots\cdots+ \alpha_{t-2} (1-\alpha_{t-3}) - \alpha_{t-2} \right] + 1\\ \\ & = \alpha_{t}\alpha_{t-1} \cdots \alpha_{3} \left[ \alpha_{2} \left( 1 - \alpha_1 \right) + (1 - \alpha_2) - 1 \right] + 1\\ \\ &= 1- \alpha_{t}\alpha_{t-1} \cdots \alpha_{3}\alpha_{2}\alpha_{1} \\ \\ &= 1- \bar{\alpha}_{t} \end{array}
αtαt−1⋯α2(1−α1)+αtαt−1⋯α3(1−α2)+⋯⋯+αt(1−αt−1)+(1−αt)=αt[αt−1⋯α2(1−α1)+αt−1⋯α3(1−α2)+⋯⋯+(1−αt−1)−1]+1=αt[αt−1⋯α2(1−α1)+αt−1⋯α3(1−α2)+⋯⋯+αt−1(1−αt−2)−αt−1]+1=αtαt−1[αt−2⋯α2(1−α1)+αt−2⋯α3(1−α2)+⋯⋯+αt−2(1−αt−3)−αt−2]+1=αtαt−1⋯α3[α2(1−α1)+(1−α2)−1]+1=1−αtαt−1⋯α3α2α1=1−αˉt
其中,
α
ˉ
t
=
α
t
α
t
−
1
⋯
α
3
α
2
α
1
\bar{\alpha}_{t} = \alpha_{t}\alpha_{t-1} \cdots \alpha_{3}\alpha_{2}\alpha_{1}
αˉt=αtαt−1⋯α3α2α1,所以:
x
t
=
α
t
x
t
−
1
+
1
−
α
t
ϵ
t
−
1
=
α
ˉ
t
x
0
+
1
−
α
ˉ
t
ϵ
\begin{array}{rlr} \mathbf{x}_{t} & =\sqrt{\alpha_{t}} \mathbf{x}_{t-1}+\sqrt{1-\alpha_{t}} \boldsymbol{\epsilon}_{t-1} \\ \\ & = \sqrt{\bar{\alpha}_{t}} \mathbf{x}_{0}+\sqrt{1-\bar{\alpha}_{t}} \boldsymbol{\epsilon} \end{array}
xt=αtxt−1+1−αtϵt−1=αˉtx0+1−αˉtϵ
因此任意时刻的
x
t
x_t
xt 满足:
q
(
x
t
∣
x
0
)
=
N
(
x
t
;
α
ˉ
t
x
0
,
(
1
−
α
ˉ
t
)
I
)
q\left(\mathbf{x}_{t} \mid \mathbf{x}_{0}\right)=\mathcal{N}\left(\mathbf{x}_{t} ; \sqrt{\bar{\alpha}_{t}} \mathbf{x}_{0},\left(1-\bar{\alpha}_{t}\right) \mathbf{I}\right)
q(xt∣x0)=N(xt;αˉtx0,(1−αˉt)I)
2.1.3 技巧3: α t = 1 − β t \alpha_t = 1-\beta_{t} αt=1−βt
之所以要令 α t = 1 − β t \alpha_t = 1-\beta_{t} αt=1−βt,是因为只有这样才能推导出2.1.2中的结果。在原论文中, T T T 设为1000,即要进行1000次扩散加噪过程,每次扩散过程的参数关系为: β 1 < β 2 < … < β T \beta_{1}<\beta_{2}<\ldots<\beta_{T} β1<β2<…<βT,且 β t \beta_t βt 为 0.0001 到 0.02 线性插值。
所以 1 − α ˉ t 1-\bar{\alpha}_{t} 1−αˉt 会趋近于1, α ˉ t \bar{\alpha}_{t} αˉt 趋近于0,即均值趋近于0,方差趋近于1。所以 q ( x t ∣ x 0 ) q\left(\mathbf{x}_{t} \mid \mathbf{x}_{0}\right) q(xt∣x0) 趋近于标准正态分布 N ( 0 , I ) \mathcal{N}(0, \mathbf{I}) N(0,I)。
2.2 Diffusion 逆扩散过程
如果我们能够逆转上述过程并从 q ( x t − 1 ∣ x t ) q\left(x_{t-1} \mid x_{t}\right) q(xt−1∣xt) 采样,就可以从高斯噪声 x T ∼ N ( 0 , I ) x_{T} \sim \mathcal{N}(0, \mathbf{I}) xT∼N(0,I) 还原出原图分布 x 0 ∼ q ( x ) x_{0} \sim q(x) x0∼q(x) 。我们无法简单推断 q ( x t − 1 ∣ x t ) q\left(x_{t-1} \mid x_{t}\right) q(xt−1∣xt) ,所以通过神经网络去预测这样的一个逆向的分布 p θ p_{\theta} pθ。
逆扩散过程的数学表达式:
p
θ
(
X
0
:
T
)
=
p
(
x
T
)
∏
t
=
1
T
p
θ
(
x
t
−
1
∣
x
t
)
m
p
θ
(
x
t
−
1
∣
x
t
)
=
N
(
x
t
−
1
;
μ
θ
(
x
t
,
t
)
,
Σ
θ
(
x
t
,
t
)
)
p_{\theta}\left(X_{0: T}\right)=p\left(x_{T}\right) \prod_{t=1}^{T} p_{\theta}\left(x_{t-1} \mid x_{t}\right)m \\ p_{\theta}\left(x_{t-1} \mid x_{t}\right)=\mathcal{N}\left(x_{t-1} ; \mu_{\theta}\left(x_{t}, t\right), \Sigma_{\theta}\left(x_{t}, t\right)\right)
pθ(X0:T)=p(xT)t=1∏Tpθ(xt−1∣xt)mpθ(xt−1∣xt)=N(xt−1;μθ(xt,t),Σθ(xt,t))
在论文中,作者把条件概率
p
θ
(
x
t
−
1
∣
x
t
)
p_{\theta}\left(x_{t-1} \mid x_{t}\right)
pθ(xt−1∣xt) 的方差直接取
β
t
\beta_t
βt,用神经网络UNet估计均值。
虽然我们无法得到逆转过程的概率分布
q
(
x
t
−
1
∣
x
t
)
q\left(x_{t-1} \mid x_{t}\right)
q(xt−1∣xt) ,但是已经有了已知的
x
0
x_0
x0,就可以写出其大致形式:
q
(
x
t
−
1
∣
x
t
)
=
q
(
x
t
−
1
∣
x
t
,
x
0
)
=
N
(
x
t
−
1
;
μ
~
(
x
t
,
x
0
)
,
β
~
t
I
)
q\left(x_{t-1} \mid x_{t}\right) = q\left(x_{t-1} \mid x_{t}, x_{0}\right)=\mathcal{N}\left(x_{t-1} ; \tilde{\mu}\left(x_{t}, x_{0}\right), \tilde{\beta}_{t} \mathbf{I}\right)
q(xt−1∣xt)=q(xt−1∣xt,x0)=N(xt−1;μ~(xt,x0),β~tI)
由贝叶斯公式:
q
(
x
t
−
1
∣
x
t
,
x
0
)
=
q
(
x
t
,
x
0
,
x
t
−
1
)
q
(
x
t
,
x
0
)
=
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
)
q
(
x
t
−
1
∣
x
0
)
q
(
x
t
∣
x
0
)
∝
exp
(
−
1
2
(
(
x
t
−
α
t
x
t
−
1
)
2
β
t
+
(
x
t
−
1
−
α
ˉ
t
−
1
x
0
)
2
1
−
a
ˉ
t
−
1
−
(
x
t
−
α
ˉ
t
x
0
)
2
1
−
a
ˉ
t
)
)
=
exp
(
−
1
2
(
(
(
α
t
β
t
+
1
1
−
α
ˉ
t
−
1
)
x
t
−
1
2
⏟
x
t
−
1
方差
−
(
2
α
t
β
t
x
t
+
2
a
ˉ
t
−
1
1
−
α
ˉ
t
−
1
x
0
)
x
t
−
1
⏟
x
t
−
1
均值
+
C
(
x
t
,
x
0
)
⏟
与
x
t
−
1
无关
)
)
.
\begin{array}{l} q\left(x_{t-1} \mid x_{t}, x_{0}\right) \\ \\ =\frac{q\left(x_{t}, x_{0}, x_{t-1}\right)}{q\left(x_{t}, x_{0}\right)} \\ \\ =\frac{q\left(x_{0}\right) q\left(x_{t-1} \mid x_{0}\right) q\left(x_{t} \mid x_{t-1}, x_{0}\right)}{q\left(x_{0}\right) q\left(x_{t} \mid x_{0}\right)} \\ \\ =q\left(x_{t} \mid x_{t-1}, x_{0}\right) \frac{q\left(x_{t-1} \mid x_{0}\right)}{q\left(x_{t} \mid x_{0}\right)} \\ \\ \propto \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{\bar{\alpha}_{t-1}} x_{0}\right)^{2}}{1-\bar{a}_{t-1}}-\frac{\left(x_{t}-\sqrt{\bar{\alpha}_{t}} x_{0}\right)^{2}}{1-\bar{a}_{t}}\right)\right) \\ \\ =\exp \left(-\frac{1}{2}(\underbrace{\left(\left(\frac{\alpha_{t}}{\beta_{t}}+\frac{1}{1-\bar{\alpha}_{t-1}}\right) x_{t-1}^{2}\right.}_{x_{t-1} \text { 方差 }}-\underbrace{\left(\frac{2 \sqrt{\alpha_{t}}}{\beta_{t}} x_{t}+\frac{2 \sqrt{\bar{a}_{t-1}}}{1-\bar{\alpha}_{t-1}} x_{0}\right) x_{t-1}}_{x_{t-1} \text { 均值 }}+\underbrace{C\left(x_{t}, x_{0}\right)}_{\text {与 } x_{t-1} \text { 无关 }})\right) . \\ \end{array}
q(xt−1∣xt,x0)=q(xt,x0)q(xt,x0,xt−1)=q(x0)q(xt∣x0)q(x0)q(xt−1∣x0)q(xt∣xt−1,x0)=q(xt∣xt−1,x0)q(xt∣x0)q(xt−1∣x0)∝exp(−21(βt(xt−αtxt−1)2+1−aˉt−1(xt−1−αˉt−1x0)2−1−aˉt(xt−αˉtx0)2))=exp
−21(xt−1 方差
((βtαt+1−αˉt−11)xt−12−xt−1 均值
(βt2αtxt+1−αˉt−12aˉt−1x0)xt−1+与 xt−1 无关
C(xt,x0))
.
一般的高斯概率密度函数的指数部分为
exp
(
−
(
x
−
μ
)
2
2
σ
2
)
=
exp
(
−
1
2
(
1
σ
2
x
2
−
2
μ
σ
2
x
+
μ
2
σ
2
)
)
\exp \left(-\frac{(x-\mu)^{2}}{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)
exp(−2σ2(x−μ)2)=exp(−21(σ21x2−σ22μx+σ2μ2))
因此稍加整理我们可以得到
q
(
x
t
−
1
∣
x
t
,
x
0
)
q\left(x_{t-1} \mid x_{t}, x_{0}\right)
q(xt−1∣xt,x0) 的均值和方差为:
β
~
t
=
1
/
(
α
t
β
t
+
1
1
−
α
ˉ
t
−
1
)
=
1
/
(
α
t
−
α
ˉ
t
+
β
t
β
t
(
1
−
α
ˉ
t
−
1
)
)
=
1
−
α
ˉ
t
−
1
1
−
α
ˉ
t
⋅
β
t
\tilde{\beta}_{t}=1 /\left(\frac{\alpha_{t}}{\beta_{t}}+\frac{1}{1-\bar{\alpha}_{t-1}}\right)=1 /\left(\frac{\alpha_{t}-\bar{\alpha}_{t}+\beta_{t}}{\beta_{t}\left(1-\bar{\alpha}_{t-1}\right)}\right)=\frac{1-\bar{\alpha}_{t-1}}{1-\bar{\alpha}_{t}} \cdot \beta_{t}
β~t=1/(βtαt+1−αˉt−11)=1/(βt(1−αˉt−1)αt−αˉt+βt)=1−αˉt1−αˉt−1⋅βt
μ
~
t
(
x
t
,
x
0
)
=
(
α
t
β
t
x
t
+
α
ˉ
t
−
1
1
−
α
ˉ
t
−
1
x
0
)
/
(
α
t
β
t
+
1
1
−
α
ˉ
t
−
1
)
=
(
α
t
β
t
x
t
+
α
ˉ
t
−
1
1
−
α
ˉ
t
−
1
x
0
)
1
−
α
ˉ
t
−
1
1
−
α
ˉ
t
⋅
β
t
=
α
t
(
1
−
α
ˉ
t
−
1
)
1
−
α
ˉ
t
x
t
+
α
ˉ
t
−
1
β
t
1
−
α
ˉ
t
x
0
\begin{aligned} \tilde{\boldsymbol{\mu}}_{t}\left(\mathbf{x}_{t}, \mathbf{x}_{0}\right) & =\left(\frac{\sqrt{\alpha_{t}}}{\beta_{t}} \mathbf{x}_{t}+\frac{\sqrt{\bar{\alpha}_{t-1}}}{1-\bar{\alpha}_{t-1}} \mathbf{x}_{0}\right) /\left(\frac{\alpha_{t}}{\beta_{t}}+\frac{1}{1-\bar{\alpha}_{t-1}}\right) \\ \\ & =\left(\frac{\sqrt{\alpha_{t}}}{\beta_{t}} \mathbf{x}_{t}+\frac{\sqrt{\bar{\alpha}_{t-1}}}{1-\bar{\alpha}_{t-1}} \mathbf{x}_{0}\right) \frac{1-\bar{\alpha}_{t-1}}{1-\bar{\alpha}_{t}} \cdot \beta_{t} \\ \\ & =\frac{\sqrt{\alpha_{t}}\left(1-\bar{\alpha}_{t-1}\right)}{1-\bar{\alpha}_{t}} \mathbf{x}_{t}+\frac{\sqrt{\bar{\alpha}_{t-1}} \beta_{t}}{1-\bar{\alpha}_{t}} \mathbf{x}_{0} \end{aligned}
μ~t(xt,x0)=(βtαtxt+1−αˉt−1αˉt−1x0)/(βtαt+1−αˉt−11)=(βtαtxt+1−αˉt−1αˉt−1x0)1−αˉt1−αˉt−1⋅βt=1−αˉtαt(1−αˉt−1)xt+1−αˉtαˉt−1βtx0
方差 β ~ t \tilde{\beta}_{t} β~t 的参数都是已知的,拿来直接用。
均值还可以再进一步化简。由2.1.2得到的
x
0
=
1
α
ˉ
i
(
x
t
−
1
−
α
ˉ
t
ϵ
t
)
x_{0}=\frac{1}{\sqrt{\bar{\alpha}_{i}}}\left(x_{t}-\sqrt{1-\bar{\alpha}_{t}} \epsilon_{t}\right)
x0=αˉi1(xt−1−αˉtϵt) 代入均值表达式得:
μ
~
t
=
1
α
t
(
x
t
−
1
−
α
t
1
−
α
ˉ
t
ε
t
)
\tilde{\mu}_{t}=\frac{1}{\sqrt{\alpha_{t}}}\left(x_{t}-\frac{1-\alpha_{t}}{\sqrt{1-\bar{\alpha}_{t}}} \varepsilon_{t}\right)
μ~t=αt1(xt−1−αˉt1−αtεt)
可以看出,在给定
x
0
x_0
x0 的条件下,后验条件高斯分布的的均值只和超参数
x
t
,
ϵ
t
x_t,\epsilon_t
xt,ϵt 有关,方差只与超参数有关。
所以
μ
~
t
=
1
α
t
(
x
t
−
1
−
α
t
1
−
α
ˉ
t
ε
t
)
\tilde{\mu}_{t}=\frac{1}{\sqrt{\alpha_{t}}}\left(x_{t}-\frac{1-\alpha_{t}}{\sqrt{1-\bar{\alpha}_{t}}} \varepsilon_{t}\right)
μ~t=αt1(xt−1−αˉt1−αtεt)
β
~
t
=
1
−
α
ˉ
t
−
1
1
−
α
ˉ
t
⋅
β
t
\tilde{\beta}_{t}=\frac{1-\bar{\alpha}_{t-1}}{1-\bar{\alpha}_{t}} \cdot \beta_{t}
β~t=1−αˉt1−αˉt−1⋅βt
就是逆扩散过程
q
(
x
t
−
1
∣
x
t
,
x
0
)
q\left(x_{t-1} \mid x_{t}, x_{0}\right)
q(xt−1∣xt,x0) 的解析形式,也就是相当于逆扩散过程的真实分布。
我们要做的是将分布 p θ ( X 0 : T ) p_{\theta}\left(X_{0: T}\right) pθ(X0:T) 无限接近上面的真实分布。
接下来是对损失函数的分析,文章太长发不出去,请移步:DDPM扩散模型公式推理----损失函数