1、前言
上一篇,我们讲了Diffusion这个模型的原理推导。但在推导中,仍然遗留了一些问题。本文将解决那些问题
参考论文:
①Variational Diffusion Models (arxiv.org)
②Tutorial on Diffusion Models for Imaging and Vision (arxiv.org)
视频:[Diffusion扩散模型补充-哔哩哔哩]
2、 q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_t,x_0) q(xt−1∣xt,x0)
在上篇文章中,我们说 q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_t,x_0) q(xt−1∣xt,x0)服从正态分布,但是并没有已与证明。那是因为我翻阅了大量的文章资料,都没有找到相关的证明过程。但是正当我放弃之际,我竟然找到了
首先,我们将这个概率利用贝叶斯公式展开
q
(
x
t
−
1
∣
x
t
,
x
0
)
=
q
(
x
t
−
1
,
x
t
∣
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
)
=
q
(
x
t
∣
x
t
−
1
)
q
(
x
t
−
1
∣
x
0
)
q
(
x
t
∣
x
0
)
q(x_{t-1}|x_t,x_0)=\frac{q(x_{t-1},x_t|x_0)}{q(x_{t}|x_0)}=\frac{q(x_t|x_{t-1},x_0)q(x_{t-1}|x_0)}{q(x_t|x_0)}=\frac{q(x_t|x_{t-1})q(x_{t-1}|x_0)}{q(x_t|x_0)}
q(xt−1∣xt,x0)=q(xt∣x0)q(xt−1,xt∣x0)=q(xt∣x0)q(xt∣xt−1,x0)q(xt−1∣x0)=q(xt∣x0)q(xt∣xt−1)q(xt−1∣x0)
在此,得出
q
(
x
t
−
1
∣
x
0
)
q(x_{t-1}|x_0)
q(xt−1∣x0)为先验,
q
(
x
t
∣
x
t
−
1
)
q(x_t|x_{t-1})
q(xt∣xt−1)为似然,而
q
(
x
t
−
1
∣
x
t
,
x
0
)
q(x_{t-1}|x_t,x_0)
q(xt−1∣xt,x0)则为后验
论文①里面给出这个定理
我在以前的文章,也推导出这样的一个定理
如果:
P
(
x
)
∼
N
(
x
∣
μ
x
,
Σ
x
)
P
(
y
∣
x
)
∼
N
(
y
∣
A
x
+
B
,
Q
)
那么:
P
(
x
∣
y
)
∼
N
(
x
∣
μ
x
−
Σ
x
y
Σ
y
y
−
1
μ
y
,
Σ
x
x
−
Σ
x
y
Σ
y
y
−
1
Σ
y
x
)
\begin{aligned}如果:&\\&P(x)\sim N(x|\mu_x,\Sigma_x)\\&P(y|x) \sim N(y|Ax+B,Q)\\那么:&\\&P(x|y)\sim N(x|\mu_x-\Sigma_{xy}\Sigma_{yy}^{-1}\mu_y,\Sigma_{xx}-\Sigma_{xy}\Sigma_{yy}^{-1}\Sigma_{yx})\end{aligned}\nonumber
如果:那么:P(x)∼N(x∣μx,Σx)P(y∣x)∼N(y∣Ax+B,Q)P(x∣y)∼N(x∣μx−ΣxyΣyy−1μy,Σxx−ΣxyΣyy−1Σyx)
其中里面的
Σ
x
y
\Sigma_{xy}
Σxy表示随机变量x,y的协方差矩阵,而
μ
y
\mu_y
μy是随机变量y的期望。都是可以求出来的
至于怎么求,而刚刚的定理是怎么来的,请看我以前写过的一篇博文:线性动态系统中的概率求解_随机动态系统 条件概率-CSDN博客
好,现在,我们不难发现, P ( x ) P(x) P(x)就是先验,而 P ( y ∣ x ) P(y|x) P(y∣x)则是似然, P ( x ∣ y ) P(x|y) P(x∣y)就是后验。
P ( x ∣ y ) P(x|y) P(x∣y)刚好对应上面那个 q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_t,x_0) q(xt−1∣xt,x0)。那么也就是说, P ( x t − 1 ∣ x t , x 0 ) P(x_{t-1}|x_t,x_0) P(xt−1∣xt,x0)就是正态分布。至于是否要用刚刚的公式求出来,反而有些麻烦,其实可以直接用上一篇文章那种推导就可以了。
还有一点值得注意的是,在论文①中,里面已经强调了 q ( x t − 1 ∣ x 0 ) q(x_{t-1}|x_0) q(xt−1∣x0)为先验, q ( x t ∣ x t − 1 ) q(x_t|x_{t-1}) q(xt∣xt−1)为似然,而 q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1}|x_t,x_0) q(xt−1∣xt,x0)则为后验
其实论文还提出,如果似然跟先验满足刚刚提出的定理,就可以直接得到后验的公式。
我想说的是,论文只是为了得到后验的公式。如果我们不想得到后验的公式(比如我们只想知道后验是什么分布)
那么根据高斯分布的自共轭性质,如果先验和似然都是高斯分布,那么后验就是高斯分布。就能得出结论了。
3、重建损失问题
在上一篇文章中,对于重构项 E q ( x 1 ∣ x 0 ) [ log P ( x 0 ∣ x 1 ) ] \mathbb{E}_{q(x_1|x_0)}[\log P(x_0|x_1)] Eq(x1∣x0)[logP(x0∣x1)],我们进行了一些推导
但其实,那是我自己推的,论文里面没有提到。
虽然得到了结果,但是毕竟不是论文里面的。如果你想看论文里面的推导(毕竟我写错的概率大,而论文错的概率却很小)。可以参考论文②,里面有对重构项的推导。
想看论文里面的推导(毕竟我写错的概率大,而论文错的概率却很小)。可以参考论文②,里面有对重构项的推导。