0、快速访问
论文阅读笔记:Denoising Diffusion Implicit Models (1)
论文阅读笔记:Denoising Diffusion Implicit Models (2)
论文阅读笔记:Denoising Diffusion Implicit Models (3)
论文阅读笔记:Denoising Diffusion Implicit Models (4)
论文阅读笔记:Denoising Diffusion Implicit Models (5)
5、接上文论文阅读笔记:Denoising Diffusion Implicit Models (3)
由前向加噪过程,可以推知
q
σ
(
x
t
−
2
∣
x
t
−
1
,
x
0
)
=
N
(
x
t
−
2
∣
1
−
α
t
−
2
−
σ
t
−
1
2
1
−
α
t
−
1
⋅
x
t
−
1
+
[
α
t
−
2
−
α
t
−
1
⋅
(
1
−
α
t
−
2
−
σ
t
−
1
2
)
1
−
α
t
−
1
]
⋅
x
0
,
σ
t
−
1
2
I
)
q_{\sigma}(x_{t-2}|x_{t-1},x_0)=N\bigg(x_{t-2}|\sqrt{\frac{1-\alpha_{t-2}-\sigma_{t-1}^2}{1-\alpha_{t-1}}}\cdot x_{t-1}+ \bigg[\sqrt{\alpha_{t-2}}- \frac{\sqrt{ \alpha_{t-1}\cdot (1-\alpha_{t-2}-\sigma_{t-1}^2} )}{\sqrt{1-\alpha_{t-1}}} \bigg] \cdot x_0 ,\sigma_{t-1}^2 I\bigg)
qσ(xt−2∣xt−1,x0)=N(xt−2∣1−αt−11−αt−2−σt−12⋅xt−1+[αt−2−1−αt−1αt−1⋅(1−αt−2−σt−12)]⋅x0,σt−12I)。
接下来考虑,跳
2
2
2步时的采样过程,即在给定
x
0
x_0
x0和
x
t
x_t
xt时,
x
t
−
2
x_{t-2}
xt−2时的采样过程,即
q
σ
(
x
t
−
2
∣
x
0
,
x
t
)
q_\sigma(x_{t-2}|x_0,x_t)
qσ(xt−2∣x0,xt)的分布。
首先,我们可以确定
q
σ
(
x
t
−
2
∣
x
0
,
x
t
)
q_\sigma(x_{t-2}|x_0,x_t)
qσ(xt−2∣x0,xt)是高斯分布,假设其均值和方差分别为
μ
t
−
2
\mu_{t-2}
μt−2和
σ
t
−
2
2
\sigma_{t-2}^2
σt−22。由于
q
σ
(
x
t
−
2
∣
x
0
,
x
t
)
q_\sigma(x_{t-2}|x_0,x_t)
qσ(xt−2∣x0,xt)是
q
σ
(
x
t
−
2
,
x
t
−
1
∣
x
0
,
x
t
)
q_\sigma(x_{t-2},x_{t-1}|x_0,x_t)
qσ(xt−2,xt−1∣x0,xt) 的边缘分布。
q σ ( x t − 2 ∣ x 0 , x t ) = ∫ q σ ( x t − 2 , x t − 1 ∣ x 0 , x t ) ⋅ d x t − 1 = ∫ q σ ( x t − 2 ∣ x 0 , x t − 1 ) ⋅ q σ ( x t − 1 ∣ x 0 , x t ) ⋅ d x t − 1 \begin{equation} \begin{split} q_\sigma(x_{t-2}|x_0,x_t)&= \int q_\sigma(x_{t-2},x_{t-1}|x_0,x_t) \cdot dx_{t-1} \\ &=\int q_\sigma(x_{t-2}|x_0,x_{t-1}) \cdot q_\sigma(x_{t-1}|x_0,x_{t}) \cdot dx_{t-1} \end{split} \end{equation} qσ(xt−2∣x0,xt)=∫qσ(xt−2,xt−1∣x0,xt)⋅dxt−1=∫qσ(xt−2∣x0,xt−1)⋅qσ(xt−1∣x0,xt)⋅dxt−1
因此
μ
t
−
2
=
E
(
q
σ
(
x
t
−
2
∣
x
0
,
x
t
)
)
=
∫
x
t
−
2
⋅
q
σ
(
x
t
−
2
∣
x
0
,
x
t
)
⋅
d
x
t
−
2
=
∫
x
t
−
2
⋅
(
∫
q
σ
(
x
t
−
2
,
∣
x
0
,
x
t
−
1
)
⋅
q
σ
(
x
t
−
1
∣
x
0
,
x
t
)
⋅
d
x
t
−
1
)
⋅
d
x
t
−
2
=
∫
∫
x
t
−
2
⋅
q
σ
(
x
t
−
2
,
∣
x
0
,
x
t
−
1
)
⋅
q
σ
(
x
t
−
1
∣
x
0
,
x
t
)
⋅
d
x
t
−
1
⋅
d
x
t
−
2
=
∫
(
∫
x
t
−
2
⋅
q
σ
(
x
t
−
2
∣
x
0
,
x
t
−
1
)
⋅
d
x
t
−
2
)
⋅
q
σ
(
x
t
−
1
∣
x
0
,
x
t
)
⋅
d
x
t
−
1
=
∫
(
E
(
q
σ
(
x
t
−
2
,
∣
x
0
,
x
t
−
1
)
)
⋅
q
σ
(
x
t
−
1
∣
x
0
,
x
t
)
⋅
d
x
t
−
1
=
∫
(
1
−
α
t
−
2
−
σ
t
−
1
2
1
−
α
t
−
1
⋅
x
t
−
1
+
[
α
t
−
2
−
α
t
−
1
⋅
(
1
−
α
t
−
2
−
σ
t
−
1
2
)
1
−
α
t
−
1
]
⋅
x
0
)
⋅
q
σ
(
x
t
−
1
∣
x
0
,
x
t
)
⋅
d
x
t
−
1
=
∫
(
1
−
α
t
−
2
−
σ
t
−
1
2
1
−
α
t
−
1
⋅
x
t
−
1
)
⋅
q
σ
(
x
t
−
1
∣
x
0
,
x
t
)
⋅
d
x
t
−
1
+
∫
(
α
t
−
2
−
α
t
−
1
⋅
(
1
−
α
t
−
2
−
σ
t
−
1
2
)
1
−
α
t
−
1
)
⋅
x
0
⋅
q
σ
(
x
t
−
1
∣
x
0
,
x
t
)
⋅
d
x
t
−
1
=
1
−
α
t
−
2
−
σ
t
−
1
2
1
−
α
t
−
1
⋅
∫
x
t
−
1
⋅
q
σ
(
x
t
−
1
∣
x
0
,
x
t
)
⋅
d
x
t
−
1
+
(
α
t
−
2
−
α
t
−
1
⋅
(
1
−
α
t
−
2
−
σ
t
−
1
2
)
1
−
α
t
−
1
)
⋅
x
0
∫
q
σ
(
x
t
−
1
∣
x
0
,
x
t
)
⋅
d
x
t
−
1
⏟
=
1
=
1
−
α
t
−
2
−
σ
t
−
1
2
1
−
α
t
−
1
⋅
E
(
q
σ
(
x
t
−
1
∣
x
0
,
x
t
)
)
+
(
α
t
−
2
−
α
t
−
1
⋅
(
1
−
α
t
−
2
−
σ
t
−
1
2
)
1
−
α
t
−
1
)
⋅
x
0
=
1
−
α
t
−
2
−
σ
t
−
1
2
1
−
α
t
−
1
⋅
(
1
−
α
t
−
1
−
σ
t
2
1
−
α
t
⋅
x
t
+
[
α
t
−
1
−
α
t
⋅
(
1
−
α
t
−
1
−
σ
t
2
)
1
−
α
t
]
⋅
x
0
)
+
(
α
t
−
2
−
α
t
−
1
⋅
(
1
−
α
t
−
2
−
σ
t
−
1
2
)
1
−
α
t
−
1
)
⋅
x
0
=
1
−
α
t
−
2
−
σ
t
−
1
2
1
−
α
t
−
1
⋅
1
−
α
t
−
1
−
σ
t
2
1
−
α
t
⋅
x
t
+
1
−
α
t
−
2
−
σ
t
−
1
2
1
−
α
t
−
1
⋅
α
t
−
1
⋅
x
0
−
1
−
α
t
−
2
−
σ
t
−
1
2
1
−
α
t
−
1
⋅
α
t
⋅
(
1
−
α
t
−
1
−
σ
t
2
)
1
−
α
t
⋅
x
0
+
α
t
−
2
⋅
x
0
−
α
t
−
1
⋅
(
1
−
α
t
−
2
−
σ
t
−
1
2
)
1
−
α
t
−
1
⋅
x
0
=
1
−
α
t
−
2
−
σ
t
−
1
2
1
−
α
t
−
1
⋅
1
−
α
t
−
1
−
σ
t
2
1
−
α
t
⋅
x
t
−
1
−
α
t
−
2
−
σ
t
−
1
2
1
−
α
t
−
1
⋅
α
t
⋅
(
1
−
α
t
−
1
−
σ
t
2
)
1
−
α
t
⋅
x
0
+
α
t
−
2
⋅
x
0
⏟
x
0
=
x
t
−
1
−
α
t
⋅
z
t
α
t
=
1
−
α
t
−
2
−
σ
t
−
1
2
1
−
α
t
−
1
⋅
1
−
α
t
−
1
−
σ
t
2
1
−
α
t
⋅
x
t
−
1
−
α
t
−
2
−
σ
t
−
1
2
1
−
α
t
−
1
⋅
α
t
⋅
(
1
−
α
t
−
1
−
σ
t
2
)
1
−
α
t
⋅
x
t
−
1
−
α
t
⋅
z
t
α
t
+
α
t
−
2
⋅
x
t
−
1
−
α
t
⋅
z
t
α
t
=
1
−
α
t
−
2
−
σ
t
−
1
2
1
−
α
t
−
1
⋅
1
−
α
t
−
1
−
σ
t
2
1
−
α
t
⋅
x
t
−
1
−
α
t
−
2
−
σ
t
−
1
2
1
−
α
t
−
1
⋅
α
t
⋅
(
1
−
α
t
−
1
−
σ
t
2
)
1
−
α
t
⋅
x
t
α
t
+
1
−
α
t
−
2
−
σ
t
−
1
2
1
−
α
t
−
1
⋅
α
t
⋅
(
1
−
α
t
−
1
−
σ
t
2
)
1
−
α
t
⋅
1
−
α
t
⋅
z
t
α
t
+
α
t
−
2
⋅
x
t
−
1
−
α
t
⋅
z
t
α
t
=
1
−
α
t
−
2
−
σ
t
−
1
2
1
−
α
t
−
1
⋅
α
t
⋅
⋅
(
1
−
α
t
−
1
−
σ
t
2
)
1
−
α
t
⋅
1
−
α
t
⋅
z
t
α
t
+
α
t
−
2
⋅
x
t
−
1
−
α
t
⋅
z
t
α
t
=
α
t
−
2
⋅
x
t
−
1
−
α
t
⋅
z
t
α
t
⏟
=
x
0
+
1
−
α
t
−
2
−
σ
t
−
1
2
1
−
α
t
−
1
⋅
1
−
α
t
−
1
−
σ
t
2
⋅
z
t
=
=
=
=
=
=
令所有的
σ
=
0
α
t
−
2
⋅
x
t
−
1
−
α
t
⋅
z
t
α
t
+
1
−
α
t
−
2
⋅
z
t
\begin{equation} \begin{split} \mu_{t-2}&=E\big(q_\sigma(x_{t-2}|x_0,x_t)\big) \\ &=\int x_{t-2} \cdot q_\sigma(x_{t-2}|x_0,x_t)\cdot dx_{t-2} \\ &=\int x_{t-2} \cdot \bigg(\int q_\sigma(x_{t-2},|x_0,x_{t-1}) \cdot q_\sigma(x_{t-1}|x_0,x_{t}) \cdot dx_{t-1} \bigg) \cdot dx_{t-2} \\ &=\int \int x_{t-2} \cdot q_\sigma(x_{t-2},|x_0,x_{t-1}) \cdot q_\sigma(x_{t-1}|x_0,x_{t}) \cdot dx_{t-1} \cdot dx_{t-2} \\ &=\int \bigg( \int x_{t-2} \cdot q_\sigma(x_{t-2}|x_0,x_{t-1}) \cdot dx_{t-2} \bigg)\cdot q_\sigma(x_{t-1}|x_0,x_{t}) \cdot dx_{t-1} \\ &=\int \bigg(E(q_\sigma(x_{t-2},|x_0,x_{t-1}) \bigg)\cdot q_\sigma(x_{t-1}|x_0,x_{t}) \cdot dx_{t-1} \\ &=\int \bigg(\sqrt{\frac{1-\alpha_{t-2}-\sigma_{t-1}^2}{1-\alpha_{t-1}}}\cdot x_{t-1}+ \bigg[\sqrt{\alpha_{t-2}}- \frac{\sqrt{ \alpha_{t-1}\cdot (1-\alpha_{t-2}-\sigma_{t-1}^2} )}{\sqrt{1-\alpha_{t-1}}} \bigg] \cdot x_0 \bigg)\cdot q_\sigma(x_{t-1}|x_0,x_{t}) \cdot dx_{t-1} \\ &=\int \bigg(\sqrt{\frac{1-\alpha_{t-2}-\sigma_{t-1}^2}{1-\alpha_{t-1}}}\cdot x_{t-1} \bigg)\cdot q_\sigma(x_{t-1}|x_0,x_{t}) \cdot dx_{t-1} + \int \bigg(\sqrt{\alpha_{t-2}}- \frac{\sqrt{ \alpha_{t-1}\cdot (1-\alpha_{t-2}-\sigma_{t-1}^2} )}{\sqrt{1-\alpha_{t-1}}} \bigg) \cdot x_0 \cdot q_\sigma(x_{t-1}|x_0,x_{t}) \cdot dx_{t-1}\\ &=\sqrt{\frac{1-\alpha_{t-2}-\sigma_{t-1}^2}{1-\alpha_{t-1}}}\cdot \int x_{t-1}\cdot q_\sigma(x_{t-1}|x_0,x_{t}) \cdot dx_{t-1} +\bigg(\sqrt{\alpha_{t-2}}- \frac{\sqrt{ \alpha_{t-1}\cdot (1-\alpha_{t-2}-\sigma_{t-1}^2} )}{\sqrt{1-\alpha_{t-1}}} \bigg) \cdot x_0 \underbrace{ \int q_\sigma(x_{t-1}|x_0,x_{t}) \cdot dx_{t-1}}_{=1}\\ &=\sqrt{\frac{1-\alpha_{t-2}-\sigma_{t-1}^2}{1-\alpha_{t-1}}}\cdot E\bigg(q_\sigma(x_{t-1}|x_0,x_{t})\bigg) +\bigg(\sqrt{\alpha_{t-2}}- \frac{\sqrt{ \alpha_{t-1}\cdot (1-\alpha_{t-2}-\sigma_{t-1}^2} )}{\sqrt{1-\alpha_{t-1}}} \bigg) \cdot x_0 \\ &=\sqrt{\frac{1-\alpha_{t-2}-\sigma_{t-1}^2}{1-\alpha_{t-1}}}\cdot \bigg(\sqrt{\frac{1-\alpha_{t-1}-\sigma_t^2}{1-\alpha_{t}}}\cdot x_t+ \bigg[\sqrt{\alpha_{t-1}}- \frac{\sqrt{ \alpha_t\cdot (1-\alpha_{t-1}-\sigma_t^2} )}{\sqrt{1-\alpha_t}} \bigg] \cdot x_0 \bigg) +\bigg(\sqrt{\alpha_{t-2}}- \frac{\sqrt{ \alpha_{t-1}\cdot (1-\alpha_{t-2}-\sigma_{t-1}^2} )}{\sqrt{1-\alpha_{t-1}}} \bigg) \cdot x_0 \\ &=\sqrt{\frac{1-\alpha_{t-2}-\sigma_{t-1}^2}{1-\alpha_{t-1}}}\cdot \sqrt{\frac{1-\alpha_{t-1}-\sigma_t^2}{1-\alpha_{t}}}\cdot x_t + \bcancel{\sqrt{\frac{1-\alpha_{t-2}-\sigma_{t-1}^2}{1-\alpha_{t-1}}} \cdot \sqrt{\alpha_{t-1}}\cdot x_0} -\sqrt{\frac{1-\alpha_{t-2}-\sigma_{t-1}^2}{1-\alpha_{t-1}}}\cdot \frac{\sqrt{ \alpha_t\cdot (1-\alpha_{t-1}-\sigma_t^2} )}{\sqrt{1-\alpha_t}} \cdot x_0 + \sqrt{\alpha_{t-2}} \cdot x_0 - \bcancel{\frac{\sqrt{ \alpha_{t-1}\cdot (1-\alpha_{t-2}-\sigma_{t-1}^2} )}{\sqrt{1-\alpha_{t-1}}} \cdot x_0}\\ &=\sqrt{\frac{1-\alpha_{t-2}-\sigma_{t-1}^2}{1-\alpha_{t-1}}}\cdot \sqrt{\frac{1-\alpha_{t-1}-\sigma_t^2}{1-\alpha_{t}}}\cdot x_t -\sqrt{\frac{1-\alpha_{t-2}-\sigma_{t-1}^2}{1-\alpha_{t-1}}}\cdot \frac{\sqrt{ \alpha_t\cdot (1-\alpha_{t-1}-\sigma_t^2} )}{\sqrt{1-\alpha_t}} \cdot x_0 + \sqrt{\alpha_{t-2}} \cdot \underbrace{x_0}_{x_0=\frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}}} \\ &=\sqrt{\frac{1-\alpha_{t-2}-\sigma_{t-1}^2}{1-\alpha_{t-1}}}\cdot \sqrt{\frac{1-\alpha_{t-1}-\sigma_t^2}{1-\alpha_{t}}}\cdot x_t -\sqrt{\frac{1-\alpha_{t-2}-\sigma_{t-1}^2}{1-\alpha_{t-1}}}\cdot \frac{\sqrt{ \alpha_t\cdot (1-\alpha_{t-1}-\sigma_t^2} )}{\sqrt{1-\alpha_t}} \cdot \frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}} + \sqrt{\alpha_{t-2}} \cdot \frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}} \\ &=\bcancel{\sqrt{\frac{1-\alpha_{t-2}-\sigma_{t-1}^2}{1-\alpha_{t-1}}}\cdot \sqrt{\frac{1-\alpha_{t-1}-\sigma_t^2}{1-\alpha_{t}}}\cdot x_t} -\bcancel{\sqrt{\frac{1-\alpha_{t-2}-\sigma_{t-1}^2}{1-\alpha_{t-1}}}\cdot \frac{\sqrt{ \alpha_t\cdot (1-\alpha_{t-1}-\sigma_t^2} )}{\sqrt{1-\alpha_t}} \cdot \frac{x_t}{\sqrt{\alpha_t}}} +\sqrt{\frac{1-\alpha_{t-2}-\sigma_{t-1}^2}{1-\alpha_{t-1}}}\cdot \frac{\sqrt{ \alpha_t\cdot (1-\alpha_{t-1}-\sigma_t^2} )}{\sqrt{1-\alpha_t}} \cdot \frac{{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}} + \sqrt{\alpha_{t-2}} \cdot \frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}} \\ &=\sqrt{\frac{1-\alpha_{t-2}-\sigma_{t-1}^2}{1-\alpha_{t-1}}}\cdot \frac{\bcancel{\sqrt{\alpha_t}}\cdot \sqrt{ \cdot (1-\alpha_{t-1}-\sigma_t^2} )}{\bcancel{\sqrt{1-\alpha_t}}} \cdot \frac{{\bcancel{\sqrt{1-\alpha_t}}\cdot z_t}}{\bcancel{\sqrt{\alpha_t}}} + \sqrt{\alpha_{t-2}} \cdot \frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}} \\ &=\sqrt{\alpha_{t-2}} \cdot \underbrace{ \frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}}}_{=x_0}+ \sqrt{\frac{1-\alpha_{t-2}-\sigma_{t-1}^2}{1-\alpha_{t-1}}}\cdot \sqrt{ 1-\alpha_{t-1}-\sigma_t^2} \cdot z_t \\ &\stackrel{\mathrm{令所有的\sigma=0}}{======}\sqrt{\alpha_{t-2}} \cdot \frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}} + \sqrt{1-\alpha_{t-2}}\cdot z_t \end{split} \end{equation}
μt−2=E(qσ(xt−2∣x0,xt))=∫xt−2⋅qσ(xt−2∣x0,xt)⋅dxt−2=∫xt−2⋅(∫qσ(xt−2,∣x0,xt−1)⋅qσ(xt−1∣x0,xt)⋅dxt−1)⋅dxt−2=∫∫xt−2⋅qσ(xt−2,∣x0,xt−1)⋅qσ(xt−1∣x0,xt)⋅dxt−1⋅dxt−2=∫(∫xt−2⋅qσ(xt−2∣x0,xt−1)⋅dxt−2)⋅qσ(xt−1∣x0,xt)⋅dxt−1=∫(E(qσ(xt−2,∣x0,xt−1))⋅qσ(xt−1∣x0,xt)⋅dxt−1=∫(1−αt−11−αt−2−σt−12⋅xt−1+[αt−2−1−αt−1αt−1⋅(1−αt−2−σt−12)]⋅x0)⋅qσ(xt−1∣x0,xt)⋅dxt−1=∫(1−αt−11−αt−2−σt−12⋅xt−1)⋅qσ(xt−1∣x0,xt)⋅dxt−1+∫(αt−2−1−αt−1αt−1⋅(1−αt−2−σt−12))⋅x0⋅qσ(xt−1∣x0,xt)⋅dxt−1=1−αt−11−αt−2−σt−12⋅∫xt−1⋅qσ(xt−1∣x0,xt)⋅dxt−1+(αt−2−1−αt−1αt−1⋅(1−αt−2−σt−12))⋅x0=1
∫qσ(xt−1∣x0,xt)⋅dxt−1=1−αt−11−αt−2−σt−12⋅E(qσ(xt−1∣x0,xt))+(αt−2−1−αt−1αt−1⋅(1−αt−2−σt−12))⋅x0=1−αt−11−αt−2−σt−12⋅(1−αt1−αt−1−σt2⋅xt+[αt−1−1−αtαt⋅(1−αt−1−σt2)]⋅x0)+(αt−2−1−αt−1αt−1⋅(1−αt−2−σt−12))⋅x0=1−αt−11−αt−2−σt−12⋅1−αt1−αt−1−σt2⋅xt+1−αt−11−αt−2−σt−12⋅αt−1⋅x0
−1−αt−11−αt−2−σt−12⋅1−αtαt⋅(1−αt−1−σt2)⋅x0+αt−2⋅x0−1−αt−1αt−1⋅(1−αt−2−σt−12)⋅x0
=1−αt−11−αt−2−σt−12⋅1−αt1−αt−1−σt2⋅xt−1−αt−11−αt−2−σt−12⋅1−αtαt⋅(1−αt−1−σt2)⋅x0+αt−2⋅x0=αtxt−1−αt⋅zt
x0=1−αt−11−αt−2−σt−12⋅1−αt1−αt−1−σt2⋅xt−1−αt−11−αt−2−σt−12⋅1−αtαt⋅(1−αt−1−σt2)⋅αtxt−1−αt⋅zt+αt−2⋅αtxt−1−αt⋅zt=1−αt−11−αt−2−σt−12⋅1−αt1−αt−1−σt2⋅xt
−1−αt−11−αt−2−σt−12⋅1−αtαt⋅(1−αt−1−σt2)⋅αtxt
+1−αt−11−αt−2−σt−12⋅1−αtαt⋅(1−αt−1−σt2)⋅αt1−αt⋅zt+αt−2⋅αtxt−1−αt⋅zt=1−αt−11−αt−2−σt−12⋅1−αt
αt
⋅⋅(1−αt−1−σt2)⋅αt
1−αt
⋅zt+αt−2⋅αtxt−1−αt⋅zt=αt−2⋅=x0
αtxt−1−αt⋅zt+1−αt−11−αt−2−σt−12⋅1−αt−1−σt2⋅zt======令所有的σ=0αt−2⋅αtxt−1−αt⋅zt+1−αt−2⋅zt
论文中跳步过程如公式(2)所示,结果貌似与论文中公式略有不同。但是,公式中的
σ
t
\sigma_t
σt是自定义的,因此如果我们令
σ
t
=
0
\sigma_t=0
σt=0,也就是
x
t
x_t
xt的取值都是确定的,不存在方差了,那么就可以实现跳
2
2
2步了。这个只是均值,至于方差,既然已经令
σ
t
=
0
\sigma_t=0
σt=0了,那分布
q
σ
(
x
t
−
2
∣
x
0
,
x
t
)
q_\sigma(x_{t-2}|x_0,x_t)
qσ(xt−2∣x0,xt)的方差
σ
t
−
2
2
\sigma_{t-2}^2
σt−22肯定等于
0
0
0了。跳
1
1
1步和跳
2
2
2步的分布如公式(3)所示。
跳
1
步时:
x
t
−
1
=
α
t
−
1
⋅
x
t
−
1
−
α
t
⋅
z
t
α
t
+
1
−
α
t
−
1
⋅
z
t
跳
2
步时:
x
t
−
2
=
α
t
−
2
⋅
x
t
−
1
−
α
t
⋅
z
t
α
t
+
1
−
α
t
−
2
⋅
z
t
\begin{equation} \begin{split} 跳1步时:x_{t-1}&=\sqrt{\alpha_{t-1}} \cdot \frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}} + \sqrt{1-\alpha_{t-1}}\cdot z_t\\ 跳2步时:x_{t-2}&=\sqrt{\alpha_{t-2}} \cdot \frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}} + \sqrt{1-\alpha_{t-2}}\cdot z_t \end{split} \end{equation}
跳1步时:xt−1跳2步时:xt−2=αt−1⋅αtxt−1−αt⋅zt+1−αt−1⋅zt=αt−2⋅αtxt−1−αt⋅zt+1−αt−2⋅zt
结合跳
1
1
1步和
2
2
2步,我们可以推知:跳
n
n
n步的公式就是
q
σ
(
x
t
−
n
∣
x
t
,
x
0
)
=
α
t
−
n
⋅
x
t
−
1
−
α
t
⋅
z
t
α
t
+
1
−
α
t
−
n
⋅
z
t
q_\sigma(x_{t-n}|x_t,x_0)=\sqrt{\alpha_{t-n}} \cdot \frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}} + \sqrt{1-\alpha_{t-n}}\cdot z_t
qσ(xt−n∣xt,x0)=αt−n⋅αtxt−1−αt⋅zt+1−αt−n⋅zt,接下来用数学归纳法证明:
- 已经知道跳
1
1
1步时,
q
σ
(
x
t
−
1
∣
x
t
,
x
0
)
q_{\sigma}(x_{t-1}|x_t,x_0)
qσ(xt−1∣xt,x0)的分布满足公式(·)
x t − 1 = α t − 1 ⋅ x t − 1 − α t ⋅ z t α t + 1 − α t − 1 ⋅ z t \begin{equation} \begin{split} x_{t-1}&=\sqrt{\alpha_{t-1}} \cdot \frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}} + \sqrt{1-\alpha_{t-1}}\cdot z_t\\ \end{split} \end{equation} xt−1=αt−1⋅αtxt−1−αt⋅zt+1−αt−1⋅zt - 假设跳
n
n
n步时,
q
σ
(
x
t
−
n
∣
x
t
,
x
0
)
q_{\sigma}(x_{t-n}|x_t,x_0)
qσ(xt−n∣xt,x0)的分布满足公式(2)
x t − n = α t − n ⋅ x t − 1 − α t ⋅ z t α t + 1 − α t − n ⋅ z t \begin{equation} \begin{split} x_{t-n}&=\sqrt{\alpha_{t-n}} \cdot \frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}} + \sqrt{1-\alpha_{t-n}}\cdot z_t\\ \end{split} \end{equation} xt−n=αt−n⋅αtxt−1−αt⋅zt+1−αt−n⋅zt - 证明:当跳
n
+
1
n+1
n+1步时,分布
q
σ
(
x
t
−
n
−
1
∣
x
t
,
x
0
)
q_{\sigma}(x_{t-n-1}|x_t,x_0)
qσ(xt−n−1∣xt,x0)满足
x
t
−
n
−
1
=
α
t
−
n
−
1
⋅
x
t
−
1
−
α
t
⋅
z
t
α
t
+
1
−
α
t
−
n
−
1
⋅
z
t
x_{t-n-1}=\sqrt{\alpha_{t-n-1}} \cdot \frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}} + \sqrt{1-\alpha_{t-n-1}}\cdot z_t
xt−n−1=αt−n−1⋅αtxt−1−αt⋅zt+1−αt−n−1⋅zt。
由于 q σ ( x t − n − 1 ∣ x t , x 0 ) q_{\sigma}(x_{t-n-1}|x_t,x_0) qσ(xt−n−1∣xt,x0)是 q σ ( x t − n − 1 , x t − n ∣ x t , x 0 ) q_{\sigma}(x_{t-n-1},x_{t-n}|x_t,x_0) qσ(xt−n−1,xt−n∣xt,x0)的边缘分布,因此有
q σ ( x t − n − 1 ∣ x t , x 0 ) = ∫ q σ ( x t − n − 1 , x t − n ∣ x t , x 0 ) ⋅ d x t − n = ∫ q σ ( x t − n − 1 , ∣ x t − n , x 0 ) ⋅ q σ ( x t − n ∣ x t , x 0 ) ⋅ d x t − n \begin{equation} \begin{split} q_{\sigma}(x_{t-n-1}|x_t,x_0)&=\int q_{\sigma}(x_{t-n-1},x_{t-n}|x_t,x_0) \cdot dx_{t-n} \\ &=\int q_{\sigma}(x_{t-n-1},|x_{t-n},x_0) \cdot q_{\sigma}(x_{t-n}|x_t,x_0) \cdot dx_{t-n} \end{split} \end{equation} qσ(xt−n−1∣xt,x0)=∫qσ(xt−n−1,xt−n∣xt,x0)⋅dxt−n=∫qσ(xt−n−1,∣xt−n,x0)⋅qσ(xt−n∣xt,x0)⋅dxt−n
q σ ( x t − n − 1 , ∣ x t − n , x 0 ) = N ( x t − n − 1 ∣ 1 − α t − n − 1 1 − α t − n ⋅ x t − n + [ α t − n − 1 − α t − n ⋅ ( 1 − α t − n − 1 ) 1 − α t − n ] ⋅ x 0 , 0 ) q_{\sigma}(x_{t-n-1},|x_{t-n},x_0)=N\bigg(x_{t-n-1}|\sqrt{\frac{1-\alpha_{t-n-1}}{1-\alpha_{t-n}}}\cdot x_{t-n}+ \bigg[\sqrt{\alpha_{t-n-1}}- \frac{\sqrt{ \alpha_{t-n}\cdot (1-\alpha_{t-n-1}} )}{\sqrt{1-\alpha_{t-n}}} \bigg] \cdot x_0, 0\bigg) qσ(xt−n−1,∣xt−n,x0)=N(xt−n−1∣1−αt−n1−αt−n−1⋅xt−n+[αt−n−1−1−αt−nαt−n⋅(1−αt−n−1)]⋅x0,0)
因此,分布 q σ ( x t − n − 1 ∣ x t , x 0 ) q_{\sigma}(x_{t-n-1}|x_t,x_0) qσ(xt−n−1∣xt,x0)的均值 μ t − n − 1 \mu_{t-n-1} μt−n−1如公式(4)所示。
μ t − n − 1 = E ( q σ ( x t − n − 1 ∣ x t , x 0 ) ) = ∫ x t − n − 1 ⋅ q σ ( x t − n − 1 ∣ x t , x 0 ) ⋅ d x t − n − 1 = ∫ x t − n − 1 ⋅ ( ∫ q σ ( x t − n − 1 , ∣ x t − n , x 0 ) ⋅ q σ ( x t − n ∣ x t , x 0 ) ⋅ d x t − n ) ⋅ d x t − n − 1 = ∫ ∫ x t − n − 1 ⋅ q σ ( x t − n − 1 , ∣ x t − n , x 0 ) ⋅ q σ ( x t − n ∣ x t , x 0 ) ⋅ d x t − n ⋅ d x t − n − 1 = ∫ ( ∫ x t − n − 1 ⋅ q σ ( x t − n − 1 , ∣ x t − n , x 0 ) ⋅ d x t − n − 1 ) ⋅ q σ ( x t − n ∣ x t , x 0 ) ⋅ d x t − n = ∫ E ( q σ ( x t − n − 1 , ∣ x t − n , x 0 ) ) ⋅ q σ ( x t − n ∣ x t , x 0 ) ⋅ d x t − n = ∫ ( 1 − α t − n − 1 1 − α t − n ⋅ x t − n + [ α t − n − 1 − α t − n ⋅ ( 1 − α t − n − 1 ) 1 − α t − n ] ⋅ x 0 ) ⋅ q σ ( x t − n ∣ x t , x 0 ) ⋅ d x t − n = ∫ 1 − α t − n − 1 1 − α t − n ⋅ x t − n ⋅ q σ ( x t − n ∣ x t , x 0 ) ⋅ d x t − n + ∫ ( [ α t − n − 1 − α t − 1 ⋅ ( 1 − α t − n − 1 ) 1 − α t − n ] ⋅ x 0 ) ⋅ q σ ( x t − n ∣ x t , x 0 ) ⋅ d x t − n = 1 − α t − n − 1 1 − α t − n ⋅ ∫ q σ ( x t − n ∣ x t , x 0 ) ⋅ d x t − n + [ α t − n − 1 − α t − n ⋅ ( 1 − α t − n − 1 ) 1 − α t − n ] ⋅ x 0 = 1 − α t − n − 1 1 − α t − n ⋅ E ( q σ ( x t − n ∣ x t , x 0 ) ) + [ α t − n − 1 − α t − n ⋅ ( 1 − α t − n − 1 ) 1 − α t − n ] ⋅ x 0 ⏟ x 0 = x t − 1 − α t ⋅ z t α t = 1 − α t − n − 1 1 − α t − n ⋅ ( α t − n ⋅ x t − 1 − α t ⋅ z t α t + 1 − α t − n ⋅ z t ) + [ α t − n − 1 − α t − n ⋅ ( 1 − α t − n − 1 ) 1 − α t − n ] ⋅ x t − 1 − α t ⋅ z t α t = 1 − α t − n − 1 1 − α t − n ⋅ α t − n ⋅ x t − 1 − α t ⋅ z t α t + 1 − α t − n − 1 1 − α t − n ⋅ 1 − α t − n ⋅ z t + α t − n − 1 ⋅ x t − 1 − α t ⋅ z t α t − α t − n ⋅ ( 1 − α t − n − 1 ) 1 − α t − n ⋅ x t − 1 − α t ⋅ z t α t = α t − n − 1 ⋅ x t − 1 − α t ⋅ z t α t + 1 − α t − n − 1 ⋅ z t \begin{equation} \begin{split} \mu_{t-n-1}&=E\big(q_{\sigma}(x_{t-n-1}|x_t,x_0) \big)\\ &=\int x_{t-n-1}\cdot q_{\sigma}(x_{t-n-1}|x_t,x_0) \cdot dx_{t-n-1} \\ &=\int x_{t-n-1}\cdot \bigg(\int q_{\sigma}(x_{t-n-1},|x_{t-n},x_0) \cdot q_{\sigma}(x_{t-n}|x_t,x_0) \cdot dx_{t-n} \bigg) \cdot dx_{t-n-1} \\ &=\int \int x_{t-n-1}\cdot q_{\sigma}(x_{t-n-1},|x_{t-n},x_0) \cdot q_{\sigma}(x_{t-n}|x_t,x_0) \cdot dx_{t-n} \cdot dx_{t-n-1} \\ &=\int \bigg( \int x_{t-n-1}\cdot q_{\sigma}(x_{t-n-1},|x_{t-n},x_0) \cdot dx_{t-n-1}\bigg) \cdot q_{\sigma}(x_{t-n}|x_t,x_0) \cdot dx_{t-n} \\ &=\int E\big(q_{\sigma}(x_{t-n-1},|x_{t-n},x_0) \big) \cdot q_{\sigma}(x_{t-n}|x_t,x_0) \cdot dx_{t-n} \\ &=\int \bigg(\sqrt{\frac{1-\alpha_{t-n-1}}{1-\alpha_{t-n}}}\cdot x_{t-n}+ \bigg[\sqrt{\alpha_{t-n-1}}- \frac{\sqrt{ \alpha_{t-n}\cdot (1-\alpha_{t-n-1}} )}{\sqrt{1-\alpha_{t-n}}} \bigg] \cdot x_0 \bigg) \cdot q_{\sigma}(x_{t-n}|x_t,x_0) \cdot dx_{t-n} \\ &=\int \sqrt{\frac{1-\alpha_{t-n-1}}{1-\alpha_{t-n}}}\cdot x_{t-n} \cdot q_{\sigma}(x_{t-n}|x_t,x_0) \cdot dx_{t-n} + \int \bigg(\bigg[\sqrt{\alpha_{t-n-1}}- \frac{\sqrt{ \alpha_{t-1}\cdot (1-\alpha_{t-n-1}} )}{\sqrt{1-\alpha_{t-n}}} \bigg] \cdot x_0 \bigg) \cdot q_{\sigma}(x_{t-n}|x_t,x_0) \cdot dx_{t-n}\\ &=\sqrt{\frac{1-\alpha_{t-n-1}}{1-\alpha_{t-n}}}\cdot \int q_{\sigma}(x_{t-n}|x_t,x_0) \cdot dx_{t-n} + \bigg[\sqrt{\alpha_{t-n-1}}- \frac{\sqrt{ \alpha_{t-n}\cdot (1-\alpha_{t-n-1}} )}{\sqrt{1-\alpha_{t-n}}} \bigg] \cdot x_0 \\ &=\sqrt{\frac{1-\alpha_{t-n-1}}{1-\alpha_{t-n}}}\cdot E\bigg(q_{\sigma}(x_{t-n}|x_t,x_0) \bigg) + \bigg[\sqrt{\alpha_{t-n-1}}- \frac{\sqrt{ \alpha_{t-n}\cdot (1-\alpha_{t-n-1}} )}{\sqrt{1-\alpha_{t-n}}} \bigg] \cdot \underbrace{x_0}_{x_0=\frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}}} \\ &=\sqrt{\frac{1-\alpha_{t-n-1}}{1-\alpha_{t-n}}}\cdot \bigg(\sqrt{\alpha_{t-n}} \cdot \frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}} + \sqrt{1-\alpha_{t-n}}\cdot z_t \bigg) + \bigg[\sqrt{\alpha_{t-n-1}}- \frac{\sqrt{ \alpha_{t-n}\cdot (1-\alpha_{t-n-1}} )}{\sqrt{1-\alpha_{t-n}}} \bigg] \cdot \frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}} \\ &=\bcancel{\sqrt{\frac{1-\alpha_{t-n-1}}{1-\alpha_{t-n}}}\cdot \sqrt{\alpha_{t-n}} \cdot \frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}} }+\sqrt{\frac{1-\alpha_{t-n-1}}{\bcancel{1-\alpha_{t-n}}}}\cdot \bcancel{\sqrt{1-\alpha_{t-n}}}\cdot z_t + \sqrt{\alpha_{t-n-1}} \cdot \frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}} - \bcancel{\frac{\sqrt{ \alpha_{t-n}\cdot (1-\alpha_{t-n-1}} )}{\sqrt{1-\alpha_{t-n}}} \cdot \frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}}} \\ &=\sqrt{\alpha_{t-n-1}} \cdot \frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}} + \sqrt{1-\alpha_{t-n-1}}\cdot z_t \end{split} \end{equation} μt−n−1=E(qσ(xt−n−1∣xt,x0))=∫xt−n−1⋅qσ(xt−n−1∣xt,x0)⋅dxt−n−1=∫xt−n−1⋅(∫qσ(xt−n−1,∣xt−n,x0)⋅qσ(xt−n∣xt,x0)⋅dxt−n)⋅dxt−n−1=∫∫xt−n−1⋅qσ(xt−n−1,∣xt−n,x0)⋅qσ(xt−n∣xt,x0)⋅dxt−n⋅dxt−n−1=∫(∫xt−n−1⋅qσ(xt−n−1,∣xt−n,x0)⋅dxt−n−1)⋅qσ(xt−n∣xt,x0)⋅dxt−n=∫E(qσ(xt−n−1,∣xt−n,x0))⋅qσ(xt−n∣xt,x0)⋅dxt−n=∫(1−αt−n1−αt−n−1⋅xt−n+[αt−n−1−1−αt−nαt−n⋅(1−αt−n−1)]⋅x0)⋅qσ(xt−n∣xt,x0)⋅dxt−n=∫1−αt−n1−αt−n−1⋅xt−n⋅qσ(xt−n∣xt,x0)⋅dxt−n+∫([αt−n−1−1−αt−nαt−1⋅(1−αt−n−1)]⋅x0)⋅qσ(xt−n∣xt,x0)⋅dxt−n=1−αt−n1−αt−n−1⋅∫qσ(xt−n∣xt,x0)⋅dxt−n+[αt−n−1−1−αt−nαt−n⋅(1−αt−n−1)]⋅x0=1−αt−n1−αt−n−1⋅E(qσ(xt−n∣xt,x0))+[αt−n−1−1−αt−nαt−n⋅(1−αt−n−1)]⋅x0=αtxt−1−αt⋅zt x0=1−αt−n1−αt−n−1⋅(αt−n⋅αtxt−1−αt⋅zt+1−αt−n⋅zt)+[αt−n−1−1−αt−nαt−n⋅(1−αt−n−1)]⋅αtxt−1−αt⋅zt=1−αt−n1−αt−n−1⋅αt−n⋅αtxt−1−αt⋅zt +1−αt−n 1−αt−n−1⋅1−αt−n ⋅zt+αt−n−1⋅αtxt−1−αt⋅zt−1−αt−nαt−n⋅(1−αt−n−1)⋅αtxt−1−αt⋅zt =αt−n−1⋅αtxt−1−αt⋅zt+1−αt−n−1⋅zt
证毕。综上所述,跳 n n n步的公式为 q σ ( x t − n ∣ x t , x 0 ) = α t − n ⋅ x t − 1 − α t ⋅ z t α t + 1 − α t − n ⋅ z t q_\sigma(x_{t-n}|x_t,x_0)=\sqrt{\alpha_{t-n}} \cdot \frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}} + \sqrt{1-\alpha_{t-n}}\cdot z_t qσ(xt−n∣xt,x0)=αt−n⋅αtxt−1−αt⋅zt+1−αt−n⋅zt
殊途同归,种采样方法就是先预测出 x 0 x_0 x0,然后使用 q σ ( x t ∣ x 0 ) q_\sigma(x_t|x_0) qσ(xt∣x0)来计算对应的 x t x_t xt
基于DDIM的多数论文,例如暗图像增强方法LightenDiffusion等,也都是令 σ t = 0 \sigma_t=0 σt=0。论文和代码中使用的跳 n n n步的采样过程如公式(5)所示。
x t − n = α t − n ⋅ x t − 1 − α t ⋅ z t α t ⏟ 预测出 z t , 进而计算出 x 0 + 1 − α t − n − σ t 2 ⋅ z t + σ t 2 ϵ t ⏟ 标准高斯分布 \begin{equation} \begin{split} x_{t-n}&=\sqrt{\alpha_{t-n}}\cdot \underbrace{\frac{x_t-{\sqrt{1-\alpha_t}\cdot z_t}}{\sqrt{\alpha_t}}}_{预测出z_t,进而计算出x_0}+\sqrt{1-\alpha_{t-n}-\sigma_t^2}\cdot z_t + \sigma_t^2 \underbrace{ \epsilon_t}_{标准高斯分布} \\ \end{split} \end{equation} xt−n=αt−n⋅预测出zt,进而计算出x0 αtxt−1−αt⋅zt+1−αt−n−σt2⋅zt+σt2标准高斯分布 ϵt