霹雳吧啦Wz | AIGC | 图像生成篇 | DDPM介绍与公式推导 | 笔记 | (二) 优化目标引入 ELBO/VLB

目录

    • 前言
    • [6. 优化目标 ELBO/VLB](#6. 优化目标 ELBO/VLB)

前言

学习 UP 主 霹雳吧啦WzDDPM介绍与公式推导 视频,了解下 DDPM 论文中相关公式使用以及详细推导过程,记录下个人学习笔记,和大家一起分享交流😄

本篇文章主要记录优化目标 ELBO/VLB 。

videoDDPM介绍与公式推导

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)

尽可能逼近该前向后验分布。

这便进入了反向去噪的第二部分,即单步反向去噪公式的推导。

篇幅限制原因,剩余章节内容我们在后续文章中再讲解!

相关推荐
-XWB-5 小时前
【 LLM】Agent Planning 完全指南:8 种纯 LLM 范式 + 8 种混合规划模式详解(一)
人工智能·aigc·学习方法·ai编程
TheBestRucy6 小时前
RAG知识库问答系统落地:从向量检索到上下文增强的全链路实践
人工智能·python·langchain·aigc·交互
智行合一科技7 小时前
WAIC释放关键信号:合规能力正成为AIGC营销的核心竞争壁垒
aigc
爱听歌的周童鞋9 小时前
霹雳吧啦Wz | AIGC | 图像生成篇 | DDPM介绍与公式推导 | 笔记 | (一) 前向加噪 & 优化目标引入
aigc·diffusion model·ddpm·reverse process·image generate·forward process
longxibo9 小时前
第 15 章 政务/制造业落地案例
人工智能·深度学习·aigc·政务
卡卡罗特AI9 小时前
AI编程入门教程02-LLM发展历程,AI 御四家十年风云:OpenAI 分裂、Anthropic 出走、谷歌掉队、马斯克上桌
aigc·openai·ai编程
Am-Chestnuts10 小时前
AI长回答批量导出PDF与长图:多轮内容整理和免费Markdown备份
人工智能·pdf·aigc
leeyi10 小时前
RAG 流水线设计:Eino 的 Loader → Transformer → Indexer → Retriever(第60篇-E46)
aigc·agent·ai编程
元直数字电路验证10 小时前
深入理解 AI Agent:从模型能力到生产级系统的完整路线图
人工智能·langchain·aigc·agent·智能体