分享

3-6 马尔可夫链蒙特卡罗法(MCMC)

 taotao_2016 2023-10-17 发布于辽宁

引言

在探究现代统计学与计算方法的结合时,我们无法跳过马尔可夫链蒙特卡罗法(MCMC,Markov Chain Monte Carlo)这一杰出的技术。从核武器研究到涉及高维参数空间的贝叶斯统计,MCMC在多个领域都发挥了不可或缺的作用。该方法涵盖了随机抽样的基本原理与连续状态之间的关联,为我们提供了一种独特的、适应性强的抽样手段。本文将概述MCMC的起源与发展,通过简单生动的例子带你理解其基本概念,再探索其背后的数值计算过程,最后再深入其在实际应用中所涉及到的更为复杂的核心环节。了解MCMC的过程,不仅是了解一种技术的过程,更是一个跨越多学科、结合多种技能的科学旅程。

一、马尔可夫链蒙特卡罗法(MCMC)的起源与发展

马尔可夫链蒙特卡罗法(MCMC)是统计学和应用数学中的一个强大工具,它结合了马尔科夫链的性质(无记忆性)和蒙特卡罗抽样技术(随机性)来对复杂的分布进行抽样。这种方法的历史起源和发展如下:

1.蒙特卡罗方法:在20世纪40年代,蒙特卡罗方法首次被应用于科学和工程问题。特别是在洛斯阿拉莫斯国家实验室,这种方法被用于核武器开发项目中的计算。名字“蒙特卡罗”源于赌博,因为这种方法的核心是大量的随机抽样。

2.马尔可夫链:几乎与蒙特卡罗方法同时,马尔可夫链这一概念在数学中得到了广泛的研究。马尔可夫链的关键性质是其无记忆性,即系统的下一个状态只依赖于当前状态。

3.Metropolis 算法:1953年,由Nicholas Metropolis和他的同事在洛斯阿拉莫斯首次提出了结合蒙特卡罗和马尔可夫链的方法,即今天称为Metropolis算法的东西。这种方法的初衷是为了解决固态物理中的问题,尤其是涉及到大量粒子的相互作用的情况。

4.Metropolis-Hastings 算法:1970年,W.K. Hastings扩展了Metropolis算法,使其更为通用,适用于更广泛的问题。这一扩展为现代的MCMC提供了基础。

5.Gibbs 抽样:1984年,Geman和Geman引入了Gibbs抽样,这是另一种特殊的MCMC方法,它是为了解决图像处理中的问题而提出的。

从20世纪80年代到90年代,随着计算机技术的进步,MCMC方法开始在统计学和许多其他领域中获得广泛的应用。特别是在贝叶斯统计中,MCMC为解决高维度参数空间的问题提供了一个强大的工具。

总之,MCMC的发展是多学科结合的产物,它结合了物理学、统计学和计算机科学中的思想。随着时间的推移,这种方法已经被广泛应用于各种科学和工程领域,成为现代统计学的基石之一。

二、马尔可夫链蒙特卡罗法(MCMC)的简例

我们将尝试使用一个简单的例子来解释马尔可夫链蒙特卡罗法(MCMC)。

1. 基本概念

让我们想象一个湖泊,湖中有很多鱼。我们的任务是估算湖中鱼的数量和种类。但是,湖太大了,我们无法直接数完所有的鱼。

2. 试验

为了解决这个问题,你决定在湖中放入一个大网,每次提起来看看捞到了什么。你可能一次次地这样做,每次放网的位置都可能会有所不同。

3. 马尔科夫链

现在,设想你在放网的时候,每次都是基于上一次放网的位置。你首先随机选择了一个位置放下网。当你捞起网,你观察了捞到的鱼的种类和数量。这些信息将决定你下一次放网的方向和距离。

例如,如果你捞到了很多的某种鱼,你可能会推测那种鱼在当前位置的周围数量较多,所以你可能决定下次在附近的位置放网。而如果你捞到的鱼很少或者是种类繁多但数量都很少,你可能会选择距离当前位置稍远一些的地方放网,寻找更佳的捕鱼地点。*

关键是,你每次的选择都是基于上一次的结果。你不会完全忘记前一次的经验然后随机选择一个全新的位置。这就是马尔科夫链的核心思想:当前状态(也就是你选择放网的位置)只依赖于它的前一个状态(你上次放网的位置和捞到的鱼的种类与数量)。

*如果你在一个地方捞到了很多某种鱼,你可能会推测那种鱼在当前位置的周围数量较多。然而,如果你只是简单地按这种方式思考并始终在附近放网,你可能会错过湖中的其他丰富的捕鱼地点。这就好比算法对局部数据过度拟合,从而错过了全局最优解。

*为了避免这个问题,你可能会偶尔选择一个与当前位置相距较远的新位置来放网,以便探索湖的其他部分。这种“偶然的大跳跃”策略有助于确保你不会陷入湖的某个局部区域,并使你能够更全面地了解湖的鱼群分布。在实际的MCMC算法中,这种策略对应于增加算法的“探索性”。

4. 蒙特卡罗方法

通过不断地放网、观察结果、记录数据,你可以得到一个鱼的分布样本。然后,你可以基于这些样本来估计湖中鱼的整体分布。这个过程就是“蒙特卡罗方法”,即通过重复抽样来估算一个总体的性质。

5. MCMC

所以,马尔可夫链蒙特卡罗法(MCMC)就是结合了马尔可夫链和蒙特卡罗方法的技术。你不断地基于前一次的放网位置来放下你的网,然后记录结果。最终,通过分析这些结果来估计湖中鱼的分布。

总之, MCMC其实就像一个不断适应的钓鱼过程。你在湖中放网,看看捞到了什么,然后基于你上一次的放网位置来决定下一次应该放网的位置。经过很多次这样的尝试,你最终可以得到一个关于湖中鱼分布的好的估计。

接下来,让我们提供一个简化的数值计算过程,便于更直观详细地理解MCMC。

三、MCMC的数值计算例子:

让我们通过一个简化的例子来具体展示 MCMC 的过程。为了简化,假设湖中只有两种鱼:金鱼和鲤鱼。我们的目标是估计湖中金鱼和鲤鱼的比例。

1. 假设初始比例

首先,我们假设湖中金鱼和鲤鱼的比例为 1:1,即 50% 的金鱼和 50% 的鲤鱼。

2. 抽样

我们在湖中随机放入一个网,并捞起来看有什么。假设第一次我们捞到了 7 条金鱼和 3 条鲤鱼。这意味着这一次的样本中金鱼的比例是 70%。

3. 更新

基于上次的结果,我们可能认为湖中金鱼的比例比我们最初预期的要高。因此,我们将新的预估调整为金鱼 60% 和鲤鱼 40%。

4. 重复

我们再次抽样,并基于上一次的预估来更新我们的比例。假设这一次我们捞到了 8 条金鱼和 2 条鲤鱼,那么我们可以进一步调整预估为金鱼 65% 和鲤鱼 35%。

5. 计算过程

假设我们重复上述步骤 1000 次,记录每次的结果。经过 1000 次后,我们得到了以下结果:

(1)金鱼平均比例:64%

(2)鲤鱼平均比例:36%

6. 结论

通过 MCMC 的计算过程,我们估计湖中金鱼的比例约为 64%,而鲤鱼的比例约为 36%。

四、延伸阅读:我们在上述计算示例中省略了什么?

在上面的简化例子中,为了便于理解,我们确实省略了一些 MCMC 的核心环节。下面列出了其中的主要环节:

1.先验概率 (Prior):在实际的MCMC中,你会为你想要估计的参数设定一个先验概率。这通常基于现有的知识或假设。在上述例子中,我们简单地采用了50:50的先验假设,但没有进一步讨论其背后的分布形态或如何选择。

2.建议分布 (Proposal Distribution):在Metropolis-Hastings 算法中,你需要一个建议分布来提出新的参数值。这通常是一个可以容易抽样的分布,例如正态分布。我们在示例中完全没有提及这一点。

3.接受率 (Acceptance Rate):根据当前的参数值、新的建议参数值和数据,你会计算一个接受率。这决定了你是否接受新的参数值。在上述例子中,我们没有详细描述这一步骤。

4.遍历的平稳性 (Convergence):在真实的MCMC应用中,判断算法是否已经收敛到目标分布是一个关键步骤。有多种方法和标准来判断这一点。在简化示例中,我们没有提及这个问题。

5.效率和相关性 (Efficiency and Autocorrelation):在实际的MCMC中,连续的样本通常是高度相关的。因此,我们经常需要使用“thinning”(间隔抽样)来减少样本间的相关性。同样,这在示例中也没有提及。

6.初始化和燃烧期 (Initialization and Burn-in):MCMC通常需要一段时间才能开始给出有代表性的样本。这个初期通常被称为“燃烧期”,在这段时间内的样本往往会被丢弃。在我们的例子中,这部分被忽略了。

7.后验分布 (Posterior Distribution):真正的 MCMC 应用目的是获得参数的后验分布,而不仅仅是一个点估计或平均值。我们的示例没有详细展示如何从样本中得到完整的后验分布。

五、延伸:马尔可夫链的依赖性,与蒙特卡洛的随机性,二者如何协调而不导致冲突?

马尔科夫链蒙特卡罗法(MCMC)确实结合了马尔科夫链的依赖性与蒙特卡洛抽样的随机性,但这两者并不冲突。实际上,它们在MCMC中是相辅相成的。下面简要地解释一下为什么。

1.马尔科夫链的依赖性

在MCMC中,马尔科夫链确保了连续的样本状态有某种程度的依赖性,即下一个状态是基于前一个状态决定的。这允许我们在参数空间中进行有序的探索。

例如,在上述鱼塘例子中,我们不是完全随机地在整个湖中选择放网的位置,而是基于上一次的位置来决定下一个位置。

2.蒙特卡洛的随机性

蒙特卡洛方法要求随机性,确保探索不会被局限在某个局部区域。在MCMC中,虽然下一个状态是基于前一个状态决定的,但选择的方向或步长还是有随机性的。

在决策是否接受新状态时(例如,是否向湖的边缘移动),也会引入随机性。例如,即使新状态可能不是最优的,也可能有一定的概率被接受。

所以,MCMC的美妙之处在于它巧妙地结合了这两种方法的优势。通过马尔科夫链的依赖性,它可以在参数空间中进行有效的探索;而通过蒙特卡洛方法的随机性,它可以跳出局部最优并探索更广阔的空间,从而确保长期内的收敛性。

正是因为这种平衡,MCMC可以用于解决那些直接随机抽样或其他方法难以解决的复杂问题。

六、延伸:如何证明MCMC最终收敛?
MCMC的收敛性是一个较为复杂的主题。为了简化,我会概述其背后的一些关键思想,并提供一个简化的证明框架。

首先,让我们明确MCMC需证明:产生一个马尔科夫链,当它进行足够长且有限的时间后,分布将收敛于我们想要的目标分布。

1.关键条件

(1)不可约(Irreducibility):从马尔科夫链的任何状态,总有可能在有限步骤内到达任何其他状态。这确保了我们能够探索整个状态空间。

(2)正回归性(Positive Recurrence):每个状态都有一个正的概率在有限的时间内返回到自己。简言之,它不会'迷失',不再返回。

(3)详细平衡条件(Detailed Balance):对于任何两个状态ab,从a转移到b的概率与从b转移到a的概率成正比。数学上,我们可以写为:

π(a)P(ab) = π(b)P(ba)

其中,π(a)和π(b)分别是状态ab在目标分布中的概率, P(ab)和P(ba)分别是从状态a转移到状态b以及从状态b转移到状态a的概率。

2.证明框架

(1)首先,我们要确保马尔科夫链满足不可约和正回归性条件。这通常通过设计算法和选择适当的提议分布来实现。

(2)一旦满足了上述两个条件,根据Perron-Frobenius定理,马尔科夫链必然有一个唯一的平稳分布。

(3)为了确保这个平稳分布正是我们的目标分布,我们设计算法(如Metropolis-Hastings或Gibbs抽样)来满足详细平衡条件。满足这个条件可以确保马尔科夫链的平稳分布与目标分布相匹配。

(4)最后,随着时间的推移,马尔可夫链的分布将越来越接近其平稳分布,从而确保样本最终服从目标分布。这是根据马尔科夫链的一些基本性质,特别是其遗忘性:随着时间的推移,链开始的状态对当前状态的影响减少。

实际上,证明这些属性和进行数学推导远比上述描述复杂。但上述概念为理解MCMC的收敛性提供了一个框架。在实际应用中,人们还使用了多种诊断工具来检查MCMC的收敛性,例如Gelman-Rubin统计量和自相关函数。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多