Press "Enter" to skip to content

一文读懂贝叶斯推理问题:MCMC方法和变分推断

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

贝叶斯推理(Bayesian inference)是统计学中的一个重要问题,也是许多机器学习方法中经常遇到的问题。例如,用于分类的高斯混合模型或用于主题建模的潜在狄利克雷分配(Latent Dirichlet Allocation,简称LDA)模型等概率图模型都需要在拟合数据时解决这一问题。

 

同时,由于模型设置(假设、维度……)不同,贝叶斯推理问题有时会很难解决。在解决大型问题时,精确的方案往往需要繁重的计算,要完成这些难以处理的计算,必须采用一些近似技术,并构建快速且有可扩展性的系统。

 

本文将讨论两种可用于解决贝叶斯推理问题的主要方法:基于采样的马尔可夫链蒙特卡罗(Markov Chain Monte Carlo,简称MCMC)方法和基于近似的变分推理(Variational Inference,简称VI)方法。

 

本文第一部分将讨论贝叶斯推理问题,并介绍几个机器学习应用的经典案例,当然,这些案例中会出现贝叶斯推理问题。第二部分将全面介绍用于解决该问题的MCMC技术,并详细介绍其中的两种算法:Metropolis-Hasting算法和吉布斯采样(Gibbs Sampling)算法。最后,第三部分将介绍变分推断,并了解如何通过优化参数化数族分布得到近似解。

 

注意,以a(∞)为标记的小节数学专业性非常强,跳过也不会影响对本文的整体理解。还要注意,本文中的p(.)可以用来表示概率、概率密度或概率分布,具体含义取决于上下文。

 

贝叶斯推理问题

 

这一部分提出了贝叶斯推理问题,讨论了一些计算困难,并给出了LDA算法的例子。LDA算法是一种具体的主题建模机器学习技术,能够反映贝叶斯推理问题。

 

统计推断旨在根据可观察到的事物来了解不可观察到的事物。即,统计推断是基于一个总体或一些样本中的某些观察变量(通常是影响)得出结论的过程,例如关于总体或样本中某些潜在变量(通常是原因)的准时估计、置信区间或区间估计等。

 

而贝叶斯推理则是从贝叶斯的角度产生统计推断的过程。简而言之,贝叶斯范式是一种统计/概率范式,在这种范式中,每次记录新的观测数据时就会更新由概率分布建模的先验知识,观测数据的不确定性则由另一个概率分布建模。支配贝叶斯范式的整个思想嵌入在所谓的贝叶斯定理中,该定理表达了更新知识(“后验”)、已知知识(“先验”)以及来自观察的知识(“可能性”)之间的关系。

 

一个经典的例子是用贝叶斯推理进行参数估计。假设一个模型中数据x是根据未知参数θ的概率分布生成的,并且有关于参数θ的先验知识,可以用概率分布p(θ)来表示。那幺,当观察到数据x时,我们可以使用贝叶斯定理更新关于该参数的先验知识,如下所示:

 

贝叶斯定理应用于给定观测数据的参数推断的说明。

 

计算困难

 

根据贝叶斯定理,后验分布的计算需要三个条件:先验分布、可能性和证据。前两个条件很容易理解,因为它们是假设模型的一部分(在许多情况下,先验分布和可能性是显而易见的)。然而,第三个条件,即归一化因子,需要如下计算:

 

虽然在低维中,这个积分可以较容易地计算出来,但在高维中它会变得难以处理。在上述案例中,对后验分布进行精确计算是不可行的,必须使用一些近似技术(例如平均计算)来获得后验分布。

 

贝叶斯推理问题还可能会产生一些其他的计算困难。例如,当某些变量是离散的时候会产生组合学问题。马尔可夫链蒙特卡罗(Markov Chain Monte Carlo,简称MCMC)和变分推理(Variational Inference,简称VI)是最常用于解决这些问题的两种方法。下文将描述这两种方法,尤其关注“归一化因子问题”,但是应该记住,这些方法也可用于与贝叶斯推理相关的其他计算困难。

 

为了让接下来的章节更易于理解,可以观察到,由于x应该是给定的,因此可以作为参数,那幺,θ的概率分布则被定义为归一化因子

 

在描述MCMC和VI两个部分之前,先来看一个具体例子,了解在机器学习LDA中存在的贝叶斯推理问题。

 

举例

 

贝叶斯推理问题通常出现在需要假设概率图模型或根据给定观测值得出模型潜变量的机器学习方法中。在主题建模中,潜在狄利克雷分配(LDA)定义了一个用于描述语料库文本的模型。因此,给定大小为V的完整语料库词汇表和给定数量为T的主题,模型假设:

 

· 对于每个主题,在词汇表上都存在一个“主题词”的概率分布(使用Dirichlet先验假设)

 

· 对于每个文档,在主题上都存在一个“文档主题”的概率分布(使用另一个Dirichlet先验假设)

 

· 对文档中的每个单词进行采样。首先,从文档的“文档 – 主题”分布中对主题进行采样;其次,从附加到采样话题的“主题 – 单词”分布中采样一个单词。

 

该方法的名称来源于模型中假设的Dirichlet先验,其目的是推断观察到的语料库中的潜在主题以及每个文档的主题分解。即使不深入研究LDA方法的细节,也可以粗略地用w来表示语料库中单词的向量,用z来表示与这些单词相关的主题向量,用贝叶斯方法根据观测到的w推断出z:

 

由于维度过高,这里无法推断出归一化因子,同时,还存在组合问题(因为一些变量是离散的),需要使用MCMC方法或VI方法来获得近似解。对主题建模及其特定的贝叶斯推理问题感兴趣的读者可以看看下面这篇关于LDA的参考文献。

 

传送门: http://www.jmlr.org/papers/vo…

 

LDA方法的说明。

 

马尔可夫链蒙特卡洛(MCMC)方法

 

上文提到,贝叶斯推理问题中的主要困难来自于归一化因子。本节将描述MCMC采样方法,为归一化因子以及与贝叶斯推理相关的其他计算困难提供解决方案。

 

采样方法

 

采样方法如下,首先假设有一种方法(MCMC)可以从由一个因子定义的概率分布中抽取样本。然后,可以从这个分布中得到样本(仅使用未标准化的部分定义),并使用这些样本计算各种准时统计量,如均值和方差,甚至通过核密度估计来求得近似分布,从而避免处理涉及后验的棘手计算。

 

与下一节所述的VI方法相反,对所研究的概率分布(贝叶斯推理中的后验分布)MCMC方法无需假设模型。因此,该方法具有低偏差但高方差,这意味着大多数情况下,获得的结果比从VI方法中得到的结果花费更多时间精力,但也更准确。

 

总结本小节,即上述的采样过程并不局限于后验分布的贝叶斯推理,它还可以普遍用于所有由归一化因子定义的概率分布。

 

采样方法(MCMC)的说明。

 

MCMC方法的概念

 

在统计学中,马尔可夫链蒙特卡罗(MCMC)算法旨在从给定的概率分布中生成样本。该方法名称中的“蒙特卡罗”部分是出于取样目的,而“马尔可夫链”部分来自获取这些样本的方式。

 

为了得到样本,要建立一个马尔可夫链,从其平稳分布中获得样本。然后,可以从马尔可夫链中模拟随机的状态序列,该序列足够长,能够(几乎)达到稳态,再保留生成的一些状态作为样本。

 

在随机变量生成技术中,MCMC是一种相当高级的方法,可以从一个非常困难的概率分布中获得样本,这个概率分布可能仅由一个乘法常数定义。更出乎意料的是,可以用MCMC从一个未经标准化的分布中获得样本,这来自于定义马尔可夫链的特定方式,马尔可夫链对这些归一化因子并不敏感。

 

MCMC方法旨在从一个困难的概率分布中生成样本,该概率分布可以仅由一个因子定义而成。

 

马尔可夫链的定义

 

整个MCMC方法是基于马尔可夫链的建立,并从其平稳分布中取样。为此,Metropolis-Hasting和吉布斯采样算法都使用了马氏链的一个特殊性质:可逆性。

 

状态空间为E的马尔可夫链,转移概率由下式表示

 

如果存在概率分布γ,上式则是可逆的

 

对于这样的马氏链,可以很容易地证明有

 

然后,γ是一个平稳分布(对不可约马氏链来说,也是唯一一个平稳分布)。

 

现在假设想要采样的概率分布π仅由一个因子定义

 

(其中C是未知的乘法常数)。可以注意到以下等式成立

 

接着,是转移概率为k(.,.)的马尔可夫链被定义为验证过去的等式,如预期那样将π定义为平稳分布。因此,我们可以定义一个马尔可夫链的平稳概率分布为π,该分布不能精确计算。

 

Gibbs采样转换(∞)

 

假设待定义的Markov链是D维的,则

 

吉布斯采样(Gibbs Sampling)假设即使在无法得知联合概率的情况下,也可以基于其他维度计算得出某一维度的条件分布。基于此假设,Gibbs采样转换可定义为,下一阶段状态,如在n+1次迭代的状态,可由如下步骤得出。

 

首先,从D维X_n中随机选择一个整数d。然后,根据相应的条件概率,通过采样赋予维度d一个新数值。这一过程中,其他维度保持如下状态不变:

 

其中

 

是基于其他维度得出的第d个维度的条件分布。

 

通常,设

 

则转换概率可以表示为

 

并且,在唯一有意义的情况下,局部平衡按预期得到了验证

 

Metropolis-Hasting转换(∞)

 

有时候,计算Gibbs采样中的条件分布也是很复杂的。在这种情况下,可以采用Metropolis-Hasting算法。运用该算法,需要先定义一个侧向的转换概率h(.,.),该概率将被用于建议转换。下一阶段(n+1次迭代)Markov链的状态可由如下步骤得出。首先,从h中生成“建议转换”x,并计算一个关联概率r用于接受x:

 

可以得到如下有效转换

 

通常,转换概率可以表示为

 

同时,局部平衡按预期得到了验证

 

采样过程

 

定义Markov链后,模拟一串随机状态序列(随机初始化数值),并对其中一些状态进行设定,如设置为服从目标分布的独立样本。

 

第一步,为了让样本(近似)服从目标分布,仅考虑与初始设定序列状态相差大的状态,使Markov链近似达到稳定状态(理论上来说,渐进达到稳定状态)。这样一来,初始设定状态就没样本那幺有用了。这一达到平稳的阶段被称为老化时间(burn-in time)。需要注意的是,实际操作中很难知道该阶段会持续多长时间。

 

第二步,为了获得(近似)独立样本,不能把所有的序列连续状态都放在老化时间之后。实际上,Markov链的定义中就已经表明了两个连续状态之间有很强的联系。因此,需要把状态相差很远的样本默认为近似独立。在实际操作中,可以通过分析自相关函数来预测两个近似独立状态间所需要的滞后(仅限于数值数据)。

 

所以,为了得到服从目标分布的独立样本,需要从位于老化时间B之后的、彼此间滞后为L的初始序列中分离出状态。设Markov链连续状态为

 

则样本状态为

 

MCMC采样需要考虑老化时间和滞后。

 

变分推断(VI)

 

另一个可用于解决复杂推断计算问题的方法是变分推断(Variational Inference,简称VI)。VI旨在找到参数化数族的最优近似分布。为此,需要遵循一个优化过程(优化数族里的参数),该过程需要仅由一个因子定义的目标分布。

 

逼近法

 

给定一个数族,VI旨在搜寻该数族中某些复杂目标概率分布的最优近似解。具体来说,VI定义一个参数化数族分布,并通过优化参数得到具有确定误差测量的最接近目标的元素。

 

将归一化因子C的概率分布π定义为:

 

应用数学术语,设参数化数族分布为

 

对于两个分布p和q的误差测量E(p,q),搜寻如下最优参数

 

如果想要在未明确标准化π的情况下解决该问题,那幺不需要复杂的计算,f_ *就可以用作近似解来预估多种数值。和直接计算(如标准化、组合等)相比,基于变分推断的优化问题要容易得多。

 

和上文中的采样方法相比,变分推断假设了一个参数化数族模型,这会导致结果有一点偏差和较低的方差值。总体来说,和MCMC相比,VI的准确率较低,但是计算速度更快:也就是说,VI更适合数据规模较大的统计问题。

 

变分推断逼近法图示。

 

族分布

 

首先,需要设定参数化数族分布来限定搜寻最优近似解的范围。

 

数族的选择会影响模型的结果偏差和复杂度。约束模型(简单数族)的优化过程非常简单,但是其结果偏差较大;自由模型(复杂数族)的偏差较小但其优化过程相对复杂。因此,在选择数族时,要找到一个相对平衡,使模型既足够复杂,能够保障最终近似解的准确度,又足够简单,使得优化过程易于操作。需要注意的是,如果没有一个数族分布近似目标分布,那幺得出的最优近似解也会不尽人意。

 

平均场变分族(mean-field variational family)是一个概率分布数族,其中包含的随机向量的每一部分都是独立的。由此类数族得出的分布具有乘积密度,每个独立部分由乘积的某个特定因子决定。因此,平均场变分族中的分布密度可以表示为

 

其中z为m维随机变量。尽管符号中没有说明,但需要注意,所有的f_j都是参数化的。比如说,假设每个f_j都是高斯密度,具有均值和方差参数,则全局密度可由一组根据所有独立因子得出的参数来定义,优化过程也由该参数组来完成。

 

变分推断的数族选择需要兼顾优化过程的复杂度和最终近似解的准确度。

 

Kullback-Leibler散度

 

确定数族之后,一个主要问题出现了:怎样在数族中找到给定目标分布(精确定义到标准化因素)的最优近似分布呢?很显然,最优近似分布取决于采用的误差测量的性质。但是由于需要比较的是质量分布而不是质量本身(质量本身必须统一于概率分布),人们通常会想当然地假设最简化问题对归一化因子不敏感。

 

那幺,定义Kullback-Leibler(KL)散度,使最简化问题对归一化因子不敏感。设p和q为两个分布,则KL散度可以表示为

 

从上式中可以很简单地得出

 

则对于最简化问题,可以得到如下等式

 

由此可知,选择KL散度作为误差测量方法时,优化过程对乘法系数不敏感,人们无需像最初设想的那样计算复杂的目标分布的归一化因子就可以在参数化数族分布中搜寻到最优近似分布。

 

最后,KL散度是由交叉熵减去熵得到的,在信息理论中有很广泛的应用。感兴趣的读者可以进一步了解。

 

优化过程和直觉

 

确定参数化数族和误差测量方法之后,需要初始化参数(随机设定数值或根据特定方法设定数值)并进一步优化。在实际操作中,常见的几个经典参数优化方法如梯度下降法和坐标下降法都会导致局部最优。

 

为方便读者更好地理解优化过程,这里将以上文中的贝叶斯推理问题为例进行说明。假设后验分布如下

 

在这个例子中,想要利用变分推断得到后验分布的近似分布,就必须解决如下优化过程(假设参数化数族已确定,KL散度用于误差测量)

 

从上述等式中,读者可以更好地理解近似分布是如何分布其质量的。第一阶段是期望最大似然估计。该过程中不断调整参数,将近似分布的质量放在能够最佳解释观测值的潜变量z的数值上。第二阶段是近似分布和先验分布间的负KL散度。负KL散度不断调整参数,使近似分布趋于先验分布。如此,该目标函数就能很好地表示普通先验分布/似然平衡。

 

变分推断的参数优化过程。

 

重点总结

 

· 贝叶斯推理基于着名的贝叶斯理论发展而来,是统计学和机器学习领域的经典方法。其主要的缺点在于,在大部分情况下,需要复杂的计算。

 

· 马尔可夫链蒙特卡罗(MCMC)旨在根据密度估计参数。密度可以非常复杂,也可以仅由一个因子确定。

 

· MCMC在贝叶斯推理中主要用于从后验分布的“非标准化部分”中直接生成样本,避免复杂计算。

 

· 变分推断(VI)是用于搜寻最优近似分布的方法。该方法通过优化参数,在给定数族中找到最优近似分布。

 

· 由于VI优化过程对目标分布中的乘积常数不敏感,该方法可以用于生成仅由一个归一化因子定义的后验分布的最优近似分布。

 

在上文中提到,由于MCMC和VI各有特色,它们常用于不同类型的问题中。一方面,MCMC复杂的采样过程不会造成偏差。所以,MCMC方法在不考虑计算时间、需要得到精确结果的情况下更受青睐。另一方面,虽然VI的数族选择过程会造成结果偏差,但它的参数优化过程非常合理。所以,VI方法常用于需要快速计算的大规模推断问题中。

 

留言 点赞 关注

 

我们一起分享AI学习与发展的干货

 

欢迎关注全平台AI垂类自媒体 “读芯术”

 

(添加小编微信:dxsxbb,加入读者圈,一起讨论最新鲜的人工智能科技哦~)

Be First to Comment

发表评论

邮箱地址不会被公开。 必填项已用*标注