在SDE的第二篇文章中提到过,SDE范式可以将DDPM和Score Matching整合到其范式中。起初笔者对这部分也不是很清晰,在看过B站Up主 Double童发发的视频 手把手带你探索与发现DDPM与Score Matching的随机微分方程(SDE)表达形式后逐渐清晰,本文就基于该视频内容做一个文本性质的总结,感兴趣的读者可跳转到视频进一步了解。
如何证明
在之前的SDE文章中已经给出了,SDE的前向过程公式为
d
x
=
f
(
x
,
t
)
d
t
+
g
(
t
)
d
w
(1)
dx=f(x,t)dt+g(t)dw \tag1
dx=f(x,t)dt+g(t)dw(1)
其中
w
w
w是一个标准布朗运动,是SDE的随机性来源,
d
w
dw
dw可用
d
t
ϵ
\sqrt{dt}\epsilon
dtϵ表示,其中
ϵ
∈
N
(
0
,
I
)
\epsilon \in N(0,I)
ϵ∈N(0,I)。想要证明DDPM、Score Matching是SDE范式下的特例,那就要证明其加噪方式可以表示成SDE的形式。虽然SDE是连续的,但是在用欧拉等数值方法求解时,还是会将SDE过程离散化,而DDPM、Score Matching的加噪过程也是离散的,所以我们可以将SDE表达离散化,如公式(2);如果可以证明DDPM、Score Matching加噪过程符合离散化之后的性质,就能说明其是SDE的一种离散加噪特例。
x
t
−
x
t
−
Δ
t
=
f
(
x
,
t
)
Δ
t
+
g
(
t
)
Δ
t
ϵ
(2)
x_t -x_{t-\Delta{t}} = f(x,t)\Delta{t} + g(t)\sqrt{\Delta{t}}\epsilon \tag2
xt−xt−Δt=f(x,t)Δt+g(t)Δtϵ(2)
DDPM
在DDPM中,其前向加噪公式为
x
t
=
1
−
β
t
x
t
−
1
+
β
t
ϵ
x_t=\sqrt{1-\beta_t}x_{t-1} + \sqrt{\beta_t}\epsilon
xt=1−βtxt−1+βtϵ,在SDE中讨论的都是函数的关系,而加噪公式中的
t
t
t其实就是函数;并且
x
t
x_t
xt与
x
t
−
1
x_{t-1}
xt−1之间的差距就是
x
t
x_t
xt与
x
t
−
Δ
t
x_{t-\Delta{t}}
xt−Δt之间的差距,因为DDPM中加噪步数为1000,将其归一化后,
Δ
t
=
1
1000
\Delta{t}=\frac{1}{1000}
Δt=10001,故DDPM的加噪公式可记为
x
t
=
1
−
β
(
t
)
x
t
−
Δ
t
+
β
(
t
)
ϵ
(3)
x_t=\sqrt{1-\beta(t)}x_{t-\Delta{t}} + \sqrt{\beta(t)}\epsilon \tag3
xt=1−β(t)xt−Δt+β(t)ϵ(3)
目前公式(3)与公式(2)相比,差别在于两项系数。先从
ϵ
\epsilon
ϵ的系数开始,对比可知,公式(3)中
ϵ
\epsilon
ϵ的系数缺一个
Δ
t
\sqrt{\Delta{t}}
Δt,既然缺一个,强行凑一个出来就行,有
x
t
=
1
−
β
(
t
)
x
t
−
Δ
t
+
β
(
t
)
ϵ
=
1
−
β
(
t
)
x
t
−
Δ
t
+
β
(
t
)
Δ
t
Δ
t
ϵ
\begin{align*} x_t &=\sqrt{1-\beta(t)}x_{t-\Delta{t}} + \sqrt{\beta(t)}\epsilon \\ & =\sqrt{1-\beta(t)}x_{t-\Delta{t}} + \sqrt{\frac{\beta(t)}{\Delta{t}}}\sqrt{\Delta{t}}\epsilon \tag4 \end{align*}
xt=1−β(t)xt−Δt+β(t)ϵ=1−β(t)xt−Δt+Δtβ(t)Δtϵ(4)
公式(4)中后面一项已符合,现在继续看前面一项;公式(2)中希望
x
t
−
Δ
t
x_{t-\Delta{t}}
xt−Δt前面系数是为1的,可是公式(4)中前面却有一个开根号项,那应该如何处理呢?此处需要使用泰勒展开,只需展开一级即可;即根据泰勒展开定理,函数
f
(
z
)
f(z)
f(z)在
a
a
a展开有
f
(
z
)
=
f
(
a
)
+
f
′
(
a
)
(
z
−
a
)
+
R
0
(
z
)
f(z) = f(a)+f^{'}(a)(z-a)+R_0(z)
f(z)=f(a)+f′(a)(z−a)+R0(z),将
β
(
t
)
\beta(t)
β(t)看作一个整体,用
z
z
z表示,
f
(
z
)
=
1
−
z
f(z)=\sqrt{1-z}
f(z)=1−z,将其在0处展开,有
f
(
z
)
=
f
(
0
)
+
f
′
(
0
)
(
z
−
0
)
+
R
0
(
z
)
≈
1
−
1
2
1
−
0
z
=
1
−
1
2
z
\begin{align*} f(z) &=f(0)+f^{'}(0)(z-0)+R_0(z) \\ & \approx 1-\frac{1}{2\sqrt{1-0}}z \\ & = 1-\frac{1}{2}z \tag5 \end{align*}
f(z)=f(0)+f′(0)(z−0)+R0(z)≈1−21−01z=1−21z(5)
将公式(5)中的
z
z
z恢复回
β
(
t
)
\beta(t)
β(t),有
1
−
β
(
t
)
≈
1
−
1
2
β
(
t
)
(6)
\sqrt{1-\beta(t)} \approx 1-\frac{1}{2}\beta(t) \tag6
1−β(t)≈1−21β(t)(6)
将公式(6)带入到公式(4)中有
x
t
≈
(
1
−
1
2
β
(
t
)
)
x
t
−
Δ
t
+
β
(
t
)
Δ
t
Δ
t
ϵ
=
x
t
−
Δ
t
−
1
2
β
(
t
)
x
t
−
Δ
t
+
β
(
t
)
Δ
t
Δ
t
ϵ
x
t
−
x
t
−
Δ
t
≈
−
1
2
β
(
t
)
x
t
−
Δ
t
+
β
(
t
)
Δ
t
Δ
t
ϵ
x
t
−
x
t
−
Δ
t
≈
−
1
2
β
(
t
)
Δ
t
x
t
−
Δ
t
Δ
t
+
β
(
t
)
Δ
t
Δ
t
ϵ
\begin{align*} x_t & \approx (1-\frac{1}{2}\beta(t))x_{t-\Delta{t}}+\sqrt{\frac{\beta(t)}{\Delta{t}}}\sqrt{\Delta{t}}\epsilon \\ & = x_{t-\Delta{t}}-\frac{1}{2}\beta(t)x_{t-\Delta{t}}+\sqrt{\frac{\beta(t)}{\Delta{t}}}\sqrt{\Delta{t}}\epsilon \\ x_t- x_{t-\Delta{t}} & \approx -\frac{1}{2}\beta(t)x_{t-\Delta{t}}+\sqrt{\frac{\beta(t)}{\Delta{t}}}\sqrt{\Delta{t}}\epsilon \\ x_t- x_{t-\Delta{t}} & \approx -\frac{1}{2}\frac{\beta(t)}{\Delta{t}}x_{t-\Delta{t}}\Delta{t}+\sqrt{\frac{\beta(t)}{\Delta{t}}}\sqrt{\Delta{t}}\epsilon \tag7 \end{align*}
xtxt−xt−Δtxt−xt−Δt≈(1−21β(t))xt−Δt+Δtβ(t)Δtϵ=xt−Δt−21β(t)xt−Δt+Δtβ(t)Δtϵ≈−21β(t)xt−Δt+Δtβ(t)Δtϵ≈−21Δtβ(t)xt−ΔtΔt+Δtβ(t)Δtϵ(7)
对公式(7)左右两边取微元,即假设
Δ
t
\Delta{t}
Δt趋近于0,有
d
x
=
−
1
2
β
(
t
)
Δ
t
x
t
d
t
+
β
(
t
)
Δ
t
d
w
(8)
dx=-\frac{1}{2}\frac{\beta(t)}{\Delta{t}}x_{t}dt+\sqrt{\frac{\beta(t)}{\Delta{t}}}dw \tag8
dx=−21Δtβ(t)xtdt+Δtβ(t)dw(8)
至此,将DDPM的前向加噪公式推导出公式(8),与公式(1)结构一致。
Score Matching
Score Matching的推导会比DDPM的更简单,在第一篇SDE文章中讲过,Score Matching就是在不同时刻使用不同的噪声等级给原始目标数据加噪,加噪之后的数据分布符合
N
(
x
~
∣
x
,
σ
t
2
I
)
N(\tilde{x}|x,\sigma_t^2I)
N(x~∣x,σt2I),其中
x
∼
p
d
a
t
a
x \sim p_{data}
x∼pdata。将时间
t
t
t带入扰动后数据分布有
x
t
∼
N
(
x
,
σ
2
(
t
)
I
)
x
t
−
Δ
t
∼
N
(
x
,
σ
2
(
t
−
Δ
t
)
I
)
\begin{align*} x_t & \sim N(x,\sigma^2(t)I) \tag9 \\ x_{t-\Delta{t}} & \sim N(x,\sigma^2(t-\Delta{t})I) \tag{10} \end{align*}
xtxt−Δt∼N(x,σ2(t)I)∼N(x,σ2(t−Δt)I)(9)(10)
因为上述是两个分布之间的变换,不能直接进行加减法运算,但因为两者都是正态部分,并且正态分数具有线性可加性,公式(9)中的分布可通过公式(10)中的分布加上另外一个高斯分布得到,即
N
(
0
,
(
σ
2
(
t
)
−
σ
2
(
t
−
Δ
t
)
)
I
)
N(0,(\sigma^2(t)-\sigma^2(t-\Delta{t}))I)
N(0,(σ2(t)−σ2(t−Δt))I),故有
x
t
=
x
t
−
Δ
t
+
σ
2
(
t
)
−
σ
2
(
t
−
Δ
t
)
ϵ
x
t
−
x
t
−
Δ
t
=
σ
2
(
t
)
−
σ
2
(
t
−
Δ
t
)
ϵ
x
t
−
x
t
−
Δ
t
=
σ
2
(
t
)
−
σ
2
(
t
−
Δ
t
)
Δ
t
Δ
t
ϵ
\begin{align*} x_t &= x_{t-\Delta{t}} + \sqrt{\sigma^2(t)-\sigma^2(t-\Delta{t})}\epsilon \\ x_t - x_{t-\Delta{t}} &= \sqrt{\sigma^2(t)-\sigma^2(t-\Delta{t})}\epsilon \\ x_t - x_{t-\Delta{t}} &= \sqrt{\frac{\sigma^2(t)-\sigma^2(t-\Delta{t})}{\Delta{t}}}\sqrt{\Delta{t}}\epsilon \tag{11} \end{align*}
xtxt−xt−Δtxt−xt−Δt=xt−Δt+σ2(t)−σ2(t−Δt)ϵ=σ2(t)−σ2(t−Δt)ϵ=Δtσ2(t)−σ2(t−Δt)Δtϵ(11)
将公式(11)左右两边取微元,即假设
Δ
t
\Delta{t}
Δt趋近于0,有
d
x
=
d
σ
2
(
t
)
d
t
d
w
(12)
dx = \sqrt{\frac{d\sigma^2(t)}{dt}}dw \tag{12}
dx=dtdσ2(t)dw(12)
至此,将Score Matching的前向加噪公式推导出公式(12),与公式(1)结构一致。
232



被折叠的 条评论
为什么被折叠?



