目录
-
- 前言
- [6. 优化目标 ELBO/VLB](#6. 优化目标 ELBO/VLB)
前言
学习 UP 主 霹雳吧啦Wz 的 DDPM介绍与公式推导 视频,了解下 DDPM 论文中相关公式使用以及详细推导过程,记录下个人学习笔记,和大家一起分享交流😄
本篇文章主要记录优化目标 ELBO/VLB 。
video :DDPM介绍与公式推导
6. 优化目标 ELBO/VLB
接下来,为了后续能够进一步化简,我们这里会去使用一个对数似然进行计算:
log p θ ( x 0 ) = ( i ) log ∫ p θ ( x 0 : T ) d x 1 : T = ( i i ) log ∫ p θ ( x 0 : T ) q ( x 1 : T ∣ x 0 ) q ( x 1 : T ∣ x 0 ) d x 1 : T = ( i i i ) log E q ( x 1 : T ∣ x 0 ) p θ ( x 0 : T ) q ( x 1 : T ∣ x 0 ) ≥ ( i v ) E q ( x 1 : T ∣ x 0 ) log p θ ( x 0 : T ) q ( x 1 : T ∣ x 0 ) \begin{align*} \log p_{\theta}(\boldsymbol{x}0) & \overset{(i)}{=} \log \int p{\theta}(\boldsymbol{x}{0:T}) d\boldsymbol{x}{1:T} \\ & \overset{(ii)}{=} \log \int \frac{p_{\theta}(\boldsymbol{x}{0:T})q(\boldsymbol{x}{1:T} \mid \boldsymbol{x}0)}{q(\boldsymbol{x}{1:T} \mid \boldsymbol{x}0)} d\boldsymbol{x}{1:T} \\ & \overset{(iii)}{=} \log \mathbb{E}{q(\boldsymbol{x}{1:T} \mid \boldsymbol{x}0)} \left \\frac{p_{\\theta}(\\boldsymbol{x}_{0:T})}{q(\\boldsymbol{x}_{1:T} \\mid \\boldsymbol{x}_0)} \\right \\ & \overset{(iv)}{\ge} \mathbb{E}{q(\boldsymbol{x}_{1:T} \mid \boldsymbol{x}_0)} \left \\log \\frac{p_{\\theta}(\\boldsymbol{x}_{0:T})}{q(\\boldsymbol{x}_{1:T} \\mid \\boldsymbol{x}_0)} \\right \end{align*} logpθ(x0)=(i)log∫pθ(x0:T)dx1:T=(ii)log∫q(x1:T∣x0)pθ(x0:T)q(x1:T∣x0)dx1:T=(iii)logEq(x1:T∣x0)q(x1:T∣x0)pθ(x0:T)≥(iv)Eq(x1:T∣x0)logq(x1:T∣x0)pθ(x0:T)
对数似然计算也是在深度学习优化里面非常常见的一个手段,为什么能这样做,是因为 对数函数它是一个严格单调递增的函数,它不会改变原函数的一个大小关系,并且对数拥有着一些比较有用的性质,比如说它可以把连乘变成一个累加的形式,那么这个后面我们在推导的时候可以用到。
其中,步骤 ( i ) (i) (i) 对积分取对数;步骤 ( i i ) (ii) (ii) 在积分时同时乘除同一个 q ( x 1 : T ∣ x 0 ) q(\boldsymbol{x}_{1:T} \mid \boldsymbol{x}_0) q(x1:T∣x0) ,积分值保持不变;步骤 ( i i i ) (iii) (iii) 使用了连续型随机变量数学期望的定义;步骤 i v iv iv 使用了 Jensen 不等式。
下面我们来具体解释下步骤 ( i i i ) (iii) (iii) 以及步骤 ( i v ) (iv) (iv) 的推导。
首先,连续型随机变量数学期望的定义如下:
E Z ∼ q ( z ) f ( Z ) = ∫ q ( z ) f ( z ) d z \mathbb{E}_{Z \sim q(z)}f(Z) = \int q(z)f(z) dz EZ∼q(z)f(Z)=∫q(z)f(z)dz
其中 q ( z ) q(z) q(z) 是概率密度, f ( z ) f(z) f(z) 是被求期望函数。简单说:"函数乘以密度,再全空间积分" = "函数在该分布下的期望"。
从步骤 ( i i ) (ii) (ii) 开始:
log ∫ p θ ( x 0 : T ) q ( x 1 : T ∣ x 0 ) q ( x 1 : T ∣ x 0 ) d x 1 : T \log \int \frac{ p_\theta(\boldsymbol{x}{0:T}) q(\boldsymbol{x}{1:T}\mid\boldsymbol{x}0) }{ q(\boldsymbol{x}{1:T}\mid\boldsymbol{x}0) } d\boldsymbol{x}{1:T} log∫q(x1:T∣x0)pθ(x0:T)q(x1:T∣x0)dx1:T
先调整乘法顺序:
log ∫ q ( x 1 : T ∣ x 0 ) p θ ( x 0 : T ) q ( x 1 : T ∣ x 0 ) d x 1 : T \log \int q(\boldsymbol{x}{1:T}\mid\boldsymbol{x}0) \frac{ p\theta(\boldsymbol{x}{0:T}) }{ q(\boldsymbol{x}_{1:T}\mid\boldsymbol{x}0) } d\boldsymbol{x}{1:T} log∫q(x1:T∣x0)q(x1:T∣x0)pθ(x0:T)dx1:T
现在把它与期望的定义比较:
E Z ∼ q ( z ) f ( Z ) = ∫ q ( z ) f ( z ) d z \mathbb E_{Z\sim q(z)}f(Z) = \int q(z)f(z)dz EZ∼q(z)f(Z)=∫q(z)f(z)dz
对应关系是:
Z ⟷ x 1 : T , q ( z ) ⟷ q ( x 1 : T ∣ x 0 ) , f ( Z ) ⟷ p θ ( x 0 : T ) q ( x 1 : T ∣ x 0 ) . \begin{align*} Z &\longleftrightarrow \boldsymbol{x}{1:T}, \\6pt q(z) & \longleftrightarrow q(\boldsymbol{x}{1:T}\mid\boldsymbol{x}0), \\6pt f(Z) & \longleftrightarrow \frac{p\theta(\boldsymbol{x}{0:T})} {q(\boldsymbol{x}{1:T}\mid\boldsymbol{x}_0)}. \end{align*} Zq(z)f(Z)⟷x1:T,⟷q(x1:T∣x0),⟷q(x1:T∣x0)pθ(x0:T).
所以可以直接写为:
log E q ( x 1 : T ∣ x 0 ) p θ ( x 0 : T ) q ( x 1 : T ∣ x 0 ) \log \mathbb E_{q(\boldsymbol{x}_{1:T} \mid \boldsymbol{x}_0)} \left \\frac{p_\\theta(\\boldsymbol{x}_{0:T})} {q(\\boldsymbol{x}_{1:T}\\mid\\boldsymbol{x}_0)} \\right logEq(x1:T∣x0)q(x1:T∣x0)pθ(x0:T)
它并不是使用某种复杂的积分变换,只是识别出:
∫ q ( x 1 : T ∣ x 0 ) ⏟ 概率密度 p θ ( x 0 : T ) q ( x 1 : T ∣ x 0 ) ⏟ 被求期望的函数 d x 1 : T \boxed{ \int \underbrace{q(\boldsymbol{x}{1:T}\mid\boldsymbol{x}0)}{\text{概率密度}} \underbrace{ \frac{p\theta(\boldsymbol{x}{0:T})} {q(\boldsymbol{x}{1:T}\mid\boldsymbol{x}0)} }{\text{被求期望的函数}} d\boldsymbol{x}_{1:T} } ∫概率密度 q(x1:T∣x0)被求期望的函数 q(x1:T∣x0)pθ(x0:T)dx1:T
正好符合 "概率密度乘以函数再积分" 的期望定义。
Example: 用一个简单例子理解 "积分变期望"
假设
Z ∼ N ( 0 , 1 ) Z\sim\mathcal N(0,1) Z∼N(0,1)
现在想计算 Z 2 Z^2 Z2 的期望。按照定义:
E Z 2 = ∫ z 2 q ( z ) d z \mathbb EZ\^2 = \int z^2q(z)dz EZ2=∫z2q(z)dz
这里:
- q ( z ) q(z) q(z) 是标准正态分布的密度;
- z 2 z^2 z2 是我们要取平均的函数。
同样,在 DDPM 中:
E q p θ q = ∫ q p θ q d x 1 : T \mathbb E_q \left \\frac{p_\\theta}{q} \\right = \int q \frac{p_\theta}{q} d\boldsymbol{x}_{1:T} Eqqpθ=∫qqpθdx1:T
只是被求期望的函数从 z 2 z^2 z2 变成了:
p θ ( x 0 : T ) q ( x 1 : T ∣ x 0 ) \frac{p_\theta(\boldsymbol{x}{0:T})} {q(\boldsymbol{x}{1:T}\mid\boldsymbol{x}_0)} q(x1:T∣x0)pθ(x0:T)
步骤 ( i v ) (iv) (iv) 是:
log E q p θ q ≥ E q log p θ q \log\mathbb E_q \left \\frac{p_\\theta}{q} \\right \geq \mathbb E_q \left \\log\\frac{p_\\theta}{q} \\right logEqqpθ≥Eqlogqpθ
这里使用的是 Jensen 不等式 ,那这个不等式在国内的教材叫做 琴生不等式。
对于一个凹函数 f f f ,有:
f ( E Y ) ≥ E f ( Y ) f(\mathbb EY) \geq \mathbb Ef(Y) f(EY)≥Ef(Y)
而对数函数
f ( y ) = log y f(y)=\log y f(y)=logy
是凹函数,因此:
log E Y ≥ E log Y \log\mathbb EY \geq \mathbb E\\log Y logEY≥ElogY
现在令
Y = p θ ( x 0 : T ) q ( x 1 : T ∣ x 0 ) Y= \frac{ p_\theta(\boldsymbol{x}{0:T}) }{ q(\boldsymbol{x}{1:T}\mid\boldsymbol{x}_0) } Y=q(x1:T∣x0)pθ(x0:T)
就得到:
log E p θ ( x 0 : T ) q ( x 1 : T ∣ x 0 ) ≥ E log p θ ( x 0 : T ) q ( x 1 : T ∣ x 0 ) \log\mathbb E\\frac{ p_\\theta(\\boldsymbol{x}_{0:T}) }{ q(\\boldsymbol{x}_{1:T}\\mid\\boldsymbol{x}_0) } \geq \mathbb E\\log \\frac{ p_\\theta(\\boldsymbol{x}_{0:T}) }{ q(\\boldsymbol{x}_{1:T}\\mid\\boldsymbol{x}_0) } logEq(x1:T∣x0)pθ(x0:T)≥Elogq(x1:T∣x0)pθ(x0:T)
这就是步骤 ( i v ) (iv) (iv) 。
Example:关于对数函数琴生不等式的简单示例说明
如上图所示,假设随机变量 X X X 只可能取 x 1 x_1 x1 和 x 2 x_2 x2 ,对应概率分别为 t t t 和 1 − t 1-t 1−t ,那么:
E X = t x 1 + ( 1 − t ) x 2 \mathbb EX=tx_1+(1-t)x_2 EX=tx1+(1−t)x2
先求期望再取对数,对应红色曲线上的点:
log E X = log ( t x 1 + ( 1 − t ) x 2 ) \log\mathbb EX = \log\left(tx_1+(1-t)x_2\right) logEX=log(tx1+(1−t)x2)
先取对数再求期望,对应蓝色弦线上的点:
E log X = t log ( x 1 ) + ( 1 − t ) log ( x 2 ) \mathbb E\\log X = t\log(x_1)+(1-t)\log(x_2) ElogX=tlog(x1)+(1−t)log(x2)
由于对数函数是凹函数,红色曲线始终位于蓝色弦线之上,因此:
log E X ≥ E log X \boxed{ \log\mathbb EX\geq\mathbb E\\log X } logEX≥ElogX
当 t = 0 t=0 t=0 或 t = 1 t=1 t=1 时,只取 x 2 x_2 x2 或 x 1 x_1 x1 ,红色曲线与蓝色直线相交,此时等号成立。
那经过上面的推导之后,最终我们得到的是下面这个不等式:
log p θ ( x 0 ) ⏟ Evidence ≥ E q ( x 1 : T ∣ x 0 ) log p θ ( x 0 : T ) q ( x 1 : T ∣ x 0 ) ⏟ Evidence Lower Bound(ELBO) Variational Lower Bound(VLB) \underbrace{\log p_\theta(\boldsymbol{x}0)}{\textcolor{red}{\text{Evidence}}} \ge \underbrace{\mathbb{E}{q(\boldsymbol{x}{1:T} \mid \boldsymbol{x}0)} \left \\log \\frac{p_\\theta(\\boldsymbol{x}_{0:T})}{q(\\boldsymbol{x}_{1:T} \\mid \\boldsymbol{x}_0)} \\right}{\substack{\textcolor{red}{\text{Evidence Lower Bound(ELBO)}} \\6pt \textcolor{red}{\text{Variational Lower Bound(VLB)}}}} Evidence logpθ(x0)≥Evidence Lower Bound(ELBO)Variational Lower Bound(VLB) Eq(x1:T∣x0)logq(x1:T∣x0)pθ(x0:T)
首先前面这一项 log p θ ( x 0 ) \log p_{\theta}(\boldsymbol{x}0) logpθ(x0) 对数似然,我们一般称之为 Evidence,也就是证据,而右边这一项我们一般称之为 Evidence Lower Bound,也就是 ELBO 或者说 Variational Lower Bound(VLB),**由于真正的 log p θ ( x 0 ) \log p{\theta}(\boldsymbol{x}_0) logpθ(x0) 难以计算,那通过最大化 ELBO 或者说 VLB 就能够间接地提升我们证据的下界,近似实现最大化 Evidence**。
Q :为什么步骤 ( i i ) (ii) (ii) 中同时乘除的是 q ( x 1 : T ∣ x 0 ) q(\boldsymbol{x}_{1:T} \mid \boldsymbol{x}_0) q(x1:T∣x0) 这个条件联合概率分布,而不是其他分布呢?
A :实际上,只要选取一个合适的条件概率密度 r ( x 1 : T ∣ x 0 ) r(\boldsymbol{x}_{1:T}\mid\boldsymbol{x}_0) r(x1:T∣x0) ,都可以写成
p θ ( x 0 ) = ∫ p θ ( x 0 : T ) d x 1 : T = ∫ p θ ( x 0 : T ) r ( x 1 : T ∣ x 0 ) r ( x 1 : T ∣ x 0 ) d x 1 : T = E r ( x 1 : T ∣ x 0 ) p θ ( x 0 : T ) r ( x 1 : T ∣ x 0 ) \begin{aligned} p_\theta(\boldsymbol{x}0) &= \int p\theta(\boldsymbol{x}{0:T})d\boldsymbol{x}{1:T} \\ &= \int \frac{ p_\theta(\boldsymbol{x}{0:T}) r(\boldsymbol{x}{1:T}\mid\boldsymbol{x}0) }{ r(\boldsymbol{x}{1:T}\mid\boldsymbol{x}0) } d\boldsymbol{x}{1:T} \\ &= \mathbb E_{r(\boldsymbol{x}_{1:T}\mid\boldsymbol{x}_0)} \left \\frac{p_\\theta(\\boldsymbol{x}_{0:T})} {r(\\boldsymbol{x}_{1:T}\\mid\\boldsymbol{x}_0)} \\right \end{aligned} pθ(x0)=∫pθ(x0:T)dx1:T=∫r(x1:T∣x0)pθ(x0:T)r(x1:T∣x0)dx1:T=Er(x1:T∣x0)r(x1:T∣x0)pθ(x0:T)
因为 r r = 1 \frac{r}{r}=1 rr=1 ,所以无论乘除哪个满足条件的分布,原积分都不会改变。
那为什么 DDPM 偏偏选择前向分布 q q q 呢?这是因为一个合适的 r r r 需要满足几个实际要求:
- 容易从中采样;
- 概率密度容易计算;
- 能够与隐变量 x 1 : T \boldsymbol{x}_{1:T} x1:T 建立合理联系;
- 代入后能够继续化简。
DDPM 已经定义好了前向加噪过程:
q ( x 1 : T ∣ x 0 ) = ∏ t = 1 T q ( x t ∣ x t − 1 ) q(\boldsymbol{x}_{1:T}\mid\boldsymbol{x}0) = \prod{t=1}^{T} q(\boldsymbol{x}t\mid\boldsymbol{x}{t-1}) q(x1:T∣x0)=t=1∏Tq(xt∣xt−1)
它恰好满足这些要求。
1. q q q 容易采样
给定一张真实图像 x 0 \boldsymbol{x}_0 x0 ,可以按照
x t = 1 − β t x t − 1 + β t ε t \boldsymbol{x}t = \sqrt{1-\beta_t}\boldsymbol{x}{t-1} + \sqrt{\beta_t}\boldsymbol{\varepsilon}_t xt=1−βt xt−1+βt εt
不断加入高斯噪声,很容易获得一条轨迹:
x 0 → x 1 → ⋯ → x T \boldsymbol{x}_0\rightarrow\boldsymbol{x}_1 \rightarrow\cdots\rightarrow\boldsymbol{x}_T x0→x1→⋯→xT
所以可以用采样来估计关于 q q q 的期望。
2. q q q 的密度容易计算
前向过程的每一步都是已知的高斯分布:
q ( x t ∣ x t − 1 ) = N ( x t ; 1 − β t x t − 1 , β t I ) q(\boldsymbol{x}t\mid\boldsymbol{x}{t-1}) = \mathcal N\left( \boldsymbol{x}t; \sqrt{1-\beta_t}\boldsymbol{x}{t-1}, \beta_t\boldsymbol I \right) q(xt∣xt−1)=N(xt;1−βt xt−1,βtI)
其中没有需要训练的未知参数,因此 q q q 是完全已知的。
3. q q q 能让后续推导化为高斯分布与 KL 散度
选择这个 q q q 后,ELBO 可以进一步分解成多个 KL 散度,例如后面会出现: q ( x t − 1 ∣ x t , x 0 ) q(\boldsymbol{x}_{t-1}\mid\boldsymbol{x}t,\boldsymbol{x}0) q(xt−1∣xt,x0) 与 p θ ( x t − 1 ∣ x t ) p\theta(\boldsymbol{x}{t-1}\mid\boldsymbol{x}_t) pθ(xt−1∣xt) 之间的 KL 散度。由于相关分布都是高斯分布,这些项可以解析计算或进一步简化,最终得到 DDPM 常用的噪声预测损失。
如果随便选择另一个复杂分布 r r r ,虽然 Jensen 不等式仍然成立,但是它可能:
- 无法采样;
- 密度无法计算;
- 后验分布无法解析;
- 不能得到简单的训练目标。
接下来我们再对我们的 ELBO 或者说 VLB 做进一步的一个拆解:
log p θ ( x 0 ) ≥ E q ( x 1 : T ∣ x 0 ) log p θ ( x 0 : T ) q ( x 1 : T ∣ x 0 ) = ( i ) E q ( x 1 : T ∣ x 0 ) log p ( x T ) ∏ t = 1 T p θ ( x t − 1 ∣ x t ) ∏ t = 1 T q ( x t ∣ x t − 1 ) = ( i i ) E q ( x 1 : T ∣ x 0 ) log p ( x T ) p θ ( x 0 ∣ x 1 ) ∏ t = 2 T p θ ( x t − 1 ∣ x t ) q ( x 1 ∣ x 0 ) ∏ t = 2 T q ( x t ∣ x t − 1 ) = ( i i i ) E q ( x 1 : T ∣ x 0 ) log p ( x T ) p θ ( x 0 ∣ x 1 ) ∏ t = 2 T p θ ( x t − 1 ∣ x t ) q ( x 1 ∣ x 0 ) ∏ t = 2 T q ( x t ∣ x t − 1 , x 0 ) = ( i v ) E q ( x 1 : T ∣ x 0 ) log p ( x T ) p θ ( x 0 ∣ x 1 ) q ( x 1 ∣ x 0 ) + log ∏ t = 2 T p θ ( x t − 1 ∣ x t ) q ( x t ∣ x t − 1 , x 0 ) = ( v ) E q ( x 1 : T ∣ x 0 ) log p ( x T ) p θ ( x 0 ∣ x 1 ) q ( x 1 ∣ x 0 ) + log ∏ t = 2 T p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) q ( x t ∣ x 0 ) q ( x t − 1 ∣ x 0 ) = ( v i ) E q ( x 1 : T ∣ x 0 ) log p ( x T ) p θ ( x 0 ∣ x 1 ) q ( x 1 ∣ x 0 ) + log q ( x 1 ∣ x 0 ) q ( x T ∣ x 0 ) + log ∏ t = 2 T p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) = ( v i i ) E q ( x 1 : T ∣ x 0 ) log p ( x T ) p θ ( x 0 ∣ x 1 ) q ( x T ∣ x 0 ) + ∑ t = 2 T log p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) \begin{align*} \log p_\theta(\boldsymbol{x}0) &\ge \mathbb{E}{q(\boldsymbol{x}{1:T} \mid \boldsymbol{x}0)} \left \\log \\frac{p_\\theta(\\boldsymbol{x}_{0:T})}{q(\\boldsymbol{x}_{1:T} \\mid \\boldsymbol{x}_0)} \\right \\ & \overset{(i)}{=} \mathbb{E}{q(\boldsymbol{x}{1:T} \mid \boldsymbol{x}0)} \left \\log \\frac{p(\\boldsymbol{x}_T) \\prod_{t=1}\^T p_\\theta(\\boldsymbol{x}_{t-1} \\mid \\boldsymbol{x}_t)}{\\prod_{t=1}\^T q(\\boldsymbol{x}_t \\mid \\boldsymbol{x}_{t-1})} \\right \\ & \overset{(ii)}{=} \mathbb{E}{q(\boldsymbol{x}{1:T} \mid \boldsymbol{x}0)} \left \\log \\frac{p(\\boldsymbol{x}_T) p_\\theta(\\boldsymbol{x}_0 \\mid \\boldsymbol{x}_1) \\prod_{t=2}\^T p_\\theta(\\boldsymbol{x}_{t-1} \\mid \\boldsymbol{x}_t)}{q(\\boldsymbol{x}_1 \\mid \\boldsymbol{x}_0) \\prod_{t=2}\^T q(\\boldsymbol{x}_t \\mid \\boldsymbol{x}_{t-1})} \\right \\ & \overset{(iii)}{=} \mathbb{E}{q(\boldsymbol{x}{1:T} \mid \boldsymbol{x}0)} \left \\log \\frac{p(\\boldsymbol{x}_T) p_\\theta(\\boldsymbol{x}_0 \\mid \\boldsymbol{x}_1) \\prod_{t=2}\^T p_\\theta(\\boldsymbol{x}_{t-1} \\mid \\boldsymbol{x}_t)}{q(\\boldsymbol{x}_1 \\mid \\boldsymbol{x}_0) \\prod_{t=2}\^T q(\\boldsymbol{x}_t \\mid \\boldsymbol{x}_{t-1}, \\boldsymbol{x}_0)} \\right \\ & \overset{(iv)}{=} \mathbb{E}{q(\boldsymbol{x}{1:T} \mid \boldsymbol{x}0)} \left \\log \\frac{p(\\boldsymbol{x}_T) p_\\theta(\\boldsymbol{x}_0 \\mid \\boldsymbol{x}_1)}{q(\\boldsymbol{x}_1 \\mid \\boldsymbol{x}_0)} + \\log \\prod_{t=2}\^T \\frac{p_\\theta(\\boldsymbol{x}_{t-1} \\mid \\boldsymbol{x}_t)}{q(\\boldsymbol{x}_t \\mid \\boldsymbol{x}_{t-1}, \\boldsymbol{x}_0)} \\right \\ & \overset{(v)}{=} \mathbb{E}{q(\boldsymbol{x}{1:T} \mid \boldsymbol{x}0)} \left \\log \\frac{p(\\boldsymbol{x}_T) p_\\theta(\\boldsymbol{x}_0 \\mid \\boldsymbol{x}_1)}{q(\\boldsymbol{x}_1 \\mid \\boldsymbol{x}_0)} + \\log \\prod_{t=2}\^T \\frac{p_\\theta(\\boldsymbol{x}_{t-1} \\mid \\boldsymbol{x}_t)}{q(\\boldsymbol{x}_{t-1} \\mid \\boldsymbol{x}_t, \\boldsymbol{x}_0) \\frac{q(\\boldsymbol{x}_t \\mid \\boldsymbol{x}_0)}{q(\\boldsymbol{x}_{t-1} \\mid \\boldsymbol{x}_0)}} \\right \\ & \overset{(vi)}{=} \mathbb{E}{q(\boldsymbol{x}{1:T} \mid \boldsymbol{x}0)} \left \\log \\frac{p(\\boldsymbol{x}_T) p_\\theta(\\boldsymbol{x}_0 \\mid \\boldsymbol{x}_1)}{q(\\boldsymbol{x}_1 \\mid \\boldsymbol{x}_0)} + \\log \\frac{q(\\boldsymbol{x}_1 \\mid \\boldsymbol{x}_0)}{q(\\boldsymbol{x}_T \\mid \\boldsymbol{x}_0)} + \\log \\prod_{t=2}\^T \\frac{p_\\theta(\\boldsymbol{x}_{t-1} \\mid \\boldsymbol{x}_t)}{q(\\boldsymbol{x}_{t-1} \\mid \\boldsymbol{x}_t, \\boldsymbol{x}_0)} \\right \\ & \overset{(vii)}{=} \mathbb{E}{q(\boldsymbol{x}{1:T} \mid \boldsymbol{x}_0)} \left \\log \\frac{p(\\boldsymbol{x}_T) p_\\theta(\\boldsymbol{x}_0 \\mid \\boldsymbol{x}_1)}{q(\\boldsymbol{x}_T \\mid \\boldsymbol{x}_0)} + \\sum_{t=2}\^T \\log \\frac{p_\\theta(\\boldsymbol{x}_{t-1} \\mid \\boldsymbol{x}_t)}{q(\\boldsymbol{x}_{t-1} \\mid \\boldsymbol{x}_t, \\boldsymbol{x}_0)} \\right \end{align*} logpθ(x0)≥Eq(x1:T∣x0)logq(x1:T∣x0)pθ(x0:T)=(i)Eq(x1:T∣x0)log∏t=1Tq(xt∣xt−1)p(xT)∏t=1Tpθ(xt−1∣xt)=(ii)Eq(x1:T∣x0)logq(x1∣x0)∏t=2Tq(xt∣xt−1)p(xT)pθ(x0∣x1)∏t=2Tpθ(xt−1∣xt)=(iii)Eq(x1:T∣x0)logq(x1∣x0)∏t=2Tq(xt∣xt−1,x0)p(xT)pθ(x0∣x1)∏t=2Tpθ(xt−1∣xt)=(iv)Eq(x1:T∣x0)logq(x1∣x0)p(xT)pθ(x0∣x1)+logt=2∏Tq(xt∣xt−1,x0)pθ(xt−1∣xt)=(v)Eq(x1:T∣x0) logq(x1∣x0)p(xT)pθ(x0∣x1)+logt=2∏Tq(xt−1∣xt,x0)q(xt−1∣x0)q(xt∣x0)pθ(xt−1∣xt) =(vi)Eq(x1:T∣x0)logq(x1∣x0)p(xT)pθ(x0∣x1)+logq(xT∣x0)q(x1∣x0)+logt=2∏Tq(xt−1∣xt,x0)pθ(xt−1∣xt)=(vii)Eq(x1:T∣x0)logq(xT∣x0)p(xT)pθ(x0∣x1)+t=2∑Tlogq(xt−1∣xt,x0)pθ(xt−1∣xt)
其中,步骤 ( i ) (i) (i) 使用了 p θ ( x 0 : T ) p_{\theta}(\boldsymbol{x}{0:T}) pθ(x0:T) 以及 q ( x 1 : T ∣ x 0 ) q(\boldsymbol{x}{1:T} \mid \boldsymbol{x}_0) q(x1:T∣x0) 的定义式:
p θ ( x 0 : T ) : = p ( x T ) ∏ t = 1 T p θ ( x t − 1 ∣ x t ) q ( x 1 : T ∣ x 0 ) : = ∏ t = 1 T q ( x t ∣ x t − 1 ) \begin{align*} p_{\theta}(\boldsymbol{x}{0:T}) &:= p(\boldsymbol{x}T) \prod{t=1}^{T} p{\theta}(\boldsymbol{x}_{t-1} \mid \boldsymbol{x}t) \\ q(\boldsymbol{x}{1:T} \mid \boldsymbol{x}0) &:= \prod{t=1}^{T} q(\boldsymbol{x}t \mid \boldsymbol{x}{t-1}) \end{align*} pθ(x0:T)q(x1:T∣x0):=p(xT)t=1∏Tpθ(xt−1∣xt):=t=1∏Tq(xt∣xt−1)
步骤 ( i i ) (ii) (ii) 将分子分母中连乘中 t = 1 t=1 t=1 这一项单独取出来了;
步骤 ( i i i ) (iii) (iii) 利用了前向过程满足马尔可夫性质这一条件:
q ( x t ∣ x t − 1 ) = q ( x t ∣ x t − 1 , x 0 ) q(\boldsymbol{x}t \mid \boldsymbol{x}{t-1}) = q(\boldsymbol{x}t \mid \boldsymbol{x}{t-1}, \boldsymbol{x}_0) q(xt∣xt−1)=q(xt∣xt−1,x0)
步骤 ( i v ) (iv) (iv) 使用了对数函数的性质:
log ( A B ) = log A + log B \log(AB) = \log A + \log B log(AB)=logA+logB
步骤 ( v ) (v) (v) 使用了多元联合概率分布的贝叶斯公式:
P ( A , B , C ) = P ( C ) P ( B ∣ C ) P ( A ∣ B , C ) P ( A , B , C ) = P ( C ) P ( A ∣ C ) P ( B ∣ A , C ) ⇓ P ( A ∣ B , C ) = P ( B ∣ A , C ) P ( A ∣ C ) P ( B ∣ C ) \begin{gather*} P(A, B, C) = P(C)P(B \mid C)P(A \mid B, C) \\ P(A, B, C) = P(C)P(A \mid C)P(B \mid A, C) \\ \Big\Downarrow \\ P(A \mid B, C) = P(B \mid A, C) \frac{P(A \mid C)}{P(B \mid C)} \end{gather*} P(A,B,C)=P(C)P(B∣C)P(A∣B,C)P(A,B,C)=P(C)P(A∣C)P(B∣A,C)⇓ ‖P(A∣B,C)=P(B∣A,C)P(B∣C)P(A∣C)
步骤 ( v i ) (vi) (vi) 的推导过程如下:
∏ t = 2 T p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) q ( x t ∣ x 0 ) q ( x t − 1 ∣ x 0 ) = ∏ t = 2 T p θ ( x t − 1 ∣ x t ) q ( x T − 1 ∣ x T , x 0 ) q ( x T ∣ x 0 ) q ( x T − 1 ∣ x 0 ) q ( x T − 2 ∣ x T − 1 , x 0 ) q ( x T − 1 ∣ x 0 ) q ( x T − 2 ∣ x 0 ) ⋯ q ( x 1 ∣ x 2 , x 0 ) q ( x 2 ∣ x 0 ) q ( x 1 ∣ x 0 ) = q ( x 1 ∣ x 0 ) q ( x T ∣ x 0 ) ∏ t = 2 T p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) \begin{align*} &\prod_{t=2}^{T} \dfrac{p_\theta(\boldsymbol{x}_{t-1} \mid \boldsymbol{x}t)}{\dfrac{q(\boldsymbol{x}{t-1} \mid \boldsymbol{x}_t, \boldsymbol{x}0)q(\boldsymbol{x}t \mid \boldsymbol{x}0)}{q(\boldsymbol{x}{t-1} \mid \boldsymbol{x}0)}} \\6pt &= \dfrac{\prod{t=2}^{T} p\theta(\boldsymbol{x}{t-1} \mid \boldsymbol{x}t)} {\dfrac{q(\boldsymbol{x}{T-1} \mid \boldsymbol{x}_T, \boldsymbol{x}_0)q(\boldsymbol{x}T \mid \boldsymbol{x}0)}{\cancel{q(\boldsymbol{x}{T-1} \mid \boldsymbol{x}0)}} \dfrac{q(\boldsymbol{x}{T-2} \mid \boldsymbol{x}{T-1}, \boldsymbol{x}0)\cancel{q(\boldsymbol{x}{T-1} \mid \boldsymbol{x}0)}}{\cancel{q(\boldsymbol{x}{T-2} \mid \boldsymbol{x}_0)}} \cdots \dfrac{q(\boldsymbol{x}_1 \mid \boldsymbol{x}_2, \boldsymbol{x}_0)q(\boldsymbol{x}_2 \mid \boldsymbol{x}_0)}{\cancel{q(\boldsymbol{x}_1 \mid \boldsymbol{x}_0)}}} \\6pt &= \dfrac{q(\boldsymbol{x}_1 \mid \boldsymbol{x}0)}{q(\boldsymbol{x}T \mid \boldsymbol{x}0)} \prod{t=2}^{T} \dfrac{p\theta(\boldsymbol{x}{t-1} \mid \boldsymbol{x}t)}{q(\boldsymbol{x}{t-1} \mid \boldsymbol{x}_t, \boldsymbol{x}_0)} \end{align*} t=2∏Tq(xt−1∣x0)q(xt−1∣xt,x0)q(xt∣x0)pθ(xt−1∣xt)=q(xT−1∣x0) q(xT−1∣xT,x0)q(xT∣x0)q(xT−2∣x0) q(xT−2∣xT−1,x0)q(xT−1∣x0) ⋯q(x1∣x0) q(x1∣x2,x0)q(x2∣x0)∏t=2Tpθ(xt−1∣xt)=q(xT∣x0)q(x1∣x0)t=2∏Tq(xt−1∣xt,x0)pθ(xt−1∣xt)
步骤 ( v i i ) (vii) (vii) 再次利用了对数函数的性质:
log A + log B = log ( A B ) log ∏ i = 1 n a i = ∑ i = 1 n log a i \log A + \log B = \log(AB) \\4pt \log \prod \limits_{i=1}^n a_i = \sum_{i=1}^n \log a_i logA+logB=log(AB)logi=1∏nai=i=1∑nlogai
OK,我们继续优化拆解:
log p θ ( x 0 ) ≥ E q ( x 1 : T ∣ x 0 ) log p θ ( x 0 : T ) q ( x 1 : T ∣ x 0 ) = ( v i i ) E q ( x 1 : T ∣ x 0 ) log p ( x T ) p θ ( x 0 ∣ x 1 ) q ( x T ∣ x 0 ) + ∑ t = 2 T log p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) = ( v i i i ) E q ( x 1 : T ∣ x 0 ) log p θ ( x 0 ∣ x 1 ) + E q ( x 1 : T ∣ x 0 ) log p ( x T ) q ( x T ∣ x 0 ) + ∑ t = 2 T E q ( x 1 : T ∣ x 0 ) log p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) = ( i v v ) E q ( x 1 ∣ x 0 ) log p θ ( x 0 ∣ x 1 ) + E q ( x T ∣ x 0 ) log p ( x T ) q ( x T ∣ x 0 ) + ∑ t = 2 T E q ( x t , x t − 1 ∣ x 0 ) log p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) = ( v v ) E q ( x 1 ∣ x 0 ) log p θ ( x 0 ∣ x 1 ) + E q ( x T ∣ x 0 ) log p ( x T ) q ( x T ∣ x 0 ) + ∑ t = 2 T E q ( x t ∣ x 0 ) E q ( x t − 1 ∣ x t , x 0 ) \[ log p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) ] = ( v v i ) E q ( x 1 ∣ x 0 ) log p θ ( x 0 ∣ x 1 ) − D K L ( q ( x T ∣ x 0 ) ∥ p ( x T ) ) − ∑ t = 2 T E q ( x t ∣ x 0 ) D K L ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) \begin{align*} \log p_\theta(\boldsymbol{x}0) &\ge \mathbb{E}{q(\boldsymbol{x}{1:T} \mid \boldsymbol{x}0)} \left \\log \\frac{p_\\theta(\\boldsymbol{x}_{0:T})}{q(\\boldsymbol{x}_{1:T} \\mid \\boldsymbol{x}_0)} \\right \\ & \overset{(vii)}{=} \mathbb{E}{q(\boldsymbol{x}{1:T} \mid \boldsymbol{x}0)} \left \\log \\frac{p(\\boldsymbol{x}_T) p_\\theta(\\boldsymbol{x}_0 \\mid \\boldsymbol{x}_1)}{q(\\boldsymbol{x}_T \\mid \\boldsymbol{x}_0)} + \\sum_{t=2}\^T \\log \\frac{p_\\theta(\\boldsymbol{x}_{t-1} \\mid \\boldsymbol{x}_t)}{q(\\boldsymbol{x}_{t-1} \\mid \\boldsymbol{x}_t, \\boldsymbol{x}_0)} \\right \\ & \overset{(viii)}{=} \mathbb{E}{q(\boldsymbol{x}{1:T}|\boldsymbol{x}0)} \left \\log p_\\theta(\\boldsymbol{x}_0 \\mid \\boldsymbol{x}_1) \\right + \mathbb{E}{q(\boldsymbol{x}{1:T}|\boldsymbol{x}0)} \left \\log \\frac{p(\\boldsymbol{x}_T)}{q(\\boldsymbol{x}_T \\mid \\boldsymbol{x}_0)} \\right + \sum{t=2}^{T} \mathbb{E}{q(\boldsymbol{x}{1:T}|\boldsymbol{x}0)} \left \\log \\frac{p_\\theta(\\boldsymbol{x}_{t-1} \\mid \\boldsymbol{x}_t)}{q(\\boldsymbol{x}_{t-1} \\mid \\boldsymbol{x}_t, \\boldsymbol{x}_0)} \\right \\ & \overset{(ivv)}{=} \mathbb{E}{q(\boldsymbol{x}_1|\boldsymbol{x}0)} \left \\log p_\\theta(\\boldsymbol{x}_0 \\mid \\boldsymbol{x}_1) \\right + \mathbb{E}{q(\boldsymbol{x}T|\boldsymbol{x}0)} \left \\log \\frac{p(\\boldsymbol{x}_T)}{q(\\boldsymbol{x}_T \\mid \\boldsymbol{x}_0)} \\right + \sum{t=2}^{T} \mathbb{E}{q(\boldsymbol{x}t, \boldsymbol{x}{t-1}|\boldsymbol{x}0)} \left \\log \\frac{p_\\theta(\\boldsymbol{x}_{t-1} \\mid \\boldsymbol{x}_t)}{q(\\boldsymbol{x}_{t-1} \\mid \\boldsymbol{x}_t, \\boldsymbol{x}_0)} \\right \\ & \overset{(vv)}{=} \mathbb{E}{q(\boldsymbol{x}_1|\boldsymbol{x}0)} \left \\log p_\\theta(\\boldsymbol{x}_0 \\mid \\boldsymbol{x}_1) \\right + \mathbb{E}{q(\boldsymbol{x}T|\boldsymbol{x}0)} \left \\log \\frac{p(\\boldsymbol{x}_T)}{q(\\boldsymbol{x}_T \\mid \\boldsymbol{x}_0)} \\right + \sum{t=2}^{T} \mathbb{E}{q(\boldsymbol{x}_t|\boldsymbol{x}0)} \left \\mathbb{E}_{q(\\boldsymbol{x}_{t-1}\|\\boldsymbol{x}_t, \\boldsymbol{x}_0)} \\left\[ \\log \\frac{p_\\theta(\\boldsymbol{x}_{t-1} \\mid \\boldsymbol{x}_t)}{q(\\boldsymbol{x}_{t-1} \\mid \\boldsymbol{x}_t, \\boldsymbol{x}_0)} \\right \right] \\ & \overset{(vvi)}{=} \mathbb{E}{q(\boldsymbol{x}_1|\boldsymbol{x}0)} \left \\log p_\\theta(\\boldsymbol{x}_0 \\mid \\boldsymbol{x}_1) \\right - D{\mathrm{KL}} \left( q(\boldsymbol{x}_T \mid \boldsymbol{x}0) \parallel p(\boldsymbol{x}T) \right) - \sum{t=2}^{T} \mathbb{E}{q(\boldsymbol{x}_t|\boldsymbol{x}_0)} \left D_{\\mathrm{KL}} \\left( q(\\boldsymbol{x}_{t-1} \\mid \\boldsymbol{x}_t, \\boldsymbol{x}_0) \\parallel p_\\theta(\\boldsymbol{x}_{t-1} \\mid \\boldsymbol{x}_t) \\right) \\right \end{align*} logpθ(x0)≥Eq(x1:T∣x0)logq(x1:T∣x0)pθ(x0:T)=(vii)Eq(x1:T∣x0)logq(xT∣x0)p(xT)pθ(x0∣x1)+t=2∑Tlogq(xt−1∣xt,x0)pθ(xt−1∣xt)=(viii)Eq(x1:T∣x0)logpθ(x0∣x1)+Eq(x1:T∣x0)logq(xT∣x0)p(xT)+t=2∑TEq(x1:T∣x0)logq(xt−1∣xt,x0)pθ(xt−1∣xt)=(ivv)Eq(x1∣x0)logpθ(x0∣x1)+Eq(xT∣x0)logq(xT∣x0)p(xT)+t=2∑TEq(xt,xt−1∣x0)logq(xt−1∣xt,x0)pθ(xt−1∣xt)=(vv)Eq(x1∣x0)logpθ(x0∣x1)+Eq(xT∣x0)logq(xT∣x0)p(xT)+t=2∑TEq(xt∣x0)Eq(xt−1∣xt,x0)\[logq(xt−1∣xt,x0)pθ(xt−1∣xt)]=(vvi)Eq(x1∣x0)logpθ(x0∣x1)−DKL(q(xT∣x0)∥p(xT))−t=2∑TEq(xt∣x0)DKL(q(xt−1∣xt,x0)∥pθ(xt−1∣xt))
步骤 ( v i i i ) (viii) (viii) 首先利用了对数函数的性质:
log ( A B ) = log A + log B \log (AB) = \log A + \log B log(AB)=logA+logB
接着利用了期望的线性性质:对任意有限个随机变量 A 1 , A 2 , ... , A T A_1, A_2, \ldots, A_T A1,A2,...,AT ,期望满足
E ∑ t = 1 T A t = ∑ t = 1 T E A t \mathbb{E} \left \\sum_{t=1}\^T A_t \\right = \sum_{t=1}^T \mathbb{E} \left A_t \\right Et=1∑TAt=t=1∑TEAt
步骤 ( i v v ) (ivv) (ivv) 利用了联合分布的边缘化性质。
Theorem:联合分布边缘化性质
假设 X , Y X,Y X,Y 的联合分布为 q ( x , y ) q(x,y) q(x,y) ,而函数 f ( x ) f(x) f(x) 只依赖 X X X ,那么:
E q ( x , y ) f ( x ) = ∬ q ( x , y ) f ( x ) , d x , d y = ∫ f ( x ) ∫ q ( x , y ) , d y d x = ∫ f ( x ) q ( x ) , d x = E q ( x ) f ( x ) \begin{aligned} \mathbb E_{q(x,y)}f(x) &= \iint q(x,y)f(x),dx,dy \\ &= \int f(x) \left\\int q(x,y),dy\\rightdx \\ &= \int f(x)q(x),dx \\ &= \mathbb E_{q(x)}f(x) \end{aligned} Eq(x,y)f(x)=∬q(x,y)f(x),dx,dy=∫f(x)∫q(x,y),dydx=∫f(x)q(x),dx=Eq(x)f(x)
其中
q ( x ) = ∫ q ( x , y ) d y q(x)=\int q(x,y)dy q(x)=∫q(x,y)dy
就是从联合分布 q ( x , y ) q(x,y) q(x,y) 中积分消去 Y Y Y 后得到的 X X X 的边缘分布。
因此:
E q ( x , y ) f ( x ) = E q ( x ) f ( x ) \boxed{ \mathbb E_{q(x,y)}f(x) = \mathbb E_{q(x)}f(x) } Eq(x,y)f(x)=Eq(x)f(x)
注意,这一步 不要求 X X X 与 Y Y Y 独立 ,只是因为函数 f f f 本身不依赖 Y Y Y 。
在步骤 ( i v v ) (ivv) (ivv) 当中,由于每一项中的被求期望函数只依赖于部分随机变量,因此可以将其他无关变量积分消去,将关于完整联合分布 q ( x 1 : T ∣ x 0 ) q(\boldsymbol{x}_{1:T} \mid \boldsymbol{x}_0) q(x1:T∣x0) 的期望,转化为关于相应边缘分布的期望。
第一项为:
E q ( x 1 : T ∣ x 0 ) log p θ ( x 0 ∣ x 1 ) \mathbb E_{q(\boldsymbol{x}_{1:T}\mid\boldsymbol{x}_0)} \left \\log p_\\theta(\\boldsymbol{x}_0\\mid\\boldsymbol{x}_1) \\right Eq(x1:T∣x0)logpθ(x0∣x1)
其中
log p θ ( x 0 ∣ x 1 ) \log p_\theta(\boldsymbol{x}_0\mid\boldsymbol{x}_1) logpθ(x0∣x1)
只依赖 x 1 \boldsymbol{x}_1 x1 ,并不依赖 x 2 , ... , x T \boldsymbol{x}_2,\ldots,\boldsymbol{x}_T x2,...,xT ,因此可以将这些无关变量积分掉:
E q ( x 1 : T ∣ x 0 ) log p θ ( x 0 ∣ x 1 ) = ∫ q ( x 1 : T ∣ x 0 ) log p θ ( x 0 ∣ x 1 ) d x 1 : T = ∫ q ( x 1 ∣ x 0 ) log p θ ( x 0 ∣ x 1 ) d x 1 = E q ( x 1 ∣ x 0 ) log p θ ( x 0 ∣ x 1 ) \begin{aligned} &\mathbb E_{q(\boldsymbol{x}_{1:T}\mid\boldsymbol{x}0)} \left \\log p_\\theta(\\boldsymbol{x}_0\\mid\\boldsymbol{x}_1) \\right\\ ={}& \int q(\boldsymbol{x}{1:T}\mid\boldsymbol{x}0) \log p\theta(\boldsymbol{x}_0\mid\boldsymbol{x}1) d\boldsymbol{x}{1:T}\\ ={}& \int q(\boldsymbol{x}_1\mid\boldsymbol{x}0) \log p\theta(\boldsymbol{x}_0\mid\boldsymbol{x}_1) d\boldsymbol{x}1\\ ={}& \mathbb E{q(\boldsymbol{x}_1\mid\boldsymbol{x}_0)} \left \\log p_\\theta(\\boldsymbol{x}_0\\mid\\boldsymbol{x}_1) \\right \end{aligned} ===Eq(x1:T∣x0)logpθ(x0∣x1)∫q(x1:T∣x0)logpθ(x0∣x1)dx1:T∫q(x1∣x0)logpθ(x0∣x1)dx1Eq(x1∣x0)logpθ(x0∣x1)
第二项中的函数
log p ( x T ) q ( x T ∣ x 0 ) \log\frac{p(\boldsymbol{x}_T)} {q(\boldsymbol{x}_T\mid\boldsymbol{x}_0)} logq(xT∣x0)p(xT)
只依赖 x T \boldsymbol{x}_T xT ,所以将 x 1 , ... , x T − 1 \boldsymbol{x}1,\ldots,\boldsymbol{x}{T-1} x1,...,xT−1 积分掉:
E q ( x 1 : T ∣ x 0 ) log p ( x T ) q ( x T ∣ x 0 ) = E q ( x T ∣ x 0 ) log p ( x T ) q ( x T ∣ x 0 ) \mathbb E_{q(\boldsymbol{x}_{1:T}\mid\boldsymbol{x}0)} \left \\log\\frac{p(\\boldsymbol{x}_T)} {q(\\boldsymbol{x}_T\\mid\\boldsymbol{x}_0)} \\right = \mathbb E{q(\boldsymbol{x}_T\mid\boldsymbol{x}_0)} \left \\log\\frac{p(\\boldsymbol{x}_T)} {q(\\boldsymbol{x}_T\\mid\\boldsymbol{x}_0)} \\right Eq(x1:T∣x0)logq(xT∣x0)p(xT)=Eq(xT∣x0)logq(xT∣x0)p(xT)
第三项中的函数为:
log p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) \log \frac{ p_\theta(\boldsymbol{x}_{t-1}\mid\boldsymbol{x}t) }{ q(\boldsymbol{x}{t-1}\mid\boldsymbol{x}_t,\boldsymbol{x}_0)} logq(xt−1∣xt,x0)pθ(xt−1∣xt)
它只依赖于 x t − 1 , x t \boldsymbol{x}_{t-1},\boldsymbol{x}_t xt−1,xt ,所以可以将其余变量全部积分掉:
E q ( x 1 : T ∣ x 0 ) log p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) = E q ( x t − 1 , x t ∣ x 0 ) log p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) \mathbb E_{q(\boldsymbol{x}{1:T}\mid\boldsymbol{x}0)} \left \\log \\frac{ p_\\theta(\\boldsymbol{x}_{t-1}\\mid\\boldsymbol{x}_t) }{ q(\\boldsymbol{x}_{t-1}\\mid\\boldsymbol{x}_t,\\boldsymbol{x}_0) } \\right = \mathbb E{q(\boldsymbol{x}{t-1},\boldsymbol{x}_t\mid\boldsymbol{x}_0)} \left \\log \\frac{ p_\\theta(\\boldsymbol{x}_{t-1}\\mid\\boldsymbol{x}_t) }{ q(\\boldsymbol{x}_{t-1}\\mid\\boldsymbol{x}_t,\\boldsymbol{x}_0) } \\right Eq(x1:T∣x0)logq(xt−1∣xt,x0)pθ(xt−1∣xt)=Eq(xt−1,xt∣x0)logq(xt−1∣xt,x0)pθ(xt−1∣xt)
步骤 ( v v ) (vv) (vv) 首先利用条件概率链式法则,将联合条件分布分解为:
q ( x t , x t − 1 ∣ x 0 ) = q ( x t ∣ x 0 ) q ( x t − 1 ∣ x t , x 0 ) q(\boldsymbol{x}t, \boldsymbol{x}{t-1} \mid \boldsymbol{x}_0) = q(\boldsymbol{x}_t \mid \boldsymbol{x}0) \, q(\boldsymbol{x}{t-1} \mid \boldsymbol{x}_t, \boldsymbol{x}_0) q(xt,xt−1∣x0)=q(xt∣x0)q(xt−1∣xt,x0)
随后利用全期望公式,或者称为重期望公式、塔式法则。
Theorem:全期望/重期望公式
假设随机变量 X , Y X,Y X,Y 以及函数 f ( X , Y ) f(X,Y) f(X,Y) 的期望存在,则有:
E X , Y f ( X , Y ) = E Y E X ∣ Y \[ f ( X , Y ) ] \mathbb{E}_{X,Y}f(X,Y) = \mathbb{E}_Y \left \\mathbb{E}_{X \\mid Y} \[f(X,Y) \right] EX,Yf(X,Y)=EYEX∣Y\[f(X,Y)]
它表示可以先固定 Y Y Y ,在条件分布 X ∣ Y X \mid Y X∣Y 下对 X X X 求一次条件期望,再对 Y Y Y 的分布求一次期望。
当 f ( X , Y ) = X f(X,Y) = X f(X,Y)=X 时,就得到常见形式:
E X = E Y E X ∣ Y \[ X ∣ Y ] \mathbb{E}X = \mathbb{E}_Y \left \\mathbb{E}_{X \\mid Y} \[X \\mid Y \right] EX=EYEX∣Y\[X∣Y]
在当前推导中,令:
f t ( x t − 1 , x t ) = log p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) f_t(\boldsymbol{x}{t-1},\boldsymbol{x}t) = \log \frac{ p\theta(\boldsymbol{x}{t-1}\mid\boldsymbol{x}t) }{ q(\boldsymbol{x}{t-1}\mid\boldsymbol{x}_t,\boldsymbol{x}_0) } ft(xt−1,xt)=logq(xt−1∣xt,x0)pθ(xt−1∣xt)
那么有:
E q ( x t , x t − 1 ∣ x 0 ) f t ( x t − 1 , x t ) = ∬ q ( x t , x t − 1 ∣ x 0 ) f t ( x t − 1 , x t ) d x t − 1 d x t = ∬ q ( x t ∣ x 0 ) q ( x t − 1 ∣ x t , x 0 ) f t ( x t − 1 , x t ) d x t − 1 d x t = ∫ q ( x t ∣ x 0 ) ∫ q ( x t − 1 ∣ x t , x 0 ) f t ( x t − 1 , x t ) d x t − 1 d x t = E q ( x t ∣ x 0 ) E q ( x t − 1 ∣ x t , x 0 ) \[ f t ( x t − 1 , x t ) ] \begin{aligned} &\mathbb{E}_{q(\boldsymbol{x}t,\boldsymbol{x}{t-1}\mid\boldsymbol{x}_0)} \left f_t(\\boldsymbol{x}_{t-1},\\boldsymbol{x}_t) \\right \\ ={}& \iint q(\boldsymbol{x}t,\boldsymbol{x}{t-1}\mid\boldsymbol{x}0) f_t(\boldsymbol{x}{t-1},\boldsymbol{x}t) d\boldsymbol{x}{t-1}d\boldsymbol{x}_t \\ ={}& \iint q(\boldsymbol{x}_t\mid\boldsymbol{x}0) q(\boldsymbol{x}{t-1}\mid\boldsymbol{x}_t,\boldsymbol{x}0) f_t(\boldsymbol{x}{t-1},\boldsymbol{x}t) d\boldsymbol{x}{t-1}d\boldsymbol{x}_t \\ ={}& \int q(\boldsymbol{x}_t\mid\boldsymbol{x}_0) \left \\int q(\\boldsymbol{x}_{t-1}\\mid\\boldsymbol{x}_t,\\boldsymbol{x}_0) f_t(\\boldsymbol{x}_{t-1},\\boldsymbol{x}_t) d\\boldsymbol{x}_{t-1} \\right d\boldsymbol{x}t \\ ={}& \mathbb{E}{q(\boldsymbol{x}_t\mid\boldsymbol{x}_0)} \left \\mathbb{E}_{q(\\boldsymbol{x}_{t-1}\\mid\\boldsymbol{x}_t,\\boldsymbol{x}_0)} \\left\[ f_t(\\boldsymbol{x}_{t-1},\\boldsymbol{x}_t) \\right \right] \end{aligned} ====Eq(xt,xt−1∣x0)ft(xt−1,xt)∬q(xt,xt−1∣x0)ft(xt−1,xt)dxt−1dxt∬q(xt∣x0)q(xt−1∣xt,x0)ft(xt−1,xt)dxt−1dxt∫q(xt∣x0)∫q(xt−1∣xt,x0)ft(xt−1,xt)dxt−1dxtEq(xt∣x0)Eq(xt−1∣xt,x0)\[ft(xt−1,xt)]
将 f t f_t ft 代回去,就得到:
E q ( x t , x t − 1 ∣ x 0 ) log p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) = E q ( x t ∣ x 0 ) E q ( x t − 1 ∣ x t , x 0 ) \[ log p θ ( x t − 1 ∣ x t ) q ( x t − 1 ∣ x t , x 0 ) ] \begin{aligned} &\mathbb{E}_{q(\boldsymbol{x}t,\boldsymbol{x}{t-1}\mid\boldsymbol{x}0)} \left \\log \\frac{ p_\\theta(\\boldsymbol{x}_{t-1}\\mid\\boldsymbol{x}_t) }{ q(\\boldsymbol{x}_{t-1}\\mid\\boldsymbol{x}_t,\\boldsymbol{x}_0) } \\right \\ ={}& \mathbb{E}{q(\boldsymbol{x}_t\mid\boldsymbol{x}_0)} \left \\mathbb{E}_{q(\\boldsymbol{x}_{t-1}\\mid\\boldsymbol{x}_t,\\boldsymbol{x}_0)} \\left\[ \\log \\frac{ p_\\theta(\\boldsymbol{x}_{t-1}\\mid\\boldsymbol{x}_t) }{ q(\\boldsymbol{x}_{t-1}\\mid\\boldsymbol{x}_t,\\boldsymbol{x}_0) } \\right \right] \end{aligned} =Eq(xt,xt−1∣x0)logq(xt−1∣xt,x0)pθ(xt−1∣xt)Eq(xt∣x0)Eq(xt−1∣xt,x0)\[logq(xt−1∣xt,x0)pθ(xt−1∣xt)]
步骤 ( v v i ) (vvi) (vvi) 使用了 KL 散度的定义。
Theorem:KL Divergence
KL 散度用于衡量两个概率分布之间的差异。它的取值范围为
D K L ( P ∣ ∣ Q ) ∈ 0 , + ∞ D_{\mathrm{KL}}(P \mid \mid Q)\in0,+\\infty DKL(P∣∣Q)∈0,+∞
并且当且仅当 P P P 与 Q Q Q 几乎处处相同时,KL 散度等于 0 0 0 。
假设定义在同一样本空间上的两个连续概率分布分别为 P ( x ) P(\boldsymbol{x}) P(x) 和 Q ( x ) Q(\boldsymbol{x}) Q(x) ,则有:
D K L ( P ∣ ∣ Q ) = E x ∼ P log P ( x ) Q ( x ) = ∫ X P ( x ) log P ( x ) Q ( x ) d x D_{\mathrm{KL}}(P \mid \mid Q) = \mathbb E_{\boldsymbol{x}\sim P} \left \\log\\frac{P(\\boldsymbol{x})}{Q(\\boldsymbol{x})} \\right = \int_{\mathcal X} P(\boldsymbol{x}) \log\frac{P(\boldsymbol{x})}{Q(\boldsymbol{x})} d\boldsymbol{x} DKL(P∣∣Q)=Ex∼PlogQ(x)P(x)=∫XP(x)logQ(x)P(x)dx
KL 散度一般不具有对称性,即:
D K L ( P ∣ ∣ Q ) ≠ D K L ( Q ∣ ∣ P ) D_{\mathrm{KL}}(P \mid \mid Q) \neq D_{\mathrm{KL}}(Q \mid \mid P) DKL(P∣∣Q)=DKL(Q∣∣P)
因此它不是严格意义上的距离。
注意由于原式中对数比值的分子、分母顺序与 KL 散度定义相反,因此每一项都等于对应 KL 散度的负数,即
E P log Q P = − D K L ( P ∣ ∣ Q ) \mathbb E_P\left\\log\\frac{Q}{P}\\right= -D_{\mathrm{KL}}(P \mid \mid Q) EPlogPQ=−DKL(P∣∣Q)
OK,经过上面的推导,我们最终将对数似然的变分下界 ELBO 拆解成了以下三类项:
log p θ ( x 0 ) ≥ E q ( x 1 ∣ x 0 ) log p θ ( x 0 ∣ x 1 ) ⏟ 重构项 reconstruction term − D K L ( q ( x T ∣ x 0 ) ∥ p ( x T ) ) ⏟ 先验匹配项 prior matching term − ∑ t = 2 T E q ( x t ∣ x 0 ) D K L ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) ⏟ 去噪匹配项 denoising matching term \begin{equation*} \log p_\theta(\boldsymbol{x}0) \ge \underbrace{\mathbb{E}{q(\boldsymbol{x}1 \mid \boldsymbol{x}0)} \left \\log p_\\theta(\\boldsymbol{x}_0 \\mid \\boldsymbol{x}_1) \\right}{\substack{\text{重构项} \\ \text{reconstruction term}}} - \underbrace{D{\mathrm{KL}} \left( q(\boldsymbol{x}T \mid \boldsymbol{x}0) \parallel p(\boldsymbol{x}T) \right)}{\substack{\text{先验匹配项} \\ \text{prior matching term}}} - \underbrace{\sum{t=2}^{T} \mathbb{E}{q(\boldsymbol{x}_t \mid \boldsymbol{x}0)} \left D_{\\mathrm{KL}} \\left( q(\\boldsymbol{x}_{t-1} \\mid \\boldsymbol{x}_t, \\boldsymbol{x}_0) \\parallel p_\\theta(\\boldsymbol{x}_{t-1} \\mid \\boldsymbol{x}_t) \\right) \\right}{\substack{\text{去噪匹配项} \\ \text{denoising matching term}}} \end{equation*} logpθ(x0)≥重构项reconstruction term Eq(x1∣x0)logpθ(x0∣x1)−先验匹配项prior matching term DKL(q(xT∣x0)∥p(xT))−去噪匹配项denoising matching term t=2∑TEq(xt∣x0)DKL(q(xt−1∣xt,x0)∥pθ(xt−1∣xt))
这三项我们一般分别叫做重构项、先验匹配项以及去噪匹配项。
由于深度学习中通常将训练目标写成最小损失函数的形式,因此可以对 ELBO 取负号。最大化 ELBO 等价于最小化负 ELBO:
− log p θ ( x 0 ) ≤ D K L ( q ( x T ∣ x 0 ) ∥ p ( x T ) ) ⏟ L T + ∑ t = 2 T E q ( x t ∣ x 0 ) D K L ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) ⏟ L t − 1 + E q ( x 1 ∣ x 0 ) − log p θ ( x 0 ∣ x 1 ) ⏟ L 0 \begin{equation*} -\log p_\theta(\boldsymbol{x}0) \le \underbrace{D{\mathrm{KL}} \left( q(\boldsymbol{x}T \mid \boldsymbol{x}0) \parallel p(\boldsymbol{x}T) \right)}{\substack{L_T}} + \sum{t=2}^{T} \mathbb{E}{q(\boldsymbol{x}t \mid \boldsymbol{x}0)} \underbrace{ \left D_{\\mathrm{KL}} \\left( q(\\boldsymbol{x}_{t-1} \\mid \\boldsymbol{x}_t, \\boldsymbol{x}_0) \\parallel p_\\theta(\\boldsymbol{x}_{t-1} \\mid \\boldsymbol{x}_t) \\right) \\right}{\substack{L{t-1}}} + \mathbb{E}_{q(\boldsymbol{x}_1 \mid \boldsymbol{x}0)} \underbrace{ \left- \\log p_\\theta(\\boldsymbol{x}_0 \\mid \\boldsymbol{x}_1) \\right}{\substack{L_0}} \end{equation*} −logpθ(x0)≤LT DKL(q(xT∣x0)∥p(xT))+t=2∑TEq(xt∣x0)Lt−1 DKL(q(xt−1∣xt,x0)∥pθ(xt−1∣xt))+Eq(x1∣x0)L0 −logpθ(x0∣x1)
那么这个公式对应的就是 DDPM 论文公式 ( 5 ) (5) (5) :

论文将这三类损失分别记为 L T L_T LT、 L t − 1 L_{t-1} Lt−1 和 L 0 L_0 L0 。
首先来看 L T L_T LT ,我们前面在讲反向去噪过程中有提到过,DDPM 将反向生成过程的初始分布 p ( x T ) p(\boldsymbol{x}_T) p(xT) 定义为标准多元正态分布:
p ( x T ) = N ( x T ; 0 , I ) p(\boldsymbol{x}_T) = \mathcal N(\boldsymbol{x}_T;\boldsymbol 0,\boldsymbol I) p(xT)=N(xT;0,I)
另外,当噪声调度设计合理且 α ˉ T \bar\alpha_T αˉT 足够接近 0 0 0 时,
q ( x T ∣ x 0 ) q(\boldsymbol{x}_T\mid\boldsymbol{x}_0) q(xT∣x0)
也会非常接近标准正态分布,因此 L T L_T LT 通常很小。更重要的是,在原始 DDPM 中,前向过程的噪声系数 β t \beta_t βt 被固定为超参数,所以 L T L_T LT 与需要训练的模型参数 θ \theta θ 无关,是一个常数。因此,在优化模型参数时可以忽略这一项。
接下来来看 L t − 1 L_{t-1} Lt−1 。其中
p θ ( x t − 1 ∣ x t ) p_\theta(\boldsymbol{x}_{t-1}\mid\boldsymbol{x}_t) pθ(xt−1∣xt)
是需要由模型学习的反向转移分布,而
q ( x t − 1 ∣ x t , x 0 ) q(\boldsymbol{x}_{t-1}\mid\boldsymbol{x}_t,\boldsymbol{x}_0) q(xt−1∣xt,x0)
是由已知前向加噪过程确定的后验分布。虽然目前我们还没有推导出它的显式形式,但它在给定 x 0 \boldsymbol{x}_0 x0 后是可以解析计算的。
因此,接下来我们需要先推导
q ( x t − 1 ∣ x t , x 0 ) q(\boldsymbol{x}_{t-1}\mid\boldsymbol{x}_t,\boldsymbol{x}_0) q(xt−1∣xt,x0)
的均值和协方差,再通过最小化两者之间的 KL 散度,使模型分布
p θ ( x t − 1 ∣ x t ) p_\theta(\boldsymbol{x}_{t-1}\mid\boldsymbol{x}_t) pθ(xt−1∣xt)
尽可能逼近该前向后验分布。
这便进入了反向去噪的第二部分,即单步反向去噪公式的推导。
篇幅限制原因,剩余章节内容我们在后续文章中再讲解!
