张量分解与电路之间是什么关系(以及我们如何利用它)?
What is the Relationship between Tensor Factorizations and Circuits (and How Can We Exploit it)?
https://arxiv.org/pdf/2409.07953v2
![]()
摘要
本文在电路表示(circuit representations)与张量分解(tensor factorizations)这两个看似迥异、实则内在关联的领域之间,建立了一种严谨的联系。通过连接这两个领域,我们揭示了一系列可使双方研究群体共同受益的机遇。本工作在电路语言框架下推广了若干流行的张量分解方法,并将多种电路学习算法统一纳入一个广义的层次化分解框架之中。具体而言,我们提出了一种模块化的“乐高积木”(Lego block)式方法,用以构建张量化电路架构。该方法进而使我们能够系统性地构造与探索各类电路及张量分解模型,同时保持计算上的可处理性(tractability)。这种联系不仅厘清了现有模型之间的相似性与差异性,还促成了一套用于构建与优化新型电路/张量分解架构的完整流程(comprehensive pipeline)。我们通过大量实证评估验证了该框架的有效性,并进一步指出了张量分解在概率建模领域中的若干崭新研究机遇。
1 引言
本文旨在架起两门看似相距遥远、实则密切关联的领域之间的桥梁:电路表示(circuit representations)(Darwiche & Marquis, 2002;Choi et al., 2020;Vergari et al., 2021)与张量分解(tensor factorizations)(Kolda, 2006;Sidiropoulos et al., 2017)。具体而言,我们建立了二者表示之间的形式化联系,并阐明:张量分解不仅可为众多针对电路表示所设计的学习算法提供一种统一的视角,还能为两个研究共同体开辟新的研究机遇。
张量是矩阵的多维推广,被广泛用于表示高维数据(Kroonenberg, 2007)。张量分解是一类被深入研究的数学对象,其核心思想是通过作用于低维张量的简单运算,对高维张量进行紧致表示(Kolda, 2006)。它们已在机器学习与人工智能中得到广泛应用,例如:计算机视觉(Vasilescu & Terzopoulos, 2002;Savas & Eldén, 2007;Panagakis et al., 2021)、图分析(Kolda et al., 2005)、计算神经科学(Vos et al., 2007;Tresp et al., 2021)、神经符号人工智能(Nickel et al., 2015;Balazevic et al., 2019;Gema et al., 2023;Loconte et al., 2023)、语言建模(Ma et al., 2019;Hu et al., 2022;Xu et al., 2023),以及作为对概率分布进行编码的手段(Jaini et al., 2018b;Novikov et al., 2021;Amiridi et al., 2022;Hood & Schein, 2024)。尽管张量分解通常被定义为浅层分解形式,但其亦可表达为一种层次化分解结构(Grasedyck, 2010),有时以张量网络(tensor networks)的图示形式呈现(Orús, 2013;Biamonte & Bergholm, 2017;Glasser et al., 2019)。
另一方面,电路表示(Darwiche & Marquis, 2002;Choi et al., 2020;Vergari et al., 2021)是为逻辑推理与概率建模(Darwiche, 2003;Poon & Domingos, 2011;Kisa et al., 2014)而引入的一类结构化计算图。其中,概率电路(Probabilistic Circuits, PCs)(Vergari et al., 2019b;Choi et al., 2020)是专门用于对可处理(tractable)概率分布进行编码的电路,支持一系列需精确且高效推理操作的应用,例如:无损压缩(Liu et al., 2022)、生物医学生成建模(Dang et al., 2022b)、可靠的神经符号AI(Ahmed et al., 2022;Loconte et al., 2023)以及约束文本生成(Zhang et al., 2023)。过去已提出多种从数据中学习概率电路的算法(参见 Sidheekh & Natarajan (2024) 的综述),其中一种范式逐渐凸显:构建参数规模巨大(超参数化)的电路(含数百万甚至数十亿参数;Liu et al., 2023a;Gala et al., 2024a),再通过梯度上升、期望最大化(EM)(Peharz et al., 2016;2020c)或其正则化变体(Dang et al., 2022a)对参数进行训练。
层次化张量分解与概率电路均曾被提出作为概率图模型(probabilistic graphical models)的替代性表示(Song et al., 2013;Robeva & Seigal, 2017;Glasser et al., 2020;Bonnevie & Schmidt, 2021),且部分研究已暗示某些电路与张量分解之间存在联系(Jaini et al., 2018b;Glasser et al., 2019)。然而,二者主要差异在于其应用方式:张量分解通常用于目标真实张量已知或可建模为降维问题(即所谓“张量草图”,tensor sketch)的任务;而概率电路则通常以生成模型的方式,从数据中直接学习。但与张量分解类似,现代概率电路表示也是超参数化的,并常被编码为若干张量的集合,以充分利用并行计算与现代深度学习框架(Vergari et al., 2019a;Peharz et al., 2020c;Mari et al., 2023)。这就引出了一个关键问题:电路与张量分解之间是否存在着形式化且系统性的联系?我们的回答是肯定的——我们证明:电路可被视作一种广义的稀疏层次化张量分解,其参数即对应分解中的低维张量本身;反之,层次化张量分解则是具有特定张量化架构的深层电路的一个特例。对概率电路而言,这意味着将概率分布(表示为非负张量,Cichocki & Phan, 2009)进行分解;与此同时,经典张量分解亦可被精确编码为(浅层)电路。通过确立张量分解与电路之间的这种对偶性,我们不仅系统化了文献中已有成果,还为电路的表示与学习开辟了新视角,并为构建新型或拓展已有(概率性)分解方法提供了可能路径。
具体而言,本文首先推导出一种简洁的方式,用于描述多种张量化电路架构,并利用一种“乐高积木”(Lego blocks)式方法——将(局部)稠密张量分解进行堆叠,同时保持电路结构中保障可处理性所需的性质——将其表示为计算图。由此,新型“模块”可被以即插即用(plug-and-play)方式灵活组合使用。其次,我们统一了文献中迄今提出的诸多概率电路学习算法(Peharz et al., 2020c,a;Liu & Van den Broeck, 2021b)——这些算法源于不同视角,所产出的电路常被视为不同模型。我们特别指出:它们的差异实质上可归结为对张量参数所采取的不同分解方式与语法变换;因为这些算法均可被纳入同一广义(层次化)分解框架下理解——该框架基于Tucker 张量分解(Tucker, 1966)及其特例(Kolda & Bader, 2009)。因此,我们认为,文献中常报告的性能差异更多源于超参数设置与学习方法的不同,而非本质性的归纳偏置差异(Liu et al., 2023b)。
此外,在确立上述联系之后,我们进一步利用张量分解技术,对已用张量形式表示的现代概率电路架构参数进行压缩。由此,我们构建出比以往更参数高效的概率电路,并表明:针对特定任务寻找最优电路架构这一问题远未解决。最后,我们强调:与电路的这一联系可为张量分解研究界催生若干富有前景的新方向(文中以方框突出标注),包括:从数据中学习张量分解、将张量分解解释为含隐变量的概率模型、以及通过背景知识注入来诱导稀疏性等。
本文贡献如下:
i)我们将主流张量分解方法及其层次化形式推广至电路语言框架下(第2节);
ii)我们建立概率电路与非负张量分解之间的联系,并阐明后者可被解释为隐变量模型——因而既可用于生成建模,亦可支撑神经符号AI(第3节);
iii)在我们的统一框架内,我们抽象出现代超参数化架构构建与学习中的多种选项,进而提出一个通用的算法流程(第4节),用于将层次化张量分解表示并学习为张量化电路;
iv)借助该框架,我们得以利用张量分解分析现有不同电路参数化方案之间的关联,在保持部分表达能力的前提下,提出更具参数效率的建模选择(第5节);
v)我们在多种分布估计任务上系统评估了本框架内的若干算法选择,揭示了时间与空间复杂度及最终性能之间的主要权衡(第6节)。
2 从张量分解到电路
![]()
2.1 浅层张量分解是浅层电路
![]()
![]()
![]()
电路可以被理解为具有指数级多项式的多项式,但以多项式大小的深度计算图紧凑编码(Darwiche, 2003; Zhao et al., 2016; Choi et al., 2020)。从这个角度来看,可以直观地理解它们是如何相关联的,以及它们如何不同,张量分解。实际上,虽然后者也编码了紧凑的多线性算子(方程(2)),但电路多项式的不确定项可能不仅仅是矩阵的条目,如定义2所述,例如,潜在的非线性输入函数。例如,一个电路可以编码一组连续随机变量的联合密度,输入函数 可以编码高斯密度(图1)。另见机会4,讨论在电路中编码输入单元的多种方法。
![]()
通过以通常的前馈方式遍历其计算图来评估编码在电路中的函数 c——先输入后输出,见图1。此外,我们提供的电路定义可以比张量分解更通用,因为它可以表示稀疏计算图,即单元不规则连接。正如我们将在后面论证的,这并不一定是这种情况。电路实际上可以设计为局部密集,这在许多现代实现中很常见(第4节)。局部密集架构也是张量分解看起来像的,当它们转换为电路时,正如我们在以下构造性命题中展示的,对于一个一般的Tucker分解(定义1)。
![]()
![]()
![]()
![]()
请注意括号内的彩色编码模块如何对应于电路中输入函数的输出(见图2),以及向量外积(b)如何实现电路(c)中的乘积单元,而与向量w的点积则被编码于最终的求和单元中。我们鼓励读者动手尝试这个例子,自行推导张量中的其他条目,直至熟练掌握如何将张量分解转化为我们所采用的电路形式。此外,由于电路可表示张量分解,它也继承了后者普遍存在的非唯一性问题(non-uniqueness issue)——这在许多张量分解方法(如Tucker分解)中常见:即,由电路编码的张量分解并非唯一——人们可在不改变其所表示函数的前提下,对电路参数进行变换。
最后我们指出:分解的多线性秩(multilinear rank)在此对应于电路表示中输入单元的数量。对于后续将层次化分解转化为深层电路的情形(见2.2节),各秩也将对应于不同深度处的单元数量。
将张量分解表示为这类计算图,为拓展其模型类带来了诸多机遇;在本文后续部分,我们将以方框形式对这些机遇加以强调。与此同时,我们也能更清晰地理解:为何这类分解本身已支持对某些关注量进行可处理计算(tractable computation),例如积分、信息论度量或最大化运算(Vergari et al., 2021)。在电路框架下,此类计算可通过计算图的特定结构性质系统性地实现——即,将这些运算映射到图中某些结构性质的存在上,从而精确界定可处理性的充分(有时亦为必要)条件。我们首先定义光滑性(smoothness)与可分解性(decomposability)——这是电路的两个结构性质,使得对指数级多变量赋值的求和可在多项式时间内精确完成(而这对其他模型通常是不可行的)。
定义3(单元级光滑性与可分解性;Darwiche & Marquis, 2002):
一个电路是光滑的(smooth),若对任一求和单元 n,其所有输入单元所依赖的变量集合均相同,即:∀i, j ∈ in(n),有 sc(i) = sc(j)。
一个电路是可分解的(decomposable),若对任一乘积单元 n,其任意两个不同输入单元所依赖的变量集合互不相交,即:∀i ≠ j ∈ in(n),sc(i) ∩ sc(j) = ∅。
对于同时满足光滑性与可分解性的电路,可在一次前向传播中精确计算如下形式的求和:
![]()
不难验证:以电路形式表示的Tucker张量分解(例如图2所示)同时满足光滑性与可分解性,因而自然享有可处理的边际化能力(tractable marginalization)。此外,从这一视角出发,我们亦可理解此类分解的表达能力(expressiveness):对多线性多项式而言,其表达能力通常正是通过具备上述结构性质的电路来刻画的(Shpilka & Yehudayoff, 2010;Martens & Medabalimi, 2014;de Colnet & Mengel, 2021)。
电路与张量分解的来源差异
既然我们已建立起张量分解与电路之间的初步联系——前者可被重写为具备特定结构性质的计算图(用后者语言表达)——我们还需指出两个研究共同体在获取与运用对象方式上的一个根本差异:
张量分解源于对给定高维张量进行压缩的需求,该张量通常已被显式表示(即使未驻留内存,也至少存储于磁盘)。分解结果通过求解一个优化问题获得,例如:寻找使某种重构损失最小化的因子(Sidiropoulos et al., 2017;Cichocki et al., 2007)。
与之对比,现代电路是从数据中学习得到的。尽管既可监督学习亦可无监督学习,但后者更常见——因电路常被用于编码概率分布。此类分布可视作一个隐式张量(implicit tensor),它本身不可见,仅能通过从中采样的数据点进行间接观测。第3节将对此及电路学习问题予以形式化。
尽管张量重构与从数据中学习电路通常采用不同方法,但一旦给定某种分解,通过将其视为电路,我们即可为其开辟新的使用与开发路径——我们在后续各节中将以方框形式突出这些机遇。接下来,我们将讨论:电路框架如何进一步推广层次化(即更深的)张量分解;这也将成为我们用于学习电路与张量分解的统一流程的切入点(见第4节)。
2.2 层次化张量分解即深层电路
张量分解可被堆叠组合,形成一种深层(deep)或层次化(hierarchical)的分解结构;相较于其浅层“实体化”(shallow materialization)形式,此类分解往往具有更高的空间效率(即秩显著更低)。例如,Grasedyck(2010)提出了层次化Tucker分解(hierarchical Tucker),其做法是依据张量维度的一个固定层次化划分,堆叠多个低秩Tucker分解。Cohen 等人(2015)指出:在大多数情况下,等价甚至近似的浅层分解所需的秩会随维度数量呈指数级增长。类似理论结果亦见于电路领域——即深层电路的规模可比浅层电路指数级更小,其中电路规模定义为单元间连接的总数(Delalleau & Bengio, 2011;Martens & Medabalimi, 2014;Jaini et al., 2018b)。
本节首先引入层次化Tucker分解,证明其等价于一种深层电路,并进一步利用这一联系来描述现代张量化电路表示(见第4节)。为此,我们借鉴电路文献中的一个工具:电路作用域的层次化划分(hierarchical partitioning of the scope of a circuit)(Vergari et al., 2021),亦称为区域图(region graph, RG)(Dennis & Ventura, 2012)。如下文所形式化定义:区域图是一类二分图,其节点要么是变量集合(即张量的维度),要么表示这些变量集合的划分方式。
![]()
![]()
![]()
附录A.2展示了该构造过程,并在图4a中以图3所示区域图(RG)为基础,对层次化Tucker分解进行了图示说明。正如可将任意张量分解推广为层次化形式一样,此类构造亦可被表示为电路。然而,在电路相关文献中,我们发现许多架构并不局限于树状结构的区域图(tree-structured RGs),亦不限于仅含单变量输入区域(univariate input regions)的区域图。
![]()
通过利用区域图(RG)来施加特定的分解结构,并为其每个区域选取特定的参数化方式(详见第4节),我们便能构建出不对应于现有模型的新型层次化分解。图6展示了若干此类示例:其中我们采用第2.3节所述的分层形式化表示法(layer-wise formalism)来描绘电路。需注意的是,依据上述方式从区域图实例化出的张量分解,仍可保持可分解性(decomposability);而文献中基于区域图构建的电路通常也满足光滑性(smoothness,见定义3)。层次化Tucker分解及其变体同样具备光滑性与可分解性,因而支持多种(概率性)推理任务的可处理计算(见第3节)。
此外,那些遵循树状区域图(tree-shaped RG)且叶节点为单变量(univariate leaves)的层次化分解(及其对应的深层电路)还满足一项更强的结构性质——结构化可分解性(structured-decomposability)。该性质使得一些仅靠光滑性与可分解性尚无法高效处理的更复杂运算也成为可处理的;例如,在张量网络的图式语言中被形式化、物理学中称为玻恩法则(Born rule)(Feynman, 1987;Glasser et al., 2019)的特定张量分解的平方运算(参见第2.4节)。
我们如下给出结构化可分解性的定义:
定义6(结构化可分解性;Pipatsrisawat & Darwiche, 2008):一个电路是结构化可分解的,当且仅当:(1)它同时是光滑的且可分解的;(2)任意两个具有相同作用域(scope)的乘积单元 n, m,在其输入单元处对作用域的划分方式完全一致。
我们可以轻易验证:层次化Tucker分解所对应的电路是结构化可分解的——因其通过树状区域图堆叠Tucker分解(后者本身由可分解电路实现)而构建,而该树状结构确保了所有乘积单元对作用域的划分方式同步一致。
我们强调:识别出这些为数不多、却能解释众多关注量可处理计算的结构性质,有助于避免为特定层次化分解反复重新发现或重新设计算法的重复劳动。
![]()
2.3 在张量化形式下表示电路
将(层次化)张量分解表示为(深层)电路,凸显了电路单元如何可自然地按类型和作用域分组为“层”(layers),正如图2中已有所暗示。这一视角带来了一个新机遇:将特定的电路结构定义并表示为张量化的计算图(tensorized computational graphs)。尽管文献中的电路通常以标量计算单元(如求和、乘积、输入单元及单连接)来定义(定义2),但当前许多成功的电路实现已将单元按张量进行分组(Vergari et al., 2019a;Peharz et al., 2020c,a;Liu & Van den Broeck, 2021b;Loconte et al., 2024),旨在利用GPU提供的加速能力提升计算效率。基于这些思路,我们现提供一个通用的张量化电路定义,它提供了一种模块化方式,用于构建超参数化电路架构。这将使我们能够设计一个统一的学习流程,涵盖众多现有架构(第4节),并建议一种通过混合与复用小型“模块”来创建新型架构的方法。
定义7(张量化电路):
一个张量化电路c 是由三种类型的层构成的计算图:输入层(input)、乘积层(product)与求和层(sum)。每一层 ℓ 均由作用于相同作用域 sc(ℓ) 的计算单元组成。每个非输入层接收来自其他层的输出向量作为输入,记作集合 in(ℓ)。三类层的具体定义如下:
- 每个输入层 ℓ 具有作用域Y ⊆ X,并计算一个向量函数 f: dom(Y) → ℝᴷ。
- 每个乘积层 ℓ 计算其输入层 ℓⱼ 所输出向量上的哈达玛积(⊙{ℓⱼ ∈ in(ℓ)} ℓⱼ)或克罗内克积(⊗{ℓⱼ ∈ in(ℓ)} ℓⱼ)。
- 一个包含 S 个求和单元的求和层,计算矩阵-向量乘积W( ||_{ℓⱼ ∈ in(ℓ)} ℓⱼ(sc(ℓⱼ)) ),其中 || 表示向量拼接,且W∈ ℝˢˣᴷ(K > 0)是该求和层的参数。
请注意,若某求和层 ℓ 仅接收一个输入向量(即 |in(ℓ)| = 1),则它仅简单计算Wℓ₁(sc(ℓ₁))。图7展示了张量化电路的各层类型及其逐单元表示法(定义2)。此外,通过将每层大小 K 设为1,我们即可还原先前的标量逐单元定义。上述四种层类型构成了基本的“乐高积木”,我们后续将用它们构造更复杂的层(第4.3节、第5节),并再现所有现代电路架构(表1)。
![]()
作为该定义如何帮助我们从电路架构细节中抽象出来的第一个示例,请参见图4。在图中,求和层与克罗内克积层被用于堆叠两个Tucker张量分解,从而表示一个层次化结构。我们在第4节中提供了一种系统性方法,用于堆叠不同层并以此方式构建深层电路。现在,我们可以轻松地将定义3中关于结构性质的逐单元定义扩展到这种分层表示法上——只需为每一层定义其作用域即可。
![]()
请注意,通过假设每一层均由共享相同作用域的单元构成,并采用定义7中所定义的三种层类型,我们所得到的张量化电路在设计上即天然具备光滑性(smoothness)与可分解性(decomposability)。此外,若深层电路的区域图(RG)为树状结构,则该张量化电路还将满足结构化可分解性(structured decomposability,定义6)。这些性质可从图4b中层次化Tucker分解作为张量化电路的图形表示中快速读出。接下来,我们将利用这种分层抽象,连接至流行的张量网络(tensor networks),并展示它们如何能自然地被编码为深层电路。
2.4 张量网络即深层电路
张量网络(TNs)常被用作在物理学和量子计算等领域表示层次化张量分解的首选方式(Markov & Shi, 2008;Schollwoeck, 2010;Biamonte & Bergholm, 2017)。张量网络配备了一种图形语言——彭罗斯记号(Penrose notation)——用于以紧凑的图形形式编码张量点积(亦称为张量缩并,tensor contractions)。参见 Orús (2013) 的综述。或许最广为人知的张量网络分解是矩阵乘积态(Matrix-Product State, MPS)(Pérez-García et al., 2007),也被称为张量列车分解(Tensor-Train factorization, TT)(Oseledets, 2011;Glasser et al., 2019;Novikov et al., 2021)。例如,给定一个张量T∈ ℝᴵ¹ˣᴵ²ˣ...ˣᴵᵈ,其秩为 R 的MPS/TT分解在逐元素形式下定义为:
![]()
在图8中,我们展示了一个表示变量X = {X₁, X₂, X₃}上MPS/TT分解的张量化电路;正如Loconte等人(2024)中命题3的证明所详述,其输入层与稠密层的参数是通过对MPS/TT中的张量 {⁽ʲ⁾}ⱼ₌₂ᵈ⁻¹ 进行分解而获得的。类似于层次化Tucker分解的张量化电路表示(命题2),命题3所得出的张量化电路也具有结构化可分解性(定义6)。结构化可分解性是MPS/TT中的关键性质,它使得能够在这些分解上高效执行某些运算——例如对其平方以恢复一个“玻恩机”(Born machine)——这是一种旨在模拟物理学中量子多体系统的概率模型(Orús, 2013; Glasser et al., 2019)。理解这一特性使实践者能够设计替代性的玻恩机架构,而无需局限于由“线性”区域图编码的一系列张量运算,也无需从头开始证明此类架构上平方运算的可处理性(Shi et al., 2005)。这是我们所强调的、当层次化张量分解被表示为电路后所产生的机遇之一(机遇1和机遇2)。更多机遇将在下一节中呈现,并可直接推广至张量网络及经典张量分解。
下一步工作:
迄今为止,我们讨论的是实值张量的通用分解。然而,针对非负数据(如图像)定制的张量分解——称为非负张量分解(non-negative tensor factorizations)——将张量分解为易于解释的非负因子(Cichocki & Phan, 2009)。在第3节中,我们将非负张量分解与概率建模领域的电路文献相连接,从而使我们可以将其解释为深层隐变量模型。此外,通过架起非负张量分解与其作为(深层)电路表示之间的桥梁,我们展示了与此相关的未来研究机遇,包括如何参数化张量分解以及如何利用它们进行概率推理。
3 从非负分解到用于概率建模的电路
在机器学习领域,人们已对用于可处理概率建模的电路表示给予了大量关注,即用于建模支持可处理推理的概率分布。为这一目的而构建的电路通常被称为概率电路(Probabilistic Circuits, PCs)(Vergari et al., 2019b; Choi et al., 2020)。在本节中,我们将非负(层次化)张量分解与PCs相连接,并展示在概率机器学习的广阔背景下,这为张量分解研究群体带来的若干研究机遇。
首先,我们将非负(层次化)张量分解与(深层)PCs的离散隐变量解释相联系,展示利用这种解释的可用算法示例——这些算法不仅可用于计算边际(如前一节所述),还可用于采样。其次,我们展示PCs领域的丰富文献如何提供多种紧凑参数化技术,从而产生非线性分解。同时,我们借鉴非负张量文献中的优化技巧来学习PCs。最后,我们与无限维张量分解的文献建立联系,展示其与编码概率密度函数的PCs以及配备无限维求和单元的PCs之间的关系。我们首先描述如何将有限离散随机变量上的概率分布表示为张量分解。
设 p(X) 是定义在有限离散随机变量X = {Xⱼ}ⱼ₌₁ᵈ上的概率质量函数(PMF),其中每个 Xⱼ ∈X的取值范围为 dom(Xⱼ) = [Iⱼ]。那么,p(X) 最简单的表示形式是一个概率张量∈ ℝ₊ᴵ¹ˣ...ˣᴵᵈ,其中每个条目编码了X的联合配置的概率,即对于任意x= ⟨x₁, ..., x_d⟩ ∈ dom(X),有 tₓ₁...ₓ_d = p(x₁, ..., x_d)。显然,这种表示效率低下,因为其空间复杂度随变量数 d 呈指数级增长。一种自然的紧凑建模方式是通过非负张量分解,例如Tucker分解的非负版本(Kim & Choi, 2007),其中因子矩阵 {V⁽ʲ⁾}ⱼ₌₁ᵈ 和核心张量W(见公式(2))被限制为仅包含非负元素。通过简单地特化命题2,我们可以将非负层次化Tucker分解(Vendrow et al., 2021)编码为一个输出非负值的电路 c,也称为PC。
定义9(概率电路 (Choi et al., 2020)):一个关于变量X的概率电路(PC)是一个编码函数 c(X) 的电路,该函数对X的所有赋值均为非负,即 ∀x∈ dom(X) : c(x) ≥ 0。
确保一个电路是PC的一个充分条件是:约束求和单元的参数以及输入单元的输出均为非负,从而得到一个被称为单调的(monotonic)电路(Shpilka & Yehudayoff, 2010)³。例如,我们前面提到的、编码非负层次化Tucker分解的电路就是一个单调PC,因为其求和单元权重(即核心张量W的元素)及其输入单元的输出(即因子矩阵 {V⁽ʲ⁾}ⱼ₌₁ᵈ 的元素)均被限制为非负。电路中的光滑性与可分解性允许对求和与积分进行可处理的计算(第2.1节),这转化为能够精确计算具有这些结构性质的PC的任何边际或条件分布(Vergari et al., 2019b)。然而,这些PC不仅是可处理的概率模型,它们同时也是生成模型,可以从其中精确采样。
3.1 非负张量分解作为生成模型
由于非负分解——例如非负层次化Tucker分解——是光滑且(结构化)可分解的PCs(定义3和6),它们继承了PCs执行可处理推理和生成新数据点的能力,即生成其定义域上变量的特定配置。据我们所知,迄今为止,将张量分解视为生成模型的这种处理方式尚未引起足够重视。我们将在下文对此进行讨论,展示如何为这些表示设计(更快的)采样算法。
![]()
![]()
3.2 如何参数化概率张量分解?
电路与张量分解分别源自两类不同的优化问题,但二者在实践中面临若干共通挑战。深入理解这些挑战可为两个研究共同体开辟新的机遇。
![]()
由于概率电路的学习过程通常归结为一个优化问题(例如最大化数据的对数似然;Peharz et al., 2016),为保证电路输出非负,人们常采用一种或多种重参数化(reparameterization)策略——即将实值参数映射为非负的求和单元权重。这一约束是必要的:如公式(8)所示,单调概率电路(monotonic PC)中每个求和单元的权重必须构成一个凸组合(convex combination),才能确保输出为合法的概率分布。
![]()
当该重参数化方法与编码概率分布的输入函数结合使用时,所得到的概率电路的归一化常数(normalization constant)即为1——因为所有变量赋值对应的概率总和恒为1;这直接源于每个求和单元的权重之和为1的性质。在张量化电路中,此类重参数化可逐行施加于每个求和层的参数矩阵上。
幸运的是,若电路具备光滑性与可分解性(定义3),即使求和权重未显式归一化,我们仍能精确且高效地计算其归一化常数(Peharz et al., 2015)。这使得我们可以采用其它重参数化方式来构建单调概率电路——即便其输出是一个未归一化分布(即积分不等于1的分布)。事实上,我们仍可通过归一化高效恢复合法分布:
![]()
![]()
其中 ε 是一个接近零的正阈值。每种重参数化方式都会产生不同的损失函数曲面(loss landscape),进而在优化过程中导向不同的解。在我们的实验中(第6节),我们发现这种第三种重参数化方式在学习概率电路(PCs)时最为有效。
对于单调概率电路中的输入单元,它们需对合法的概率分布进行建模。常见的参数化方式包括简单的概率质量函数(PMFs)(或概率密度函数,见第3.4节),例如伯努利分布(Bernoulli)或类别分布(Categorical),甚至也可以是其他概率模型——只要其边际化操作具备可处理性即可。这使得输入单元的参数化选择超越了传统张量分解中常用的“索引→矩阵元素”的简单映射方式(参见命题1及图2)。
![]()
3.3 可靠的神经符号集成
概率电路(PCs)在可处理推理方面的一个重要应用场景是安全关键型应用,其中需要对神经分类器的预测结果施加硬性约束(Ahmed et al., 2022; van Krieken et al., 2024)。此类约束可以表示为基于感知组件(即分类器)提取出的符号所构建的逻辑公式。例如,自动驾驶汽车必须在行人或红灯前停车的安全规则,可以写成一个命题逻辑公式 φ:(P ∨ R ⟹ S),其中 P、R 和 S 是布尔变量,分别代表“已检测到行人”、“已检测到红灯”以及“必须执行停车动作”。
电路特别适合用于这种神经符号集成(De Raedt et al., 2019),因为它们能够同时表示概率分布和逻辑公式。这两种表示可以在同一个分类器中使用,以确保任何违反给定约束的预测结果的概率恒为零。形式上,我们可以实现这样一个分类器,将输入x映射到输出y,并要求其满足约束 φ,如(Ahmed et al., 2022)所述:
![]()
3.4 无限维概率张量和连续分解
到目前为止,我们讨论了表示具有有限维度张量的(层次化)分解的电路,即每个维度中的条目数量是有限的。也就是说,这些电路定义在一组离散变量上,每个变量都有有限数量的状态。在本节中,我们关注分解那些可能具有无限(甚至不可数)条目的维度或准张量的张量(Townsend & Trefethen, 2015)。类似于(层次化)张量分解和电路之间的对称性(第2节),我们展示了准张量可以表示为至少在一个变量上定义的电路,该变量具有无限(甚至不可数)的定义域。此外,通过连接一个非常新的电路类,这些电路配备了积分单元,我们指出了关于无限秩(层次化)张量分解参数化的机会,即,分解的秩不一定是有限。我们将这些思想应用于建模概率密度函数(PDF)的问题。
![]()
![]()
![]()
![]()
类似地,人们亦可构建此类连续张量分解的层次化版本,并将其应用于概率建模(Gala et al., 2024b)。若公式(13)中的积分难以精确计算,可采用数值积分法(quadrature rules)对其进行近似。详见 Gala et al. (2024a)。
在下一节(第4节)中,我们将提出一个通用流程,可用于构建有限维与无限维的层次化概率张量分解,并将其统一表示为深层张量化概率电路(定义7)。在此之前,我们在下方的“研究机遇”框中强调:电路还可作为一类替代性表示,用于建模那些无法对应于概率张量分解的概率分布。
![]()
4 如何构建与扩展电路:一种张量化的视角
至此,我们已具备充分的背景知识,可以开始充分利用(层次化)张量分解与(深层)电路之间的联系。具体而言,本节将展示:如何借助张量分解作为模块化抽象,将众多表面上各异的电路(及其他分解)构建方法,统一纳入一个单一的构建流程之中。通过该流程,我们得以厘清构建并高效学习超参数化电路(即参数量极大的电路,见表1)所需的核心要素。
图9概括了我们的流程:
![]()
i) 首先,构建一个区域图(RG)结构,以确保所需的结构性质(第4.1节);
ii) 接着,依照多种可能的张量分解抽象(第4.3节),在该模板中引入计算单元并将其分组为层(第4.2节);
iii) 可选地,对这些层进行“折叠”(folding)——即堆叠组合,以充分利用GPU的并行计算能力(第4.4节);
最后,电路参数可通过梯度下降(gradient descent)或期望最大化(expectation maximization)(Peharz et al., 2016;Zhao et al., 2016)等方法进行优化。
4.1 构建和学习区域图
我们流程的第一步是构建一个区域图(RG)(定义4)。它指定了输入变量的层次划分,根据这种划分构建深度电路架构。特别是,由满足关键结构属性(如平滑性和可分解性)的RG构建的PC,通过设计(以及结构可分解性)确保RG是一棵树,并且具有单叶节点,参见第2.2节,这反过来又保证了对许多感兴趣查询的可处理推断(第2节)。RG在一些论文中被明确用于构建PC(Peharpour et al., 2020c;a),但正如我们将展示的,它们可以隐式地出现在许多其他PC和张量分解架构中。我们还介绍了一种快速构建图像RG的新方法,这些图像是数据集无关的,但利用了像素结构。线性树RG(LT)。通过构建每次分解一个变量的划分来实例化RG的一种简单方法是构建分区。也就是说,给定变量 X 的排序 π,每个第 i 个分区节点将其作用域
我们称生成的RG为线性树(LT)RG,并在图3中展示了三个变量的示例。变量的排序可以是字典序或根据附加信息(如建模序列数据时的时间)进行。这种顺序RG是链式张量网络分解(如MPS、TTs或BMs)(Pérez-García et al., 2007; Oseledets, 2011),以及表示为PC的隐马尔可夫模型(HMMs)(Rabiner & Juang, 1986; Liu et al., 2023a;b)所采用的。
随机树RG(RND)。构建平衡树的稍微复杂的方法是通过递归地随机划分变量来完成。这可以通过数据集无关的方式完成,即通过递归地划分变量到大致相等的子集中,直到无法进一步划分。我们称这种方法为RND,它已被引入用于构建随机化和张量化求和-积网络(RAT-SPNs)(Peharpour et al., 2020c)。Di Mauro et al.(2017; 2021)描述了类似的方法,不同之处在于在参数化电路时,还考虑了一些随机选择的数据子集,从而涉及RG的构建和电路参数化。
面向图像数据的新型区域图:四叉图(QG)与四叉树(QT)
我们希望设计一类既与数据集无关、又能感知像素结构(如PD所示),同时又避免陷入相同优化困境的区域图。因此,我们提出一种更为简洁的方法来构建面向图像的区域图,该方法能生成更小规模的电路,并实现更优性能——即使与从数据中学习得到的区域图相比亦然(参见第6节)。附录中的算法 D.1 详细描述了我们的构造过程。
与 PD 类似,我们的方法也通过递归分割大小近似相等的图像块来构建区域图;但与 PD 不同的是,我们仅将每个块分割为四个部分(一次水平切割与一次垂直切割),且这些新生成的子块之间是共享的。我们将此类区域图称为四叉图(Quad-Graph, QG)。图10展示了一个3×3图像对应的QG区域图示例。
![]()
另一种选择是:在水平和垂直方向上分割图像块,但不共享子块,从而构建一棵树状区域图。我们将此类树状区域图称为四叉树(Quad-Tree, QT)。由于此类区域图中的区域对应于图像块,我们可以选择不同的划分方式。特别地,我们将QT-2定义为区域被划分为两部分(图像块的上下部分)的四叉树;将QT-4定义为区域被划分为四部分(按象限划分)的四叉树。采用QT-2,我们可以复现先前工作中用于图像数据的张量分解方法(Cheng et al., 2019)。
从数据中学习区域图(RG):
迄今为止所讨论的方法均不依赖于训练数据。为在区域图构建过程中利用数据信息,一种策略是检验区域节点 Y ⊆ X 内部特征子集的统计独立性。该方法最早应用于里程碑式的LearnSPN 算法(Gens & Domingos, 2013),随后被诸多工作拓展(Molina et al., 2018;Di Mauro et al., 2019)。尽管这些变体均未显式提及“区域图”,但实际上,在执行统计检验并引入与不同数据子块(通过聚类获得;Vergari et al., 2015)相关联的区域时,区域图已在隐式地构建。
另一种方式是依据某些面向数据的启发式准则来分割区域,从而使得不同分支可共享某些区域节点(Jaini et al., 2018a)。这一思想同样构成本文所提Chow-Liu 算法(CL)的基础——该算法旨在学习一棵树状概率图模型(PGM),以最优逼近数据的似然(Chow & Liu, 1968b)。Chow-Liu 算法亦可用于隐式构建区域图,这已在诸多结构学习变体中得以实现(Vergari et al., 2015;Rahman et al., 2014;Choi et al., 2011)。
一种更近期、通常能达到当前最优性能的方法(state-of-the-art performance)是:首先学习 Chow-Liu 树,继而将其视作一个隐树模型(latent tree model)(Choi et al., 2011),最终将其编译为概率电路(PC)(Liu & Van den Broeck, 2021b)。
这一隐式 Chow-Liu 树(Hidden Chow-Liu Tree, HCLT)的构建过程,一旦我们将区域图(RG)的角色从其余部分中解耦出来,便恰好严格遵循我们提出的流程步骤。
至此所提及的其他概率电路与张量分解架构(例如:RAT-SPNs、EiNets、MPSs、BMs 等)的构建同样遵循相同的模式,并可轻松归类至我们的流程框架之中(见表1)。它们之间的差异不仅体现在所采用的区域图(RG)结构上,也体现在所选用的求和层与乘积层的类型上。
在下一节中,我们将给出一个通用算法:给定一个区域图(RG)以及一组用于编码张量分解的求和层与乘积层选择,该算法可构建出对应的张量化电路架构。
4.2 超参数化与张量化电路
给定一个区域图(RG),构建电路最直接的方式是:
- 为每个叶区域(leaf region)分配一个输入分布单元,
- 为每个内部区域(inner region)分配一个求和单元,
- 为每个划分(partition)分配一个乘积单元,
- 并依据区域图的结构将它们连接起来。
由此得到的电路是光滑的、(结构化)可分解的,且连接稀疏。实际上,上一节所讨论的诸多结构学习算法(如 Gens & Domingos, 2013;Vergari et al., 2015;Molina et al., 2018)在隐式实现中正采用了这一策略。
我们可以将该策略适配为“深度学习范式”,转而输出一个局部稠密连接(locally densely-connected)的超参数化电路(overparameterized circuit)。所谓超参数化,是指用多个(而非单个)具有相同作用域的求和单元、乘积单元和输入单元来“填充”区域图。由此生成的张量化计算图(定义7)拥有更多可学习参数,且天然适合GPU并行化——因我们可将共享相同作用域的计算单元向量化,形成稠密层。
算法1详细描述了这一超参数化与张量化过程。其输入包括:
- 一个区域图R
- 输入函数类型F(例如高斯分布),
- 求和单元数量 K(该参数控制电路的表达能力,或等价地,控制分解的秩)⁵。
此外,我们还可灵活定制输入层的选择,以及求和层与乘积层的堆叠方式,从而衍生出大量在效率与表达能力上各具特点的电路构建方案。
构建输入层。算法1的第一步是将输入单元与叶区域(即不再进一步分解的区域)相关联。叶区域通常为单变量,形式为Y = {Xⱼ},其中 Xⱼ ∈X。对于每个变量 Xⱼ 对应的叶区域,我们引入 K 个输入单元,每个单元计算一个函数 fᵢ: dom(Xⱼ) → ℝ。为确保单调概率电路(monotonic PCs)输出的非负性,fᵢ 通常被选为非负函数,例如选择其为概率质量函数或密度函数(Choi et al., 2020)。然而,人们亦可从更广泛的表达性函数族中选择 fᵢ,例如多项式样条(de Boor, 1971; Loconte et al., 2024)、神经网络(Shao et al., 2020; Correia et al., 2023; Gala et al., 2024a,b)以及归一化流(normalizing flows)(Sidheekh et al., 2023)。另见“机遇4”。随后,输入单元可通过有效替换为一个输入层 ℓ: dom(Xⱼ) → ℝᴷ 来实现张量化,使得 ℓ(Xⱼ)ᵢ = fᵢ(Xⱼ)(其中 i ∈ [K])可以并行计算(算法1中的L11)。接下来,根据给定区域图(RG)中指定的变量划分方式,构建并连接求和层与乘积层。
![]()
4.3 将求和和乘积层抽象为模块
除了输入层,我们还引入了张量化电路的其他原子“乐高块”(定义7):求和层、Hadamard和Kronecker乘积层。在接下来的内容中,我们将使用这些块来创建复合层,这些层将作为进一步的抽象,可以无缝插入算法1中。这些复合层包括:Tucker(图11)、CP(图15)和CP⊤(图16)层。这些层中的每一个都编码了局部分解,并将内部求和和乘积单元以不同的方式堆叠和连接,以提高表达能力或效率。
![]()
请注意,根据我们对张量化层的语义定义,在给定区域图(RG)上应用算法1来堆叠这些复合抽象模块,所输出的张量化电路始终是光滑的、且(结构化)可分解的(定义8)。
我们首先考虑采用Tucker分解中计算单元连接方式的复合层,如图2所示。该模式已见于RAT-SPNs(Peharz et al., 2020c)和EiNets(Peharz et al., 2020a)等架构中:对于一个作用域为Y⊆X、并被划分为 (Z₁, Z₂) 的区域节点,其参数化为一个层 ℓ,该层由一个克罗内克积层后接一个求和层构成,即计算:
![]()
![]()
![]()
4.4 折叠以进一步加速学习与推理
我们所提出流程的最后一步(也是可选步骤,见图9)是将具有相同函数形式的层堆叠在一起,以增强GPU并行性。我们将此步骤称为“折叠”(folding)。请注意,折叠仅是一种电路的语法变换——即它不改变电路所编码的函数,因而保留了其表达能力。然而,这种简单的语法“重写”却能显著影响学习与推理性能。事实上,折叠正是EiNets(Peharz et al., 2020a)相对于同类未折叠架构(如RAT-SPNs,Peharz et al., 2020c)所引入额外加速的核心要素;这些架构与EiNets共享其他架构细节(例如使用Tucker层,参见表1)。因此,当通常将RAT-SPNs与EiNets视为两类不同PC模型时(参见例如Liu et al., 2023a),二者在性能上的差异必须归因于其他因素,例如区域图(RG)的选择或用于训练这些模型的其他超参数(如所选优化器)的差异。通过在我们的流程中解耦这些方面,我们可以设计实验,真正突出哪些因素对性能提升负有责任(参见第6节)。
折叠层:为获得Tucker层的折叠表示(公式(Tucker-layer)),我们需要沿一个新引入的维度堆叠参数矩阵,我们称该维度为“折叠维度”(fold dimension)。随后,我们可根据这一额外维度并行计算乘积。例如,给定一组具有作用域 {Y⁽ⁿ⁾}ₙ₌₁ᶠ 的 F 个Tucker层,我们用单个折叠层 ℓ 并行评估它们,该层计算一个 F × K 矩阵,并定义为:
![]()
其中 ℓ₁(或 ℓ₂)表示一个折叠层,用于计算输入到 ℓ⁽ⁿ⁾ 的 F 个左侧(或右侧)输入,每个层定义在变量Z₁⁽ⁿ⁾(或Z₂⁽ⁿ⁾)上,且每个Wₙ::∈ ℝᴷˣᴷ² 是 ℓ⁽ⁿ⁾ 的参数矩阵。换言之,Wₙ::是一个张量W∈ ℝᶠˣᴷˣᴷ² 沿第一维的第 n 个切片,该张量由堆叠各Tucker层的参数矩阵得到。由于同一个区域节点可能参与多个其他区域节点的不同划分(例如,参见图9i),我们可能会有折叠输入 ℓ₁、ℓ₂ 计算相同输出的情况。我们在图9iii中展示了一个这样的示例,它显示了两个共享一个输入的Tucker求和-乘积层的折叠过程。在附录F中,我们提供了一个PyTorch代码片段,实现了一个带有einsum操作的折叠Tucker层。正因如此,尽管折叠在评估张量化电路时能带来显著加速,但其代价可能是内存占用增加——具体取决于所选的区域图(RG)。
如何选择待折叠的层?
仍需明确的是:应如何决定哪些层应当被一起折叠?
最直接的方法是自顶向下遍历张量化电路(即从输出层向输入层方向),将计算图中处于相同深度的层进行折叠。
但需注意,我们亦可折叠不同深度的层。例如,若所有输入层对各变量均采用相同的输入函数形式,则可将所有输入层统一折叠——这正是 EiNets 所采用的策略(Peharz et al., 2020a),也是本文所有实验与基准测试中所采用的方法(见第6节)。
然而需指出:这并非折叠层的最优方式;针对特定架构定制不同的折叠策略,可能带来额外的加速效果与内存节省。尽管本文未进一步探索除上述方法以外的其它折叠方式,但我们所提出的流程中,已将“折叠”与“超参数化”(第4.2节)步骤明确解耦——这一设计将有助于推动后续研究,使其能借鉴大量关于通用计算图并行化的现有文献(Shah et al., 2023)。
5 借助张量分解压缩电路与共享参数
本节再次借助张量分解领域的研究成果,以改进电路架构的设计与学习方法。我们首先观察到:在我们提出的流程中,电路各层的参数以大规模张量形式存储(例如参见公式(Tucker-layer)与(Tucker-folded)),原则上可进一步对其进行分解。又因张量分解本身可视为电路(命题1),最终我们可获得电路架构与层的多种变体:其中一些为新提出的形式,在速度与精度之间展现出有趣权衡(第5.2节);另一些则已在现有电路与张量分解的构建中被隐式使用(见表1)。
我们仍以Tucker层为起点,旨在压缩采用Tucker层构建的深层电路——即通过减少参数数量来近似该电路。
5.1 Tucker层的压缩
![]()
![]()
![]()
5.2 通过张量分解实现参数共享
我们现在聚焦于在张量化概率电路(tensorized PC)中跨层共享参数的问题。我们再次利用张量分解来完成此任务。考虑一个按照我们流程(第4.2节)由区域图(RG)构建的张量化PC。可以合理假设:位于相同深度的层,其参数张量可能存储相似的结构。例如,两个具有相邻且大小相同的像素块作为作用域的不同层,可能会对其各自的输入应用相似的变换——因为我们可假设这两个像素块的分布非常相似。如果区域图是一个完全平衡的二叉树,则对所得电路进行折叠,将转化为折叠处于相同深度的层——这些层很可能在参数空间中共享相似的结构。这促使我们将参数共享实现为一种跨折叠层的分解。
具体而言,我们首先压缩一个折叠Tucker层(公式(Tucker-folded)),并通过CP分解(定义10)再次分解其参数张量,以获得一个实现上述参数共享的新层。这一次,我们需要分解的是W∈ ℝᶠˣᴷˣᴷˣᴷ ——即通过对折叠Tucker层 ℓ 的参数张量进行重塑所得到的四维张量,其中 F 表示折叠维度。通过应用一个秩为 R 的CP分解(满足 R ≪ K),我们得到:
![]()
![]()
6 实证评估:应选用何种区域图(RG)与层结构?
将现代概率电路(PC)架构(以及张量分解)解构并纳入我们的统一流程(图9)之后,我们即可通过简单的“混合搭配”(mix & match)策略,构建出新型张量化架构(见表1)。同时,该流程也有助于我们从表达能力、推理速度与优化难易度等角度,厘清不同模型类别之间真正重要的差异所在。如今,我们得以清晰解耦现代电路架构中的关键要素——例如区域图(RG)的作用,以及复合求和-乘积层的选择——从而准确识别出究竟是哪个因素推动了性能提升。
例如,HCLT 近期在多项基准测试中被视为性能最优的电路模型架构之一(Liu et al., 2022;2023a),但迄今为止,尚不清楚其究竟为何优于 RAT-SPNs 和 EiNets 等其他架构。在我们的框架下,我们可通过回答更精确的问题来探究其原因:
- 是因其区域图由数据学习得来(第4.1节)?
- 还是因其采用了特定的复合求和-乘积层参数化方式(第5.1节)?
- 或是其他超参数选择所致?(剧透:实际关键在于采用了CP 层。)
具体而言,本节我们围绕以下三个研究问题开展严谨的实证研究:
RQ1)对于目前已能构建的多种张量化架构,其在测试与训练阶段所需的计算资源(时间与 GPU 内存)分别是多少?
RQ2)区域图(RG)与复合求和-乘积层的选择,对作为分布估计器训练的张量化电路性能有何影响?
RQ3)若将预训练张量化 PC 中的 Tucker 层按图14a → 图14b 所示方式分解为 CP 层,我们能否在很大程度上保留其原有性能?
需说明的是,我们此处不考察折叠操作的影响(第4.4节),因我们已明确知晓其答案:折叠对大规模张量化架构至关重要。因此,在所有实验中,我们都采用已折叠的张量化电路。我们强调:本实验的目标并非追求分布估计任务上的最优性能,而是旨在深入理解张量化电路架构中各组成要素的作用。所有实验均在单块 NVIDIA RTX A6000 GPU(48 GB 显存)上完成。代码已开源:github.com/april-tools/uni-circ-le 。
一种新的电路命名规范:
我们指出,HCLT、EiNets、RAT-SPNs 及表1中所有其他缩写,并非代表不同模型类别,而仅表示不同的架构实例——它们均属于同一模型类:光滑且(结构化)可分解的电路。后续我们将采用如下命名方式表示张量化架构:
[RG]-[求和-乘积层],可选后缀K表示算法1中超参数化所用的单元数量。
在此规范下:
- 若 RAT-SPNs 与 EiNets 均采用随机区域图(RND)构建,则二者统一记为RND-Tucker
- 若采用 Poon & Domingos 区域图构建,则记为PD-Tucker
- 而 HCLT 则记为CL-CP
任务与数据集:
我们主要通过在图像数据集上进行分布估计(distribution estimation)来评估所提架构。所用数据集包括:
- Mnist 系列:6 个灰度 28×28 图像数据集——Mnist(LeCun et al., 2010)、FashionMnist(Xiao et al., 2017),以及 EMNIST 的 4 个划分(Cohen et al., 2017);
- CelebA:缩放至 64×64 大小(Liu et al., 2015),包含两个版本:原始 RGB 像素版本,以及经无损YCoCg 颜色编码(Malvar & Sullivan, 2003)预处理的版本——近期研究表明该变换可显著降低比特每维(bpds)。
此外,我们还在含连续变量的表格数据上开展实验:具体而言,我们在 5 个 UCI 数据集上评估不同张量化层的密度估计性能——这些数据集常被用于评估归一化流模型(Papamakarios et al., 2017)。UCI 数据集的统计信息见表 E.5。
参数优化:
我们训练电路以估计生成图像数据的潜在概率分布,并将每个像素视为一个随机变量。因此,电路中的输入单元采用256 类别的类别分布(Categorical distribution)。对于 RGB 图像,每个像素关联三个类别分布单元(每颜色通道一个);而对于 5 个 UCI 数据集(表 E.5),我们采用单变量高斯分布作为输入单元,并同时学习其均值与标准差参数。
我们通过随机梯度上升法进行最大似然训练,即最大化以下目标函数:
![]()
其中, Z = ∑ₓ c (x) 是概率电路 c 的配分函数(partition function)⁹, B 为一批训练数据。经过初步实验,我们发现:使用Adam 优化器(Kingma & Ba, 2015)并设置学习率为 10⁻²,平均而言可在我们所考虑的数据集上获得性能最佳的模型。此外,我们决定在每次优化步骤后,通过截断法(clamping)对电路求和参数进行重参数化,并设定 ε = 10⁻¹⁹(公式(9)),以保持其非负性——因为在所有可能的重参数化方法中,该方式带来了最优的学习动力学表现(第3.2节)。下文我们将总结回答 RQ1–3 时的主要发现,并提炼出面向实践者的建议,指导如何构建与学习电路。
![]()
RQ1)不同张量化架构的时间与空间开销基准测试
在本组实验中,我们考察以下区域图(RG):
- PD(Poon-Domingos):常用于 RAT-SPNs 和 EiNets 等架构;
- 以及我们在第4.1节中提出的两种新型轻量级、与数据无关的区域图:QT(四叉树)和QG(四叉图)。
我们未纳入 RND(随机 RG),因其通常仅为平衡二叉树(Peharz et al., 2020c),其时间与内存表现将与 QT 相当;同理,我们亦未纳入 CL(Chow-Liu),因其为树状结构,经定根后通常也接近平衡¹¹。
在层类型方面,我们考察:
- Tucker(公式(Tucker-layer))、
- CP(公式(CP-layer))、
- CPS(公式(CPS-layer))
- 以及CPXS(第5.2节)。
图19展示了在 Mnist 数据集上,多种通过混合搭配上述 RG 与求和–乘积层构建的张量化概率电路(PC)架构处理一个数据批次所需的平均时间与峰值 GPU 内存(受限于我们的 GPU 显存上限)。对每种架构,我们通过改变 K(每层单元数量,K ∈ {2ⁱ}ⁱ₌⁴¹⁴)来调节模型规模。
我们观察到:
- QT 与 QG 区域图构建的架构,其可扩展性显著优于广泛使用的 PD 架构——后者在所有情况下均更慢且占用更多内存;
- 同时,CP 与 CPS 层展现出更平缓的扩展性:采用 QT 作为 RG 时,CP 层可支持 K = 2¹⁰;而 CPS 甚至可在 QG 下支持更大的 K(最高达 2¹³);
- 相比之下,在相同 GPU 条件下,Tucker 层因计算开销过大,K 最多仅能达 128;
- 我们特别指出:QT-Tucker 架构缺失是有意为之——QT 每步递归将图像划分为 4 部分(算法 D.2),若在此结构上应用 Tucker 层,参数量将达 O(K⁴),即便仅取 K = 16,在我们的 GPU 上亦不可行。
我们强调:这些架构的未折叠版本(如 RAT-SPNs;Peharz et al., 2020c)速度可能慢数个数量级,严重阻碍实际中的学习与部署。
图 E.1 展示了在CelebA数据集上的相同基准结果——该任务更具挑战性,因其等效于在更高维空间(12,288 = 64×64×3,而非 Mnist 的 784 = 28×28×1)上进行分布估计¹²。该补充实验表明:即使在高维情形下,RG 与层类型的扩展趋势依然保持一致。
最后,图 E.3 聚焦于CPS 与 CPXS 的对比:结果表明,对于相同的 RG 与 K,二者所需时间/空间资源基本一致;仅在训练阶段,CPXS 略快。
![]()
![]()
RQ2)作为分布估计器的准确性评估
我们现在将张量化概率电路(PC)作为分布估计器进行测试,所用架构即 RQ1 中的混合搭配组合。对每种架构,我们通过变化 K(每层单元数)调节模型规模:在 MNIST 系列数据集上 K∈ {16, 32, 64, 128, 256, 512};在 CelebA 上最大至 256。为评估“从数据中学习区域图(RG)”带来的影响,我们将结果与 Dang 等人(2022a)所报告的HCLT(按我们的命名法即CL-CP)进行比较。
实验设置:批大小为 256,最多训练 200 轮;若验证集对数似然连续 5 轮未提升,则提前终止训练。评估指标为测试集平均每维比特数(bits-per-dimension, bpd):
![]()
其中 d 为数据集 D 的特征维数,L 如公式(18)所定义。
图20展示了在 Mnist、FashionMnist 与 CelebA 上的平均测试集 bpd。从中可立即观察到一条清晰模式:相较于 RG 的选择,基于 QT 与 QG 的架构一致优于基于 PD 的架构,且能成功扩展至 CelebA 等更大规模数据集。平均而言,QG 构建的架构性能最佳——这符合预期:与 QT 不同,QG 允许对同一区域采用不同划分方式(因此需使用混合层,如公式(Mixing-layer)所述)。尽管 PD 区域图与 QG 同为有向无环图(DAG)结构,但其张量化架构表现欠佳,表明更大的模型虽表达能力更强,却更难训练——这一现象亦为 Li...
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
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.