在对概率生成模型的审视中,隐变量模型(LVM)以其捕捉复杂数据集中丰富、潜在结构的能力而特点显著。其核心思想很巧妙:我们假设观察到的数据,称之为$x$,是由一些隐藏的,即潜在的,变量$z$生成的。这些隐变量不能被直接观察到,但它们控制着我们在$x$中看到的模式和变异。可以这样来考虑:如果观察数据$x$包含手写数字图像,隐变量$z$可能代表书写风格、数字本身或笔画粗细等潜在因素。通过对这些未观察到的因素建模,LVM的目标是从更根本的层面来理解数据。这种方法直接与表征学习的目标相关联。隐空间$\mathcal{Z}$,即$z$所处的空间,通常是原始数据空间$\mathcal{X}$的一种压缩的、更具意义的表征。如果设计得当,这种隐表征能够分离数据中的变异因素,使其对多种后续任务都有用。为何使用隐变量模型?你可能会想,我们为何要引入这额外的未观察变量层。这有几个令人信服的理由:复杂数据分布建模:直接为图像或文本等高维数据建模概率分布$p(x)$是极其困难的。LVM通过分解问题,提供了一种更易处理的方法。我们不是直接建模$p(x)$,而是为隐变量建模一个更简单的先验分布$p(z)$,以及一个描述给定$z$如何生成$x$的条件分布$p(x|z)$。数据生成:一旦LVM训练完成,我们就可以生成与训练数据相似的新的合成数据样本。实现方式是:首先从先验$p(z)$中抽取一个样本$z_{new}$,然后从条件分布$p(x|z_{new})$中抽取一个样本$x_{new}$。这种生成能力是VAE等模型的显著特点。学习有意义的表征:隐变量$z$可以提供$x$的压缩且通常可解释的表征。例如,如果$z$的维度低于$x$,LVM就执行了一种非线性降维。这些表征的结构是本课程的一个主要议题。处理缺失数据与不确定性:LVM可以通过对$x$中未观察部分进行边缘化,自然地处理缺失数据。它们还提供了一个量化预测和表征中不确定性的体系。LVM的数学公式化让我们对这些思想进行公式化。我们有:观察变量 $x \in \mathcal{X}$:我们可获取的数据点(例如,图像、句子)。隐变量 $z \in \mathcal{Z}$:我们假设生成$x$的未观察变量。观察变量和隐变量的联合概率分布是LVM的根本,通常定义为: $$ p(x, z) = p(x|z) p(z) $$我们来分解这些组成部分:先验分布 $p(z)$:此分布定义了我们在观察任何数据之前对隐变量的初始信念。实际中,$p(z)$通常被选择为一种简单、易于处理的分布,例如标准多元高斯分布($\mathcal{N}(0, I)$)。这种简单性有助于采样,并可以作为一种正则项。似然(或生成分布) $p(x|z)$:此条件分布指定了观察数据$x$如何从隐变量$z$生成。在现代深度学习中,$p(x|z)$通常由神经网络参数化,该网络常被称为解码器或生成器网络。例如,如果$x$是图像,$p(x|z)$可能是一个高斯分布,其均值是反卷积神经网络以$z$为输入时的输出,并且其协方差可能是固定的(例如,$\sigma^2 I$)。如果$x$是二进制,$p(x|z)$可能是一个伯努利分布,其参数是神经网络的输出。主要目标通常是建模观察数据的边缘分布$p(x)$,也称为模型证据: $$ p(x) = \int p(x, z) dz = \int p(x|z)p(z) dz $$ 这个积分对隐变量的所有可能配置进行求和(或积分,对于连续$z$)。计算此积分是LVM中的一个主要难题,因为它通常是难以处理的,尤其当$z$是高维且$p(x|z)$复杂时(如深度神经网络)。一种图形视角我们可以使用概率图模型(PGM)来可视化一个简单LVM的生成过程。digraph G { graph [fontname="helvetica", fontsize=10]; node [shape=circle, style="filled", fontname="helvetica", fontsize=10, fixedsize=true, width=0.6, height=0.6]; edge [fontname="helvetica", fontsize=9]; z [label="z", fillcolor="#ffc9c9"]; // 隐变量 x [label="x", fillcolor="#b2f2bb"]; // 观察变量 subgraph cluster_prior { label="先验 p(z)"; labeljust="l"; style="dotted"; bgcolor="#e9ecef"; prior_node [label="", shape=point, style=invis]; // 用于间距的隐形节点 z; } z -> x [label=" 似然 p(x|z) ", color="#495057"]; }一个简单的有向图模型,表示LVM中的生成过程。圆形表示随机变量。隐变量$z$(从$p(z)$中抽取)生成观察变量$x$(通过$p(x|z)$)。此图显示$z$首先被采样,然后$x$在给定$z$的条件下被采样。这些分布的参数(例如,参数化$p(x|z)$的神经网络的权重)是从数据中学习的。推断:理解隐空间除了生成之外,我们还希望进行推断,这在此语境中通常指计算给定观察数据点$x$的隐变量的后验分布: $$ p(z|x) = \frac{p(x|z)p(z)}{p(x)} = \frac{p(x|z)p(z)}{\int p(x|z')p(z') dz'} $$ 这个后验分布$p(z|x)$告诉我们哪些$z$值可能生成了特定的$x$。在VAE中,一个名为编码器(或推断网络)的神经网络被训练来近似此后验分布。了解$p(z|x)$对于学习有意义的表征非常重要,因为它使我们能够将观察数据$x$映射到隐空间$\mathcal{Z}$。然而,边缘似然$p(x)$(分母)的难以处理性使得直接计算$p(z|x)$同样具有挑战性。正是因此,近似推断方法,例如变分推断(VAE中的“V”),变得不可或缺。LVM的主要目标训练和使用LVM通常围绕几个主要目标:密度估计:模型应为与训练集中相似的数据点赋予高概率$p(x)$,为不相似的点赋予低概率。数据生成:如前所述,采样出具有训练分布特征的新数据点$x_{new}$。表征学习:学习一个信息丰富的隐空间$\mathcal{Z}$,其中每个$z$捕捉数据中的显著变异。这涉及学习从$x$到$z$的映射(推断)和从$z$到$x$的映射(生成)。后续任务:使用学习到的表征$z$进行分类、聚类或回归等任务。计算上的难点LVM的强大能力和灵活性伴随着显著的计算挑战:难以处理的边缘似然:如我们所见,$p(x) = \int p(x|z)p(z) dz$通常是难以处理的。这使得在训练期间直接最大化数据似然变得困难,并且难以通过比较$p(x)$值来评估模型性能。难以处理的后验:后验$p(z|x)$通常也难以处理,因为其分母是$p(x)$。这阻碍了我们推断给定数据点的隐表征的能力。这些难以处理性并非仅仅是小麻烦;它们是根本性的障碍,推动了生成模型的大部分研究。变分自编码器,作为本课程的重点,提供了一种巧妙而有效的框架,使用变分推断和神经网络来应对这些挑战。通过用一个更简单、易于处理的分布$q(z|x)$近似真实后验$p(z|x)$,VAE能够同时学习生成模型$p(x|z)$和推断模型$q(z|x)$。理解LVM的这一根本理论、其前景及其固有的困难,对于我们转向VAE的具体内容非常重要。在后续的章节中,你将看到VAE如何在这些原理之上构建,以创建能够从复杂数据中学习丰富表征的强大生成模型。