GAN 是一种生成模型,其主要目标是通过对抗方式学习复杂的目标分布 p ( x ) p(x) p(x)。GAN 包含两个核心组成部分:
生成器(Generator, G G G):试图生成与真实数据分布相似的样本。
判别器(Discriminator, D D D):区分生成样本和真实样本。
工作原理:
生成器从简单分布(例如,高斯分布)中采样随机噪声 z z z,并通过神经网络 G ( z ) G(z) G(z) 生成样本。
判别器接收生成样本和真实样本,输出一个概率,表示输入样本来自真实分布的可能性。
两者之间的目标是博弈式的:
生成器的目标是迷惑判别器,使其认为生成样本是真实的;
判别器的目标是尽可能准确地区分真实样本和生成样本。
损失函数:
GAN 的目标是最小化以下损失函数: min G max D E x ∼ p data [ log D ( x ) ] + E z ∼ p z [ log ( 1 − D ( G ( z ) ) ) ] \min_G \max_D \mathbb{E}{x \sim p{\text{data}}} [\log D(x)] + \mathbb{E}_{z \sim p_z} [\log(1 - D(G(z)))] GminDmaxEx∼pdata[logD(x)]+Ez∼pz[log(1−D(G(z)))]
GAN 的损失函数来源于生成对抗博弈的设计思想,目标是让生成器 G G G 和判别器 D D D 进行一个两人零和博弈 ,即 G G G 尝试生成尽可能真实的数据以欺骗 D D D,而 D D D 试图区分真实数据和生成数据。以下是这个损失函数推导的详细步骤:
a. GAN 的目标定义 GAN 的核心思想是让生成器 G G G 和判别器 D D D 博弈。判别器 D D D 的输出是一个概率值 D ( x ) ∈ [ 0 , 1 ] D(x) \in [0, 1] D(x)∈[0,1],表示输入 x x x 是真实数据的可能性。
对于真实数据 x ∼ p data x \sim p_{\text{data}} x∼pdata:
判别器希望输出 D ( x ) = 1 D(x) = 1 D(x)=1(即识别为真实)。
对于生成数据 G ( z ) ∼ p g G(z) \sim p_g G(z)∼pg,其中 z ∼ p z ( z ) z \sim p_z(z) z∼pz(z) 是随机噪声:
判别器希望输出 D ( G ( z ) ) = 0 D(G(z)) = 0 D(G(z))=0(即识别为假的)。
生成器希望生成的 G ( z ) G(z) G(z) 被判别器认为是真实的(即 D ( G ( z ) ) = 1 D(G(z)) = 1 D(G(z))=1)。
因此,GAN 的目标是一个极小极大优化问题: min G max D V ( D , G ) , \min_G \max_D V(D, G), GminDmaxV(D,G), 其中,价值函数 V ( D , G ) V(D, G) V(D,G) 为: V ( D , G ) = E x ∼ p data [ log D ( x ) ] + E z ∼ p z [ log ( 1 − D ( G ( z ) ) ) ] . V(D, G) = \mathbb{E}{x \sim p{\text{data}}} [\log D(x)] + \mathbb{E}_{z \sim p_z} [\log(1 - D(G(z)))]. V(D,G)=Ex∼pdata[logD(x)]+Ez∼pz[log(1−D(G(z)))].
b. 目标函数的含义
判别器的目标:
判别器希望最大化 V ( D , G ) V(D, G) V(D,G),即: max D E x ∼ p data [ log D ( x ) ] + E z ∼ p z [ log ( 1 − D ( G ( z ) ) ) ] . \max_D \mathbb{E}{x \sim p{\text{data}}} [\log D(x)] + \mathbb{E}_{z \sim p_z} [\log(1 - D(G(z)))]. DmaxEx∼pdata[logD(x)]+Ez∼pz[log(1−D(G(z)))].
对真实样本 x x x,最大化 log D ( x ) \log D(x) logD(x),让判别器尽量给出高概率。
对生成样本 G ( z ) G(z) G(z),最大化 log ( 1 − D ( G ( z ) ) ) \log(1 - D(G(z))) log(1−D(G(z))),让判别器尽量给出低概率。
生成器的目标:
生成器希望最小化 V ( D , G ) V(D, G) V(D,G),即: min G E z ∼ p z [ log ( 1 − D ( G ( z ) ) ) ] . \min_G \mathbb{E}_{z \sim p_z} [\log(1 - D(G(z)))]. GminEz∼pz[log(1−D(G(z)))].
生成器希望生成的样本 G ( z ) G(z) G(z) 被判别器认为是真实的,即使 D ( G ( z ) ) D(G(z)) D(G(z)) 接近 1。
c. 判别器的最佳策略
给定生成器 G G G,我们可以先优化判别器 D D D。在固定 G G G 的情况下,判别器的最优解 D ∗ ( x ) D^*(x) D∗(x) 可以通过直接计算得到。
判别器的目标函数: 判别器希望最大化: V ( D , G ) = E x ∼ p data [ log D ( x ) ] + E z ∼ p z [ log ( 1 − D ( G ( z ) ) ) ] . V(D, G) = \mathbb{E}{x \sim p{\text{data}}} [\log D(x)] + \mathbb{E}_{z \sim p_z} [\log(1 - D(G(z)))]. V(D,G)=Ex∼pdata[logD(x)]+Ez∼pz[log(1−D(G(z)))].
假设:
p data ( x ) p_{\text{data}}(x) pdata(x) 是真实数据的分布。
p g ( x ) p_g(x) pg(x) 是生成器生成数据的分布。
则:
x x x 的总分布是 p data ( x ) + p g ( x ) p_{\text{data}}(x) + p_g(x) pdata(x)+pg(x)。
令 D ( x ) D(x) D(x) 为输入 x x x 是真实数据的概率,优化目标为: max D ∫ ( p data ( x ) log D ( x ) + p g ( x ) log ( 1 − D ( x ) ) ) d x . \max_D \int \Big(p_{\text{data}}(x) \log D(x) + p_g(x) \log(1 - D(x)) \Big) dx. Dmax∫(pdata(x)logD(x)+pg(x)log(1−D(x)))dx.
对 D ( x ) D(x) D(x) 求导并令导数为 0,可以得到最优判别器: D ∗ ( x ) = p data ( x ) p data ( x ) + p g ( x ) . D^*(x) = \frac{p_{\text{data}}(x)}{p_{\text{data}}(x) + p_g(x)}. D∗(x)=pdata(x)+pg(x)pdata(x).
d. 生成器的目标
在 D D D 固定的情况下,生成器的目标是最小化 V ( D ∗ , G ) V(D^*, G) V(D∗,G)。将 D ∗ ( x ) D^*(x) D∗(x) 代入后,价值函数变为: V ( D ∗ , G ) = E x ∼ p data [ log D ∗ ( x ) ] + E z ∼ p z [ log ( 1 − D ∗ ( G ( z ) ) ) ] . V(D^*, G) = \mathbb{E}{x \sim p{\text{data}}} [\log D^*(x)] + \mathbb{E}_{z \sim p_z} [\log(1 - D^*(G(z)))]. V(D∗,G)=Ex∼pdata[logD∗(x)]+Ez∼pz[log(1−D∗(G(z)))].
经过推导可以发现,这等价于最小化生成器分布 p g p_g pg 与真实分布 p data p_{\text{data}} pdata 之间的 Jensen-Shannon 散度 (JS 散度)占位符(待更新)。
e. 总结
生成对抗网络的损失函数: min G max D E x ∼ p data [ log D ( x ) ] + E z ∼ p z [ log ( 1 − D ( G ( z ) ) ) ] \min_G \max_D \mathbb{E}{x \sim p{\text{data}}} [\log D(x)] + \mathbb{E}_{z \sim p_z} [\log(1 - D(G(z)))] GminDmaxEx∼pdata[logD(x)]+Ez∼pz[log(1−D(G(z)))] 来源于生成器和判别器的博弈思想:
假设数据的联合分布可以分解为条件分布的乘积:
p ( x ) = p ( x 1 ) p ( x 2 ∣ x 1 ) p ( x 3 ∣ x 1 , x 2 ) ... p(x) = p(x_1)p(x_2|x_1)p(x_3|x_1,x_2)\dots p(x)=p(x1)p(x2∣x1)p(x3∣x1,x2)...
通过定义一系列可逆变换 f 1 , f 2 , ... , f n f_1, f_2, \dots, f_n f1,f2,...,fn,将简单分布(例如高斯分布)逐步变换为复杂分布。
变换的关键是要保持分布的可逆性,且能够通过 Jacobian 矩阵计算变换后的分布的概率密度。
公式 : 如果 z ∼ p z ( z ) z \sim p_z(z) z∼pz(z),经过变换 f θ f_\theta fθ 后,目标分布 x = f θ ( z ) x = f_\theta(z) x=fθ(z),其密度为: p ( x ) = p z ( z ) ∣ det ∂ f θ − 1 ( x ) ∂ x ∣ p(x) = p_z(z) \left| \det \frac{\partial f_\theta^{-1}(x)}{\partial x} \right| p(x)=pz(z) det∂x∂fθ−1(x)
目标函数 : log p ( x ) ≥ E q ϕ ( z ∣ x ) [ log p θ ( x ∣ z ) ] − KL ( q ϕ ( z ∣ x ) ∥ p ( z ) ) \log p(x) \geq \mathbb{E}{q\phi(z|x)}[\log p_\theta(x|z)] - \text{KL}(q_\phi(z|x) \| p(z)) logp(x)≥Eqϕ(z∣x)[logpθ(x∣z)]−KL(qϕ(z∣x)∥p(z)) 其中:
对于许多数据模式,我们可以将我们观察到的数据视为由一个相关的、不可见的潜变量生成或表示出来的,这个潜变量可以用随机变量 z z z表示。表达这一思想的最佳直觉来源于柏拉图的《洞穴寓言》。在这个寓言中,一群人一生都被锁链束缚在洞穴中,他们只能看到投射在他们面前墙上的二维阴影,而这些阴影是由火光前不可见的三维物体所生成的。对这些人而言,他们观察到的一切实际上是由他们永远无法直接感知的更高维度的抽象概念所决定的。
例子:解析 "The cat sits on the mat" 时,模型知道主语、动词和宾语之间的关系。
4. 强先验的实现与挑战
实现方式
硬编码规则
将先验知识直接嵌入模型中(如卷积操作、正则化项)。
训练数据增强
利用先验设计特定的训练样本生成方法。
损失函数约束
在目标函数中加入与先验相关的约束项。
挑战
先验假设的准确性
如果先验知识与真实分布不符,可能引入偏差。
灵活性降低
强先验会限制模型的适用范围。
先验的选择
不同任务需要不同的先验,选择和验证先验的合理性可能很复杂。
5. 视觉化示例
强先验与弱先验可以通过一个二维点分布的分类问题来理解。
弱先验:假设所有点均匀分布,不考虑类别之间的边界。
强先验:假设点分布是高斯分布,并且类别之间具有明确的分界线。
图中展示了弱先验 与强先验的对比:
左图(弱先验):
假设数据分布没有明确规律,分类器不强加任何领域知识。
数据点分布比较松散,没有明显的分类界限。
右图(强先验):
假设数据来自高斯分布,并通过高斯混合模型(GMM)拟合数据。
红色椭圆表示每一类数据的高斯分布边界(基于协方差矩阵计算),明显地反映了数据的结构性假设。
证据下界(Evidence Lower Bound)
从数学上讲,我们可以将潜变量 z z z和我们观察到的数据建模为一个联合分布 p ( x , z ) p(x, z) p(x,z)。回想一下生成建模的一种方法,即 "基于似然" 的方法,其目标是学习一个模型以最大化所有观测数据 x x x的似然 p ( x ) p(x) p(x)。我们可以通过两种方式操作这一联合分布,从而获得纯粹关于我们观测数据的似然 p ( x ) p(x) p(x)。
一种方法是显式地对潜变量 z z z进行边际化:
p ( x ) = ∫ p ( x , z ) d z (1) p(x) = \int p(x, z) dz \tag{1} p(x)=∫p(x,z)dz(1)
或者,我们也可以利用概率的链式法则:
p ( x ) = p ( x , z ) p ( z ∣ x ) (2) p(x) = \frac{p(x, z)}{p(z|x)} \tag{2} p(x)=p(z∣x)p(x,z)(2)
直接计算并最大化似然 p ( x ) p(x) p(x)是困难的,因为这要么涉及在公式 (1) 中对所有潜变量 z z z进行积分,对于复杂模型而言这不可行,要么需要在公式 (2) 中获取真实的潜变量编码器 p ( z ∣ x ) p(z|x) p(z∣x)。然而,通过使用这两个公式,我们可以推导出一个术语,称为"证据下界"(Evidence Lower Bound,ELBO)。顾名思义,它是证据的一个下界。
E q ϕ ( z ∣ x ) [ log p ( x , z ) q ϕ ( z ∣ x ) ] (3) \mathbb{E}{q{\phi}(z|x)} \left[ \log \frac{p(x, z)}{q_{\phi}(z|x)} \right] \tag{3} Eqϕ(z∣x)[logqϕ(z∣x)p(x,z)](3)
为了明确地表达与证据的关系,我们可以从数学上写为:
log p ( x ) ≥ E q ϕ ( z ∣ x ) [ log p ( x , z ) q ϕ ( z ∣ x ) ] (4) \log p(x) \geq \mathbb{E}{q{\phi}(z|x)} \left[ \log \frac{p(x, z)}{q_{\phi}(z|x)} \right] \tag{4} logp(x)≥Eqϕ(z∣x)[logqϕ(z∣x)p(x,z)](4)
这里, q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(z∣x)是一个具有参数 ϕ \phi ϕ的灵活的近似变分分布,我们试图对其进行优化。直观上,可以将其视为一个可参数化的模型,用于学习估计给定观测 x x x时潜变量 z z z的真实分布;换句话说,它旨在近似真实的后验分布 p ( z ∣ x ) p(z|x) p(z∣x)。
潜变量(Latent Variables)是模型中未观测到但影响观测数据的变量。通过引入潜变量 z z z,我们可以使用联合分布 p ( x , z ) p(x, z) p(x,z) 来对观测数据 x x x 和潜变量建模。潜变量模型的核心目标是从观测数据中学习这种联合分布。
生成建模与似然
生成建模(Generative Modeling)是一种通过学习数据分布 p ( x ) p(x) p(x) 来生成类似真实样本的技术。对于潜变量模型,我们可以使用以下公式表示数据的边际似然: p ( x ) = ∫ p ( x , z ) d z , p(x) = \int p(x, z) dz, p(x)=∫p(x,z)dz, 即通过对潜变量 ( z ) 进行边际化,得到观测数据的边际分布。
b. 证据与下界
什么是证据?
证据(Evidence)是指观测数据的对数似然 log p ( x ) \log p(x) logp(x)。在生成建模中,证据反映了模型对观测数据的解释能力。因此,最大化 log p ( x ) \log p(x) logp(x) 是优化生成模型的核心目标。
为什么叫"下界"?
直接计算 log p ( x ) \log p(x) logp(x) 很困难,因为:
公式 p ( x ) = ∫ p ( x , z ) d z p(x) = \int p(x, z) dz p(x)=∫p(x,z)dz 中的积分通常无法解析求解。
真实的后验分布 p ( z ∣ x ) p(z|x) p(z∣x) 可能未知。
为了解决这个问题,引入了证据下界(ELBO, Evidence Lower Bound)。ELBO 是 log p ( x ) \log p(x) logp(x) 的下界,也就是说: log p ( x ) ≥ ELBO . \log p(x) \geq \text{ELBO}. logp(x)≥ELBO.
我们通过最大化 ELBO 来间接优化 log p ( x ) \log p(x) logp(x)。当 ELBO 被优化到最优时,它等价于 log p ( x ) \log p(x) logp(x)。
c. ELBO 的推导
公式 (3): ELBO 定义 ELBO 的定义是: ELBO = E q ϕ ( z ∣ x ) [ log p ( x , z ) q ϕ ( z ∣ x ) ] . \text{ELBO} = \mathbb{E}{q{\phi}(z|x)} \left[ \log \frac{p(x, z)}{q_{\phi}(z|x)} \right]. ELBO=Eqϕ(z∣x)[logqϕ(z∣x)p(x,z)].
将联合分布 p ( x , z ) p(x, z) p(x,z) 写为 p ( z ) p ( x ∣ z ) p(z)p(x|z) p(z)p(x∣z),并分解对数项: ELBO = E q ϕ ( z ∣ x ) [ log p ( x ∣ z ) ] − KL ( q ϕ ( z ∣ x ) ∥ p ( z ) ) . \text{ELBO} = \mathbb{E}{q{\phi}(z|x)} [\log p(x|z)] - \text{KL}(q_{\phi}(z|x) \| p(z)). ELBO=Eqϕ(z∣x)[logp(x∣z)]−KL(qϕ(z∣x)∥p(z)).
其中:
第一项 E q ϕ ( z ∣ x ) [ log p ( x ∣ z ) ] \mathbb{E}{q{\phi}(z|x)} [\log p(x|z)] Eqϕ(z∣x)[logp(x∣z)] 是重构误差,衡量模型在给定 z z z 时重建 x x x 的能力。
第二项 KL ( q ϕ ( z ∣ x ) ∥ p ( z ) ) \text{KL}(q_{\phi}(z|x) \| p(z)) KL(qϕ(z∣x)∥p(z)) 是 KL 散度(KL散度是什么?),用于约束 q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(z∣x) 接近先验分布 p ( z ) p(z) p(z)。
公式 (4): ELBO 与证据的关系 我们可以从以下公式开始: log p ( x ) = E q ϕ ( z ∣ x ) [ log p ( x , z ) q ϕ ( z ∣ x ) ] + KL ( q ϕ ( z ∣ x ) ∥ p ( z ∣ x ) ) . \log p(x) = \mathbb{E}{q{\phi}(z|x)} \left[ \log \frac{p(x, z)}{q_{\phi}(z|x)} \right] + \text{KL}(q_{\phi}(z|x) \| p(z|x)). logp(x)=Eqϕ(z∣x)[logqϕ(z∣x)p(x,z)]+KL(qϕ(z∣x)∥p(z∣x)).
注意:
第二项 KL ( q ϕ ( z ∣ x ) ∥ p ( z ∣ x ) ) ≥ 0 \text{KL}(q_{\phi}(z|x) \| p(z|x)) \geq 0 KL(qϕ(z∣x)∥p(z∣x))≥0 总是非负的(KL 散度的性质)。
因此: log p ( x ) ≥ E q ϕ ( z ∣ x ) [ log p ( x , z ) q ϕ ( z ∣ x ) ] = ELBO . \log p(x) \geq \mathbb{E}{q{\phi}(z|x)} \left[ \log \frac{p(x, z)}{q_{\phi}(z|x)} \right] = \text{ELBO}. logp(x)≥Eqϕ(z∣x)[logqϕ(z∣x)p(x,z)]=ELBO.
这说明 ELBO 是 log p ( x ) \log p(x) logp(x) 的一个下界。
d. 为什么最大化 ELBO 有用?
最大化 ELBO 意味着同时优化:
重构能力 ( E q ϕ ( z ∣ x ) [ log p ( x ∣ z ) ] \mathbb{E}{q{\phi}(z|x)} [\log p(x|z)] Eqϕ(z∣x)[logp(x∣z)]):使得生成模型能够更好地从潜变量 z z z 重建数据 x x x。
正则化 ( KL ( q ϕ ( z ∣ x ) ∥ p ( z ) ) \text{KL}(q_{\phi}(z|x) \| p(z)) KL(qϕ(z∣x)∥p(z))):确保潜变量分布 q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(z∣x) 合理且接近先验 p ( z ) p(z) p(z)。
当 ELBO 达到最大时,KL 散度 KL ( q ϕ ( z ∣ x ) ∥ p ( z ∣ x ) ) = 0 \text{KL}(q_{\phi}(z|x) \| p(z|x)) = 0 KL(qϕ(z∣x)∥p(z∣x))=0,即近似分布 q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(z∣x) 完全等于真实后验 p ( z ∣ x ) p(z|x) p(z∣x),这意味着模型得到了最优解。
e. ELBO 的实际应用:变分自编码器(VAE)
在 VAE 中:
q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(z∣x) 是编码器,用于估计潜变量的后验分布。
p ( x ∣ z ) p(x|z) p(x∣z) 是解码器,用于从潜变量生成数据。
通过最大化 ELBO,VAE 可以同时学习编码器和解码器,从而实现生成建模。
举例:
假设输入数据是手写数字图像(MNIST 数据集)。
编码器 q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(z∣x) 将图片编码为潜变量 z z z。
解码器 p ( x ∣ z ) p(x|z) p(x∣z) 将 z z z 解码回与原始图片相似的重建图像。
优化过程最大化: ELBO = E q ϕ ( z ∣ x ) [ log p ( x ∣ z ) ] − KL ( q ϕ ( z ∣ x ) ∥ p ( z ) ) . \text{ELBO} = \mathbb{E}{q{\phi}(z|x)} [\log p(x|z)] - \text{KL}(q_{\phi}(z|x) \| p(z)). ELBO=Eqϕ(z∣x)[logp(x∣z)]−KL(qϕ(z∣x)∥p(z)).
f. 总结
证据 :观测数据的对数似然 log p ( x ) \log p(x) logp(x),反映模型解释数据的能力。
证据下界(ELBO) :通过引入近似后验分布 q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(z∣x),为 log p ( x ) \log p(x) logp(x) 提供了一个下界。
最大化 ELBO 的意义 :在无法直接优化 log p ( x ) \log p(x) logp(x) 的情况下,通过优化 ELBO 可以间接学习生成模型。
类比解释: 假设我们需要找到一个高山的最高点(即 log p ( x ) \log p(x) logp(x) 的最大值),但我们只能看到部分地形。ELBO 就像一个逐步改进的估计工具,告诉我们山的高度下限。通过不断优化 ELBO,我们可以越来越接近山顶的真实高度。这种方法在实际生成模型中(例如 VAE)非常重要,因为直接计算 log p ( x ) \log p(x) logp(x) 往往不可行,而最大化 ELBO 提供了一条切实可行的路径。
首先,让我们利用公式 1 来推导 ELBO:
log p ( x ) = log ∫ p ( x , z ) d z ( Apply Equation 1 ) (5) = log ∫ p ( x , z ) q ϕ ( z ∣ x ) q ϕ ( z ∣ x ) d z ( Multiply by 1 = q ϕ ( z ∣ x ) q ϕ ( z ∣ x ) ) (6) = log E q ϕ ( z ∣ x ) [ p ( x , z ) q ϕ ( z ∣ x ) ] ( Definition of Expectation ) (7) ≥ E q ϕ ( z ∣ x ) [ log p ( x , z ) q ϕ ( z ∣ x ) ] ( Apply Jensen's Inequality ) (8) \begin{aligned} \log p(x) &= \log \int p(x, z) dz &\quad (\text{Apply Equation 1}) &\text{(5)} \\ &= \log \int \frac{p(x, z) q_{\phi}(z|x)}{q_{\phi}(z|x)} dz &\quad (\text{Multiply by 1 = } \frac{q_{\phi}(z|x)}{q_{\phi}(z|x)}) &\text{(6)} \\ &= \log \mathbb{E}{q{\phi}(z|x)} \left[ \frac{p(x, z)}{q_{\phi}(z|x)} \right] &\quad (\text{Definition of Expectation}) &\text{(7)} \\ &\geq \mathbb{E}{q{\phi}(z|x)} \left[ \log \frac{p(x, z)}{q_{\phi}(z|x)} \right] &\quad (\text{Apply Jensen's Inequality})&\text{(8)} \end{aligned} logp(x)=log∫p(x,z)dz=log∫qϕ(z∣x)p(x,z)qϕ(z∣x)dz=logEqϕ(z∣x)[qϕ(z∣x)p(x,z)]≥Eqϕ(z∣x)[logqϕ(z∣x)p(x,z)](Apply Equation 1)(Multiply by 1 = qϕ(z∣x)qϕ(z∣x))(Definition of Expectation)(Apply Jensen's Inequality)(5)(6)(7)(8)
如果 f f f 是一个凸函数,那么: f ( E [ X ] ) ≤ E [ f ( X ) ] , f(\mathbb{E}[X]) \leq \mathbb{E}[f(X)], f(E[X])≤E[f(X)],
其中 X X X 是一个随机变量, E [ X ] \mathbb{E}[X] E[X] 表示 X X X 的期望值。 如果 f f f 是一个凹函数,那么: f ( E [ X ] ) ≥ E [ f ( X ) ] , f(\mathbb{E}[X]) \geq \mathbb{E}[f(X)], f(E[X])≥E[f(X)],
其中 X X X 是一个随机变量, E [ X ] \mathbb{E}[X] E[X] 表示 X X X 的期望值。
凸函数的定义 :如果函数 f ( x ) f(x) f(x) 满足: f ( λ x 1 + ( 1 − λ ) x 2 ) ≤ λ f ( x 1 ) + ( 1 − λ ) f ( x 2 ) , f(\lambda x_1 + (1 - \lambda)x_2) \leq \lambda f(x_1) + (1 - \lambda)f(x_2), f(λx1+(1−λ)x2)≤λf(x1)+(1−λ)f(x2), 对任意 λ ∈ [ 0 , 1 ] \lambda \in [0, 1] λ∈[0,1] 和 x 1 , x 2 x_1, x_2 x1,x2 成立,则 f ( x ) f(x) f(x) 是凸函数。直观上,凸函数的图形"向上弯曲"。(但是有时候"向上弯曲"会被形容成凹函数,这里一定要小心谨慎!!!)因为中文和英文里关于凹凸函数的定义是相反的。其实中国和许多国家的关于凹凸函数的定义都是相反的,所以一定要弄清楚前提,不要只局限于凹凸两个字!!!
在本例子中 f ( x ) = log x f(x) = \log x f(x)=logx算是本例子介绍的凹函数。
在 ELBO 推导中如何应用 Jensen 不等式?
在公式: log E q ϕ ( z ∣ x ) [ p ( x , z ) q ϕ ( z ∣ x ) ] ≥ E q ϕ ( z ∣ x ) [ log p ( x , z ) q ϕ ( z ∣ x ) ] , \log \mathbb{E}{q{\phi}(z|x)} \left[ \frac{p(x, z)}{q_{\phi}(z|x)} \right] \geq \mathbb{E}{q{\phi}(z|x)} \left[ \log \frac{p(x, z)}{q_{\phi}(z|x)} \right], logEqϕ(z∣x)[qϕ(z∣x)p(x,z)]≥Eqϕ(z∣x)[logqϕ(z∣x)p(x,z)], 中使用了 Jensen 不等式。以下是详细解释:
1. 确定函数 f f f
函数是 f ( x ) = log x f(x) = \log x f(x)=logx。
log x \log x logx 是一个凸函数(可通过计算二阶导数验证: f ′ ′ ( x ) = − 1 x 2 f''(x) = -\frac{1}{x^2} f′′(x)=−x21, 对 x > 0 x > 0 x>0,始终为负,因此 log x \log x logx 是严格凸函数)。
2. 应用期望
假设随机变量 X = p ( x , z ) q ϕ ( z ∣ x ) X = \frac{p(x, z)}{q_{\phi}(z|x)} X=qϕ(z∣x)p(x,z),那么:
E [ X ] = E q ϕ ( z ∣ x ) [ p ( x , z ) q ϕ ( z ∣ x ) ] \mathbb{E}[X] = \mathbb{E}{q{\phi}(z|x)} \left[ \frac{p(x, z)}{q_{\phi}(z|x)} \right] E[X]=Eqϕ(z∣x)[qϕ(z∣x)p(x,z)],表示对 q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(z∣x) 的期望值。
根据 Jensen 不等式,得: log E [ X ] = log E q ϕ ( z ∣ x ) [ p ( x , z ) q ϕ ( z ∣ x ) ] ≥ E q ϕ ( z ∣ x ) [ log X ] = E q ϕ ( z ∣ x ) [ log p ( x , z ) q ϕ ( z ∣ x ) ] . \log \mathbb{E}[X] = \log \mathbb{E}{q{\phi}(z|x)} \left[ \frac{p(x, z)}{q_{\phi}(z|x)} \right] \geq \mathbb{E}{q{\phi}(z|x)} [\log X] = \mathbb{E}{q{\phi}(z|x)} \left[ \log \frac{p(x, z)}{q_{\phi}(z|x)} \right]. logE[X]=logEqϕ(z∣x)[qϕ(z∣x)p(x,z)]≥Eqϕ(z∣x)[logX]=Eqϕ(z∣x)[logqϕ(z∣x)p(x,z)].
从积分到期望 : 利用 q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(z∣x) 将联合分布 p ( x , z ) p(x, z) p(x,z) 转换为分式: log p ( x ) = log ∫ p ( x , z ) d z = log ∫ p ( x , z ) q ϕ ( z ∣ x ) q ϕ ( z ∣ x ) d z . \log p(x) = \log \int p(x, z) dz = \log \int \frac{p(x, z)}{q_{\phi}(z|x)} q_{\phi}(z|x) dz. logp(x)=log∫p(x,z)dz=log∫qϕ(z∣x)p(x,z)qϕ(z∣x)dz.
定义期望 : 根据期望的定义: log p ( x ) = log E q ϕ ( z ∣ x ) [ p ( x , z ) q ϕ ( z ∣ x ) ] . \log p(x) = \log \mathbb{E}{q{\phi}(z|x)} \left[ \frac{p(x, z)}{q_{\phi}(z|x)} \right]. logp(x)=logEqϕ(z∣x)[qϕ(z∣x)p(x,z)].
应用 Jensen 不等式 : 由于 log \log log 是凸函数,应用 Jensen 不等式得: log E q ϕ ( z ∣ x ) [ p ( x , z ) q ϕ ( z ∣ x ) ] ≥ E q ϕ ( z ∣ x ) [ log p ( x , z ) q ϕ ( z ∣ x ) ] . \log \mathbb{E}{q{\phi}(z|x)} \left[ \frac{p(x, z)}{q_{\phi}(z|x)} \right] \geq \mathbb{E}{q{\phi}(z|x)} \left[ \log \frac{p(x, z)}{q_{\phi}(z|x)} \right]. logEqϕ(z∣x)[qϕ(z∣x)p(x,z)]≥Eqϕ(z∣x)[logqϕ(z∣x)p(x,z)].
得出 ELBO : 期望的右边即为 ELBO,是 log p ( x ) \log p(x) logp(x) 的下界。
为了更好地理解证据与ELBO之间的关系,让我们使用公式 (2) 进行另一种推导:
log p ( x ) = log p ( x ) ∫ q ϕ ( z ∣ x ) d z ( Multiply by 1 = ∫ q ϕ ( z ∣ x ) d z ) (9) = ∫ q ϕ ( z ∣ x ) ( log p ( x ) ) d z ( Bring evidence into integral ) (10) = E q ϕ ( z ∣ x ) [ log p ( x ) ] ( Definition of Expectation ) (11) = E q ϕ ( z ∣ x ) [ log p ( x , z ) p ( z ∣ x ) ] ( Apply Equation 2 ) (12) = E q ϕ ( z ∣ x ) [ log p ( x , z ) q ϕ ( z ∣ x ) p ( z ∣ x ) q ϕ ( z ∣ x ) ] ( Multiply by 1 = q ϕ ( z ∣ x ) q ϕ ( z ∣ x ) ) (13) = E q ϕ ( z ∣ x ) [ log p ( x , z ) q ϕ ( z ∣ x ) ] + E q ϕ ( z ∣ x ) [ log q ϕ ( z ∣ x ) p ( z ∣ x ) ] ( Split the Expectation ) (14) = E q ϕ ( z ∣ x ) [ log p ( x , z ) q ϕ ( z ∣ x ) ] + D K L ( q ϕ ( z ∣ x ) ∥ p ( z ∣ x ) ) ( Definition of KL Divergence ) (15) ≥ E q ϕ ( z ∣ x ) [ log p ( x , z ) q ϕ ( z ∣ x ) ] ( KL Divergence always ≥ 0 ) (16) \begin{aligned} \log p(x) &= \log p(x) \int q_{\phi}(z|x) dz & \quad (\text{Multiply by 1 = } \int q_{\phi}(z|x) dz) &\text{(9)} \\ &= \int q_{\phi}(z|x) (\log p(x)) dz & \quad (\text{Bring evidence into integral}) &\text{(10)} \\ &= \mathbb{E}{q{\phi}(z|x)} [\log p(x)] & \quad (\text{Definition of Expectation}) &\text{(11)} \\ &= \mathbb{E}{q{\phi}(z|x)} \left[ \log \frac{p(x, z)}{p(z|x)} \right] & \quad (\text{Apply Equation 2}) &\text{(12)} \\ &= \mathbb{E}{q{\phi}(z|x)} \left[ \log \frac{p(x, z) q_{\phi}(z|x)}{p(z|x) q_{\phi}(z|x)} \right] & \quad (\text{Multiply by 1 = } \frac{q_{\phi}(z|x)}{q_{\phi}(z|x)}) &\text{(13)} \\ &= \mathbb{E}{q{\phi}(z|x)} \left[ \log \frac{p(x, z)}{q_{\phi}(z|x)} \right] + \mathbb{E}{q{\phi}(z|x)} \left[ \log \frac{q_{\phi}(z|x)}{p(z|x)} \right] & \quad (\text{Split the Expectation}) &\text{(14)} \\ &= \mathbb{E}{q{\phi}(z|x)} \left[ \log \frac{p(x, z)}{q_{\phi}(z|x)} \right] + D_{KL}(q_{\phi}(z|x) \| p(z|x)) & \quad (\text{Definition of KL Divergence}) &\text{(15)} \\ &\geq \mathbb{E}{q{\phi}(z|x)} \left[ \log \frac{p(x, z)}{q_{\phi}(z|x)} \right] & \quad (\text{KL Divergence always } \geq 0) &\text{(16)} \end{aligned} logp(x)=logp(x)∫qϕ(z∣x)dz=∫qϕ(z∣x)(logp(x))dz=Eqϕ(z∣x)[logp(x)]=Eqϕ(z∣x)[logp(z∣x)p(x,z)]=Eqϕ(z∣x)[logp(z∣x)qϕ(z∣x)p(x,z)qϕ(z∣x)]=Eqϕ(z∣x)[logqϕ(z∣x)p(x,z)]+Eqϕ(z∣x)[logp(z∣x)qϕ(z∣x)]=Eqϕ(z∣x)[logqϕ(z∣x)p(x,z)]+DKL(qϕ(z∣x)∥p(z∣x))≥Eqϕ(z∣x)[logqϕ(z∣x)p(x,z)](Multiply by 1 = ∫qϕ(z∣x)dz)(Bring evidence into integral)(Definition of Expectation)(Apply Equation 2)(Multiply by 1 = qϕ(z∣x)qϕ(z∣x))(Split the Expectation)(Definition of KL Divergence)(KL Divergence always ≥0)(9)(10)(11)(12)(13)(14)(15)(16)
从这一推导中,我们可以清楚地从公式 (15) 看到,证据(evidence)等于ELBO加上近似后验 q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(z∣x)与真实后验 p ( z ∣ x ) p(z|x) p(z∣x)之间的KL散度。事实上,正是这一KL散度项在第一次推导中的公式 (8) 被Jensen不等式神奇地移除了。理解这一项是理解ELBO与证据之间关系的关键,也是理解为什么优化ELBO是一个合适的目标的关键。
其次,我们探讨为什么我们要最大化ELBO。在引入了我们希望建模的潜变量 z z z后,我们的目标是学习描述观测数据的潜在结构。换句话说,我们希望优化变分后验 q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(z∣x)的参数,使其精确匹配真实的后验分布 p ( z ∣ x ) p(z|x) p(z∣x),这可以通过最小化它们的KL散度(理想情况下为零)来实现。
遗憾的是,直接最小化这一KL散度项是不切实际的,因为我们无法获得真实的 p ( z ∣ x ) p(z|x) p(z∣x)分布。然而,注意公式 (15) 左侧的数据似然(因此证据项 log p ( x ) \log p(x) logp(x))对于 ϕ \phi ϕ来说始终是一个常数,因为它是通过从联合分布 p ( x , z ) p(x, z) p(x,z)中边际化所有潜变量 z z z计算得出的,与 ϕ \phi ϕ无关。
生成建模的目标 我们希望建模观测数据 x x x 的真实分布 p ( x ) p(x) p(x)。在引入潜变量 z z z 后,我们将数据分布表示为边际分布: p ( x ) = ∫ p ( x , z ) d z , p(x) = \int p(x, z) dz, p(x)=∫p(x,z)dz,其中 p ( x , z ) p(x, z) p(x,z) 是联合分布。潜变量 z z z 捕捉了数据的潜在结构。
最大化数据似然 在生成建模中,目标是最大化观测数据的对数似然: log p ( x ) . \log p(x). logp(x). 直接最大化这一项通常不可行,因为:
边际化公式 p ( x ) = ∫ p ( x , z ) d z p(x) = \int p(x, z) dz p(x)=∫p(x,z)dz 对复杂模型难以解析计算。
后验分布 p ( z ∣ x ) p(z|x) p(z∣x) 可能未知,难以显式计算。
2. 公式推导详解
目标公式:
log p ( x ) = ELBO + D KL ( q ϕ ( z ∣ x ) ∥ p ( z ∣ x ) ) , \log p(x) = \text{ELBO} + D_{\text{KL}}(q_\phi(z|x) \| p(z|x)), logp(x)=ELBO+DKL(qϕ(z∣x)∥p(z∣x)),
其中:
ELBO = E q ϕ ( z ∣ x ) [ log p ( x , z ) q ϕ ( z ∣ x ) ] \text{ELBO} = \mathbb{E}{q\phi(z|x)} \left[ \log \frac{p(x, z)}{q_\phi(z|x)} \right] ELBO=Eqϕ(z∣x)[logqϕ(z∣x)p(x,z)]
D KL ( q ϕ ( z ∣ x ) ∥ p ( z ∣ x ) ) = E q ϕ ( z ∣ x ) [ log q ϕ ( z ∣ x ) p ( z ∣ x ) ] D_{\text{KL}}(q_\phi(z|x) \| p(z|x)) = \mathbb{E}{q\phi(z|x)} \left[ \log \frac{q_\phi(z|x)}{p(z|x)} \right] DKL(qϕ(z∣x)∥p(z∣x))=Eqϕ(z∣x)[logp(z∣x)qϕ(z∣x)]
从 log p ( x ) \log p(x) logp(x) 出发
引入辅助分布 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(z∣x)
q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(z∣x) 是近似的后验分布,用于替代难以计算的真实后验 p ( z ∣ x ) p(z|x) p(z∣x)。我们通过以下方式引入 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(z∣x):
log p ( x ) = log p ( x ) ∫ q ϕ ( z ∣ x ) d z , \log p(x) = \log p(x) \int q_\phi(z|x) dz, logp(x)=logp(x)∫qϕ(z∣x)dz, 其中 ∫ q ϕ ( z ∣ x ) d z = 1 \int q_\phi(z|x) dz = 1 ∫qϕ(z∣x)dz=1,即 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(z∣x) 是一个概率分布。
将 log p ( x ) \log p(x) logp(x) 移入积分
使用积分的性质,将 log p ( x ) \log p(x) logp(x) 移入积分: log p ( x ) = ∫ q ϕ ( z ∣ x ) log p ( x ) d z . \log p(x) = \int q_\phi(z|x) \log p(x) dz. logp(x)=∫qϕ(z∣x)logp(x)dz.
引入联合分布 p ( x , z ) p(x, z) p(x,z)
根据公式 p ( x , z ) = p ( z ∣ x ) p ( x ) p(x, z) = p(z|x)p(x) p(x,z)=p(z∣x)p(x),可得: log p ( x ) = ∫ q ϕ ( z ∣ x ) log p ( x , z ) p ( z ∣ x ) d z . \log p(x) = \int q_\phi(z|x) \log \frac{p(x, z)}{p(z|x)} dz. logp(x)=∫qϕ(z∣x)logp(z∣x)p(x,z)dz.
重新分解联合分布
乘以 q ϕ ( z ∣ x ) q ϕ ( z ∣ x ) = 1 \frac{q_\phi(z|x)}{q_\phi(z|x)} = 1 qϕ(z∣x)qϕ(z∣x)=1,不改变公式,但引入辅助项: log p ( x ) = ∫ q ϕ ( z ∣ x ) log p ( x , z ) q ϕ ( z ∣ x ) p ( z ∣ x ) q ϕ ( z ∣ x ) d z . \log p(x) = \int q_\phi(z|x) \log \frac{p(x, z) q_\phi(z|x)}{p(z|x) q_\phi(z|x)} dz. logp(x)=∫qϕ(z∣x)logp(z∣x)qϕ(z∣x)p(x,z)qϕ(z∣x)dz.
拆分对数项
使用对数的加法规则 log a b = log a − log b \log \frac{a}{b} = \log a - \log b logba=loga−logb,将对数项拆分为两部分: log p ( x ) = ∫ q ϕ ( z ∣ x ) log p ( x , z ) q ϕ ( z ∣ x ) d z + ∫ q ϕ ( z ∣ x ) log q ϕ ( z ∣ x ) p ( z ∣ x ) d z . \log p(x) = \int q_\phi(z|x) \log \frac{p(x, z)}{q_\phi(z|x)} dz + \int q_\phi(z|x) \log \frac{q_\phi(z|x)}{p(z|x)} dz. logp(x)=∫qϕ(z∣x)logqϕ(z∣x)p(x,z)dz+∫qϕ(z∣x)logp(z∣x)qϕ(z∣x)dz.
引入期望与 KL 散度
第一项为期望: E q ϕ ( z ∣ x ) [ log p ( x , z ) q ϕ ( z ∣ x ) ] = ELBO . \mathbb{E}{q\phi(z|x)} \left[ \log \frac{p(x, z)}{q_\phi(z|x)} \right] = \text{ELBO}. Eqϕ(z∣x)[logqϕ(z∣x)p(x,z)]=ELBO.
第二项是 KL 散度的定义: E q ϕ ( z ∣ x ) [ log q ϕ ( z ∣ x ) p ( z ∣ x ) ] = D KL ( q ϕ ( z ∣ x ) ∥ p ( z ∣ x ) ) . \mathbb{E}{q\phi(z|x)} \left[ \log \frac{q_\phi(z|x)}{p(z|x)} \right] = D_{\text{KL}}(q_\phi(z|x) \| p(z|x)). Eqϕ(z∣x)[logp(z∣x)qϕ(z∣x)]=DKL(qϕ(z∣x)∥p(z∣x)).
解释每一步的数学意义
引入 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(z∣x)
q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(z∣x) 是一个近似分布,用于替代真实的后验分布 p ( z ∣ x ) p(z|x) p(z∣x)。真实后验通常无法直接计算,而 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(z∣x) 是参数化的,便于优化。
分解联合分布
将 p ( x , z ) p(x, z) p(x,z) 分解为 p ( z ∣ x ) p ( x ) p(z|x)p(x) p(z∣x)p(x),引入 p ( z ∣ x ) p(z|x) p(z∣x) 是为了更直观地理解 log p ( x ) \log p(x) logp(x) 的贡献。
引入辅助项 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(z∣x)
使用 q ϕ ( z ∣ x ) q ϕ ( z ∣ x ) = 1 \frac{q_\phi(z|x)}{q_\phi(z|x)} = 1 qϕ(z∣x)qϕ(z∣x)=1 引入辅助分布,使得后续推导中可以引入 ELBO 和 KL 散度。
拆分对数项
log p ( x , z ) q ϕ ( z ∣ x ) \log \frac{p(x, z)}{q_\phi(z|x)} logqϕ(z∣x)p(x,z) 描述了近似分布 q ϕ q_\phi qϕ 与联合分布的关系,而 log q ϕ ( z ∣ x ) p ( z ∣ x ) \log \frac{q_\phi(z|x)}{p(z|x)} logp(z∣x)qϕ(z∣x) 则描述了近似后验和真实后验的差异。
分解为 ELBO 和 KL 散度
ELBO:衡量生成模型的质量,优化目标是最大化 ELBO。
KL 散度 :描述近似后验 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(z∣x) 与真实后验 p ( z ∣ x ) p(z|x) p(z∣x) 的差异。
3. ELBO 与证据的关系
ELBO 是证据的下界
KL 散度 D KL ( q ϕ ( z ∣ x ) ∥ p ( z ∣ x ) ) D_{\text{KL}}(q_\phi(z|x) \| p(z|x)) DKL(qϕ(z∣x)∥p(z∣x)) 是非负的。
因此: log p ( x ) ≥ ELBO . \log p(x) \geq \text{ELBO}. logp(x)≥ELBO.
当 KL 散度为零时,ELBO 等于 log p ( x ) \log p(x) logp(x),即近似后验 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(z∣x) 完全等于真实后验 p ( z ∣ x ) p(z|x) p(z∣x)。
为何优化 ELBO 是合理的?
最大化 ELBO 可以间接最小化 KL 散度。
因为 log p ( x ) \log p(x) logp(x) 是常数,对参数 ϕ \phi ϕ 来说: 最大化 ELBO ⇔ 最小化 D KL ( q ϕ ( z ∣ x ) ∥ p ( z ∣ x ) ) . \text{最大化 ELBO } \Leftrightarrow \text{最小化 } D_{\text{KL}}(q_\phi(z|x) \| p(z|x)). 最大化 ELBO ⇔最小化 DKL(qϕ(z∣x)∥p(z∣x)).
4. 直观理解 ELBO 的作用
优化潜变量后验分布 通过最大化 ELBO,我们逼近真实的后验分布 p ( z ∣ x ) p(z|x) p(z∣x)。这是生成建模中的核心步骤,因为潜变量 z z z 捕捉了数据的隐藏结构。
重构误差与正则化的平衡 分解 ELBO 的公式为: ELBO = E q ϕ ( z ∣ x ) [ log p ( x ∣ z ) ] − D KL ( q ϕ ( z ∣ x ) ∥ p ( z ) ) . \text{ELBO} = \mathbb{E}{q\phi(z|x)} \left[ \log p(x|z) \right] - D_{\text{KL}}(q_\phi(z|x) \| p(z)). ELBO=Eqϕ(z∣x)[logp(x∣z)]−DKL(qϕ(z∣x)∥p(z)).
第一项是 重构误差 ,表示模型从 z z z 重构 x x x 的能力。
第二项是 正则化项 ,鼓励 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(z∣x) 接近先验分布 p ( z ) p(z) p(z)。
通过最大化 ELBO,我们在重构数据和约束潜变量分布之间找到平衡。
5. 具体例子:变分自编码器(VAE)
VAE 是 ELBO 优化的经典应用。以下是如何通过 VAE 实现上述目标的:
模型设定
q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(z∣x):编码器,用于将输入 x x x 映射到潜变量 z z z 的分布。
p θ ( x ∣ z ) p_\theta(x|z) pθ(x∣z):解码器,用于从潜变量 z z z 生成观测数据。
训练目标 最大化 ELBO: ELBO = E q ϕ ( z ∣ x ) [ log p θ ( x ∣ z ) ] − D KL ( q ϕ ( z ∣ x ) ∥ p ( z ) ) . \text{ELBO} = \mathbb{E}{q\phi(z|x)} \left[ \log p_\theta(x|z) \right] - D_{\text{KL}}(q_\phi(z|x) \| p(z)). ELBO=Eqϕ(z∣x)[logpθ(x∣z)]−DKL(qϕ(z∣x)∥p(z)).
第一项:通过 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(z∣x) 从数据中采样 z z z,然后通过 p θ ( x ∣ z ) p_\theta(x|z) pθ(x∣z) 重构 x x x。
第二项:正则化 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(z∣x),使其接近标准正态分布 p ( z ) p(z) p(z)。
训练过程
从真实数据集中采样数据 x x x。
编码器生成 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(z∣x),从中采样潜变量 z z z。
解码器生成 x x x 的重构样本 x ^ \hat{x} x^。
优化 ELBO,通过反向传播调整编码器和解码器的参数。
示例应用
图像生成:对 MNIST 手写数字数据集进行训练,VAE 可以生成类似的手写数字样本。
异常检测:通过计算数据的对数似然(近似为 ELBO),VAE 可以识别分布外数据。
6. 总结
证据(evidence) :观测数据的对数似然 log p ( x ) \log p(x) logp(x),表示生成模型的质量。
ELBO(证据下界) :由于直接优化 log p ( x ) \log p(x) logp(x) 困难,我们通过最大化 ELBO 来间接逼近 log p ( x ) \log p(x) logp(x)。
KL 散度的作用 :ELBO 与 log p ( x ) \log p(x) logp(x) 的差异由 KL 散度决定,最大化 ELBO 等价于最小化 KL 散度,使近似后验 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(z∣x) 接近真实后验 p ( z ∣ x ) p(z|x) p(z∣x)。
图 1:图示的变分自编码器。在这里,编码器 q ( z ∣ x ) q(z|x) q(z∣x)为观测数据 x x x上的潜变量 z z z定义了一个分布,而 p ( x ∣ z ) p(x|z) p(x∣z)将潜变量解码为观测数据。
变分自编码器 (Variational Autoencoders)
在变分自编码器(VAE)的默认公式中 [1],我们直接最大化ELBO。这种方法是变分的,因为我们在由参数 ϕ \phi ϕ定义的一组潜在后验分布中,优化出最优的 q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(z∣x)。之所以被称为自编码器,是因为它类似于传统的自编码器模型,其中输入数据经过一个中间瓶颈表示步骤后,被训练为能够预测自身。为了明确这一联系,让我们进一步剖析ELBO项:
E q ϕ ( z ∣ x ) [ log p ( x , z ) q ϕ ( z ∣ x ) ] = E q ϕ ( z ∣ x ) [ log p θ ( x ∣ z ) p ( z ) q ϕ ( z ∣ x ) ] ( Chain Rule of Probability ) (17) = E q ϕ ( z ∣ x ) [ log p θ ( x ∣ z ) ] + E q ϕ ( z ∣ x ) [ log p ( z ) q ϕ ( z ∣ x ) ] ( Split the Expectation ) (18) = E q ϕ ( z ∣ x ) [ log p θ ( x ∣ z ) ] − D K L ( q ϕ ( z ∣ x ) ∥ p ( z ) ) ( Definition of KL Divergence ) (19) reconstruction term ⏟ prior matching term ⏟ \begin{aligned} \mathbb{E}{q{\phi}(z|x)} \left[ \log \frac{p(x, z)}{q_{\phi}(z|x)} \right] &= \mathbb{E}{q{\phi}(z|x)} \left[ \log \frac{p_{\theta}(x|z) p(z)}{q_{\phi}(z|x)} \right] & \quad (\text{Chain Rule of Probability}) &\text{(17)} \\ &= \mathbb{E}{q{\phi}(z|x)} [\log p_{\theta}(x|z)] + \mathbb{E}{q{\phi}(z|x)} \left[ \log \frac{p(z)}{q_{\phi}(z|x)} \right] & \quad (\text{Split the Expectation}) &\text{(18)} \\ &= \mathbb{E}{q{\phi}(z|x)} [\log p_{\theta}(x|z)] - D_{KL}(q_{\phi}(z|x) \| p(z)) & \quad (\text{Definition of KL Divergence}) &\text{(19)} \\ & \quad \underbrace{\text{reconstruction term}} \quad \quad \underbrace{\text{prior matching term}} \end{aligned} Eqϕ(z∣x)[logqϕ(z∣x)p(x,z)]=Eqϕ(z∣x)[logqϕ(z∣x)pθ(x∣z)p(z)]=Eqϕ(z∣x)[logpθ(x∣z)]+Eqϕ(z∣x)[logqϕ(z∣x)p(z)]=Eqϕ(z∣x)[logpθ(x∣z)]−DKL(qϕ(z∣x)∥p(z)) reconstruction term prior matching term(Chain Rule of Probability)(Split the Expectation)(Definition of KL Divergence)(17)(18)(19)
在这种情况下,我们学习一个中间瓶颈分布 q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(z∣x),可以将其视为一个编码器;它将输入转换为可能的潜变量的分布。同时,我们学习一个确定性函数 p θ ( x ∣ z ) p_{\theta}(x|z) pθ(x∣z),将给定的潜变量向量 z z z转换为观测数据 x x x,可以将其解释为一个解码器。
背景与核心目标
变分自编码器(Variational Autoencoder, VAE)是一种生成模型,旨在通过学习潜变量 z z z 的分布 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(z∣x),生成与观测数据 x x x 相似的数据,同时能够从潜变量生成样本。VAE 的名字来源于其训练结构类似传统自编码器的形式,即"编码---解码"流程,但它引入了概率模型和变分推断。
ELBO 的分解
公式中: E q ϕ ( z ∣ x ) [ log p ( x , z ) q ϕ ( z ∣ x ) ] = E q ϕ ( z ∣ x ) [ log p θ ( x ∣ z ) ] − D KL ( q ϕ ( z ∣ x ) ∥ p ( z ) ) . \mathbb{E}{q\phi(z|x)} \left[ \log \frac{p(x, z)}{q_\phi(z|x)} \right] = \mathbb{E}{q\phi(z|x)} [\log p_\theta(x|z)] - D_{\text{KL}}(q_\phi(z|x) \| p(z)). Eqϕ(z∣x)[logqϕ(z∣x)p(x,z)]=Eqϕ(z∣x)[logpθ(x∣z)]−DKL(qϕ(z∣x)∥p(z)).
这表示 ELBO(证据下界)可以分为两项:
重构项(Reconstruction Term) : E q ϕ ( z ∣ x ) [ log p θ ( x ∣ z ) ] \mathbb{E}{q\phi(z|x)} [\log p_\theta(x|z)] Eqϕ(z∣x)[logpθ(x∣z)]
衡量模型从潜变量 z z z 重建输入数据 x x x 的能力。
对应解码器的优化目标。
先验匹配项(Prior Matching Term) : − D KL ( q ϕ ( z ∣ x ) ∥ p ( z ) ) -D_{\text{KL}}(q_\phi(z|x) \| p(z)) −DKL(qϕ(z∣x)∥p(z))
衡量近似后验 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(z∣x) 与先验分布 p ( z ) p(z) p(z) 的差异。
通过 KL 散度的最小化,约束潜变量分布。
ELBO 的公式推导
1. 从联合分布展开 VAE 的联合分布定义为: p ( x , z ) = p θ ( x ∣ z ) p ( z ) , p(x, z) = p_\theta(x|z)p(z), p(x,z)=pθ(x∣z)p(z), 其中:
p ( z ) p(z) p(z):潜变量的先验分布(通常假设为标准正态分布 N ( 0 , I ) \mathcal{N}(0, I) N(0,I))。
p θ ( x ∣ z ) p_\theta(x|z) pθ(x∣z):给定 z z z 时生成 x x x 的条件概率分布,由解码器建模。
将联合分布带入 ELBO: E q ϕ ( z ∣ x ) [ log p ( x , z ) q ϕ ( z ∣ x ) ] = E q ϕ ( z ∣ x ) [ log p θ ( x ∣ z ) p ( z ) q ϕ ( z ∣ x ) ] . \mathbb{E}{q\phi(z|x)} \left[ \log \frac{p(x, z)}{q_\phi(z|x)} \right] = \mathbb{E}{q\phi(z|x)} \left[ \log \frac{p_\theta(x|z)p(z)}{q_\phi(z|x)} \right]. Eqϕ(z∣x)[logqϕ(z∣x)p(x,z)]=Eqϕ(z∣x)[logqϕ(z∣x)pθ(x∣z)p(z)].
2. 拆分对数项
利用对数的加法规则: E q ϕ ( z ∣ x ) [ log p θ ( x ∣ z ) p ( z ) q ϕ ( z ∣ x ) ] = E q ϕ ( z ∣ x ) [ log p θ ( x ∣ z ) ] + E q ϕ ( z ∣ x ) [ log p ( z ) q ϕ ( z ∣ x ) ] . \mathbb{E}{q\phi(z|x)} \left[ \log \frac{p_\theta(x|z)p(z)}{q_\phi(z|x)} \right] = \mathbb{E}{q\phi(z|x)} [\log p_\theta(x|z)] + \mathbb{E}{q\phi(z|x)} \left[ \log \frac{p(z)}{q_\phi(z|x)} \right]. Eqϕ(z∣x)[logqϕ(z∣x)pθ(x∣z)p(z)]=Eqϕ(z∣x)[logpθ(x∣z)]+Eqϕ(z∣x)[logqϕ(z∣x)p(z)].
3. KL 散度定义
第二项可以表示为 KL 散度: E q ϕ ( z ∣ x ) [ log p ( z ) q ϕ ( z ∣ x ) ] = − D KL ( q ϕ ( z ∣ x ) ∥ p ( z ) ) . \mathbb{E}{q\phi(z|x)} \left[ \log \frac{p(z)}{q_\phi(z|x)} \right] = -D_{\text{KL}}(q_\phi(z|x) \| p(z)). Eqϕ(z∣x)[logqϕ(z∣x)p(z)]=−DKL(qϕ(z∣x)∥p(z)).
最终得: ELBO = E q ϕ ( z ∣ x ) [ log p θ ( x ∣ z ) ] − D KL ( q ϕ ( z ∣ x ) ∥ p ( z ) ) . \text{ELBO} = \mathbb{E}{q\phi(z|x)} [\log p_\theta(x|z)] - D_{\text{KL}}(q_\phi(z|x) \| p(z)). ELBO=Eqϕ(z∣x)[logpθ(x∣z)]−DKL(qϕ(z∣x)∥p(z)).
重构项与先验匹配项的意义
重构项(Reconstruction Term)
表达式: E q ϕ ( z ∣ x ) [ log p θ ( x ∣ z ) ] \mathbb{E}{q\phi(z|x)} [\log p_\theta(x|z)] Eqϕ(z∣x)[logpθ(x∣z)]
意义:衡量模型生成样本 x ^ \hat{x} x^ 与输入数据 x x x 的相似度,优化方向是提高解码器从 z z z 重构 x x x 的能力。
举例:
如果 x x x 是手写数字图像,解码器希望从 z z z 中生成一张与输入图像尽可能相似的重建图像。
先验匹配项(Prior Matching Term)
表达式: − D KL ( q ϕ ( z ∣ x ) ∥ p ( z ) ) -D_{\text{KL}}(q_\phi(z|x) \| p(z)) −DKL(qϕ(z∣x)∥p(z))
意义:通过最小化 KL 散度,将近似后验分布 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(z∣x) 调整为与先验分布 p ( z ) p(z) p(z) 接近。
举例:
如果 p ( z ) p(z) p(z) 是标准正态分布 N ( 0 , I ) \mathcal{N}(0, I) N(0,I),则优化目标是使 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(z∣x) 的分布均值接近 0,方差接近 1。
为什么 VAE 类似于自编码器?
编码器(Encoder)
VAE 中的编码器通过 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(z∣x) 对输入数据 x x x 映射到潜变量 z z z 的分布。
它类似于传统自编码器中的压缩步骤,将数据编码为低维表示。
解码器(Decoder)
VAE 中的解码器通过 p θ ( x ∣ z ) p_\theta(x|z) pθ(x∣z) 从潜变量 z z z 重建数据 x x x。
它类似于传统自编码器中的解压缩步骤,将低维表示还原为原始数据。
区别
传统自编码器直接优化重构误差 ∥ x − x ^ ∥ 2 \|x - \hat{x}\|^2 ∥x−x^∥2。
VAE 同时优化:
重构误差(通过最大化 E q ϕ ( z ∣ x ) [ log p θ ( x ∣ z ) ] \mathbb{E}{q\phi(z|x)} [\log p_\theta(x|z)] Eqϕ(z∣x)[logpθ(x∣z)])。
潜变量正则化(通过最小化 D KL ( q ϕ ( z ∣ x ) ∥ p ( z ) ) D_{\text{KL}}(q_\phi(z|x) \| p(z)) DKL(qϕ(z∣x)∥p(z)))。
具体例子:MNIST 手写数字生成
模型结构
输入数据 x x x:MNIST 手写数字图像(28x28 灰度图像)。
编码器 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(z∣x):将 x x x 压缩为潜变量 z z z 的分布(均值和方差)。
解码器 p θ ( x ∣ z ) p_\theta(x|z) pθ(x∣z):从 z z z 中生成重建图像 x ^ \hat{x} x^。
训练目标
优化 ELBO: ELBO = E q ϕ ( z ∣ x ) [ log p θ ( x ∣ z ) ] − D KL ( q ϕ ( z ∣ x ) ∥ p ( z ) ) . \text{ELBO} = \mathbb{E}{q\phi(z|x)} [\log p_\theta(x|z)] - D_{\text{KL}}(q_\phi(z|x) \| p(z)). ELBO=Eqϕ(z∣x)[logpθ(x∣z)]−DKL(qϕ(z∣x)∥p(z)).
公式 (19) 将 ELBO 分解为两项: E q ϕ ( z ∣ x ) [ log p θ ( x ∣ z ) ] − D KL ( q ϕ ( z ∣ x ) ∥ p ( z ) ) . \mathbb{E}{q\phi(z|x)} [\log p_\theta(x|z)] - D_{\text{KL}}(q_\phi(z|x) \| p(z)). Eqϕ(z∣x)[logpθ(x∣z)]−DKL(qϕ(z∣x)∥p(z)).
重构项 E q ϕ ( z ∣ x ) [ log p θ ( x ∣ z ) ] \mathbb{E}{q\phi(z|x)} [\log p_\theta(x|z)] Eqϕ(z∣x)[logpθ(x∣z)]:
衡量解码器从潜变量 z z z 重构输入数据 x x x 的能力。
确保学习到的潜变量分布 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(z∣x) 能有效生成高质量的重构数据。
直观理解 :解码器生成的数据 x ^ \hat{x} x^ 越接近输入 x x x,该项的值越高。
先验匹配项 − D KL ( q ϕ ( z ∣ x ) ∥ p ( z ) ) -D_{\text{KL}}(q_\phi(z|x) \| p(z)) −DKL(qϕ(z∣x)∥p(z)):
衡量编码器 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(z∣x) 学习到的潜变量分布与先验分布 p ( z ) p(z) p(z) 的相似程度。
q ϕ ( z ∣ x ) = N ( z ; μ ϕ ( x ) , σ ϕ 2 ( x ) I ) (20) p ( z ) = N ( z ; 0 , I ) (21) \begin{aligned} q_{\phi}(z|x) &= \mathcal{N}(z; \mu_{\phi}(x), \sigma_{\phi}^2(x)\mathbf{I}) \quad &\text{(20)} \\ p(z) &= \mathcal{N}(z; 0, \mathbf{I}) \quad &\text{(21)} \end{aligned} qϕ(z∣x)p(z)=N(z;μϕ(x),σϕ2(x)I)=N(z;0,I)(20)(21)
编码器 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(z∣x) :
被建模为多元高斯分布:
q ϕ ( z ∣ x ) = N ( z ; μ ϕ ( x ) , σ ϕ 2 ( x ) I ) . q_\phi(z|x) = \mathcal{N}(z; \mu_\phi(x), \sigma_\phi^2(x)\mathbf{I}). qϕ(z∣x)=N(z;μϕ(x),σϕ2(x)I).
编码器从输入数据 x x x 中学习均值 μ ϕ ( x ) \mu_\phi(x) μϕ(x) 和标准差 σ ϕ ( x ) \sigma_\phi(x) σϕ(x)。
先验分布 p ( z ) p(z) p(z) :
通常选择为标准正态分布:
p ( z ) = N ( z ; 0 , I ) . p(z) = \mathcal{N}(z; 0, \mathbf{I}). p(z)=N(z;0,I).
arg max ϕ , θ E q ϕ ( z ∣ x ) [ log p θ ( x ∣ z ) ] − D K L ( q ϕ ( z ∣ x ) ∥ p ( z ) ) ≈ arg max ϕ , θ ∑ l = 1 L log p θ ( x ∣ z ( l ) ) − D K L ( q ϕ ( z ∣ x ) ∥ p ( z ) ) (22) \argmax_{\phi, \theta} \mathbb{E}{q{\phi}(z|x)} [\log p_{\theta}(x|z)] - D_{KL}(q_{\phi}(z|x) \| p(z)) \approx \argmax_{\phi, \theta} \sum_{l=1}^L \log p_{\theta}(x|z^{(l)}) - D_{KL}(q_{\phi}(z|x) \| p(z)) \tag{22} ϕ,θargmaxEqϕ(z∣x)[logpθ(x∣z)]−DKL(qϕ(z∣x)∥p(z))≈ϕ,θargmaxl=1∑Llogpθ(x∣z(l))−DKL(qϕ(z∣x)∥p(z))(22)
其中,潜变量 { z ( l ) } l = 1 L \{z^{(l)}\}{l=1}^L {z(l)}l=1L是从 q ϕ ( z ∣ x ) q{\phi}(z|x) qϕ(z∣x)中采样的,针对数据集中的每个观测 x x x进行。然而,在这一默认设置中会出现一个问题:用于计算损失的每个 z ( l ) z^{(l)} z(l)都是通过一个随机采样过程生成的,而这个过程通常是不可微的。幸运的是,当 q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(z∣x)被设计为建模某些特定分布(包括多元高斯分布)时,可以通过重参数化技巧解决这个问题。
KL 散度项的计算
KL 散度项 D KL ( q ϕ ( z ∣ x ) ∥ p ( z ) ) D_{\text{KL}}(q_\phi(z|x) \| p(z)) DKL(qϕ(z∣x)∥p(z)) 是解析可解的,具体公式为: D KL ( q ϕ ( z ∣ x ) ∥ p ( z ) ) = 1 2 ∑ j = 1 d ( σ ϕ 2 ( x ) j + μ ϕ ( x ) j 2 − 1 − log σ ϕ 2 ( x ) j ) , D_{\text{KL}}(q_\phi(z|x) \| p(z)) = \frac{1}{2} \sum_{j=1}^d \left( \sigma_\phi^2(x)j + \mu\phi(x)j^2 - 1 - \log \sigma\phi^2(x)_j \right), DKL(qϕ(z∣x)∥p(z))=21j=1∑d(σϕ2(x)j+μϕ(x)j2−1−logσϕ2(x)j), 其中:
μ ϕ ( x ) \mu_\phi(x) μϕ(x) 是潜变量的均值, σ ϕ ( x ) \sigma_\phi(x) σϕ(x) 是标准差。
d d d 是潜变量的维度。
由于 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(z∣x) 和 p ( z ) p(z) p(z) 都是多元高斯分布,KL 散度可以直接通过公式计算,无需采样。
重构项的近似计算(蒙特卡洛估计)
重构项 E q ϕ ( z ∣ x ) [ log p θ ( x ∣ z ) ] \mathbb{E}{q\phi(z|x)}[\log p_\theta(x|z)] Eqϕ(z∣x)[logpθ(x∣z)] 的期望通常无法解析计算,因为解码器 p θ ( x ∣ z ) p_\theta(x|z) pθ(x∣z) 是一个复杂的非线性模型(例如神经网络)。
解决方案:
使用蒙特卡洛方法,通过从 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(z∣x) 中采样 L L L 个潜变量 { z ( l ) } l = 1 L \{z^{(l)}\}{l=1}^L {z(l)}l=1L,近似重构项: E q ϕ ( z ∣ x ) [ log p θ ( x ∣ z ) ] ≈ 1 L ∑ l = 1 L log p θ ( x ∣ z ( l ) ) , \mathbb{E}{q_\phi(z|x)}[\log p_\theta(x|z)] \approx \frac{1}{L} \sum_{l=1}^L \log p_\theta(x|z^{(l)}), Eqϕ(z∣x)[logpθ(x∣z)]≈L1l=1∑Llogpθ(x∣z(l)), 其中:
z ( l ) ∼ q ϕ ( z ∣ x ) z^{(l)} \sim q_\phi(z|x) z(l)∼qϕ(z∣x) 是从编码器中采样的潜变量。
log p θ ( x ∣ z ( l ) ) \log p_\theta(x|z^{(l)}) logpθ(x∣z(l)) 表示给定采样的潜变量 z ( l ) z^{(l)} z(l),解码器重构 x x x 的对数概率。
当采样数 L L L 足够大时,蒙特卡洛估计可以逼近真实的期望值。
重参数化技巧将一个随机变量重写为噪声变量的确定性函数;这使得可以通过梯度下降来优化非随机项。例如,从正态分布 x ∼ N ( x ; μ , σ 2 ) x \sim \mathcal{N}(x; \mu, \sigma^2) x∼N(x;μ,σ2)中采样的样本(具有任意均值 μ \mu μ和方差 σ 2 \sigma^2 σ2)可以重写为:
x = μ + σ ϵ with ϵ ∼ N ( ϵ ; 0 , I ) x = \mu + \sigma \epsilon \quad \text{with} \quad \epsilon \sim \mathcal{N}(\epsilon; 0, \mathbf{I}) x=μ+σϵwithϵ∼N(ϵ;0,I)
在一般的HVAE中,具有 T T T个层次的分层结构允许每个潜变量依赖于所有先前的潜变量。然而,在这项工作中,我们专注于一种特殊情况,我们称之为马尔可夫分层变分自编码器(Markovian HVAE,MHVAE)。在MHVAE中,生成过程是一个马尔可夫链;也就是说,层次结构中的每一次向下转换都是马尔可夫的,其中解码每个潜变量 z t z_t zt仅依赖于前一个潜变量 z t + 1 z_{t+1} zt+1。直观上(并在视觉上),这可以看作是将多个VAE简单地堆叠在一起,如图2所示;另一个合适的术语是递归VAE(Recursive VAE)。
图 2:具有 T T T个分层潜变量的马尔可夫分层变分自编码器。生成过程被建模为一个马尔可夫链,其中每个潜变量 z t z_t zt仅由前一个潜变量 z t + 1 z_{t+1} zt+1生成。
从数学上,我们可以表示马尔可夫HVAE的联合分布和后验分布为:
p ( x , z 1 : T ) = p ( z T ) p θ ( x ∣ z 1 ) ∏ t = 2 T p θ ( z t − 1 ∣ z t ) (23) p(x, z_{1:T}) = p(z_T)p_{\theta}(x|z_1) \prod_{t=2}^T p_{\theta}(z_{t-1}|z_t) \tag{23} p(x,z1:T)=p(zT)pθ(x∣z1)t=2∏Tpθ(zt−1∣zt)(23)
q ϕ ( z 1 : T ∣ x ) = q ϕ ( z 1 ∣ x ) ∏ t = 2 T q ϕ ( z t ∣ z t − 1 ) (24) q_{\phi}(z_{1:T}|x) = q_{\phi}(z_1|x) \prod_{t=2}^T q_{\phi}(z_t|z_{t-1}) \tag{24} qϕ(z1:T∣x)=qϕ(z1∣x)t=2∏Tqϕ(zt∣zt−1)(24)
log p ( x ) = log ∫ p ( x , z 1 : T ) d z 1 : T (Apply Equation 1) (25) = log ∫ p ( x , z 1 : T ) q ϕ ( z 1 : T ∣ x ) q ϕ ( z 1 : T ∣ x ) d z 1 : T (Multiply by 1 = q ϕ ( z 1 : T ∣ x ) q ϕ ( z 1 : T ∣ x ) ) (26) = log E q ϕ ( z 1 : T ∣ x ) [ p ( x , z 1 : T ) q ϕ ( z 1 : T ∣ x ) ] (Definition of Expectation) (27) ≥ E q ϕ ( z 1 : T ∣ x ) [ log p ( x , z 1 : T ) q ϕ ( z 1 : T ∣ x ) ] (Apply Jensen's Inequality) (28) \begin{aligned} \log p(x) &= \log \int p(x, z_{1:T}) dz_{1:T} & \quad \text{(Apply Equation 1)} &\text{(25)} \\ &= \log \int \frac{p(x, z_{1:T}) q_{\phi}(z_{1:T}|x)}{q_{\phi}(z_{1:T}|x)} dz_{1:T} & \quad \text{(Multiply by 1 = } \frac{q_{\phi}(z_{1:T}|x)}{q_{\phi}(z_{1:T}|x)} \text{)} &\text{(26)} \\ &= \log \mathbb{E}{q{\phi}(z_{1:T}|x)} \left[ \frac{p(x, z_{1:T})}{q_{\phi}(z_{1:T}|x)} \right] & \quad \text{(Definition of Expectation)} &\text{(27)} \\ &\geq \mathbb{E}{q{\phi}(z_{1:T}|x)} \left[ \log \frac{p(x, z_{1:T})}{q_{\phi}(z_{1:T}|x)} \right] & \quad \text{(Apply Jensen's Inequality)} &\text{(28)} \end{aligned} logp(x)=log∫p(x,z1:T)dz1:T=log∫qϕ(z1:T∣x)p(x,z1:T)qϕ(z1:T∣x)dz1:T=logEqϕ(z1:T∣x)[qϕ(z1:T∣x)p(x,z1:T)]≥Eqϕ(z1:T∣x)[logqϕ(z1:T∣x)p(x,z1:T)](Apply Equation 1)(Multiply by 1 = qϕ(z1:T∣x)qϕ(z1:T∣x))(Definition of Expectation)(Apply Jensen's Inequality)(25)(26)(27)(28)
根据期望的定义: E q ϕ ( z 1 : T ∣ x ) [ f ( z 1 : T ) ] = ∫ q ϕ ( z 1 : T ∣ x ) f ( z 1 : T ) d z 1 : T , \mathbb{E}{q\phi(z_{1:T}|x)}[f(z_{1:T})] = \int q_\phi(z_{1:T}|x) f(z_{1:T}) dz_{1:T}, Eqϕ(z1:T∣x)[f(z1:T)]=∫qϕ(z1:T∣x)f(z1:T)dz1:T,
直观理解
目标:
log p ( x ) \log p(x) logp(x) 是观测数据 x x x 的对数似然,描述生成模型对数据的解释能力。
我们通过 ELBO 的优化,间接优化 log p ( x ) \log p(x) logp(x)。
ELBO 的意义:
p ( x , z 1 : T ) q ϕ ( z 1 : T ∣ x ) \frac{p(x, z_{1:T})}{q_\phi(z_{1:T}|x)} qϕ(z1:T∣x)p(x,z1:T) 描述了近似分布 q ϕ q_\phi qϕ 与真实分布 p p p 的匹配程度。
优化 ELBO 可以:
提高解码器生成观测数据 x x x 的能力。
改进编码器 q ϕ ( z 1 : T ∣ x ) q_\phi(z_{1:T}|x) qϕ(z1:T∣x) 对真实后验 p ( z 1 : T ∣ x ) p(z_{1:T}|x) p(z1:T∣x) 的近似。
然后,我们可以将联合分布(公式23)和后验分布(公式24)代入公式28,从而得到另一种形式:
p ( x , z 1 : T ) = p ( z T ) p θ ( x ∣ z 1 ) ∏ t = 2 T p θ ( z t − 1 ∣ z t ) (23) p(x, z_{1:T}) = p(z_T)p_{\theta}(x|z_1) \prod_{t=2}^T p_{\theta}(z_{t-1}|z_t) \tag{23} p(x,z1:T)=p(zT)pθ(x∣z1)t=2∏Tpθ(zt−1∣zt)(23)
q ϕ ( z 1 : T ∣ x ) = q ϕ ( z 1 ∣ x ) ∏ t = 2 T q ϕ ( z t ∣ z t − 1 ) (24) q_{\phi}(z_{1:T}|x) = q_{\phi}(z_1|x) \prod_{t=2}^T q_{\phi}(z_t|z_{t-1}) \tag{24} qϕ(z1:T∣x)=qϕ(z1∣x)t=2∏Tqϕ(zt∣zt−1)(24)
E q ϕ ( z 1 : T ∣ x ) [ log p ( x , z 1 : T ) q ϕ ( z 1 : T ∣ x ) ] = E q ϕ ( z 1 : T ∣ x ) [ log p ( z T ) p θ ( x ∣ z 1 ) ∏ t = 2 T p θ ( z t − 1 ∣ z t ) q ϕ ( z 1 ∣ x ) ∏ t = 2 T q ϕ ( z t ∣ z t − 1 ) ] (29) \mathbb{E}{q{\phi}(z_{1:T}|x)} \left[ \log \frac{p(x, z_{1:T})}{q_{\phi}(z_{1:T}|x)} \right] = \mathbb{E}{q{\phi}(z_{1:T}|x)} \left[ \log \frac{p(z_T)p_{\theta}(x|z_1) \prod_{t=2}^T p_{\theta}(z_{t-1}|z_t)}{q_{\phi}(z_1|x) \prod_{t=2}^T q_{\phi}(z_t|z_{t-1})} \right] \text{(29)} Eqϕ(z1:T∣x)[logqϕ(z1:T∣x)p(x,z1:T)]=Eqϕ(z1:T∣x)[logqϕ(z1∣x)∏t=2Tqϕ(zt∣zt−1)p(zT)pθ(x∣z1)∏t=2Tpθ(zt−1∣zt)](29)