告别数学公式,图文解读什么是马尔可夫链蒙特卡罗法

2018 年 1 月 10 日 论智 Ben Shaver
来源:Medium
编译:Bing

编者按:原文作者Ben Shaver专注于数据科学,他在本文中没有用复杂的数学公式,为读者讲解了什么是马尔可夫链蒙特卡罗法,可以说是数学小白的福利啦。以下是论智对原文的编译,如有不妥之处,还请批评指正。

对很多人来说,贝叶斯统计说好听点是一种有毒的魔法,说的不好听简直就是胡言乱语。在这之中,马尔可夫链蒙特卡罗法则更为神秘。它不仅需要大量数学知识,计算过程也十分复杂。但是,正如其他数据科学方法一样,它背后的基本原理也是通俗易懂的。本文的目的就是化繁为简,向读者解释什么是马尔可夫链蒙特卡罗(MCMC)方法。

首先,简单地说:

MCMC方法是用来在概率空间,通过随机采样估算兴趣参数的后验分布。

本文将对上述概念作出解释,不涉及数学知识。

首先是一些术语。兴趣参数(parameter of interest)只是用来总结一些我们感兴趣的现象的数字。通常,我们使用统计数据来估计参数。例如,如果我们想了解成年人的身高,那么我们的兴趣参数可能是以英寸为单位的平均身高。分布(distribution)是参数的每种可能的数学表示,以及我们会有多大可能性关注这一参数。其中最著名的例子是下方的钟形曲线(正态分布):

在贝叶斯统计方法中,分布还有着其他意义,除了表示参数的值和参数为真实的可能性有多大之外,贝叶斯方法认为分布还代表我们对参数的“信念”(belief)。因此,上面的钟形曲线表明,我们非常确定参数的值非常接近于零,但我们认为在一定程度上,真值高于或低于该值的可能性是相等的。

事实上,人的身高确实遵循正态分布曲线,所以我们假设我们相信人类平均身高的真值遵循以下钟形曲线:

显然,做出这张图的人可能常年跟巨人生活在一起,因为据图中数据,成年人最有可能的平均身高为74英寸(约1.88米)。

让我们假设这个人收集了更多数据,他们观察了一些身高在5至6英尺之间的人。下表即表示了这一数据,另外还有另一条正态分布曲线,表示了哪个人体平均身高最能解释数据。

在贝叶斯统计中,代表我们关于参数信念的分布被称为先验分布(prior distribution),因为它在收集到数据之前能显示出我们的信念(belief)。可能性分布(likelihood distribution)通过表示参数值的范围和每个参数所体现的正观察数据的可能性,总结了已观测数据的意义。估计可能性分布最大化的参数值只回答了一个问题:什么样的参数值才最有可能让我们观察已经观察过的数据?在没有先验的情况下,也许我们就无法继续了。

然而,贝叶斯分析的关键是结合先验分布和可能性分布,决定后验分布。这告诉我们哪些参数的值最有可能让我们观察到特定数据。在我们的案例中,后验分布看上去是这样的:

上图中,红色的曲线代表后验分布。你可以把它看作先验分布和可能性分布的平均值。由于先验分布较短且分散,所以它反映了人们并不太确定人类的平均身高是多少。同时,可能性在相对较窄的范围内汇总了数据,因此它对真实参数值更加确定。

当先验分布和可能性分布被合并时,数据(由可能性表示)支配了之前那个在巨人堆里长大的人的弱先验信念。尽管那一个体仍然认为人类平均身高比数据告诉他的稍高些,但他最相信的是数据。

在两条钟形曲线的情况里,求解后验分布是十分容易的。一个简单的方程就可以把二者结合。但是如果我们的先验分布和可能性分布表现得不那么好呢?有时使用非简化的形状建模数据或先验信念时是最精确的。如果我们用带有两个峰值的分布才能最好地表现可能性,并且由于某种愿意我们想要证明一些非常反常的先验分布呢?如下所示,那条丑丑的红线就是手绘的先验分布

和之前一样,这里存在一些后验分布给出了每个参数值的可能性。但是很难看出完整的分布,也无法用分析解决。于是这就需要MCMC方法了。

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

蒙特卡罗模型只是一种重复生成随机数字来估计固定参数的方法。通过生成随机数字并对其进行计算,蒙特卡罗法给出一个参数的近似值,但是却不能直接计算。

假设我们想估算下方圆圈的面积:

由于圆圈在一个边长为10英寸的正方形内,所以圆的面积为78.5平方英寸。不过,我们可以在这个正方形内随机画20个点,然后我们数一下有多少个点落在圆圈内,计算这部分比例,并乘以正方形的面积。这个数字正好与圆圈的面积接近。

由于20个点中有15个都在圆圈内,所以圆圈的面积大概为75平方英寸。这个结果对于只有20个随机点的蒙特卡罗法来说已经不错了。

现在,我们想算出下图中蝙蝠侠的面积:

我们可从来没学过能表示这种形状的方程!所以要想计算蝙蝠侠的面积非常困难。不过,利用与之前相似的方法,在一块长方形区域内随机抛掷点,蒙特卡罗方法能非常轻松地计算出该区域的近似值。

蒙特卡罗方法不仅仅用于估算不规则区域的面积。通过生成大量的随机数,它们可以用来模拟非常复杂的过程。在实践中,它们可以用来预测天气,或估计选举结果。

理解MCMC方法的第二要素是马尔可夫链。马尔可夫链由概率相互关联的序列组成,每一事件来自一组结果,每个结果根据一组固定的概率确定下一个结果。

马尔可夫链的一个重要特征是“无记忆”:预测下一个事件所需要的所有信息都能在当前状态中找到,从历史事件中也找不到新的信息。像“蛇梯棋”(Chutes and Ladders)这样的游戏就体现了马尔可夫链的无记忆特征,但现实中很少有东西能以这种方式工作。不过,马尔可夫链是理解世界的有力方式。

在19世纪,钟形曲线被看做自然界中常见的模式。例如,我们发现人类的身高就是遵循这样的曲线。弗朗西斯·高尔顿(Francis Galton)在一块竖直放置的板子上钉上交错排列的钉子,让大理石从板的上端自由下落,最终落至板底端的某一格子中,最终重现了正态分布曲线。

俄罗斯数学家和神学家帕维尔·涅克拉索夫(Pavel Nekrasov)认为,钟形曲线甚至大数定律只不过是儿童游戏和小把戏的产物,这里的每一事件都是完全独立的。他认为现实世界中相互依存的事物,比如人的行为,不符合数学模型或分布。

马尔可夫链的命名者安德烈·马尔科夫(Andrey Markov)试图证明非独立事件也可能符合数学模型。他最著名的案例之一就是要从一部俄罗斯诗歌作品中输出数千个“两字母对”(two-character pairs)。利用这些对(pairs),他计算了每一字母的条件概率。也就是说,给定前面的字母或空格,就能预测下一个字母是A还是T,或是一个空格。利用这些概率,马尔可夫可以模拟任意长的字符序列,这就是马尔可夫链。尽管前几个字母很大程度上取决于起始字母的选择,但是马尔可夫表明,从长远看来,字母的分布也遵循一种模式。因此,即使是相互依赖的事件,如果它们受到固定概率的影响,也将遵循平均水平的模式。

举一个更有用的例子。假如你的房子有五个房间,分别是卧室、卫生间、客厅、餐厅和厨房。让我们收集一些数据,假设不管你在任何时候处于任何房间,我们都能推测出你下一个可能进入的房间,例如,如果你在厨房,你将有30%的可能性留在厨房,30%的可能性进入餐厅,20%的可能性进入客厅,10%的可能性进入卧室,然后有10%的可能性去到卫生间。利用每个房间的一组概率,我们可以构建一个“你将去到的房间”链。

如果我们想要预测这个人在离开厨房后会在哪个房间中待一小会儿的概率,那么做一些预测是有用的。但是由于我们的预测只是基于对房间里一个人的观察,所以有理由认为这种预测表现的不会很好。例如,假设一个人从卧室出来后进入了卫生间,那么他更有可能直接回到卧室。但如果是从厨房出来的话,就不一定回到卧室了。所以马尔科夫的成果不一定适用于现实世界。

然而,将马尔可夫链进行数千次迭代后,确实能够长期预测你可能会进入那个房间。更重要的是,这个预测并没有受到这人最初处于哪个房间的影响!简单地说:在某一时间某人处于家里哪个位置并不重要。所以马尔可夫链这个看似在几个时期内对随机变量建模的不合理方法,可以用来计算该变量的长期趋势。

有了蒙特卡罗模型和马尔可夫链的相关知识,我希望接下来的MCMC方法解释能更容易理解一些。

还记得之前我们试着建立人类平均身高的后验分布吧:

我们知道后验分布是在先验分布和可能性分布范围之内的,但是由于种种原因,我们不能直接计算它。使用MCMC方法,我们将有效地从后验分布中抽取样本,然后计算样本中的平均值。

首先,MCMC方法要选择一个随机参数。模型会继续产生随机值(这是蒙特卡罗的一部分),但要根据一些规则来确定什么是一个好的参数值。对于一对参数值,通过计算每个值能解释数据的可能性,将有可能计算哪个参数值更好。如果一个随机生成的参数比上一个参数更好,则将根据好的程度确定一定概率,并将其添加到参数值链中(这是马尔可夫链的一部分)。

为了更直观地解释这一点,让我们回顾一下,人类身高分布在某一特定值所代表的观察该值的概率。因此,X轴代表的参数值显示出高低不同的概率,表现在Y轴上。对于单个参数,MCMC方法沿着X轴开始随机采样:

红点是随机参数样本

由于随机样本受到固定概率的影响,它们往往会在我们感兴趣的参数的概率最高的地方进行收敛:

蓝点只代表任意时间点之后的样本,预计会出现收敛。注意:为了说明,我是垂直叠加的

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

根据MCMC模型生成的样本集计算出的任何数据是我们对该真是后验分布数据的最佳猜测。

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

再让我们回顾下开头对马尔可夫链蒙特卡罗法的定义:

MCMC方法是用来在概率空间,通过随机采样估算兴趣参数的后验分布。

原文地址:towardsdatascience.com/a-zero-math-introduction-to-markov-chain-monte-carlo-methods-dcba889e0c50

登录查看更多
9

相关内容

【经典书】贝叶斯编程,378页pdf,Bayesian Programming
专知会员服务
247+阅读 · 2020年5月18日
可解释推荐:综述与新视角
专知会员服务
111+阅读 · 2019年10月13日
解读 | 得见的高斯过程
机器学习算法与Python学习
14+阅读 · 2019年2月13日
不用数学讲清马尔可夫链蒙特卡洛方法?
算法与数学之美
16+阅读 · 2018年8月8日
零基础概率论入门:最大似然估计
论智
12+阅读 · 2018年1月18日
概率论之概念解析:引言篇
专知
6+阅读 · 2018年1月8日
基于概率论的分类方法:朴素贝叶斯
Python开发者
8+阅读 · 2017年11月9日
从概率论到多分类问题:综述贝叶斯统计分类
机器之心
12+阅读 · 2017年9月28日
[有意思的数学] 参数估计
机器学习和数学
15+阅读 · 2017年6月4日
A Probe into Understanding GAN and VAE models
Arxiv
9+阅读 · 2018年12月13日
Arxiv
10+阅读 · 2018年3月23日
Arxiv
5+阅读 · 2018年1月17日
VIP会员
相关资讯
解读 | 得见的高斯过程
机器学习算法与Python学习
14+阅读 · 2019年2月13日
不用数学讲清马尔可夫链蒙特卡洛方法?
算法与数学之美
16+阅读 · 2018年8月8日
零基础概率论入门:最大似然估计
论智
12+阅读 · 2018年1月18日
概率论之概念解析:引言篇
专知
6+阅读 · 2018年1月8日
基于概率论的分类方法:朴素贝叶斯
Python开发者
8+阅读 · 2017年11月9日
从概率论到多分类问题:综述贝叶斯统计分类
机器之心
12+阅读 · 2017年9月28日
[有意思的数学] 参数估计
机器学习和数学
15+阅读 · 2017年6月4日
Top
微信扫码咨询专知VIP会员