论文笔记(六十三)Understanding Diffusion Models: A Unified Perspective(一)

Understanding Diffusion Models: A Unified Perspective(一)

  • 文章概括
  • 引言:生成模型
  • 背景:ELBO、VAE 和分层 VAE
    • 证据下界(Evidence Lower Bound)
    • 变分自编码器 (Variational Autoencoders)
    • 分层变分自编码器(Hierarchical Variational Autoencoders)

文章概括

引用:

@article{luo2022understanding,title={Understanding diffusion models: A unified perspective},author={Luo, Calvin},journal={arXiv preprint arXiv:2208.11970},year={2022}
}
Luo, C., 2022. Understanding diffusion models: A unified perspective. arXiv preprint arXiv:2208.11970.

原文: https://arxiv.org/abs/2208.11970
代码、数据和视频:https://arxiv.org/abs/2208.11970


系列文章:
请在 《 《 文章 》 》 专栏中查找



引言:生成模型

给定来自目标分布的观测样本 x x x,生成模型的目标是学习对其真实数据分布 p ( x ) p(x) p(x)的建模。一旦学习完成,我们可以随意从我们近似的模型中生成新样本。此外,在某些形式下,我们还可以使用学习到的模型来评估观测数据或采样数据的似然性。

这句话描述了生成模型(Generative Model)的核心目标,即通过学习来对观测数据的真实分布进行建模。以下是对这句话的详细解释:

  1. 目标分布和观测样本

    • 目标分布 p ( x ) p(x) p(x)是指数据的真实分布,也就是数据在真实世界中是如何产生的。这种分布通常是未知的。
    • 观测样本 x x x是从这个目标分布 p ( x ) p(x) p(x)中抽取的样本数据。例如,在图像生成任务中,这些样本可能是大量的真实图片。
  2. 生成模型的目标

    • 生成模型的任务是通过学习这些观测样本 x x x,构建一个近似目标分布 p ( x ) p(x) p(x)的模型 q ( x ) q(x) q(x),使得生成的分布尽可能接近真实分布。
    • 换句话说,生成模型需要学会捕捉数据的统计规律,并基于这些规律生成新的数据点,这些新数据点看起来就像是从真实分布 p ( x ) p(x) p(x)中采样的一样。
  3. 学习真实分布 p ( x ) p(x) p(x)

    • 在数学上,这通常通过最小化生成分布和真实分布之间的某种差异来实现,比如:
      • 最大似然估计(Maximum Likelihood Estimation, MLE):直接最大化生成分布 q ( x ) q(x) q(x)在真实样本 x x x上的概率。
      • KL散度(Kullback-Leibler Divergence):度量两种分布之间的差异。
      • 对抗训练:比如在生成对抗网络(GAN)中,通过生成器和判别器之间的博弈学习生成分布。
      • 其他方法:比如变分自编码器(VAE)使用证据下界(ELBO)来优化生成分布。
  4. 应用

    • 当生成模型成功学到 p ( x ) p(x) p(x)后,它不仅可以用来生成与观测样本类似的新样本,还可以用于缺失数据补全、数据增强、无监督学习等任务。

简而言之,这句话的意思是:生成模型的任务是通过观测到的数据样本 x x x,学习一种方法来逼近数据在真实世界中的分布 p ( x ) p(x) p(x),从而能够理解、生成或模拟类似的数据。

当前文献中有几种众所周知的发展方向,我们将在高层次上简要介绍这些方向。生成对抗网络(Generative Adversarial Networks, GANs)通过对复杂分布的采样过程进行建模,并以对抗的方式学习该分布。另一类生成模型被称为“基于似然的模型”,其目标是学习一个能够对观测数据样本赋予高似然的模型。这包括自回归模型、正常化流(normalizing flows)和变分自编码器(Variational Autoencoders, VAEs)。

一. 生成对抗网络(Generative Adversarial Networks, GANs)


GAN 是一种生成模型,其主要目标是通过对抗方式学习复杂的目标分布 p ( x ) p(x) p(x)。GAN 包含两个核心组成部分:

  • 生成器(Generator, G G G:试图生成与真实数据分布相似的样本。
  • 判别器(Discriminator, D D D:区分生成样本和真实样本。


工作原理:

  1. 生成器从简单分布(例如,高斯分布)中采样随机噪声 z z z,并通过神经网络 G ( z ) G(z) G(z) 生成样本。
  2. 判别器接收生成样本和真实样本,输出一个概率,表示输入样本来自真实分布的可能性。
  3. 两者之间的目标是博弈式的:
    • 生成器的目标是迷惑判别器,使其认为生成样本是真实的;
    • 判别器的目标是尽可能准确地区分真实样本和生成样本。


损失函数:
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)))] GminDmaxExpdata[logD(x)]+Ezpz[log(1D(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}} xpdata
    • 判别器希望输出 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) zpz(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)=Expdata[logD(x)]+Ezpz[log(1D(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)))]. DmaxExpdata[logD(x)]+Ezpz[log(1D(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(1D(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)))]. GminEzpz[log(1D(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)=Expdata[logD(x)]+Ezpz[log(1D(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(1D(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)=Expdata[logD(x)]+Ezpz[log(1D(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)))] GminDmaxExpdata[logD(x)]+Ezpz[log(1D(G(z)))] 来源于生成器和判别器的博弈思想:

  • 判别器尽量区分真实数据和生成数据。
  • 生成器尽量生成看起来像真实数据的样本,欺骗判别器。


这个优化过程最终使生成器学会生成与真实分布相似的数据样本,从而实现目标分布的建模。

优点:

  • 能够生成高质量的数据样本。

缺点:

  • 难以训练,可能出现模式崩溃(Mode Collapse)问题。

二. 基于似然的生成模型


这类模型通过直接学习一个概率分布来对观测数据赋予高似然。它们的目标是最大化真实样本在模型分布下的概率。


包含三种主要模型:

  1. 自回归模型(Autoregressive Models)占位符(待更新)

    • 假设数据的联合分布可以分解为条件分布的乘积:
      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(x2x1)p(x3x1,x2)
    • 通过学习这些条件概率,模型可以对目标分布进行建模。

    举例

    • PixelRNN 和 PixelCNN:用于生成图像。
    • GPT 系列:自回归模型在自然语言生成中的应用。

    优点

    • 精确建模数据分布。

    缺点

    • 生成过程较慢,因为是逐步生成。
  2. 正常化流(Normalizing Flows)占位符(待更新)

    • 通过定义一系列可逆变换 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) zpz(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) detxfθ1(x)

    优点

    • 生成和评估概率密度都很高效。

    缺点

    • 构建可逆变换时设计较复杂。
  3. 变分自编码器(Variational Autoencoders, VAEs)占位符(待更新)

    • 基于概率图模型的生成模型,通过引入潜在变量 z z z 来建模数据分布。
    • 使用变分推断方法,优化目标是最大化边际似然的证据下界(Evidence Lower Bound, ELBO)。


    目标函数 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ϕ(zx)[logpθ(xz)]KL(qϕ(zx)p(z)) 其中:

    • q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(zx) 是近似后验分布(编码器)。
    • p θ ( x ∣ z ) p_\theta(x|z) pθ(xz) 是生成器(解码器)。

    优点

    • 提供生成数据的潜在变量表示,解释性强。 缺点
    • 生成样本质量通常不如 GAN。

三.总结比较


模型类别目标代表模型优缺点
生成对抗网络通过对抗博弈学习分布GAN, StyleGAN高质量生成,但训练困难
自回归模型最大化条件概率GPT, PixelCNN生成精确,但生成速度较慢
正常化流可逆变换下计算复杂分布的密度RealNVP, Glow精确高效,但设计复杂
变分自编码器引入潜在变量并最大化证据下界VAE, VQ-VAE解释性强,但生成样本质量可能偏低

总结
这三类生成模型各有特点和应用场景。在实际任务中,选择哪种模型取决于具体需求,比如生成样本的质量要求、模型的训练和推理速度,以及对数据分布解释性的需求。

另一个类似的方法是基于能量的建模(energy-based modeling)(《Implicit Behavioral Cloning》),其中分布被学习为一个可以任意灵活调整的能量函数,然后对其进行归一化。与之高度相关的还有基于得分的生成模型(score-based generative models);它们不是直接学习能量函数本身,而是通过神经网络学习能量函数的得分。在本工作中,我们探讨并回顾了扩散模型(diffusion models)。我们将证明,这些模型既可以从基于似然的角度进行解释,也可以从基于得分的角度进行解释。我们将以极其详细的数学推导展示这些模型,目的是让任何人都能够理解扩散模型是什么以及它们如何工作。


背景:ELBO、VAE 和分层 VAE

对于许多数据模式,我们可以将我们观察到的数据视为由一个相关的、不可见的潜变量生成或表示出来的,这个潜变量可以用随机变量 z z z表示。表达这一思想的最佳直觉来源于柏拉图的《洞穴寓言》。在这个寓言中,一群人一生都被锁链束缚在洞穴中,他们只能看到投射在他们面前墙上的二维阴影,而这些阴影是由火光前不可见的三维物体所生成的。对这些人而言,他们观察到的一切实际上是由他们永远无法直接感知的更高维度的抽象概念所决定的。

类似地,我们在现实世界中遇到的物体也可能是某些更高层次表示的函数生成的;例如,这些表示可能包含颜色、大小、形状等抽象属性。那么,我们观察到的内容可以被解释为这些抽象概念的三维投影或实例化,就像洞穴中的人观察到的实际上是三维物体的二维投影一样。虽然洞穴中的人永远无法看到(甚至完全理解)隐藏的物体,但他们仍然能够推理并得出关于这些物体的结论;类似地,我们可以对描述我们观察到的数据的潜在表示进行近似。

虽然柏拉图的寓言说明了潜变量背后的思想,即作为潜在不可观察的表示决定观察数据,但这一类比的局限性在于,在生成建模中,我们通常寻求学习更低维的潜在表示,而不是更高维的表示。这是因为尝试学习比观察数据更高维度的表示在没有强先验的情况下是徒劳的。而另一方面,学习低维潜变量也可以被看作是一种压缩形式,并可能揭示描述观察数据的语义上有意义的结构。

1. 什么是先验知识?


在统计学和机器学习中,先验知识(Prior Knowledge) 指的是在观察到数据之前,我们对变量、模型或者任务本身的任何假设。这些假设可能是经验性的,也可能是来源于理论知识。

  • 弱先验(Weak Priors):假设较宽泛、没有明确的领域知识支持。

    • 特点
      • 对数据分布的假设较为模糊。
      • 不强加严格的约束,更多依赖数据驱动模型学习。
      • 泛化性较强,但可能需要更多数据支撑。
    • 例子
      • 在贝叶斯统计中对参数 θ \theta θ 使用均匀分布: P ( θ ) ∼ U ( a , b ) P(\theta) \sim U(a, b) P(θ)U(a,b),表示我们对 θ \theta θ 的可能值没有特别的偏好。
  • 强先验(Strong Priors):基于领域知识的明确假设,对模型行为施加强约束。

    • 特点
      • 明确地表示变量间的关系或分布形态。
      • 有助于提升模型学习效率,特别是在数据稀缺时。
      • 可能限制模型的适用范围。
    • 例子
      • 在目标检测中,假设物体的形状具有一定规则(如正方形或圆形)。

2. 弱先验与强先验的对比

特性弱先验强先验
约束程度低,假设较宽泛高,假设明确
适用场景数据丰富,或我们对问题了解较少数据稀缺,或领域知识充分
学习灵活性高,更依赖数据驱动低,但模型行为更贴合领域知识
泛化能力通用性更强,但训练时间可能更长适用于特定场景,训练时间更短

3. 弱先验和强先验的详细例子


3.1 弱先验的例子

  1. 贝叶斯分类器中的弱先验

    • 问题:对某个事件发生概率 P ( A ) P(A) P(A) 没有明确知识。
    • 弱先验:假设 P ( A ) P(A) P(A) 是均匀分布,即所有事件发生的可能性相等。
    • 优势:适用于不了解问题背景的初始探索阶段。
    • 局限:在实际问题中,均匀分布假设可能过于理想化。
  2. 无监督学习中的聚类

    • 在 K-Means 聚类算法中,假设每个簇是球形分布,且簇大小相近(但没有更多具体假设)。
    • 这种弱先验适用于初步探索数据的结构。


3.2 强先验的例子

  1. 卷积神经网络中的强先验

    • 假设:图像中局部像素有强相关性,且特征在空间上具有平移不变性。
    • 实现:通过卷积操作(共享权重)将这个先验硬编码进模型。
    • 优势:减少模型参数,提高学习效率。
  2. 机器人轨迹规划中的强先验

    • 假设:机器人运动需要满足物理约束,如速度和加速度在安全范围内。
    • 应用:使用运动学方程作为模型的先验。
      • 例子:规划无人车路径时,假设每次转弯的角速度不会超过一定范围(避免失控)。
  3. 目标检测中的形状先验

    • 假设:物体的形状通常是规则的(如矩形、圆形等)。
    • 应用:在 Anchor-Based 的目标检测算法(如 Faster R-CNN)中,使用固定的 Anchor(先验框)表示物体可能出现的位置和大小。
      • 例子:在车牌检测中,假设车牌是矩形。
  4. 自然语言处理中的语法先验

    • 假设:自然语言中的单词序列遵循特定的语法结构。
    • 应用:在句法分析器中嵌入上下文无关文法(CFG)规则。
      • 例子:解析 “The cat sits on the mat” 时,模型知道主语、动词和宾语之间的关系。

4. 强先验的实现与挑战


实现方式

  1. 硬编码规则
    • 将先验知识直接嵌入模型中(如卷积操作、正则化项)。
  2. 训练数据增强
    • 利用先验设计特定的训练样本生成方法。
  3. 损失函数约束
    • 在目标函数中加入与先验相关的约束项。

挑战

  1. 先验假设的准确性
    • 如果先验知识与真实分布不符,可能引入偏差。
  2. 灵活性降低
    • 强先验会限制模型的适用范围。
  3. 先验的选择
    • 不同任务需要不同的先验,选择和验证先验的合理性可能很复杂。

5. 视觉化示例


强先验与弱先验可以通过一个二维点分布的分类问题来理解。

  • 弱先验:假设所有点均匀分布,不考虑类别之间的边界。
  • 强先验:假设点分布是高斯分布,并且类别之间具有明确的分界线。

在这里插入图片描述
图中展示了弱先验强先验的对比:

  1. 左图(弱先验)

    • 假设数据分布没有明确规律,分类器不强加任何领域知识。
    • 数据点分布比较松散,没有明显的分类界限。
  2. 右图(强先验)

    • 假设数据来自高斯分布,并通过高斯混合模型(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(zx)p(x,z)(2)

直接计算并最大化似然 p ( x ) p(x) p(x)是困难的,因为这要么涉及在公式 (1) 中对所有潜变量 z z z进行积分,对于复杂模型而言这不可行,要么需要在公式 (2) 中获取真实的潜变量编码器 p ( z ∣ x ) p(z|x) p(zx)。然而,通过使用这两个公式,我们可以推导出一个术语,称为“证据下界”(Evidence Lower Bound,ELBO)。顾名思义,它是证据的一个下界。

在这种情况下,证据(evidence)被量化为观测数据的对数似然(此处文章有解释什么是evidence)。因此,最大化ELBO成为优化潜变量模型的一个代理目标;在最理想的情况下,当ELBO被强大地参数化并被完美优化时,它与证据完全等价。

形式上,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ϕ(zx)[logqϕ(zx)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ϕ(zx)[logqϕ(zx)p(x,z)](4)

这里, q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(zx)是一个具有参数 ϕ \phi ϕ的灵活的近似变分分布,我们试图对其进行优化。直观上,可以将其视为一个可参数化的模型,用于学习估计给定观测 x x x时潜变量 z z z的真实分布;换句话说,它旨在近似真实的后验分布 p ( z ∣ x ) p(z|x) p(zx)

正如我们在探讨变分自编码器(Variational Autoencoder, VAE)时会看到的,通过调整参数 ϕ \phi ϕ以最大化ELBO,我们可以提高下界,从而获得能够用于建模真实数据分布并从中采样的组件,从而学习一个生成模型。现在,让我们进一步深入探讨为什么ELBO是一个值得最大化的目标。

a. 背景与基本概念

  1. 潜变量与联合分布

    • 潜变量(Latent Variables)是模型中未观测到但影响观测数据的变量。通过引入潜变量 z z z,我们可以使用联合分布 p ( x , z ) p(x, z) p(x,z) 来对观测数据 x x x 和潜变量建模。潜变量模型的核心目标是从观测数据中学习这种联合分布。
  2. 生成建模与似然

    • 生成建模(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. 证据与下界

  1. 什么是证据?
    证据(Evidence)是指观测数据的对数似然 log ⁡ p ( x ) \log p(x) logp(x)。在生成建模中,证据反映了模型对观测数据的解释能力。因此,最大化 log ⁡ p ( x ) \log p(x) logp(x) 是优化生成模型的核心目标。

  2. 为什么叫“下界”?
    直接计算 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(zx) 可能未知。


为了解决这个问题,引入了证据下界(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ϕ(zx)[logqϕ(zx)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(xz),并分解对数项: 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ϕ(zx)[logp(xz)]KL(qϕ(zx)p(z)).

其中:

  • 第一项 E q ϕ ( z ∣ x ) [ log ⁡ p ( x ∣ z ) ] \mathbb{E}_{q_{\phi}(z|x)} [\log p(x|z)] Eqϕ(zx)[logp(xz)] 是重构误差,衡量模型在给定 z z z 时重建 x x x 的能力。
  • 第二项 KL ( q ϕ ( z ∣ x ) ∥ p ( z ) ) \text{KL}(q_{\phi}(z|x) \| p(z)) KL(qϕ(zx)p(z)) 是 KL 散度(KL散度是什么?),用于约束 q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(zx) 接近先验分布 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ϕ(zx)[logqϕ(zx)p(x,z)]+KL(qϕ(zx)p(zx)).

注意:

  • 第二项 KL ( q ϕ ( z ∣ x ) ∥ p ( z ∣ x ) ) ≥ 0 \text{KL}(q_{\phi}(z|x) \| p(z|x)) \geq 0 KL(qϕ(zx)p(zx))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ϕ(zx)[logqϕ(zx)p(x,z)]=ELBO.

这说明 ELBO 是 log ⁡ p ( x ) \log p(x) logp(x) 的一个下界。


d. 为什么最大化 ELBO 有用?

  • 最大化 ELBO 意味着同时优化:

    1. 重构能力 E q ϕ ( z ∣ x ) [ log ⁡ p ( x ∣ z ) ] \mathbb{E}_{q_{\phi}(z|x)} [\log p(x|z)] Eqϕ(zx)[logp(xz)]):使得生成模型能够更好地从潜变量 z z z 重建数据 x x x
    2. 正则化 KL ( q ϕ ( z ∣ x ) ∥ p ( z ) ) \text{KL}(q_{\phi}(z|x) \| p(z)) KL(qϕ(zx)p(z))):确保潜变量分布 q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(zx) 合理且接近先验 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ϕ(zx)p(zx))=0,即近似分布 q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(zx) 完全等于真实后验 p ( z ∣ x ) p(z|x) p(zx),这意味着模型得到了最优解。


e. ELBO 的实际应用:变分自编码器(VAE)


在 VAE 中:

  1. q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(zx) 是编码器,用于估计潜变量的后验分布。
  2. p ( x ∣ z ) p(x|z) p(xz) 是解码器,用于从潜变量生成数据。


通过最大化 ELBO,VAE 可以同时学习编码器和解码器,从而实现生成建模。


举例:

  • 假设输入数据是手写数字图像(MNIST 数据集)。
  • 编码器 q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(zx) 将图片编码为潜变量 z z z
  • 解码器 p ( x ∣ z ) p(x|z) p(xz) 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ϕ(zx)[logp(xz)]KL(qϕ(zx)p(z)).


f. 总结

  • 证据:观测数据的对数似然 log ⁡ p ( x ) \log p(x) logp(x),反映模型解释数据的能力。
  • 证据下界(ELBO):通过引入近似后验分布 q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(zx),为 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)=logp(x,z)dz=logqϕ(zx)p(x,z)qϕ(zx)dz=logEqϕ(zx)[qϕ(zx)p(x,z)]Eqϕ(zx)[logqϕ(zx)p(x,z)](Apply Equation 1)(Multiply by 1 = qϕ(zx)qϕ(zx))(Definition of Expectation)(Apply Jensen’s Inequality)(5)(6)(7)(8)

在这个推导中,我们通过应用Jensen不等式直接得出了我们的下界。然而,这并没有提供关于底层实际发生情况的太多有用信息;关键是,这个证明并没有直观地解释为什么ELBO实际上是证据的下界,因为Jensen不等式在这里避重就轻。此外,仅仅知道ELBO确实是数据的一个下界,并没有真正说明为什么我们要将其作为一个目标进行最大化。

Jensen 不等式是一个数学工具,描述了凸函数与其输入的期望值之间的关系。具体来说:

如果 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ϕ(zx)[qϕ(zx)p(x,z)]Eqϕ(zx)[logqϕ(zx)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ϕ(zx)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ϕ(zx)[qϕ(zx)p(x,z)],表示对 q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(zx) 的期望值。

根据 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ϕ(zx)[qϕ(zx)p(x,z)]Eqϕ(zx)[logX]=Eqϕ(zx)[logqϕ(zx)p(x,z)].

3. 为什么成立?
这是因为 log ⁡ x \log x logx 是凸函数,所以 Jensen 不等式适用。


Jensen 不等式在推导中的作用

通过 Jensen 不等式,将原本复杂的 log ⁡ E [ ⋅ ] \log \mathbb{E}[\cdot] logE[] 下界化为期望 E [ log ⁡ ( ⋅ ) ] \mathbb{E}[\log(\cdot)] E[log()]。这一步非常关键,因为计算 log ⁡ E [ ⋅ ] \log \mathbb{E}[\cdot] logE[] 直接优化是不可能的,但期望 E [ log ⁡ ( ⋅ ) ] \mathbb{E}[\log(\cdot)] E[log()] 更易处理,尤其是在基于采样的优化方法中。


公式解释步骤回顾

  1. 从积分到期望: 利用 q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(zx) 将联合分布 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)=logp(x,z)dz=logqϕ(zx)p(x,z)qϕ(zx)dz.

  2. 定义期望: 根据期望的定义: 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ϕ(zx)[qϕ(zx)p(x,z)].

  3. 应用 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ϕ(zx)[qϕ(zx)p(x,z)]Eqϕ(zx)[logqϕ(zx)p(x,z)].

  4. 得出 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ϕ(zx)dz=qϕ(zx)(logp(x))dz=Eqϕ(zx)[logp(x)]=Eqϕ(zx)[logp(zx)p(x,z)]=Eqϕ(zx)[logp(zx)qϕ(zx)p(x,z)qϕ(zx)]=Eqϕ(zx)[logqϕ(zx)p(x,z)]+Eqϕ(zx)[logp(zx)qϕ(zx)]=Eqϕ(zx)[logqϕ(zx)p(x,z)]+DKL(qϕ(zx)p(zx))Eqϕ(zx)[logqϕ(zx)p(x,z)](Multiply by 1 = qϕ(zx)dz)(Bring evidence into integral)(Definition of Expectation)(Apply Equation 2)(Multiply by 1 = qϕ(zx)qϕ(zx))(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ϕ(zx)与真实后验 p ( z ∣ x ) p(z|x) p(zx)之间的KL散度。事实上,正是这一KL散度项在第一次推导中的公式 (8) 被Jensen不等式神奇地移除了。理解这一项是理解ELBO与证据之间关系的关键,也是理解为什么优化ELBO是一个合适的目标的关键。

首先,我们现在知道为什么ELBO确实是一个下界:证据与ELBO之间的差异是一个严格非负的KL项,因此ELBO的值永远不会超过证据。

其次,我们探讨为什么我们要最大化ELBO。在引入了我们希望建模的潜变量 z z z后,我们的目标是学习描述观测数据的潜在结构。换句话说,我们希望优化变分后验 q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(zx)的参数,使其精确匹配真实的后验分布 p ( z ∣ x ) p(z|x) p(zx),这可以通过最小化它们的KL散度(理想情况下为零)来实现。

遗憾的是,直接最小化这一KL散度项是不切实际的,因为我们无法获得真实的 p ( z ∣ x ) p(z|x) p(zx)分布。然而,注意公式 (15) 左侧的数据似然(因此证据项 log ⁡ p ( x ) \log p(x) logp(x))对于 ϕ \phi ϕ来说始终是一个常数,因为它是通过从联合分布 p ( x , z ) p(x, z) p(x,z)中边际化所有潜变量 z z z计算得出的,与 ϕ \phi ϕ无关。

由于ELBO和KL散度项之和是一个常数,对 ϕ \phi ϕ进行任何ELBO项的最大化都会导致KL散度项的等量最小化。因此,最大化ELBO可以作为学习如何完美建模真实潜在后验分布的代理目标;我们优化ELBO越多,我们的近似后验就越接近真实后验。

此外,一旦完成训练,ELBO还可以用于估计观测数据或生成数据的似然,因为它被学习为近似模型证据 log ⁡ p ( x ) \log p(x) logp(x)

以下是对公式推导和相关知识点的详细解释,包括具体例子,以帮助您更深入地理解证据(evidence)、ELBO(证据下界)、KL散度(KL
Divergence)的关系,以及为什么优化 ELBO 是合理的目标。


1. 背景与核心目标


生成建模的目标 我们希望建模观测数据 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). 直接最大化这一项通常不可行,因为:

  1. 边际化公式 p ( x ) = ∫ p ( x , z ) d z p(x) = \int p(x, z) dz p(x)=p(x,z)dz 对复杂模型难以解析计算。
  2. 后验分布 p ( z ∣ x ) p(z|x) p(zx) 可能未知,难以显式计算。

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ϕ(zx)p(zx)),
其中:

  • 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ϕ(zx)[logqϕ(zx)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ϕ(zx)p(zx))=Eqϕ(zx)[logp(zx)qϕ(zx)]


log ⁡ p ( x ) \log p(x) logp(x) 出发

  1. 引入辅助分布 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(zx)
    q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(zx) 是近似的后验分布,用于替代难以计算的真实后验 p ( z ∣ x ) p(z|x) p(zx)。我们通过以下方式引入 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(zx)
    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ϕ(zx)dz, 其中 ∫ q ϕ ( z ∣ x ) d z = 1 \int q_\phi(z|x) dz = 1 qϕ(zx)dz=1,即 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(zx) 是一个概率分布。

  2. 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ϕ(zx)logp(x)dz.

  3. 引入联合分布 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(zx)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ϕ(zx)logp(zx)p(x,z)dz.

  4. 重新分解联合分布
    乘以 q ϕ ( z ∣ x ) q ϕ ( z ∣ x ) = 1 \frac{q_\phi(z|x)}{q_\phi(z|x)} = 1 qϕ(zx)qϕ(zx)=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ϕ(zx)logp(zx)qϕ(zx)p(x,z)qϕ(zx)dz.

  5. 拆分对数项
    使用对数的加法规则 log ⁡ a b = log ⁡ a − log ⁡ b \log \frac{a}{b} = \log a - \log b logba=logalogb,将对数项拆分为两部分: 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ϕ(zx)logqϕ(zx)p(x,z)dz+qϕ(zx)logp(zx)qϕ(zx)dz.

  6. 引入期望与 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ϕ(zx)[logqϕ(zx)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ϕ(zx)[logp(zx)qϕ(zx)]=DKL(qϕ(zx)p(zx)).

解释每一步的数学意义

  1. 引入 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(zx)
    q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(zx) 是一个近似分布,用于替代真实的后验分布 p ( z ∣ x ) p(z|x) p(zx)。真实后验通常无法直接计算,而 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(zx) 是参数化的,便于优化。

  2. 分解联合分布
    p ( x , z ) p(x, z) p(x,z) 分解为 p ( z ∣ x ) p ( x ) p(z|x)p(x) p(zx)p(x),引入 p ( z ∣ x ) p(z|x) p(zx) 是为了更直观地理解 log ⁡ p ( x ) \log p(x) logp(x) 的贡献。

  3. 引入辅助项 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(zx)
    使用 q ϕ ( z ∣ x ) q ϕ ( z ∣ x ) = 1 \frac{q_\phi(z|x)}{q_\phi(z|x)} = 1 qϕ(zx)qϕ(zx)=1 引入辅助分布,使得后续推导中可以引入 ELBO 和 KL 散度。

  4. 拆分对数项
    log ⁡ p ( x , z ) q ϕ ( z ∣ x ) \log \frac{p(x, z)}{q_\phi(z|x)} logqϕ(zx)p(x,z) 描述了近似分布 q ϕ q_\phi qϕ 与联合分布的关系,而 log ⁡ q ϕ ( z ∣ x ) p ( z ∣ x ) \log \frac{q_\phi(z|x)}{p(z|x)} logp(zx)qϕ(zx) 则描述了近似后验和真实后验的差异。

  5. 分解为 ELBO 和 KL 散度

    • ELBO:衡量生成模型的质量,优化目标是最大化 ELBO。
    • KL 散度:描述近似后验 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(zx) 与真实后验 p ( z ∣ x ) p(z|x) p(zx) 的差异。

3. ELBO 与证据的关系

  1. ELBO 是证据的下界

    • KL 散度 D KL ( q ϕ ( z ∣ x ) ∥ p ( z ∣ x ) ) D_{\text{KL}}(q_\phi(z|x) \| p(z|x)) DKL(qϕ(zx)p(zx)) 是非负的。
    • 因此: 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ϕ(zx) 完全等于真实后验 p ( z ∣ x ) p(z|x) p(zx)
  2. 为何优化 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ϕ(zx)p(zx)).

4. 直观理解 ELBO 的作用

优化潜变量后验分布 通过最大化 ELBO,我们逼近真实的后验分布 p ( z ∣ x ) p(z|x) p(zx)。这是生成建模中的核心步骤,因为潜变量 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ϕ(zx)[logp(xz)]DKL(qϕ(zx)p(z)).

  • 第一项是 重构误差,表示模型从 z z z 重构 x x x 的能力。
  • 第二项是 正则化项,鼓励 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(zx) 接近先验分布 p ( z ) p(z) p(z)


通过最大化 ELBO,我们在重构数据和约束潜变量分布之间找到平衡。


5. 具体例子:变分自编码器(VAE)


VAE 是 ELBO 优化的经典应用。以下是如何通过 VAE 实现上述目标的:


模型设定

  • q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(zx):编码器,用于将输入 x x x 映射到潜变量 z z z 的分布。
  • p θ ( x ∣ z ) p_\theta(x|z) pθ(xz):解码器,用于从潜变量 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ϕ(zx)[logpθ(xz)]DKL(qϕ(zx)p(z)).

  • 第一项:通过 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(zx) 从数据中采样 z z z,然后通过 p θ ( x ∣ z ) p_\theta(x|z) pθ(xz) 重构 x x x
  • 第二项:正则化 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(zx),使其接近标准正态分布 p ( z ) p(z) p(z)


训练过程

  1. 从真实数据集中采样数据 x x x
  2. 编码器生成 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(zx),从中采样潜变量 z z z
  3. 解码器生成 x x x 的重构样本 x ^ \hat{x} x^
  4. 优化 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ϕ(zx) 接近真实后验 p ( z ∣ x ) p(z|x) p(zx)


通过最大化ELBO,我们可以有效地学习潜变量的结构,并训练生成模型生成高质量数据,同时估计观测数据的对数似然。这种方法在生成建模中非常重要,是变分推断和生成模型的核心思想。


在这里插入图片描述图 1:图示的变分自编码器。在这里,编码器 q ( z ∣ x ) q(z|x) q(zx)为观测数据 x x x上的潜变量 z z z定义了一个分布,而 p ( x ∣ z ) p(x|z) p(xz)将潜变量解码为观测数据。


变分自编码器 (Variational Autoencoders)

在变分自编码器(VAE)的默认公式中 [1],我们直接最大化ELBO。这种方法是变分的,因为我们在由参数 ϕ \phi ϕ定义的一组潜在后验分布中,优化出最优的 q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(zx)。之所以被称为自编码器,是因为它类似于传统的自编码器模型,其中输入数据经过一个中间瓶颈表示步骤后,被训练为能够预测自身。为了明确这一联系,让我们进一步剖析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ϕ(zx)[logqϕ(zx)p(x,z)]=Eqϕ(zx)[logqϕ(zx)pθ(xz)p(z)]=Eqϕ(zx)[logpθ(xz)]+Eqϕ(zx)[logqϕ(zx)p(z)]=Eqϕ(zx)[logpθ(xz)]DKL(qϕ(zx)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ϕ(zx),可以将其视为一个编码器;它将输入转换为可能的潜变量的分布。同时,我们学习一个确定性函数 p θ ( x ∣ z ) p_{\theta}(x|z) pθ(xz),将给定的潜变量向量 z z z转换为观测数据 x x x,可以将其解释为一个解码器。

背景与核心目标


变分自编码器(Variational Autoencoder, VAE)是一种生成模型,旨在通过学习潜变量 z z z 的分布 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(zx),生成与观测数据 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ϕ(zx)[logqϕ(zx)p(x,z)]=Eqϕ(zx)[logpθ(xz)]DKL(qϕ(zx)p(z)).

这表示 ELBO(证据下界)可以分为两项:

  1. 重构项(Reconstruction Term) E q ϕ ( z ∣ x ) [ log ⁡ p θ ( x ∣ z ) ] \mathbb{E}_{q_\phi(z|x)} [\log p_\theta(x|z)] Eqϕ(zx)[logpθ(xz)]
    • 衡量模型从潜变量 z z z 重建输入数据 x x x 的能力。
    • 对应解码器的优化目标。
  2. 先验匹配项(Prior Matching Term) − D KL ( q ϕ ( z ∣ x ) ∥ p ( z ) ) -D_{\text{KL}}(q_\phi(z|x) \| p(z)) DKL(qϕ(zx)p(z))
    • 衡量近似后验 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(zx) 与先验分布 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θ(xz)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θ(xz):给定 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ϕ(zx)[logqϕ(zx)p(x,z)]=Eqϕ(zx)[logqϕ(zx)pθ(xz)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ϕ(zx)[logqϕ(zx)pθ(xz)p(z)]=Eqϕ(zx)[logpθ(xz)]+Eqϕ(zx)[logqϕ(zx)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ϕ(zx)[logqϕ(zx)p(z)]=DKL(qϕ(zx)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ϕ(zx)[logpθ(xz)]DKL(qϕ(zx)p(z)).


重构项与先验匹配项的意义

  1. 重构项(Reconstruction Term)

    • 表达式: E q ϕ ( z ∣ x ) [ log ⁡ p θ ( x ∣ z ) ] \mathbb{E}_{q_\phi(z|x)} [\log p_\theta(x|z)] Eqϕ(zx)[logpθ(xz)]
    • 意义:衡量模型生成样本 x ^ \hat{x} x^ 与输入数据 x x x 的相似度,优化方向是提高解码器从 z z z 重构 x x x 的能力。
    • 举例:
      • 如果 x x x 是手写数字图像,解码器希望从 z z z 中生成一张与输入图像尽可能相似的重建图像。
  2. 先验匹配项(Prior Matching Term)

    • 表达式: − D KL ( q ϕ ( z ∣ x ) ∥ p ( z ) ) -D_{\text{KL}}(q_\phi(z|x) \| p(z)) DKL(qϕ(zx)p(z))
    • 意义:通过最小化 KL 散度,将近似后验分布 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(zx) 调整为与先验分布 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ϕ(zx) 的分布均值接近 0,方差接近 1。

为什么 VAE 类似于自编码器?

  1. 编码器(Encoder)
  • VAE 中的编码器通过 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(zx) 对输入数据 x x x 映射到潜变量 z z z 的分布。
  • 它类似于传统自编码器中的压缩步骤,将数据编码为低维表示。
  1. 解码器(Decoder)
  • VAE 中的解码器通过 p θ ( x ∣ z ) p_\theta(x|z) pθ(xz) 从潜变量 z z z 重建数据 x x x
  • 它类似于传统自编码器中的解压缩步骤,将低维表示还原为原始数据。
  1. 区别
  • 传统自编码器直接优化重构误差 ∥ x − x ^ ∥ 2 \|x - \hat{x}\|^2 xx^2
  • VAE 同时优化:
    • 重构误差(通过最大化 E q ϕ ( z ∣ x ) [ log ⁡ p θ ( x ∣ z ) ] \mathbb{E}_{q_\phi(z|x)} [\log p_\theta(x|z)] Eqϕ(zx)[logpθ(xz)])。
    • 潜变量正则化(通过最小化 D KL ( q ϕ ( z ∣ x ) ∥ p ( z ) ) D_{\text{KL}}(q_\phi(z|x) \| p(z)) DKL(qϕ(zx)p(z)))。

具体例子:MNIST 手写数字生成

  1. 模型结构
  • 输入数据 x x x:MNIST 手写数字图像(28x28 灰度图像)。
  • 编码器 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(zx):将 x x x 压缩为潜变量 z z z 的分布(均值和方差)。
  • 解码器 p θ ( x ∣ z ) p_\theta(x|z) pθ(xz):从 z z z 中生成重建图像 x ^ \hat{x} x^
  1. 训练目标
    优化 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ϕ(zx)[logpθ(xz)]DKL(qϕ(zx)p(z)).
  • 第一项:提高解码器生成图像的质量。
  • 第二项:确保潜变量 z z z 的分布接近先验。
  1. 训练结果
  • 编码器学会从输入图像中提取潜在特征(如手写数字的类别)。
  • 解码器能够从潜变量生成与输入图像类似的手写数字。

总结

  1. ELBO 分解的意义

    • 重构项:保证生成的样本尽可能接近输入数据。
    • 先验匹配项:约束潜变量的分布,使其具有良好的生成性。
  2. VAE 的自编码器特性

    • 编码器和解码器分别对应压缩和解压缩过程。
    • 引入概率分布后,能够生成新的数据样本,而不仅仅是重建输入。
  3. VAE 的核心优势

    • 能生成多样性更高的数据。
    • 潜变量 z z z 的分布具有更好的解释性和生成能力。

公式 (19) 中的两个项都有直观的解释:第一项衡量了解码器从变分分布中重构的似然性;这一项确保学习到的分布能够有效地建模潜变量,从而使原始数据可以被重新生成。第二项衡量学习到的变分分布与潜变量上先验分布的相似程度。最小化这一项能够促使编码器实际学习一个分布,而不是退化为一个Dirac δ \delta δ函数。因此,最大化ELBO等价于最大化第一项并最小化第二项。

重构项与先验匹配项的意义


公式 (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ϕ(zx)[logpθ(xz)]DKL(qϕ(zx)p(z)).

  • 重构项 E q ϕ ( z ∣ x ) [ log ⁡ p θ ( x ∣ z ) ] \mathbb{E}_{q_\phi(z|x)} [\log p_\theta(x|z)] Eqϕ(zx)[logpθ(xz)]

    • 衡量解码器从潜变量 z z z 重构输入数据 x x x 的能力。
    • 确保学习到的潜变量分布 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(zx) 能有效生成高质量的重构数据。
    • 直观理解:解码器生成的数据 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ϕ(zx)p(z))

    • 衡量编码器 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(zx) 学习到的潜变量分布与先验分布 p ( z ) p(z) p(z) 的相似程度。
    • 最小化 KL 散度避免编码器学习到退化的分布(如 Dirac δ \delta δ 函数),从而保留生成潜变量的多样性。
    • 直观理解:使编码器学习到的分布更接近标准正态分布,有利于生成新数据。

VAE的一个显著特征是如何在参数 ϕ \phi ϕ θ \theta θ上联合优化ELBO。VAE的编码器通常被选择为建模具有对角协方差的多元高斯分布,而先验分布通常选择为标准多元高斯分布:

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ϕ(zx)p(z)=N(z;μϕ(x),σϕ2(x)I)=N(z;0,I)(20)(21)

  1. 编码器 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(zx)
    • 被建模为多元高斯分布:
      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ϕ(zx)=N(z;μϕ(x),σϕ2(x)I).
      编码器从输入数据 x x x 中学习均值 μ ϕ ( x ) \mu_\phi(x) μϕ(x) 和标准差 σ ϕ ( x ) \sigma_\phi(x) σϕ(x)
  2. 先验分布 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).

然后,ELBO中的KL散度项可以通过解析方法计算,而重构项可以使用蒙特卡洛估计进行近似。我们的目标函数因此可以重写为:

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ϕ(zx)[logpθ(xz)]DKL(qϕ(zx)p(z))ϕ,θargmaxl=1Llogpθ(xz(l))DKL(qϕ(zx)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ϕ(zx)中采样的,针对数据集中的每个观测 x x x进行。然而,在这一默认设置中会出现一个问题:用于计算损失的每个 z ( l ) z^{(l)} z(l)都是通过一个随机采样过程生成的,而这个过程通常是不可微的。幸运的是,当 q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(zx)被设计为建模某些特定分布(包括多元高斯分布)时,可以通过重参数化技巧解决这个问题。

KL 散度项的计算
KL 散度项 D KL ( q ϕ ( z ∣ x ) ∥ p ( z ) ) D_{\text{KL}}(q_\phi(z|x) \| p(z)) DKL(qϕ(zx)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ϕ(zx)p(z))=21j=1d(σϕ2(x)j+μϕ(x)j21logσϕ2(x)j), 其中:

  • μ ϕ ( x ) \mu_\phi(x) μϕ(x) 是潜变量的均值, σ ϕ ( x ) \sigma_\phi(x) σϕ(x) 是标准差。
  • d d d 是潜变量的维度。


由于 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(zx) 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ϕ(zx)[logpθ(xz)] 的期望通常无法解析计算,因为解码器 p θ ( x ∣ z ) p_\theta(x|z) pθ(xz) 是一个复杂的非线性模型(例如神经网络)。


解决方案:
使用蒙特卡洛方法,通过从 q ϕ ( z ∣ x ) q_\phi(z|x) qϕ(zx) 中采样 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ϕ(zx)[logpθ(xz)]L1l=1Llogpθ(xz(l)), 其中:

  • z ( l ) ∼ q ϕ ( z ∣ x ) z^{(l)} \sim q_\phi(z|x) z(l)qϕ(zx) 是从编码器中采样的潜变量。
  • log ⁡ p θ ( x ∣ z ( l ) ) \log p_\theta(x|z^{(l)}) logpθ(xz(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) xN(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)

换句话说,任意高斯分布可以被解释为标准高斯分布( ϵ \epsilon ϵ为其样本),其均值通过加法从0移动到目标均值 μ \mu μ,方差通过目标方差 σ 2 \sigma^2 σ2进行拉伸。因此,通过重参数化技巧,从任意高斯分布采样可以通过以下步骤完成:从标准高斯分布采样,将结果按目标标准差进行缩放,再通过目标均值进行平移。

在VAE中,每个 z z z因此被计算为输入 x x x和辅助噪声变量 ϵ \epsilon ϵ的确定性函数:

z = μ ϕ ( x ) + σ ϕ ( x ) ⊙ ϵ with ϵ ∼ N ( ϵ ; 0 , I ) z = \mu_{\phi}(x) + \sigma_{\phi}(x) \odot \epsilon \quad \text{with} \quad \epsilon \sim \mathcal{N}(\epsilon; 0, \mathbf{I}) z=μϕ(x)+σϕ(x)ϵwithϵN(ϵ;0,I)

其中, ⊙ \odot 表示逐元素相乘。在这种重参数化的 z z z版本下,可以按照需要计算关于 ϕ \phi ϕ的梯度,从而优化 μ ϕ \mu_{\phi} μϕ σ ϕ \sigma_{\phi} σϕ。因此,VAE利用重参数化技巧和蒙特卡洛估计,在 ϕ \phi ϕ θ \theta θ上联合优化ELBO。

重参数化技巧


问题:不可微的采样过程

  • 重构项中的潜变量 z ( l ) z^{(l)} z(l) 是通过随机采样生成的: z ( l ) ∼ q ϕ ( z ∣ x ) . z^{(l)} \sim q_\phi(z|x). z(l)qϕ(zx).
  • 随机采样过程不可微,因此无法通过梯度下降优化。


解决方案:重参数化技巧

  • 重参数化技巧将随机采样的过程重写为确定性函数的形式: z = μ ϕ ( x ) + σ ϕ ( x ) ⊙ ϵ , ϵ ∼ N ( 0 , I ) . z = \mu_\phi(x) + \sigma_\phi(x) \odot \epsilon, \quad \epsilon \sim \mathcal{N}(0, \mathbf{I}). z=μϕ(x)+σϕ(x)ϵ,ϵN(0,I).
  • 解释:
    • ϵ \epsilon ϵ 是从标准正态分布采样的噪声。
    • μ ϕ ( x ) \mu_\phi(x) μϕ(x) σ ϕ ( x ) \sigma_\phi(x) σϕ(x) 分别控制均值和方差的变化。


优点:可微性

  • 重参数化将 z z z 的随机性转移到噪声变量 ϵ \epsilon ϵ 中,而 μ ϕ ( x ) \mu_\phi(x) μϕ(x) σ ϕ ( x ) \sigma_\phi(x) σϕ(x) 变为完全可微。
  • 可以使用梯度下降优化 ϕ \phi ϕ θ \theta θ

在训练好VAE之后,可以通过直接从潜在空间 p ( z ) p(z) p(z)中采样,并将其输入解码器来生成新数据。当 z z z的维度小于输入 x x x的维度时,变分自编码器尤其有趣,因为此时我们可能正在学习紧凑且有用的表示。

此外,当学到一个语义上有意义的潜在空间时,可以在将潜在向量传递给解码器之前对其进行编辑,以更精确地控制生成的数据。

VAE 的训练与生成


训练阶段

  1. 输入数据:从数据集中取样观测数据 x x x
  2. 编码器
    • 编码器根据输入 x x x 计算潜变量的分布参数 μ ϕ ( x ) \mu_\phi(x) μϕ(x) σ ϕ ( x ) \sigma_\phi(x) σϕ(x)
    • 使用重参数化技巧采样潜变量:
      z = μ ϕ ( x ) + σ ϕ ( x ) ⊙ ϵ , ϵ ∼ N ( 0 , I ) . z = \mu_\phi(x) + \sigma_\phi(x) \odot \epsilon, \quad \epsilon \sim \mathcal{N}(0, \mathbf{I}). z=μϕ(x)+σϕ(x)ϵ,ϵN(0,I).
  3. 解码器
    • 解码器根据潜变量 z z z 生成重构数据 x ^ \hat{x} x^
  4. 优化目标
    • 使用蒙特卡洛估计计算重构项。
    • 使用解析公式计算 KL 散度。
    • 最大化 ELBO 对 ϕ \phi ϕ θ \theta θ 进行联合优化。


生成阶段

  • 从标准正态分布 p ( z ) p(z) p(z) 中采样潜变量 z z z z ∼ N ( 0 , I ) . z \sim \mathcal{N}(0, \mathbf{I}). zN(0,I).
  • z z z 输入解码器生成新数据 x ^ \hat{x} x^ x ^ ∼ p θ ( x ∣ z ) . \hat{x} \sim p_\theta(x|z). x^pθ(xz).

具体例子:MNIST 手写数字数据集

  1. 训练过程

    • 输入:MNIST 手写数字图像。
    • 编码器:提取图像的潜在特征 μ ϕ ( x ) \mu_\phi(x) μϕ(x) σ ϕ ( x ) \sigma_\phi(x) σϕ(x)
    • 解码器:根据潜变量 z z z 生成重构图像。
  2. 生成新数据

    • 从标准正态分布采样 z z z
    • z z z 输入解码器生成新手写数字图像。
  3. 潜变量编辑

    • 修改潜变量的某些维度,如调整数字的弯曲程度或粗细。

分层变分自编码器(Hierarchical Variational Autoencoders)

分层变分自编码器(Hierarchical Variational Autoencoder,HVAE)[2, 3] 是VAE的一种推广,它将潜变量扩展到多个分层结构。在这种公式下,潜变量本身被解释为由其他更高层次、更抽象的潜变量生成的。直观上,就像我们将三维观测物体视为由更高层次的抽象潜变量生成一样,柏拉图洞穴中的人将三维物体视为生成他们二维观测的潜变量。因此,从柏拉图洞穴居民的视角来看,他们的观测可以被视为由一个深度为2(或更多)的潜在层次结构建模的。

在一般的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θ(xz1)t=2Tpθ(zt1zt)(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:Tx)=qϕ(z1x)t=2Tqϕ(ztzt1)(24)

马尔可夫HVAE的联合分布和后验分布解析!!!

这样,我们就可以很容易地将 ELBO 扩展为:

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)=logp(x,z1:T)dz1:T=logqϕ(z1:Tx)p(x,z1:T)qϕ(z1:Tx)dz1:T=logEqϕ(z1:Tx)[qϕ(z1:Tx)p(x,z1:T)]Eqϕ(z1:Tx)[logqϕ(z1:Tx)p(x,z1:T)](Apply Equation 1)(Multiply by 1 = qϕ(z1:Tx)qϕ(z1:Tx))(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:Tx)[f(z1:T)]=qϕ(z1:Tx)f(z1:T)dz1:T,


直观理解

  1. 目标

    • log ⁡ p ( x ) \log p(x) logp(x) 是观测数据 x x x 的对数似然,描述生成模型对数据的解释能力。
    • 我们通过 ELBO 的优化,间接优化 log ⁡ p ( x ) \log p(x) logp(x)
  2. 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:Tx)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:Tx) 对真实后验 p ( z 1 : T ∣ x ) p(z_{1:T}|x) p(z1:Tx) 的近似。

然后,我们可以将联合分布(公式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θ(xz1)t=2Tpθ(zt1zt)(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:Tx)=qϕ(z1x)t=2Tqϕ(ztzt1)(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:Tx)[logqϕ(z1:Tx)p(x,z1:T)]=Eqϕ(z1:Tx)[logqϕ(z1x)t=2Tqϕ(ztzt1)p(zT)pθ(xz1)t=2Tpθ(zt1zt)](29)

正如我们将在下面展示的,当我们研究变分扩散模型时,这一目标可以进一步分解为可解释的组成部分。


论文笔记(六十三)Understanding Diffusion Models: A Unified Perspective(二)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/893654.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QT6 + CMAKE编译OPENCV3.9

参考文档 [1] https://blog.csdn.net/rjkf_css/article/details/135676077 前提条件 配置好相关运行环境:QT6、OPENCV3.9的sources文件 OPENCV下载网页:https://opencv.org/releases/ QT6下载教程:https://blog.csdn.net/caoshangpa/article…

Zemax 非序列模式下的颜色检测器和颜色混合

在 Zemax 的非序列模式中,探测器用于捕获系统中射线的信息。可以使用各种类型的探测器来捕获光学系统性能的不同方面,例如矩形探测器,它存储撞击它的 NSC 源射线的能量数据。 另一种经常使用的探测器类型是 Detector Color,它是一…

金融级分布式数据库如何优化?PawSQL发布OceanBase专项调优指南

前言 OceanBase数据库作为国产自主可控的分布式数据库,在金融、电商、政务等领域得到广泛应用,优化OceanBase数据库的查询性能变得愈发重要。PawSQL为OceanBase数据库提供了全方位的SQL性能优化支持,助力用户充分发挥OceanBase数据库的性能潜…

uni-app 程序打包 Android apk、安卓夜神模拟器调试运行

1、打包思路 云端打包方案(每天免费次数限制5,最简单,可以先打包尝试一下你的程序打包后是否能用): HBuilderX 发行App-Android云打包 选择Android、使用云端证书、快速安心打包本地打包: HBuilderX …

小利特惠源码/生活缴费/电话费/油卡燃气/等充值业务类源码附带承兑系统

全新首发小利特惠/生活缴费/电话费/油卡燃气/等充值业务类源码附带U商承兑系统 安装教程如下 图片:

MacOS安装Docker battery-historian

文章目录 需求安装battery-historian实测配置国内源相关文章 需求 分析Android电池耗电情况、唤醒、doze状态等都要用battery-historian, 在 MacOS 上安装 battery-historian,可以使用 Docker 进行安装runcare/battery-historian:latest。装完不需要做任…

二叉树(了解)c++

二叉树是一种特殊的树型结构,它的特点是: 每个结点至多只有2棵子树(即二叉树中不存在度大于2的结点) 并且二叉树的子树有左右之分,其次序不能任意颠倒,因此是一颗有序树 以A结点为例,左边的B是它的左孩子,右边的C是…

亚博microros小车-原生ubuntu支持系列:7-脸部检测

背景知识 官网介绍: Face Mesh - mediapipe mpFaceMesh.FaceMesh() 类的参数有:self.staticMode, self.maxFaces, self.minDetectionCon, self.minTrackCon staticMode:是否将每帧图像作为静态图像处理。如果为 True,每帧都会进行人脸检测…

想品客老师的第六天:函数

函数基础的部分写在这里 函数声明 在js里万物皆对象,函数也可以用对象的方式定义 let func new Function("title", "console.log(title)");func(我是参数title); 也可以对函数赋值: let cms function (title) {console.log(tit…

leetcode刷题记录(八十一)——236. 二叉树的最近公共祖先

(一)问题描述 236. 二叉树的最近公共祖先 - 力扣(LeetCode)236. 二叉树的最近公共祖先 - 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科 [https://baike.baidu.com/item/%E6%9C%80%E8%BF%91%E5%85%AC%E5%85%B…

Spring Boot整合JavaMail实现邮件发送

一. 发送邮件原理 发件人【设置授权码】 - SMTP协议【Simple Mail TransferProtocol - 是一种提供可靠且有效的电子邮件传输的协议】 - 收件人 二. 获取授权码 开通POP3/SMTP,获取授权码 授权码是QQ邮箱推出的,用于登录第三方客户端的专用密码。适用…

AIGC数智化赋能:创新地方文旅内容生产传播模式

随着人工智能技术的迅猛发展,AI的应用领域日益扩大。当前,如何将AI这一新质生产力转化为新质传播力和影响力,进而为城市文化和旅游产业的内容创造、传播及消费模式带来全面革新,已成为数字化文旅发展的关键议题。 AI宣传——提升…

Tensor 基本操作4 理解 indexing,加减乘除和 broadcasting 运算 | PyTorch 深度学习实战

前一篇文章,Tensor 基本操作3 理解 shape, stride, storage, view,is_contiguous 和 reshape 操作 | PyTorch 深度学习实战 本系列文章 GitHub Repo: https://github.com/hailiang-wang/pytorch-get-started Tensor 基本使用 索引 indexing示例代码 加减…

STM32 硬件I2C读写

单片机学习! 目录 前言 一、步骤 二、配置I2C外设 2.1 开启I2C外设和GPIO口时钟 2.2 GPIO口初始化为复用开漏模式 2.3 结构体配置I2C 2.4 使能I2C 2.5 配置I2C外设总代码 三、指定地址写时序 3.1 生产起始条件S 3.2 监测EV5事件 3.3 发送从机地址 3.4 …

使用 Elasticsearch 导航检索增强生成图表

作者:来自 Elastic Louis Jourdain 及 Ivan Monnier 了解如何使用知识图谱来增强 RAG 结果,同时在 Elasticsearch 中高效存储图谱。本指南探讨了根据用户查询动态生成知识子图的详细策略。 检索增强生成 (RAG) 通过将大型语言模型 (LLM) 的输出基于事实数…

【后端开发】字节跳动青训营之性能分析工具pprof

性能分析工具pprof 一、测试程序介绍二、pprof工具安装与使用2.1 pprof工具安装2.2 pprof工具使用 资料链接: 项目代码链接实验指南pprof使用指南 一、测试程序介绍 package mainimport ("log""net/http"_ "net/http/pprof" // 自…

【落羽的落羽 数据结构篇】算法复杂度

文章目录 一、数据结构和算法简介二、算法复杂度1. 时间复杂度2. 空间复杂度 一、数据结构和算法简介 数据结构是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。没有一种单一的数据结构对所有用途都有用,所以我们要学…

VsCode安装文档

一、下载 进入VS Code官网:Visual Studio Code - Code Editing. Redefined,点击 DownLoad for Windows下载windows版本 当然也可以点击旁边的箭头,下载Windows版本 或 Mac OS 版本 备注: Stable:稳定版Insiders&#…

32、【OS】【Nuttx】OSTest分析(1):stdio测试(二)

背景 接上篇wiki 31、【OS】【Nuttx】OSTest分析(1):stdio测试(一) 继续stdio测试的分析,上篇讲到标准IO端口初始化,单从测试内容来说其实很简单,没啥可分析的,但这几篇…

机器学习-核函数(Kernel Function)

核函数(Kernel Function)是一种数学函数,主要用于将数据映射到一个更高维的特征空间,以便于在这个新特征空间中更容易找到数据的结构或模式。核函数的主要作用是在不需要显式计算高维特征空间的情况下,通过内积操作来实…