当前位置: 首页 > 后端技术 > Python

一篇文章阅读理解贝叶斯推理问题:MCMC方法与变分推理

时间:2023-03-26 12:05:01 Python

全文共6415字,预计学习时间20分钟以上图片来源:pexels.com/@lum3n-com-44775Bayesian推理(Bayesianinference)是统计学中的一个重要问题,也是很多机器学习方法中经常遇到的问题。例如,用于分类的高斯混合模型或用于主题建模的LatentDirichletAllocation(LDA)模型等概率图模型在拟合数据时都需要解决这个问题。同时,由于不同的模型设置(假设、维度...),贝叶斯推理问题有时可能难以解决。在解决大型问题时,精确的解决方案通常需要大量计算。为了完成这些棘手的计算,必须使用一些近似技术,并且必须构建快速且可扩展的系统。本文将讨论可用于解决贝叶斯推理问题的两种主要方法:基于采样的马尔可夫链蒙特卡罗(MCMC)方法和基于近似的变分推理(VariationalInference,VI)方法。本文第一部分将讨论贝叶斯推理问题,并介绍机器学习应用的几个经典案例,其中当然会出现贝叶斯推理问题。第二部分将全面介绍用于解决该问题的MCMC技术,并详细介绍其中的两种:Metropolis-Hasting算法和GibbsSampling算法。最后,第三部分介绍了变分推理,并了解如何通过优化参数化数族的分布来获得近似解。注意,标有a(∞)的小节是非常专业的数学部分,跳过不影响对本文的整体理解。另请注意,本文中的p(.)可用于表示概率、概率密度或概率分布,具体取决于上下文。贝叶斯推理问题本节介绍贝叶斯推理问题,讨论一些计算困难,并给出LDA算法的示例。LDA算法是一种能够反映贝叶斯推理问题的特定主题建模机器学习技术。统计推断旨在基于可观察的事物来了解不可观察的事物。也就是说,统计推断是根据总体或一些样本中的一些观察变量(通常是效应)得出结论的过程,例如准时估计、置信区间或区间估计等。贝叶斯推断是生成的过程从贝叶斯的角度进行统计推断。简而言之,贝叶斯范式是一种统计/概率范式,其中每次记录新观察时都会更新由概率分布建模的先验知识,然后由另一个概率分布对观察的不确定性进行建模。支配贝叶斯范式的整个思想嵌入所谓的贝叶斯定理中,它表达了更新知识(“后验”)、已知知识(“先验”)和来自观察的知识(“可能性”)之间的关系.一个典型的例子是使用贝叶斯推理的参数估计。假设模型中的数据x是根据未知参数θ的概率分布生成的,并且存在关于参数θ的先验知识,可以用概率分布p(θ)表示。然后,当观察到数据x时,我们可以使用贝叶斯定理来更新我们关于该参数的先验知识,如下所示:贝叶斯定理应用于给定观察数据的参数推断的说明。计算困难根据贝叶斯定理,后验分布的计算需要三个条件:先验分布、似然和证据。前两个条件很容易理解,因为它们是假设模型的一部分(在许多情况下,先验分布和可能性是显而易见的)。然而,第三个条件,即归一化因子,需要按如下方式计算:虽然在低维中这个积分可以相对容易地计算,但在高维中它变得难以处理。在上述情况下,后验分布的精确计算是不可行的,必须使用一些近似技术(例如平均)来获得后验分布。贝叶斯推理问题还会产生其他一些计算困难。例如,当某些变量是离散的时,就会出现组合数学问题。马尔可夫链蒙特卡洛(简称MCMC)和变分推理(简称VI)是解决这些问题最常用的两种方法。下面描述了这两种方法,特别关注“归一化因子问题”,但应该记住,这些方法也可以用于与贝叶斯推理相关的其他计算困难。为了后面的章节更容易理解,可以观察到既然x要给定,那么可以把它作为参数,那么,在描述MCMC的两部分之前,定义θ的概率分布作为归一化因子而VI,我们先来看一个具体的例子来理解机器学习LDA中存在的贝叶斯推理问题。示例贝叶斯推理问题经常出现在机器学习方法中,这些方法需要关于概率图形模型的假设或根据观察得出模型潜在变量。在主题建模中,LatentDirichletAllocation(LDA)定义了一个模型来描述语料库中的文本。因此,给定大小为V的完整语料库词汇表和给定主题数T,该模型假设:文档中的每个词都被采样。首先,从文档的“文档-主题”分布中抽取一个主题;其次,从附加到采样主题的“主题词”分布中采样一个词。该方法的名称来源于模型中假设的狄利克雷先验,其目的是推断观察到的语料库中的潜在主题和每个文档的主题分解。即使不深入研究LDA方法的细节,也可以粗略地将w表示为语料库中词的向量,将z表示为与这些词相关的主题向量,并使用贝叶斯方法从观察到的w中推断z:因为维数太高,这里无法推断归一化因子。同时存在组合问题(因为有些变量是离散的),需要用MCMC法或VI法求近似解。对主题建模及其特定的贝叶斯推理问题感兴趣的读者可以查看以下关于LDA的参考资料。传送门:http://www.jmlr.org/papers/vo...LDA方法的说明。MarkovChainMonteCarlo(MCMC)Method如上所述,贝叶斯推理问题的主要难点来自归一化因子。本节介绍MCMC采样方法,这些方法为归一化因子和与贝叶斯推理相关的其他计算困难提供解决方案。SamplingMethod抽样方法如下,首先假设有一种方法(MCMC)从一个因子定义的概率分布中抽取样本。然后可以从该分布(仅使用非归一化部分定义)中抽取样本,并使用这些样本来计算各种实时统计数据,例如均值和方差,甚至可以通过核密度估计来近似分布,从而避免处理复杂的计算的后部。与下一节中描述的VI方法相反,MCMC方法不对所研究的概率分布模型(贝叶斯推理中的后验分布)做出任何假设。因此,该方法具有低偏差但高方差,这意味着在大多数情况下,获得的结果比从VI方法获得的结果花费更多的时间和精力,但也更准确。总结本小节,上述采样过程不限于后验分布的贝叶斯推断,而是可以普遍应用于由归一化因子定义的所有概率分布。抽样方法(MCMC)的描述。MCMC方法的概念在统计学中,马尔可夫链蒙特卡罗(MCMC)算法旨在从给定的概率分布中生成样本。该方法名称中的“MonteCarlo”部分用于采样目的,“MarkovChain”部分来自获取这些样本的方式。为了获取样本,构建了马尔可夫链,并从其平稳分布中获取样本。然后,可以从足够长的马尔可夫链中模拟状态的随机序列,以(几乎)达到稳定状态,并且可以将生成的一些状态保留为样本。在随机变量生成技术中,MCMC是一种相当先进的方法,用于从可能仅由乘法常数定义的非常困难的概率分布中获取样本。更令人意想不到的是,MCMC可用于从非归一化分布中获取样本,该分布来自马尔可夫链的特定定义方式,对这些归一化因素不敏感。MCMC方法旨在从只能由一个因素定义的困难概率分布中生成样本。马尔可夫链的定义整个MCMC方法是建立在马尔可夫链的建立和从其平稳分布中抽样的基础上的。为此,Metropolis-Hasting和Gibbs采样算法都使用了马尔可夫链的一个特殊属性:可逆性。对于状态空间为E的马尔可夫链,转移概率用下式表示。如果存在概率分布γ,则上式可逆。对于这样的马尔可夫链,很容易证明,那么,γ是一个平稳分布(因为它也是不可约马尔可夫链的唯一平稳分布)。现在假设您要抽样的概率分布π仅由一个因子定义(其中C是未知的乘法常数)。可以注意到以下等式成立。接下来,定义转移概率为k(.,.)的马尔可夫链来验证过去的方程,将π定义为预期的平稳分布。因此,我们可以将马尔可夫链的平稳概率分布定义为π,它无法精确计算。吉布斯采样转换(∞)假设要定义的马尔可夫链是D维的,吉布斯采样(GibbsSampling)假设即使联合概率无法得知,也可以基于其他维度计算得到条件分布.基于这个假设,吉布斯采样转换可以定义为下一阶段的状态,比如n+1次迭代时的状态,可以通过以下步骤得到。首先从D维X_n中随机选取一个整数d。然后根据相应的条件概率,对维度d进行抽样赋予新的值。在此过程中,其他维度保持不变如下:其中是第d维基于其他维度的条件分布。一般来说,假设转移概率可以表示为,并且在唯一有意义的情况下,局部均衡被验证为预期的Metropolis-Hasting转移(∞)。计算Gibbs抽样中的条件分布有时也很复杂。在这种情况下,可以使用Metropolis-Hasting算法。要使用该算法,需要定义横向转移概率h(.,.),用于建议转移。下一阶段(n+1次迭代)马尔可夫链的状态可以通过以下步骤得到。首先,从h生成“提议的转换”x,并计算接受x的相关概率r:有效转换可按如下方式获得。一般来说,转移概率可以表示为,模拟一系列随机状态(随机初始化值),并设置其中的一些状态,比如服从目标分布的独立样本。第一步,为了使样本(近似)服从目标分布,只考虑与初始集合序列状态差异较大的状态,使马尔可夫链近似达到稳定状态(理论上,渐近达到稳定状态)。这样一来,初始设置状态就没有样本那么有用了。这个平稳期称为老化时间。需要注意的是,在实践中很难知道这个阶段会持续多久。第二步,为了得到(近似)独立样本,不可能把所有时序状态都放在老化时间之后。事实上,马尔可夫链的定义已经说明了两个连续状态之间存在很强的联系。因此,默认情况下,状态相距较远的样本需要近似独立。实际上,可以通过分析自相关函数(仅限数值数据)来预测两个近似独立状态之间所需的滞后。因此,为了从目标分布中获得独立样本,需要在老化时间B之后将状态与初始序列分开,彼此之间有滞后L。假设马尔可夫链的连续状态为则样本状态为MCMC采样需要考虑老化时间和滞后。变分推理(VI)另一种可以用来解决复杂推理计算问题的方法是变分推理(简称VI)。该VI旨在为参数化数字族找到最佳近似分布。为此,有必要遵循优化程序(优化一族数字中的参数),这需要仅由一个因素定义的目标分布。近似值给定一族数字,VI寻求找到该族中某些复杂目标概率分布的最佳近似解。具体来说,该VI定义了一个参数化的数族分布,并优化参数以找到最接近具有确定误差度量的目标的元素。归一化因子C的概率分布π定义为:应用数学术语,令参数化数族分布为两个分布p和q的误差测量E(p,q),并搜索以下最优参数。如果你想在解决问题时不显式归一化π,f_?*可以作为近似解来估计各种值而无需复杂的计算。基于变分推理的优化问题比直接计算(例如归一化、组合等)容易得多。与上述抽样方法相比,变分推理采用参数数族模型,这会导致结果略有偏差且方差值较低。总的来说,与MCMC相比,VI的准确率较低,但计算速度更快:也就是说,VI更适用于大数据规模的统计问题。变分推理近似方法的说明。族分布首先,需要设置参数化的数族分布,限制搜索最优近似解的范围。数族的选择会影响模型的偏差和复杂性。约束模型(简单数族)的优化过程非常简单,但其结果偏差较大;自由模型(复数族)偏差小,但优化过程相对复杂。因此,在选择数族时,需要找到一个相对的平衡点,使模型足够复杂以保证最终近似解的准确性,又足够简单使优化过程易于操作。需要注意的是,如果没有逼近目标分布的数族分布,得到的最优近似解将不会令人满意。平均场变分族是概率分布族,其中包含的随机向量的每个部分都是独立的。由这样一组数字产生的分布具有产品密度,每个单独的部分由产品的某些特定因素决定。因此,平均场变分族中的分布密度可以表示为其中z为m维随机变量。尽管在符号中没有说明,但重要的是要注意所有f_j都是参数化的。例如,假设每个f_j是一个具有均值和方差参数的高斯密度,全局密度可以由所有独立因素导出的一组参数来定义,优化过程也是由这个参数集完成的。变分推理数族的选择需要考虑优化过程的复杂度和最终近似解的精度。Kullback-Leibler散度确定数族后,一个主要问题出现了:如何在数族中找到给定目标分布(精确定义为归一化因子)的最优近似分布?显然,最佳近似分布取决于所用误差度量的性质。但由于需要比较的是质量分布而不是质量本身(质量本身必须与概率分布一致),因此通常理所当然地认为最小化问题对归一化因子不敏感。然后,定义Kullback-Leibler(KL)散度,使最小化问题对归一化因子不敏感。假设p和q是两个分布,KL散度可以表示为最初想象的复杂目标分布。最后,通过信息论中广泛使用的交叉熵减去熵得到KL散度。有兴趣的读者可以了解更多。优化过程和直觉确定了参数化数族和误差测量方法后,需要对参数进行初始化(随机或按照特定方法取值)并进一步优化。在实际操作中,梯度下降法、坐标下降法等几种常见的经典参数优化方法都会导致局部最优。为了方便读者更好地理解优化过程,将以上述贝叶斯推理问题为例进行说明。假设后验分布如下。在这个例子中,如果我们想利用变分推理得到后验分布的一个近似分布,就必须求解如下优化过程(假设参数化数族已经确定,使用KL散度进行误差度量)从以上等等,读者可以更好地理解近似分布如何分布其质量。第一阶段是预期最大似然估计。该过程不断调整参数,将近似分布的质量置于最能解释观察值的潜在变量z的值上。第二阶段是近似分布与先验分布的负KL散度。负KL散度不断调整参数,使近似分布趋向于先验分布。因此,目标函数很好地表示了一般先验分布/似然平衡。变分推理的参数优化程序。KeySummary·贝叶斯推理是在著名的贝叶斯理论基础上发展起来的,是统计学和机器学习领域的经典方法。它的主要缺点是,在大多数情况下,需要进行复杂的计算。马尔可夫链蒙特卡罗(MCMC)旨在根据密度估计参数。密度可能非常复杂或仅由一个因素决定。MCMC主要用于贝叶斯推理,直接从后验分布的“非标准化部分”生成样本,避免了复杂的计算。·变分推理(VI)是一种寻找最优近似分布的方法。该方法通过优化参数找到给定数族中的最佳近似分布。·由于VI优化程序对目标分布中的乘积常数不敏感,因此该方法可用于生成仅由一个归一化因子定义的后验分布的最优近似值。上面说到,因为MCMC和VI各有特点,所以经常被用在不同类型的问题中。一方面,MCMC复杂的采样过程不会造成偏差。因此,当无论计算时间如何都需要准确的结果时,MCMC方法更受青睐。另一方面,虽然VI的数族选择过程会使结果产生偏差,但它的参数优化过程是非常合理的。因此,VI方法常用于需要快速计算的大规模推理问题。留言点赞,关注我们,分享AI学习开发的干货。欢迎关注全平台AI垂直品类。