资讯动态

变分推断统一框架:从精确推断的复杂度边界到近似方法的工程取舍

发布时间:2026/10/25 1:34:50 来源:尧图企业网站定制
简介这份PDF资源面向机器学习、统计学方向的研究者与高年级学生聚焦概率图模型、指数族与变分推断三大主题的关联框架帮助读者理解如何用指数族参数化描述图模型中的局部依赖并借助变分方法近似求解边际概率与最大后验配置等核心推断问题。资源包内仅含1个PDF文件大小约2.06MB内容源自《Foundations and Trends in Machine Learning》的经典综述系统梳理了和积算法、簇变分方法、期望传播、平均场、最大积及线性规划松弛等算法在统一变分表示下的联系并涉及生物信息学、信号与图像处理、信息检索等应用场景。目前已有235人学习下载适合作为图模型推断方向系统研读与查漏补缺的参考材料。1. 变分推断为什么精确计算边际概率几乎总是走不通翻开任何一本概率图模型的教材边际推断那一章都会告诉你树结构上可以用和积算法精确求解一般图则不行。但很少有人把“不行”到底卡在哪一步讲清楚。真正反直觉的结论是——即便你手里只有几十个二值随机变量只要图的团结构稍微稠密一点精确计算边际概率所需的计算量就可能超过宇宙原子总数。这不是工程优化能绕过去的墙而是组合爆炸在概率空间里的直接投影。这份由两位统计机器学习领域研究者合著的 305 页长文核心就在回答一个问题当精确推断不可行时我们凭什么还能得到可信的近似答案藏在指数族的凸对偶结构里——变分推断不是拍脑袋的近似技巧而是把“算积分”转化成“解优化”的一次系统性重构。搞懂这条主线你才能明白为什么和积算法、平均场、期望传播这些看似不同的算法其实是同一个变分原理在不同约束下的投影。2. 图模型与因子分解条件独立如何被编码进图结构2.1 从联合分布到局部因子的拆解逻辑图模型的第一性原理只有一条联合分布可以按图的结构拆成局部函数的乘积。有向无环图里每个节点只依赖它的父节点集合联合分布写成 (p(x)\prod_{s} p_s(x_s \mid x_{\pi(s)}))无向图里联合分布按团分解(p(x)\frac{1}{Z}\prod_{C}\psi_C(x_C))配分函数 (Z) 负责归一化。这个拆解不是数学游戏它把“高维联合分布”这个无法直接操作的对象变成了若干个低维局部函数的组合。但拆解本身不减少计算量。真正的价值在于图结构同时编码了条件独立关系。有向图里的 d-分离、无向图里的分离集都是把“给定某些变量后另一些变量是否独立”这个概率问题翻译成图上的路径可达性问题。这个翻译之所以成立是因为因子分解和条件独立之间存在等价性——Hammersley-Clifford 定理保证了无向图上满足局部马尔可夫性的分布必然可以按团分解。换句话说图不只是画着好看它是分布结构的完整编码。常见的实现思路是先根据问题领域确定变量之间的直接依赖画出图再写出对应的因子分解式。这一步做错后面所有推断都是在错误的模型上做精确计算结果只会更糟。我一般会这么理解图模型的价值不在于“能表示复杂分布”而在于“把复杂性显式地暴露在结构上”让你能判断哪些计算是可行的、哪些必须近似。2.2 团树与联结树算法精确推断的复杂度边界精确推断的核心算法是联结树junction tree算法它把原图三角化、构造团树然后在团树上跑消息传递。对于树结构的图消息传递两遍就能得到所有边际复杂度与变量数成线性关系。但三角化会引入填充边团的大小treewidth决定了复杂度——团大小为 (k) 时复杂度是 (O(N \cdot r^k))(r) 是状态数。这里就是精确推断的硬边界。一个 30 个节点的网格图treewidth 大约是 5 到 6二值变量下 (2^664)还能接受但换成 100 个节点的稠密图treewidth 可能到 20 以上(2^{20}) 已经上百万再乘上节点数就彻底不可行了。联结树算法本身没有近似它就是精确的问题在于精确的代价随图结构指数增长。提示判断一个图模型能不能精确推断不要看节点数要看三角化后的最大团大小。节点多但结构稀疏的图往往比节点少但连接稠密的图更容易处理。这个复杂度边界直接引出了变分推断的动机既然精确的团树算法在稠密图上走不通那就放弃“精确”转而寻找一个在计算上可控、同时尽可能接近真实边际的近似方案。而要让近似有理论保证就需要一个统一的框架来描述“近似到什么程度、误差从哪来”——这个框架就是指数族的变分表示。3. 指数族与共轭对偶变分推断的数学地基3.1 充分统计量与对数配分函数的凸性指数族的标准形式是 (p(x \mid \theta)\exp{\langle\theta, \phi(x)\rangle - A(\theta)})其中 (\phi(x)) 是充分统计量(A(\theta)\log\int\exp{\langle\theta,\phi(x)\rangle}dx) 是对数配分函数。这个形式看起来只是把分布写得更紧凑但它带来一个关键性质(A(\theta)) 是凸函数而且它的梯度就是充分统计量的期望 (\nabla A(\theta)\mathbb{E}_\theta[\phi(X)])。凸性意味着什么意味着对数似然作为 (\theta) 的函数是凹的参数估计有唯一全局最优意味着 (A(\theta)) 和它的共轭对偶函数之间存在一一对应意味着我们可以用凸分析的工具来研究推断问题。这份长文的核心洞察就在这里边际概率的计算可以写成对 (A(\theta)) 的某种运算而 (A(\theta)) 的凸性保证了这个运算有一个对偶形式——对偶形式把“在分布空间上求积分”变成了“在参数空间上求优化”。常见的实现思路是把图模型的联合分布写成指数族形式识别出充分统计量通常是节点的边际指示函数和边的联合指示函数然后利用 (A(\theta)) 的凸性构造变分上界或下界。平均场方法用的是 KL 散度的下界Bethe 近似用的是基于团能量的近似两者都可以在这个对偶框架下统一理解。3.2 共轭对偶如何把积分问题转成优化问题指数族的核心对偶关系是(A(\theta)\sup_{\mu\in\mathcal{M}}{\langle\theta,\mu\rangle - A^(\mu)})其中 (\mu) 是充分统计量的期望也就是边际(\mathcal{M}) 是所谓的边际多面体(A^(\mu)) 是熵函数。这个式子的含义是对数配分函数等于“期望内积减去熵”在边际多面体上的上确界。反过来给定 (\theta)最优的 (\mu) 就是真实的边际。于是计算边际的问题变成了在边际多面体 (\mathcal{M}) 上最大化 (\langle\theta,\mu\rangle - A^*(\mu))。如果 (\mathcal{M}) 能被精确描述这个优化就给出精确边际如果 (\mathcal{M}) 太复杂我们就用一个更简单的集合 (\mathcal{M}) 去替代它在 (\mathcal{M}) 上做优化得到的就是近似边际。这就是变分推断的统一框架。不同的近似方法本质上是对 (\mathcal{M}) 做了不同的松弛平均场把 (\mathcal{M}) 限制在完全分解的分布集合上相当于假设所有变量独立Bethe 近似用一个基于团和边的局部一致性约束来近似 (\mathcal{M})保留了局部依赖但放松了全局一致性凸松弛方法则用半正定约束或线性规划约束来逼近 (\mathcal{M})。所有算法——和积、期望传播、最大积、LP 松弛——都可以在这个框架下找到位置。注意变分框架给出的近似不是“随便近似”它有明确的方向性。平均场给出的是对数似然的下界凸松弛往往给出上界。知道你的近似在哪个方向偏比知道它“大概准”重要得多。4. Bethe 近似与和积算法树上的精确如何变成环上的近似4.1 树上的信念传播为什么是精确的在树上和积算法sum-product的消息传递规则是 (m_{s\to t}(x_t)\propto\sum_{x_s}\psi_{st}(x_s,x_t)\psi_s(x_s)\prod_{u\in N(s)\setminus t}m_{u\to s}(x_s))。这条规则在树上跑两遍一遍从叶到根一遍从根到叶每个节点的信念belief就等于真实的边际。精确性的根源在于树没有环消息不会绕回来污染自己每个子树的信息可以被完整地汇总到父节点。从变分角度看树上的 Bethe 自由能是精确的。Bethe 近似把自由能写成节点熵之和减去边互信息之和(\mathcal{F}{\text{Bethe}}\sum_s \mathbb{E}{\mu_s}[\log\psi_s]\sum_{st}\mathbb{E}{\mu{st}}[\log\psi_{st}]-\sum_s H(\mu_s)\sum_{st}I(\mu_{st}))。在树上这个表达式恰好等于真实的自由能因为树的团结构只有节点和边没有更大的环Bethe 近似的局部一致性约束恰好完整描述了边际多面体。4.2 有环图上的 Bethe 近似局部一致不等于全局正确有环图上和积算法照样可以跑消息照样传递但收敛性和精确性都没有保证。Bethe 近似的问题在于它只要求相邻节点的边际在边上一致(\sum_{x_s}\mu_{st}(x_s,x_t)\mu_t(x_t))但不要求更大的环上一致。在有环图上这种局部一致性约束定义的集合严格大于真实的边际多面体所以 Bethe 自由能的驻点不一定是真实边际。更麻烦的是有环图上的 Bethe 自由能不是凸的可能有多个驻点和积算法可能不收敛或者收敛到不同的固定点。这就是为什么同样的算法在树上精确、在环上变成玄学——不是算法实现有问题是 Bethe 近似本身在有环时失去了精确性的理论基础。常见的补救思路是用阻尼damping让消息更新更平滑减少振荡用双 loop 算法在 Bethe 近似上加入环修正项或者干脆换用凸松弛方法牺牲一些紧致性换取收敛保证。我一般会这么理解Bethe 近似是“用树的语言描述有环的图”它在环比较长、耦合比较弱的时候表现好在环短而强的时候容易翻车。# 和积算法在有环图上的消息更新含阻尼 def sum_product_damped(edges, factors, max_iter100, damping0.5, tol1e-6): # 初始化消息为均匀分布 messages {e: np.ones_like(factors[e]) / factors[e].size for e in edges} for it in range(max_iter): max_delta 0.0 for s, t in edges: # 收集除 t 以外所有邻居传给 s 的消息 incoming [messages[(u, s)] for u in neighbors(s) if u ! t] # 乘以本地因子后求和边缘化 new_msg factor_s(s) * reduce(np.multiply, incoming, 1.0) new_msg marginalize(new_msg, axiss) # 阻尼更新新旧消息加权混合抑制振荡 updated damping * messages[(s, t)] (1 - damping) * new_msg updated / updated.sum() # 归一化防止数值溢出 max_delta max(max_delta, np.abs(updated - messages[(s, t)]).max()) messages[(s, t)] updated if max_delta tol: # 消息变化足够小认为收敛 break return messages这段代码的关键在阻尼系数damping它控制新旧消息的混合比例取值在 0 到 1 之间。有环图上不加阻尼时消息容易在两个值之间来回跳永远不收敛加了阻尼相当于给更新加了惯性牺牲一点收敛速度换取稳定性。tol是收敛判据但要注意收敛了不代表结果正确只代表消息不再变化。有环图上即使收敛得到的信念也可能偏离真实边际这是 Bethe 近似的固有局限不是调参能解决的。5. 平均场与凸松弛两个方向的近似及其代价5.1 平均场用独立性假设换计算可行性平均场方法把近似分布限制在完全分解的族里(q(x)\prod_s q_s(x_s))。在这个约束下变分目标变成最小化 KL 散度 (\text{KL}(q|p))等价于最大化证据下界ELBO。由于 (q) 完全分解ELBO 可以逐坐标优化得到坐标上升的迭代更新(q_s(x_s)\propto\exp{\mathbb{E}{q{-s}}[\log p(x)]})。平均场的优点是简单、总能收敛坐标上升保证目标单调不减、给出的是对数似然的下界。缺点是独立性假设太强它系统性地低估后验方差因为忽略了变量之间的相关性。在变量强耦合的问题里平均场的近似可能非常粗糙甚至给出误导性的置信区间。从变分框架看平均场是在边际多面体 (\mathcal{M}) 的一个极小子集上做优化——只保留单变量边际把所有联合边际都写成乘积。这个约束越强优化越容易但离真实边际越远。这是计算可行性和近似精度之间的直接权衡。5.2 凸松弛用上界换收敛保证与平均场相反凸松弛方法不限制近似分布的形式而是放松边际多面体的约束把非凸的 Bethe 问题转成凸问题。典型做法是用线性规划松弛把边际多面体 (\mathcal{M}) 用一组线性约束局部一致性加上环不等式来近似得到一个凸多面体 (\mathcal{M}_{\text{LP}})在它上面优化线性目标。凸松弛的优点是凸问题有全局最优算法收敛有保证而且往往给出对数似然的上界与平均场的下界互补。缺点是松弛可能不够紧上界和下界之间的间隙可能很大而且线性规划松弛的约束数量随环的数量增长大规模问题上计算量也不小。方法近似方向收敛保证计算代价适用场景平均场下界坐标上升保证收敛低变量弱相关、需要快速近似Bethe/和积无保证有环时不保证中环长、耦合弱的结构凸松弛/LP上界凸优化保证收敛高需要可靠界、中小规模这张表的核心信息是没有一种近似在所有维度上都占优。选方法的时候先问自己需要的是速度、是界的方向、还是收敛保证再对应选。常见的踩坑是拿平均场去估后验方差或者拿 Bethe 近似去处理强耦合的稠密图然后在结果不对的时候怀疑代码写错了——其实是方法选错了。6. 避坑变分推断落地时最容易翻车的几个地方现象一和积算法在有环图上不收敛消息值来回振荡。原因是有环图上的 Bethe 自由能非凸消息更新映射不是压缩映射固定点可能不存在或不唯一。解决办法是加阻尼如上一章的代码所示或者改用双 loop 算法加入环修正再不行就换凸松弛方法。不要试图通过增加迭代次数硬等收敛振荡不会自己消失。现象二平均场收敛很快但后验方差明显偏小置信区间过窄。原因是完全分解的假设抹掉了变量间的相关性而方差恰恰来自这些相关性。解决办法是放松独立性假设改用结构化平均场保留部分依赖或者用 Bethe 近似替代。如果只需要点估计平均场够用如果要不确定性量化就得换方法。现象三Bethe 近似在树上精确换到有环图上结果偏差很大但代码没改。这不是 bug是 Bethe 近似的理论边界。树上的精确性依赖于团结构只有节点和边有环图上出现了更大的环Bethe 的局部一致性约束不再完整描述边际多面体。解决办法是识别图中的短环考虑用联结树算法精确处理这些环或者用凸松弛给出有保证的界。现象四指数族参数化时充分统计量选错导致变分目标优化到错误的不动点。图模型的指数族表示里充分统计量必须覆盖所有团上的指示函数漏掉任何一个团因子分解就不完整变分优化会在一个错误的模型上做精确计算。解决办法是写完因子分解后逐项核对充分统计量是否与因子一一对应。现象五凸松弛的上界和平均场的下界差距巨大不知道该信哪个。这说明松弛太松或者模型本身的后验确实很难近似。解决办法是收紧松弛加入更多环不等式或者用 MCMC 采样做小规模验证确认真实后验的位置。上下界差距本身就是有用的诊断信号不要忽略它。7. 设计取舍为什么这套框架值得反复读这份长文最值得琢磨的地方不是它介绍了多少算法而是它展示了一种组织知识的方式把看似不同的推断方法统一到一个变分原理下用指数族的共轭对偶作为共同地基。这种统一不是数学上的炫技它直接指导工程决策——当你知道平均场是下界、凸松弛是上界、Bethe 在树上是精确的你就能根据问题结构和方法性质做有依据的选择而不是挨个试。从设计取舍的角度看这套框架的核心张力是“精确性 vs 计算可行性”。精确推断的复杂度由 treewidth 决定这是图结构的固有属性改不了近似推断的复杂度由近似族的复杂度决定这是可以设计的。变分框架的价值在于它把“设计近似”这件事从经验试错变成了有理论指导的构造——你选的近似族越接近真实边际多面体结果越准但优化越难越简单越快但偏差越大。这个权衡曲线是连续的你可以根据需求在上面选点。验证方法上我一般会这么做小规模问题上用联结树算法算精确边际作为基准对比近似方法的结果中等规模上用 MCMC 采样做参照看近似是否落在采样分布的合理范围内大规模上没法验证精确值就看上下界是否收敛、不同近似方法是否一致。如果平均场和凸松弛给出的结果差距很大说明后验本身很难近似这时候要么加结构信息要么接受不确定性。进阶方向有两个一是把变分框架推广到参数估计原文第 6 章讨论了完全观测和部分观测下的参数学习核心是把变分下界对参数求导做联合优化二是把线性规划松弛推广到半正定松弛第 9 章用矩矩阵的半正定约束来收紧近似代价是计算量上升但界更紧。血泪经验是不要在没有精确基准的小规模问题上直接上大规模近似。我见过太多人拿平均场跑了一个稠密图结果看起来合理就信了后来用 MCMC 一验证发现偏差大得离谱。从那以后我每次上变分方法之前都强制在一个能精确求解的小规模子图上跑一遍对照确认近似方向和量级没问题再放大。希望帮到你。本文还有配套的精品资源点击获取

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑