马尔可夫链蒙特卡罗方法的零数学简介

一、说明

        对于我们中的许多人来说,贝叶斯统计充其量是巫毒魔法,或者最坏的情况是完全主观的胡说八道。在贝叶斯方法的商标中,马尔可夫链蒙特卡洛方法特别神秘。它们肯定是数学繁重且计算昂贵的过程,但它们背后的基本推理,就像数据科学中的许多其他内容一样,可以变得直观。这就是我在这里的目标。

二、什么是马尔可夫链蒙特卡罗(MCMC)方法?

简短的回答是:

MCMC方法用于通过在概率空间中随机抽样来近似感兴趣参数的后验分布。

        在本文中,我将解释这个简短的答案,没有任何数学。

2.1 贝叶斯思想

        首先,一些术语。感兴趣的参数只是总结我们感兴趣的现象的一些数字。通常,我们使用统计来估计参数。例如,如果我们想了解成年人的身高,我们感兴趣的参数可能是以英寸为单位的平均身高。分布是参数的每个可能值的数学表示,以及我们观察每个值的可能性。最著名的例子是钟形曲线:

        在贝叶斯统计方式中,分布有一个额外的解释。贝叶斯主义者不仅仅表示参数的值以及每个参数成为真实值的可能性,而是将分布视为描述我们对参数的信念。因此,上面的钟形曲线表明我们非常确定参数的值非常接近于零,但我们认为真实值高于或低于该值的可能性相等,直到某个点。

        碰巧的是,人类身高确实遵循正常曲线,所以假设我们相信人类平均身高的真实值遵循这样的钟形曲线:

        显然,这张图所代表的信念的人多年来一直生活在巨人之中,因为据他们所知,最有可能的平均成年身高是 6 英尺 2 英寸(但他们对这种或那种方式都不是超级自信)。

        让我们想象一下,这个人去收集了一些数据,他们观察了5'到6'之间的人范围。我们可以在下面表示这些数据,以及另一条正态曲线,该曲线显示了人类平均身高的哪些值最能解释数据:

        在贝叶斯统计中,表示我们对参数的信念的分布称为先验分布因为它在看到任何数据之前捕获了我们的信念。似然分布通过表示一系列参数值以及每个参数解释我们正在观察的数据的可能性来总结观察到的数据告诉我们的内容。估计最大化似然分布的参数值只是在回答以下问题:什么参数值最有可能观察我们观察到的数据?在没有先验信念的情况下,我们可能会止步于此。

        然而,贝叶斯分析的关键是结合先验分布和似然分布来确定后验分布。这告诉我们哪些参数值最大限度地提高了观察我们所做的特定数据的机会,同时考虑到我们先前的信念。在我们的例子中,后验分布如下所示:

        上面,红线代表后部分布。您可以将其视为先验分布和似然分布的一种平均值。由于先验分布更短,更分散,它代表了一组对人类平均身高的真实值“不太确定”的信念。同时,似然法在相对较窄的范围内汇总数据,因此它代表了对真实参数值的“更确定”的猜测。

        当先验可能性组合在一起时,数据(由可能性表示)主导了在巨人中长大的假设个体的弱先验信念。尽管那个人仍然认为人类的平均身高略高于数据告诉他的身高,但他大多被数据所说服。

        在两条钟形曲线的情况下,求解后验分布非常容易。有一个简单的等式可以将两者结合起来。但是,如果我们的先验分布和可能性分布不是那么好呢?有时,使用没有方便形状的分布对数据或先前的信念进行建模是最准确的。如果我们的可能性最好用具有两个峰值的分布来表示,并且出于某种原因,我们想解释一些非常古怪的先验分布,该怎么办?我在下面可视化了这种情况,通过手绘一个丑陋的先验分布:

在 Matplotlib 中渲染的可视化效果,使用 MS Paint 进行增强

        和以前一样,存在一些后验分布,可以给出每个参数值的可能性。但是很难看出它可能是什么样子,并且无法通过分析来解决。输入 MCMC 方法。

2.2 蒙特卡洛方法

        MCMC方法允许我们估计后验分布的形状,以防我们无法直接计算它。回想一下,MCMC 代表马尔可夫链蒙特卡罗方法。为了理解它们是如何工作的,我将首先介绍蒙特卡罗模拟,然后讨论马尔可夫链。

        蒙特卡罗模拟只是一种通过重复生成随机数来估计固定参数的方法。通过获取生成的随机数并对其进行一些计算,蒙特卡罗模拟提供了参数的近似值,其中直接计算它是不可能的或非常昂贵。

        假设我们想估计以下圆的面积:

        由于圆位于边长为 10 英寸的正方形内,因此可以轻松计算出面积为 78.5 平方英寸。但是,我们可以在正方形内随机丢弃 20 个点。然后我们计算落在圆内的点的比例,并将其乘以正方形的面积。这个数字是圆面积的一个很好的近似值。

        由于 15 个点中有 20 个位于圆圈内,因此看起来圆大约是 75 平方英寸。对于只有 20 个随机点的蒙特卡罗模拟来说还不错。

        现在,假设我们想计算蝙蝠侠方程绘制的形状面积:

        这是一个我们从未学过方程式的形状!因此,找到蝙蝠信号的区域非常困难。然而,通过在包含形状的矩形内随机放置点,蒙特卡罗模拟可以很容易地提供该区域的近似值!

        蒙特卡罗模拟不仅用于估计困难形状的区域。通过生成大量随机数,它们可用于对非常复杂的过程进行建模。在实践中,它们用于预测天气,或估计赢得选举的可能性。

2.3 马尔可夫链

        理解MCMC方法的第二个要素是马尔可夫链。这些只是在概率上彼此相关的事件序列。每个事件都来自一组结果,每个结果根据一组固定的概率确定接下来发生哪个结果。

        马尔可夫链的一个重要特征是它们是无记忆的:预测下一个事件可能需要的所有东西在当前状态下都是可用的,并且没有新的信息来自了解事件的历史。像《Chutes and Ladders》这样的游戏展示了这种无记忆或马尔可夫属性,但现实世界中很少有东西真正以这种方式工作。尽管如此,马尔可夫链是理解世界的有力方法。

        在19世纪,钟形曲线被观察到为自然界中的常见模式。(例如,我们已经注意到,人类的身高遵循钟形曲线。高尔顿板通过将弹珠通过装有钉子的木板来模拟重复随机事件的平均值,再现弹珠分布的正态曲线:

        俄罗斯数学家和神学家帕维尔·涅克拉索夫(Pavel Nekrasov)认为,钟形曲线,更一般地说,大数定律,只是儿童游戏和琐碎谜题的产物,其中每个事件都是完全独立的。他认为现实世界中相互依存的事件,例如人类行为,并不符合良好的数学模式或分布。

        马尔可夫链以他的名字命名的安德烈·马尔科夫(Andrey Markov)试图证明非独立事件也可能符合模式。他最著名的例子之一是从一部俄罗斯诗歌作品中数出数千个双字对。利用这些对,他计算了每个字符的条件概率。也就是说,给定前面的某个字母或空格,下一个字母很有可能是 A、T 或空格。利用这些概率,马尔科夫能够模拟任意长的角色序列。这是一个马尔可夫链。虽然前几个字符在很大程度上取决于起始字符的选择,但马尔科夫表明,从长远来看,字符的分布会形成一种模式。因此,即使是相互依赖的事件,如果它们受固定概率的影响,也符合平均值。

        举一个更有用的例子,假设你住在一个有五个房间的房子里。您有一间卧室、浴室、客厅、餐厅和厨房。让我们收集一些数据,假设您在任何给定时间点所在的房间就是我们只需要说出您接下来可能进入的房间。例如,如果你在厨房里,你有30%的机会留在厨房,30%的机会进入餐厅,20%的机会进入客厅,10%的机会进入浴室,10%的机会进入卧室。使用每个房间的一组概率,我们可以构建一系列预测,预测您接下来可能入住哪些房间。

        如果我们想预测家里有人在厨房里一段时间后会在哪里,那么预测几个州可能会很有用。但是,由于我们的预测只是基于对一个人在房子里的位置的观察,因此有理由认为它们不会很好。例如,如果有人从卧室去洗手间,他们更有可能直接回到卧室,而不是从厨房来。因此,马尔可夫属性通常不适用于现实世界。

        然而,运行马尔可夫链数千次迭代确实可以长期预测你可能处于什么空间。 更重要的是,这个预测完全不受这个人开始的房间的影响!直觉上,这是有道理的:为了模拟和描述他们长期或一般情况下可能在哪里,某人在某个时间点在房子里的位置并不重要。因此,马尔可夫链似乎是在几个时间段内对随机变量进行建模的不合理方法,如果我们了解控制其行为的概率,则可以用于计算该变量的长期趋势。

2.4 MCMC方法

        有了蒙特卡罗模拟和马尔可夫链的一些知识,我希望对MCMC方法如何工作的无数学解释非常直观。

        回想一下,我们试图估计我们感兴趣的参数的后验分布,即人类平均身高:

        我不是可视化专家,显然也不擅长将我的例子保持在常识的范围内:我的后验分布示例严重高估了人类的平均身高。

        我们知道后验分布在我们的先验分布和可能性分布的范围内,但无论出于何种原因,我们都无法直接计算它。使用 MCMC 方法,我们将有效地从后验分布中提取样本,然后计算统计数据,例如绘制样本的平均值。

        首先,MCMC 方法选择一个要考虑的随机参数值。模拟将继续生成随机值(这是蒙特卡罗部分),但受某些规则的约束,以确定什么是好的参数值。诀窍在于,对于一对参数值,根据我们先前的信念,通过计算每个值解释数据的可能性,可以计算出哪个参数值更好。如果随机生成的参数值比上一个好,则将其添加到参数值链中,其一定概率由它好多少决定(这是马尔可夫链部分)。

        为了直观地解释这一点,让我们回想一下,某个值处分布的高度表示观察到该值的概率。因此,我们可以考虑我们的参数值(x 轴)表现出高概率和低概率的区域,显示在 y 轴上。对于单个参数,MCMC 方法首先沿 x 轴随机采样:

红点是随机参数样本

        由于随机样本受固定概率的影响,因此它们往往会在一段时间后收敛在我们感兴趣的参数的最高概率区域:

        蓝点仅表示在预期发生收敛的任意时间点之后的随机样本。注意:我垂直堆叠点纯粹是为了说明目的。

        发生收敛后,MCMC 采样产生一组点,这些点是来自后验分布的样本。在这些点周围绘制直方图,并计算您喜欢的任何统计数据:

        在 MCMC 模拟生成的样本集上计算的任何统计量都是我们对真实后验分布上该统计量的最佳猜测。

        MCMC方法也可用于估计多个参数(例如人类身高体重)的后验分布。对于 n 个参数,在 维空间中存在高概率区域,其中某些参数值集可以更好地解释观测数据。因此,我认为MCMC方法是在概率空间内随机采样以近似后验分布。

        回想一下对“什么是马尔可夫链蒙特卡罗方法?这里又是TL;DR:

MCMC方法用于通过在概率空间中随机抽样来近似感兴趣参数的后验分布。

三、后记

        我希望我已经解释了这个简短的答案,为什么你会使用MCMC方法,以及它们是如何工作的。这篇文章的灵感来自我在华盛顿特区举行的大会数据科学沉浸式课程中的一次演讲。那次演讲的目的是向非技术观众解释马尔可夫链蒙特卡罗方法,我在这里也试图这样做。如果您认为此解释在某种程度上不合时宜,或者可以使其更直观,请发表评论。

参考资料:

猜你喜欢

转载自blog.csdn.net/gongdiwudu/article/details/132339068