Einsum Networks: Fast and Scalable Learning of Tractable Probabilistic Circuits
Einsum网络:可追踪概率电路的高效可扩展学习
https://arxiv.org/pdf/2004.06231
![]()
摘要:
概率电路(Probabilistic Circuits, PCs)是概率建模中一个颇具前景的方向,因其支持多种精确且高效的推理例程。近期受“深度学习风格”启发的PC实现致力于提升可扩展性,但由于其计算图连接稀疏,在真实数据上的训练仍面临困难。本文提出爱因斯坦求和网络(Einsum Networks, EiNets),一种全新的PC实现架构,在多个方面显著改进了已有工作。EiNets的核心思想是将大量算术运算整合进一个统一的、整体性的einsum(爱因斯坦求和)操作中,相较于先前实现,可带来高达两个数量级的速度提升与内存节省。在算法层面,我们指出:通过利用自动微分,概率电路中期望最大化(Expectation-Maximization, EM)算法的实现可被显著简化。此外,我们验证了EiNets能良好扩展到此前难以处理的大规模数据集(如SVHN与CelebA),并可作为可靠的生成式图像模型使用。
- 引言概率建模的核心目标是逼近数据生成分布,从而通过推理手段回答各类统计查询。近年来,人们提出了许多基于深度神经网络的新型概率模型,例如变分自编码器(Variational Autoencoders, VAEs)(Kingma & Welling, 2014)(早期曾被称为密度网络(Density Networks)(MacKay, 1995))、标准化流(Normalizing Flows, Flows)(Rezende & Mohamed, 2015;Papamakarios 等, 2019)、自回归模型(Autoregressive Models, ARMs)(Larochelle & Murray, 2011;Uria 等, 2016),以及生成对抗网络(Generative Adversarial Networks, GANs)(Goodfellow 等, 2014)。尽管所有这些模型在大规模数据集上均取得了令人瞩目的成果——即在表征能力与学习性能方面取得了成功——但它们在推理(inference)方面仍存在明显不足;而推理恰恰是概率建模与推理(Pearl, 1988;Koller & Friedman, 2009)的核心环节之一。
上述所有模型均支持无偏采样,从而可通过蒙特卡洛估计实现近似推理。然而,除最简单的推理查询之外,该策略很快便变得不可靠且计算代价高昂。其他近似推理技术(例如变分推理)也往往存在偏差,其推理质量通常难以分析。除采样外,仅有 ARMs 与 Flows 支持对给定样本进行高效概率密度评估——此项能力可用于模型比较与异常检测等任务。
![]()
这些在推理方面的不足促使了一股日益增长的研究浪潮,专注于可处理的概率建模(tractable probabilistic modeling),即构建一类受约束的概率模型,使得类似 (1) 的推理查询能够被精确且高效地(在多项式时间内)计算出来。其中最突出的一类可处理模型便是概率电路(probabilistic circuits, PCs),它通过一个计算图来表示概率密度,该计算图包含:i) 混合(凸和节点)、ii) 因子分解(乘积节点)、iii) 可处理分布(叶节点/输入节点)。PCs 的一个关键结构特性是可分解性(decomposability)(Darwiche, 2003),它确保任何积分(如式 (1) 中出现的积分)均可在电路规模的线性时间内完成计算。PCs 还可配备进一步的结构约束,以解锁更广泛的可处理推理例程——详见第 2 节概述。然而,这些结构约束在实践中使 PC 难以应用,因为它们会导致高度稀疏且杂乱的计算图,而这与当前主流机器学习框架并不兼容。此外,PCs 通常在对数域中实现,这会进一步拖慢学习与推理速度。
在本文中,我们提出一种新颖的 PC 实现架构,旨在缓解这些实际困难,并使 PC 的评估与训练速度比以往实现快达两个数量级(Pronobis 等, 2017;Peharz 等, 2019)。核心思想是在同一拓扑层上,使用单一的整体式 einsum 操作来计算所有的乘法与加法运算。这样,主要的计算工作便由一个并行操作承担,而该操作在大多数数值计算框架中均有高效的 CPU 和 GPU 实现。为确保数值稳定性,我们将广为人知的“log-sum-exp”技巧扩展到我们的设置,从而得到“log-einsum-exp”技巧。由于我们的模型通过一系列大型 einsum 层层级结构来实现 PC,我们将此模型称为爱因斯坦求和网络(Einsum Network, EiNet)。
作为进一步的贡献,我们提出了两项用于训练 PC 的算法改进。首先,我们证明,期望最大化(Expectation-Maximization, EM)——PCs 的标准最大似然学习算法(Peharz 等, 2017)——可以通过模型对数概率的梯度轻松实现。因此,EM 可借助自动微分(几乎所有主流机器学习框架均提供)来实现。其次,我们利用随机在线 EM(Sato, 1999)以进一步提升 EiNets 的学习速度,或使其能够在大规模数据集上运行。实验表明,EiNets 能够快速学习街景门牌号(SVHN)和 CelebA 数据集上的生成模型。据我们所知,这是首次成功在如此规模的数据集上训练 PC。
此类规模的数据集。EiNets 能够生成高质量的图像样本,同时保持可处理的推理能力,例如计算条件密度 (1)。这可用于任意图像修复任务及其他高级推理任务。
![]()
- 概率电路概率电路(Probabilistic Circuits, PCs)是一类概率模型,支持多种精确且高效的推理例程。PC 最早的代表是算术电路(Arithmetic Circuits, ACs)(Darwiche, 2002;2003),其基础是可分解否定范式(Decomposable Negation Normal Forms, DNNFs)(Darwiche, 1999;2001)——一种用于命题逻辑公式(propositional logic formulas)的可处理表示形式。PC 家族的其他成员还包括:和积网络(Sum-Product Networks, SPNs)(Poon & Domingos, 2011)、割集网络(Cutset Networks, CNs)(Rahman 等, 2014),以及概率句子决策图(Probabilistic Sentential Decision Diagrams, PSDDs)(Kisa 等, 2014)。不同类型的 PC 之间主要区别在于:i) 所假设的结构约束集合及相应的可处理推理例程;ii) 语法与表示形式;iii) 应用场景。为以统一方式处理这些模型,我们采纳(Van den Broeck 等, 2019)提出的统称术语“概率电路”(probabilistic circuits),并主要通过其结构性质来区分 PC 的各类具体实例。
![]()
![]()
![]()
在本文中,我们仅考虑光滑且可分解的 PC(也称为 SPN),因为它们便于实现高效的边缘化与条件化。本文未予考虑的另一项结构性质是确定性(Determinism)(Darwiche, 2003),它允许精确的概率最大化(most-probable-explanation),而在非确定性 PC 中,此问题属于 NP-hard 难度(de Campos, 2011;Peharz 等, 2017)。此外,PC 还可配备结构化可分解性(Structured Decomposability)(Kisa 等, 2014),这是一种更强的可分解性概念,允许电路乘法运算并计算某些期望值(Shen 等, 2016;Khosravi 等, 2019)。
- 爱因斯坦求和网络 Einsum Networks
3.1. Vectorizing Probabilistic Circuits 向量化概率电路
![]()
这种向量化的 PC 版本通常被称为区域图(region graph)(Dennis & Ventura, 2012;Trapp 等, 2019a),并已被用于先前支持 GPU 的实现中(Pronobis 等, 2017;Peharz 等, 2019)。可以很容易地验证,我们期望的结构性质——光滑性与可分解性——在向量化的 PC 中依然保持。
在本文余下的部分,我们使用符号 S 、 P 、 L 分别表示求和节点、乘积节点和叶节点的向量版本,并称它们为求和节点、乘积节点和叶节点,或简称为求和、乘积和叶节点。对于这些向量中的任意单个条目,我们明确称之为“条目”(entry)或“运算”(operation)。
原则上,每个叶节点或求和节点的条目数 K 可能不同,但这会导致 PC 设计不够统一。因此,在本文中,为简化起见,我们假设所有叶节点和求和节点均采用相同的 K 。此外,我们还对计算图 G 的结构做出一些简化假设。首先,我们假设结构在求和/叶节点与乘积节点之间交替出现,即:求和节点的子节点只能是乘积节点,而乘积节点的子节点只能是求和节点或叶节点。其次,我们假设 PC 的根节点是一个求和节点。这些假设在 PC 文献中很常见,且并不影响一般性。此外,我们还假设每个乘积节点至多只有一个父节点(根据交替结构,该父节点必须是求和节点)。这也不是一个严格的结构假设:如果一个乘积节点有两个或更多求和节点作为父节点,那么根据光滑性,这些求和节点具有相同的作用域。因此,它们可以简单地拼接成一个单一的求和向量。当然,由于本文中我们假设所有求和节点和叶节点向量的长度均为常数 K ,这一假设要求 K 足够大。
3.2 基本的爱因斯坦求和运算(The Basic Einsum Operation)
![]()
![]()
![]()
![]()
![]()
![]()
3.3. 爱因斯坦求和层(Einsum Layer)
与其逐个计算向量化的求和单元,我们可以通过并行计算整层节点实现更高效率。为此,我们首先将 PC 按层组织为层状结构:自顶向下遍历 PC,构建一个按拓扑序排列的节点层列表,各层在求和节点与乘积节点之间交替排列,并以叶节点层为起点。一个节点仅当其所有父节点均已插入其上方某层时,才被加入当前层——即第 i i 层中的所有节点仅依赖索引严格小于 i i 的层中的节点。此外,由第 3.1 节可知,我们可以假设每个乘积节点有且仅有一个父节点(必为求和节点),因此任意一对连续的乘积层与求和层之间必然满足:该乘积层恰好是该求和层的全部输入。补充材料中提供了将 PC 组织为拓扑层的伪代码。
EiNets 的策略是对以下两类层进行高效并行计算:
i) 整个叶节点层;
ii) 每一对连续的乘积层与求和层中的整个求和层。
这两种情况下,计算结果均为一个对数密度矩阵:行数等于该层中叶节点(或求和节点)的数量,列数为 K 。
第 3.4 节将讨论输入层(即叶层)的计算。目前,我们先考虑一个包含 L L 个求和节点的层,如图 2 所示。此处我们暂假设每个求和节点仅有一个子节点(即一个乘积节点)。我们将在后文讨论更一般的情况(即求和节点具有多个子节点的情形)。
![]()
![]()
![]()
注意该式与 (2) 的相似性,并且我们仅通过引入一个额外的索引 l l,便实现了对整个求和层的并行化。因此,将前述的 log-einsum-exp 技巧(见第 3.2 节)直接推广至式 (5) 是十分直接的。
构造两个矩阵 N 和 N ′ 需要一定的索引管理(book-keeping),并会带来一些计算开销,这些开销源于从下层对数概率张量中提取并拼接切片。这种开销本质上反映了 PC 本身稀疏且杂乱的结构布局。然而,主要的计算任务仍由高度并行化的 einsum 运算 (5) 承担。
式 (5) 可用于计算完整的“求和–乘积”层,但前提是求和节点仅含单个子节点。为处理具有一般结构(即求和节点可拥有多个子节点)的层,我们将任意包含多子节点求和节点的层,重写为两个连续的求和层:
- 第一层由若干单子节点的求和节点组成,每个对应原层中一个乘积子节点;
- 第二层则对第一层中的求和节点进行逐元素混合(element-wise mixture),混合方式依据原层中各求和节点所对应子节点的归属关系。
需注意,这种结构本质上是对原求和节点的一种过参数化(over-parameterization)(Trapp 等, 2019b),即把每个原求和节点分解为两个串联的求和节点所组成的链式结构。
第一层现在可直接使用式 (5) 高效计算;第二层(我们称之为混合层,mixing layer)同样可通过 einsum 运算实现并行计算。具体细节请参见补充材料。
3.4. 作为输入层的指数族分布
![]()
3.5. 期望最大化(EM)算法
学习 PC 的一种自然方法是期望最大化(Expectation-Maximization, EM)算法,该算法以能快速提升似然值而著称,尤其在早期迭代中效果显著(Salakhutdinov 等, 2003)。PC 上的 EM 算法由(Peharz 等, 2017)推导得出,其对求和权重与叶节点参数的更新规则如下:
![]()
![]()
![]()
其中 λ ∈ [0, 1] 为步长参数。这种 EM 的随机版本引入了两个超参数——步长 λ 与批大小(batch-size),需适当设定。
此外,与全批量 EM 不同,随机 EM 并不能保证训练似然在每次迭代中都单调上升。然而,随机 EM 在每个小批量(mini-batch)后即更新参数,通常可实现更快的学习速度。
Sato(1999)揭示了随机 EM 与自然梯度(natural gradients,Amari, 1998)之间一个有趣的联系:对于任意指数族(EF)模型 P(X, Z),其中 X 为观测变量、Z 为隐变量,执行式 (8) 与式 (9) 的更新,等价于对完整模型 P(X, Z) 使用随机梯度下降(SGD),且梯度预先左乘以该完整模型的 Fisher 信息矩阵的逆矩阵。
与标准自然梯度的区别在于:标准自然梯度定义中所用的是边缘模型 P(X) 的 Fisher 信息矩阵之逆(Amari, 1999)。Sato 的分析同样适用于 EiNets,因为光滑且可分解的概率电路(PCs)可视为形如 P(X, Z) 的指数族模型(Peharz 等人, 2017),其中隐变量与求和节点相关联。因此,式 (8) 与式 (9) 实际上是在执行一种(变体形式的)自然梯度随机梯度下降。
- 实验
我们完全基于 PyTorch(Paszke 等人,2019)实现了 EiNets。核心实现见附录材料,我们将在近期公开发布代码。
4.1 效率对比
为验证 EiNets 的效率,我们将其与当前最主流的两种“深度学习”型概率电路(PC)实现——LibSPN(Pronobis 等人,2017)和 SPFlow(Molina 等人,2019)——进行比较。LibSPN 原生基于 TensorFlow(Abadi M. 等人,2015),而 SPFlow 支持多个后端;本实验中我们采用其 TensorFlow 后端。我们选用随机二叉树结构(RAT-SPNs)(Peharz 等人,2019)作为统一基准:此类 PC 结构由两个结构性超参数决定——分割深度 D 和副本数 R:从根部的求和节点出发,将整个变量域 X 随机划分为两个平衡子集,并递归执行该过程,直至深度 D,从而形成一棵含 个叶节点的二叉树;该构建过程重复 R 次,得到 R 棵随机二叉树,并在根节点处进行混合(mixture)。作为合理性校验,我们首先复现了 Peharz 等人(2019)在 20 个二值数据集上的密度估计结果(见表 1):使用单侧 t 检验(p = 0.05)可知,绝大多数数据集上测试对数似然的差异均无统计显著性。EiNets 在其中两个数据集上甚至优于 RAT-SPNs(其一优势较大);而 RAT-SPNs 仅在一个数据集上以较小优势胜出。
![]()
我们的目标是从以下三方面对 EiNets、LibSPN 和 SPFlow 进行对比:i) 训练时间;ii) 内存占用;iii) 推理时间。
为此,我们在合成数据(高斯噪声)上进行训练与测试:样本量 N = 2000,维度 D = 512;叶节点采用一维高斯分布。我们按如下范围系统变化各结构性超参数:分割深度 D ∈ {1, …, 9},副本数 R ∈ {1, …, 40},求和节点/叶节点的向量化长度 K ∈ {1, …, 40};每次仅变动一个超参数时,其余保持默认值:D = 4,R = 10,K = 10。全套实验均在 GeForce RTX 2080 Ti 显卡上完成。
在图 3 中,我们比较了三种实现方案在训练时间和 GPU 内存消耗方面的表现,其中圆圈半径代表所变动超参数的大小。我们可以看到,EiNets 的训练速度通常比竞争对手快一个或两个数量级(请注意对数刻度),尤其对于大型模型而言更为显著。在内存消耗方面,EiNets 也表现出良好的可扩展性。特别是当 K 值较大时,其内存消耗比 LibSPN 或 SPFlow 低一个数量级。这很容易解释:我们的 einsum 运算不会在内存中显式生成乘积节点,而其他框架则会这样做。此外,在推理时间方面,EiNets 同样表现更优;尤其是对于大型模型,其运行速度再次比其他实现方案快一个或两个数量级。出于篇幅限制,这些结果将移至附录材料中提供。
![]()
4.2 EiNets 作为生成式图像模型
尽管概率电路(PCs)是一个活跃的研究方向,但其可扩展性问题迄今仍将其应用限制在诸如 MNIST(LeCun 等人, 1998)等相对较小的数据集上。本文中,我们首次将 PCs 用作以下两类更大规模图像数据集的生成模型:
- 街景门牌号数据集(SVHN,Netzer 等人, 2011),包含 32 × 32 的 RGB 数字图像;
- 中心裁剪版 CelebA(Liu 等人, 2015),包含 128 × 128 的 RGB 人脸图像。
对于 SVHN,我们采用了前 50k 张训练图像,并将其与“额外集”(extra set)拼接,构成共计 581k 张图像的训练集;余下的原始训练集中 23k 张图像用作验证集;测试集包含 26k 张图像。对于 CelebA,我们采用标准划分:训练集 183k、验证集 10k、测试集 10k。所有数据仅进行简单归一化处理(像素值除以 255),未施加其他预处理。据我们所知,此前尚无成功将 PCs 训练于如此规模数据集的先例。
我们采用 Poon & Domingos(2011)提出的、专为图像设计的结构训练 EiNets,并称之为 PD 结构。该结构通过沿坐标轴方向的分割,以特定步长 Δ 递归地将图像分解为若干子矩形区域;其中 Δ 是一个结构性超参数,决定了求和节点数量的大致规模,其复杂度为 O(1/Δ³)(Peharz, 2015)。递归分割过程在当前矩形无法被 Δ 中任何值进一步分割时终止。
具体实现上,我们首先分别对两个数据集使用 sklearn 的 k-means 实现聚为 100 类;然后在每一类上独立训练一个 EiNet;最终将这 100 个 EiNet 作为混合成分,构建一个混合模型,混合权重即为各类别的样本占比。需注意两点:i) PC 的混合仍是一个 PC;ii) 此步骤本质上等同于最著名的 PC 结构学习算法之一——LearnSPN(Gens & Domingos, 2013)的第一步。
对于每个 EiNet 成分的 PD 结构,我们对 SVHN 采用步长 Δ = 8,对 CelebA 采用 Δ = 32,即均执行 4 次轴向分割。为减少 PD 结构可能引入的伪影(artifacts),我们仅采用垂直分割(vertical splits)。叶节点采用分解式高斯分布(factorized Gaussians),即协方差矩阵为对角阵的高斯分布,并进一步沿 RGB 三个通道进行分解。求和节点与叶节点的向量化长度均设为 K = 40。每次 EM 更新后,我们将高斯方差投影至区间 [10⁻⁶, 10⁻²],对应最大标准差为 0.1。每个成分训练 25 个 epoch,批大小为 500,EM 步长为 0.5。整体训练耗时:SVHN 约 5 小时,CelebA 约 3 小时(硬件平台:NVIDIA P100)。
图 4 中展示了原始样本以及 EiNet 混合模型生成的样本:(a, b) 对应 SVHN 数据集,(d, e) 对应 CelebA 数据集。SVHN 的生成样本相当具有说服力,部分样本甚至可能被误认为真实数据样本。CelebA 的生成样本略显过度平滑,但较好地捕捉了人脸的主要特征。在两种情况下,均可观察到一些“条纹状”伪影,这是 PD 架构(Poon & Domingos, 2011)的典型特征。尽管图像质量尚无法与例如 GAN 模型(Goodfellow 等人, 2014)相媲美,但我们需强调的是,EiNets 支持可追踪推理(tractable inference),而 GANs 仅限于采样。尤其值得注意的是,可追踪推理可直接用于图像修复(image inpainting),如图 4 (c) 和 (f) 所示(分别对应 SVHN 和 CelebA)。在此实验中,我们将测试样本的部分区域(上半部分或左半部分)标记为缺失,并通过从条件分布中采样来重建缺失部分(该条件分布以可见图像部分为条件)。我们看到重建结果是合理的,尤其是在 SVHN 数据集上表现尤为明显。
![]()
- 结论概率模型构成了机器学习技术谱系中的重要一环。当前大多数研究聚焦于构建与学习灵活且表达能力强的模型,却往往忽视了模型下游所能严格保证可解(provably solvable)的推理任务集合所受的影响。可追踪建模(tractable modeling)的哲学同样致力于拓展表达能力的边界,但其前提是:必须维持一组明确定义的精确推理算法(exact inference routines)。概率电路(Probabilistic Circuits, PCs)无疑是践行这一哲学的核心且突出的方法之一。
本文针对 PCs 面临的一个关键障碍——相较于无约束模型,其可扩展性不足——提出了有效解决方案。我们在训练速度与内存占用方面的改进均达一至两个数量级,成效显著。我们期望本研究成果能进一步激发可追踪模型领域的发展与创新。
A. 在拓扑层中组织EiNets
在本节中,我们详细讨论EiNets的层级组织,如主论文第3.3.1节中所讨论的。层级组织是通过算法1获得的,该算法以某个EiNet的计算图G为输入,并在G上执行一种广度优先搜索。
![]()
![]()
B. 混合层
einsum 层通过单次调用 einsum 操作即可计算大量求和-乘积运算,但其前提是每个求和节点必须恰好只有一个子节点。为了计算拥有多个乘积子节点的求和节点,我们将任意拥有多个子节点的求和节点表示为一系列由 2 个向量化求和操作组成的级联结构。具体而言,对于一个拥有 C 个子节点的求和节点 S,我们引入 C 个新的求和节点 S¹, ..., Sᶜ,每个新节点仅以其中一个子节点作为其唯一子节点。这便形成了一层仅含单个子节点的求和节点,该层可通过单次 einsum 操作完成计算。
如主论文公式 (5) 所示,随后,Sᶜ(c ∈ {1, ..., C})的结果将按元素方式进行混合,即 Sₖ = Σᶜ₌₁ wᶜ Sᵏₖ。我们将 Sᶜ 称为简单求和节点,而 S 则称为聚合求和节点。
这种结构本质上是对原始求和节点的一种过参数化(Trapp 等人, 2019b),并表达了相同的线性函数。这一原理在图 5 中得到说明:其中包含 3 个子节点的求和节点 S₁ 和包含 2 个子节点的求和节点 S₂,被表示为一层包含 5 个简单求和节点的结构,后接聚合求和节点(框内所示)。
![]()
元素级混合也可以通过单次 einsum 操作实现,我们将其称为混合层。为此,在一个求和层内,令 M 表示拥有超过一个子节点的求和节点数量,D 表示子节点的最大数量。我们将第一个(简单)求和层计算出的 K 维概率向量收集到一个 D × M × K 张量中,其中 D 轴对子节点少于 D 个的求和节点进行零填充。混合层随后对该张量的第一维度执行凸组合运算。
构建此张量涉及一定的复制开销,并且由于零填充,混合层也会浪费部分计算资源。然而,使用具有多个子节点的求和节点,能够支持比例如随机二叉树(Peharz 等人, 2019)等结构更广泛的 PC 结构——后者是文献中曾考虑过的唯一结构。
对于原本仅包含简单求和节点的求和层,将跳过混合层的构建。
C. 推理时间对比
主论文第 4.1 节比较了 EiNets、LibSPN(Pronobis 等人, 2017)与 SPFlow(Molina 等人, 2019)在训练时间与内存消耗方面的表现,结果表明 EiNets 的可扩展性远优于其竞争对手。这一结论同样适用于推理时间。图 6 展示了与主论文图 3 相对应的推理时间结果,不同之处在于:此处衡量的是每样本的推理时间,而非每轮训练的训练时间。
![]()
推理测试针对每种模型使用含 100 个测试样本的小批量进行;图中显示的推理时间为整批评估时间的 1/100。结果再次显示,EiNets 实现了显著加速,最高可达三个数量级(在最大深度下,EiNet 相比 SPFlow 的情形)。
D. 关于图像生成中使用均值的说明(附录增补,2025 年 10 月)
在图 4 中,无论是生成(条件或无条件)样本时,我们都“关闭了”高斯叶节点的噪声。具体而言,我们遵循概率电路(PCs)标准的自上而下采样流程:对求和节点(即分类分布)进行分层采样,从而选定一组叶节点,其变量域(scope)构成所有建模像素的一个划分。
若要从分布 P(x) 中生成一个严格意义上的随机样本,应从每个被选中的叶节点分布中采样,并将所得像素值拼接成图像。然而,我们并未从高斯叶节点中采样,而是直接取其均值,并将这些均值拼接形成最终图像。
这一做法与变分自编码器(VAEs)中的常见实践直接类似——在可视化时,通常也会关闭解码器的噪声。PCs 与 VAEs 本质上都属于分层隐变量模型(hierarchical latent-variable models),
![]()
其中,隐变量 z 在 VAE 中通常为连续型(高斯分布),而在 PCs 中则为离散型(与求和节点相关联);而 p(x | z) 则分别对应于 VAE 中的解码器,以及 PCs 中的分层选择过程。
在两种模型中之所以选择关闭解码器(或叶节点)噪声,其原因在于:若假设 p(x | z) 中各像素相互独立,则采样过程仅相当于在生成图像上叠加独立的高斯噪声。当目标是生成建模(而非概率推理)时,这种做法是合理的——因为添加高斯噪声只会降低图像的视觉质量,而无助于生成效果本身。
尽管该做法在 VAE 相关文献中极少被明确提及,但在绝大多数实际实现中却十分普遍。一处明确提及此实践的公开参考资料可见于维基百科(检索日期:2025 年 10 月 14 日):
“因此,编码器将来自大型复杂数据集的每个数据点(例如一幅图像)映射为隐空间中的一个分布,而非该空间中的单个点。解码器的作用则相反,即根据某一分布将隐空间映射回输入空间(尽管在实践中,解码阶段通常并不添加噪声)。”
原文链接:https://arxiv.org/pdf/2004.06231https://arxiv.org/pdf/2004.06231
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.