APP下载

贝叶斯分层模型变分推理与概率编程方法综述

2022-12-06令晓明范少良王文强张凯越

铁路计算机应用 2022年3期
关键词:变分贝叶斯编程

令晓明,范少良,王文强,顾䶮楠,张凯越

(1.兰州交通大学 国家绿色镀膜技术与装备工程技术研究中心,兰州 730070;2.兰州交通大学 光电技术与智能控制教育部重点实验室,兰州 730070;3.兰州交通大学 自动化与电气工程学院,兰州 7300070)

贝叶斯分层模型中的推理通过在概率模型中利用贝叶斯定理,计算给定数据条件下模型的条件概率,进行模型的估计及对数据的预测,依赖于推理算法估计后验概率。然而,后验概率因计算开销巨大难以取得闭合解,在实践中往往需要近似推理,主要有两种方法:马尔科夫链蒙特卡罗(MCMC,Markov chain Monte Carlo)和变分推理(VI,variational inference)。多年来,MCMC是近似推理的主流范式,能够实现对目标分布较为准确的近似,但运算缓慢。VI将高维度推理问题转化为优化问题,实现了更快速的近似计算,凭借其更快的收敛速度及对海量数据的强适应性,受到众多研究者的青睐。

1 研究现状

近年来VI领域的研究集中于以下5个方面。

1.1 提升计算效率

随 机 变 分 推 理[1]( SVI, Stochastic Variational Inference)及其变体[2]通过引入随机优化方法,分别在大型数据集和稀疏情况中取得良好表现。进一步地,Ranganath等人[3]开发了随机推理中的自适应学习率的设置方法;坍缩变分推理[4-6](CVI,CollapsedVariational Inference)通过积分消除部分变量,简化了计算。

1.2 重构变量间的依赖关系

文献[7-9]使用不同的方式建立了保持一定依赖关系的结构,可以描述更丰富的变分族并提升VI的准确性,但会引起计算量的显著增加。

1.3 通用变分推理框架与自动化推理

文献[10]将原本的变分分布映射为更简单的分布并从中采样;文献[11]对变分目标中难以处理的对象应用蒙特卡罗梯度;文献[12]通过引入随机优化、蒙特卡罗估计和方差减少技术实现了快速收敛。其他具备“黑盒”性的推理模型还包括层次变分模型 ( HVM, Hierarchical Variational Models)[8]和 变分高斯过程(VGP,Variational Gaussian Process)[13]等。

1.4 提高算法鲁棒性

文献[14]通过约束变分参数的后续迭代,克服了对初始化的敏感性,且能达到更好的局部最优;文献[15]通过改造近似计算的目标,在统计和计算特性中取得了较好的平衡。

1.5 概率编程系统

Stan[16]、PyMC3[17]和 Edward[18]是 3款具有代表性且比较完备的概率编程系统,具有直观、可读、功能强大的语法,在不同程度上支持VI和MCMC采样。

大数据时代下,铁路故障、事故信息数据量庞大,文本中的非结构化数据蕴藏着大量的信息[19]。使用变分推理的主题模型在挖掘文本隐藏信息中具有效率上的独特优势[20-23]。此外,主题模型还可用于对扣件的识别检测等[24-27],使用VI可以显著提升识别效率。

2 贝叶斯分层模型与VI

2.1 贝叶斯分层模型

贝叶斯推理将模型框定为具有N个局部隐变量z1:N和观测变量x1:N的模型,另有控制任意局部上下文的全局隐变量 β。p(·)为概率密度函数,贝叶斯模型中推理的目标是计算后验密度p(z,β|x)=p(z,β,x)/p(x),其中,p(x)称为证据,对于许多具有表现力的模型,p(x)难以计算,需要通过其他方法实现对证据的近似。

2.2 VI框架

VI将近似推理视为一个优化问题。(1)引入一个关于隐变量的分布族,该分布族被构造为各分量独立的平均场形式;(2)以KL(Kullback-Leibler)散度定义变分目标,通过坐标上升算法迭代得到参数更新方程;(3)若满足指数族共轭条件,则能够获得更简单有效的更新形式。但经典框架也暴露出许多问题,包括参数的更新都依赖于其他参数与观测变量,无法从无意义的初始化中恢复,优化计算的过程方差偏大间接影响收敛速度,易陷入糟糕的局部最优,依赖于对特定模型的推导等。

2.3 SVI与主题模型

2.3.1 SVI概述

SVI使用自然梯度纠正了经典梯度可能导致错误方向的问题[28],并通过以下3步有效减少了计算量:

(1)引入黎曼测度使对数规整器对自然参数的Hessian矩阵不再在参数更新方程中出现。

(2)通过引入随机优化,将跟踪目标转化为噪声估计[29]。

(3)从具有n个 局部的某局部隐变量z1:n中采集单样本zi,i∈ {1,···,n},进而替换z1:n,导出全局变分参数关于步长的线性更新方式。

2.3.2 主题模型

主题模型是文本挖掘的重要模型,潜在狄利克雷分配模型(LDA,Latent Dirichlet Allocation)是其典型代表。VI是LDA参数估计的重要方法,SVI可以根据局部的拟合结果得到中间全局变分参数,并将下一次迭代的全局变分参数设置为当前参数的线性组合,从而显著提升效率。

随着铁路系统故障文本信息日渐庞大,基于LDA及其变体的SVI技术将有助于快速分析故障文本数据,并发掘热点问题,对铁路系统故障的预防和分析提供重要依据。对于同样数量庞大的图像信息,基于主题词包模型将图像量化为图像—单词矩阵用于分类,度量空间不同造成的距离偏差可通过引入SVI的自然度量予以纠正,从而更准确地实现基于近义词分配的铁路扣件等设备的状态检测。

3 更稳健的变分推理

VI使用KL散度定义变分目标函数,其本质是一个非凸优化问题,包含了许多局部最优解,所采用的迭代算法难以避免陷入糟糕的局部最优解且对初始化参数选取敏感。

(1)邻近变分推理(PVI,Proximity Variational Inference)建立在邻近视角上,认为梯度上升中的每一步是对前一步参数泰勒展开的有约束最小化[30-31],强制下一个点必须在以前一个点为球心、半径受控于步长的欧氏球内;(2)算子变分推理(OPVI,Operator Variational Inference)是一种将原变分目标重新设计为算子变分目标的通用框架,基于强化梯度/重参数化梯度计算梯度期望的蒙特卡罗估计,且使用 Rao-Blackwellization 和控制变量技术来减小方差;(3)变分回火(VT,Variational Tempering)[32]引入了确定性退火,通过在模型中赋予异常值更高的温度,降低了异常值对全局变分参数的影响,提升了局部最优的鲁棒性;(4)信赖域变分推理(TRVI,Trust Region Variational Inference)[33]使用信赖域步长代替 SVI 中的自然梯度步长,有效改善了SVI陷入糟糕局部最优解的情况,也降低了对超参数的敏感性;(5)总体经验贝叶斯[34]明确地将经验总体分布作为贝叶斯分析的一部分,进一步得到碰撞变分推理(bump-VI),将优化问题扩展为在寻找最优近似后验分布的同时寻找潜在数据集的索引。

更稳健的VI算法使得计算量明显增加。对鲁棒性的要求过高会直接导致算法更接近于全局寻优,削弱VI方法的效率优势。为实现有效的计算,需要避免在错误方向上的步进,保持对新加入数据点的鲁棒性,还要能从浅局部最优解中脱离。满足这些要求的算法在优化过程中能够进一步收集局部的信息,或重新设计推理框架,从而获得全新的特性,有助于形成更准确、统计性质更好的近似结果。

4 概率编程

4.1 概率编程语言概述

概率编程语言(PPL,Probabilistic Programming Language)是用于描述带有概率的生成过程的规范化语言,其目标是用简洁的形式描述一个概率模型,并实现自动的学习与推理,用尽量少的代码实现使用者的想法,显著减轻VI研究者编写繁复程序的负担。

(1)Stan是一种用于指定统计模型的PPL,定义了以特定数据和常数为条件参数的对数概率函数,能实现变分贝叶斯、期望传播和使用近似积分的边际推断等算法。Stan比传统声明式图形建模语言更具表现力,可支持使用类型声明变量、局部变量和条件语句。(2)PyMC3是运行在Python语言中的开源PPL,基于NUTS和HybridMC[35]并与众多科学计算库集成,具有强大的表达能力。虽然PyMC3中大多数面向用户的功能都是用纯Python编写的,但其利用Theano[36]将模型转码为C并编译为机器代码,从而提高了性能。(3)Edward对程序的表达方式具有模型对计算图的表示不变且推理对计算图的表示不变的特点,使得对复杂模型的建模变得简单,且所有的计算都只是象征性地记录在随机变量上,简化了在执行程序之前的确定性和随机性操作[37-38],其中,符号表示不需要具体化整个模型,避免了具体化大型模型带来的不合理的内存消耗[39],因而,具有极高的执行效率。

4.2 概率编程语言评价

(1)考虑VI的支持性,Edward和 PyMC3都支持较多的VI算法,相较Stan等其他算法匮乏的语言而言是更好的选择;(2)考虑指定贝叶斯任务的代码量、语言的自然性和概念的可解释性,Edward和PyMC3的使用显著易于Stan,而Edward后续被集成到TensorFlow中,易用性得到进一步提升;(3)在完成贝叶斯推理任务的速度方面,得益于GPU加速支持,Edward和PyMC3的运算速度更快,而PyMC3并没有在所有的计算中都使用Theano,导致其效率低于Edward;(4)在所采用算法的鲁棒性和API 的稳定性方面,Stan 较为稳定,它没有大规模使用随机优化技术,且不依赖于Theano,保证了执行的可靠性。

5 研究展望

VI是机器学习领域重要的推理方法,该领域进一步的研究主要集中于以下几个方面。

5.1 VI与MCMC结合

近似推理的核心问题是有效性和准确性的矛盾,如何将MCMC与VI结合一直以来都是近似推理研究的核心命题。目前,仅有少数研究在部分计算环节中做出了尝试,几乎都是基于特定问题做出的小幅改进,还需进一步探索出明确的VI-MCMC接口,这一方向的研究对于未来VI方法及应用的发展至关重要。

5.2 非共轭推理

VI方法的发展需要突破共轭限制,有学者提出适用于逻辑回归的变分界[40]。非共轭模型中的推理可以使用Laplace逼近和Delta方法[41],但仅限于连续变量。Wand[42]等人使用辅助变量、求积和混合近似法对指数族之外的分布族进行了探索。但非共轭模型是一个广泛的研究范畴,这些方法尚不足以支撑非共轭模型的推理。基于这一现状,非共轭条件下的推理或逼近方法将作为VI研究中自动化推理方向的主要命题长期存在。

5.3 与深度学习融合

对于深度学习所表现出的解释性不足和难以包含先验知识等缺陷,有学者使用贝叶斯方法,如变分自编码器(VAE,Variational Auto Encoder)及其变种改善了这些问题。有学者赋予了VAE解释性较强的先验模型[43-44],在这些模型中合理使用VI将带来效率上的飞跃,使得VAE具有更好的生成结果。此外,由于VAE将数据强行投射到有限维度的指定分布上,导致生成信息质量不高,而GAN(Generative Adversarial Network)使用神经网络学习该分布,虽然在匹配分布的过程中有可能发生模型坍缩,但其生成的数据质量较高。将VAE与GAN有机结合是一个极具潜力的研究方向。

5.4 基于分布测度的问题

VI使用KL散度作为分布测度定义变分目标,对VI的一系列研究都是从KL散度开始的。考虑使用 其 他 散 度 如 α 散 度[45]、f散 度[46]、Stein散 度[47-48]、JS散度[49-50]等定义的变分目标可以获得更紧致的下界或更快的收敛速度,但基于这些散度的推理方法的研究尚不成熟,其计算方法、统计特性等方面的研究尚不全面和深入。

5.5 概率编程

尽管概率编程已取得一定的发展,但近年来发展出的众多推理方法在编程实现上仍存在困难。概率编程库中可以使用的API接口仍不够丰富,方差减少技术中的控制变量方法仍依赖于模型的特定设计,不利于算法的快速收敛。

5.6 在铁路领域的应用

铁路领域的信息种类繁多、数目庞大且存在大量非结构化数据,而数据间的关联与内在趋势很难被发现,需要具有较强表达能力的模型和快速的计算方法。使用主题模型与VI是较为理想的选择,但其准确性和鲁棒性都有待提升。除文本外,VI在图像和语音方面的研究已有进展,但在铁路领域的应用较少。此外,随着大规模贝叶斯网络被用于解决交通流问题,VI也更能发挥计算效率上的优势。

6 结束语

近似推理在很大程度上解决了贝叶斯模型中的推理问题,有着广泛的应用。VI作为近似推理中除MCMC之外的另一方法,具有十分重要的意义,应该更深入地研究其理论、方法与实践。目前,针对VI方法的研究成果颇丰,在当前的大数据时代,有必要进一步研究和扩展计算更快、更稳定的方法。VI的实践包括概率编程和应用,已出现一批性能优异且能够与深度学习相结合的概率编程系统,为VI在工业中的应用打下了良好的基础。

猜你喜欢

变分贝叶斯编程
概率生成模型变分推理方法综述
编程,是一种态度
多项式变分不等式解集的非空紧性和估计
元征X-431实测:奔驰发动机编程
编程小能手
纺织机上诞生的编程
基于贝叶斯网络的海盗袭击事件影响因素
租赁房地产的多主体贝叶斯博弈研究
租赁房地产的多主体贝叶斯博弈研究
贝叶斯公式的应用和推广