梅特罗波利斯-黑斯廷斯算法(英语:Metropolis–Hastings algorithm)是统计学与统计物理中的一种马尔科夫蒙特卡洛(MCMC)方法,用于在难以直接采样时从某一概率分布中抽取随机样本序列。
简介得到的序列可用于估计该概率分布或计算积分(如期望值)等。梅特罗波利斯-黑斯廷斯或其他MCMC算法一般用于从多变量(尤其是高维)分布中采样。对于单变量分布而言,常会使用自适应判别采样(adaptive rejection sampling)等其他能抽取独立样本的方法,而不会出现MCMC中样本自相关的问题。
该算法的名称源于美国物理学家尼古拉斯·梅特罗波利斯与加拿大统计学家W·K·黑斯廷斯。1
尼古拉斯·康斯坦丁·梅特罗波利斯介绍尼古拉斯·康斯坦丁·梅特罗波利斯(英语:Nicholas Constantine Metropolis),美籍希腊裔物理学家。出生于美国芝加哥市。1936年、1941年分别获芝加哥大学实验物理学学士、博士学位。1943年由罗伯特·奥本海默招募,进入洛斯阿拉莫斯国家实验室工作。他是曼哈顿计划最早的科学家之一,协助恩里科·费米和爱德华·泰勒进行了世界上第一个核反应堆的研究。二战结束后,他前往芝加哥大学,担任助理教授。1948年返回洛斯阿拉莫斯国家实验室,领导了有关电子计算机的理论部门的研究。该组于1952年设计并建造了计算机MANIAC I,并于1957年建造了MANIAC II。1957至1965年在芝加哥大学担任物理教授。1965年再次回到洛斯阿拉莫斯国家实验室,1980年获得实验室资深研究员称号。
梅特罗波利斯最知名的贡献,是他对蒙特卡洛方法和积分微分方程的研究。他于1953年首次提出的梅特罗波利斯–黑斯廷斯算法(Metropolis–Hastings algorithm)是蒙特卡洛方法中最重要的抽样方法之一。
算法假设
为目标概率分布。梅特罗波利斯-黑斯廷斯算法的过程为:
初始化
a.
选定初始状态;
b.令
;
迭代过程
a.从
的均匀分布中生成随机数
;
b.如
,则接受该状态,并令
;
c.如
,则拒绝该状态,并令
(复制原状态);
d.生成:从某一容易抽样的分布
中随机生成候选状态
;
e.计算:计算是否采纳候选状态的概率
;
f.接受或拒绝
g.增量:令
;2
马尔可夫链蒙特卡洛(英语:Markov chain Monte Carlo,MCMC)方法(含随机游走蒙特卡洛方法)是一组用马氏链从随机分布取样的算法,之前步骤的作为底本。步数越多,结果越好。
创建一个具有期望属性的马氏链并非难事,难的是如何决定通过多少步可以达到在许可误差内的稳定分布。一个好的马氏链具有快速混合——从开始阶段迅速获得的一个稳定状态——请参考马氏链最大时间。
因于初始样本,最常见的MCMC取样只能近似得到分布。复杂的MCMC改进算法如过往耦合,但是会消耗更多的计算资源和时间。
典型用法是模拟一个随机行走的行人来进行路径优化等。每一步都算作是一个状态。而统计经过次数最多的地方将在下一步中更有可能为目的地。马氏蒙特卡洛方法是一种结合了蒙特卡罗法的解决方案。但不同于以往的蒙特卡洛integration是统计独立的,MCMC中的是统计相关的。
本词条内容贡献者为:
曹慧慧 - 副教授 - 中国矿业大学梅特罗波利斯-黑斯廷斯算法
图文简介
梅特罗波利斯-黑斯廷斯算法(英语:Metropolis–Hastings algorithm)是统计学与统计物理中的一种马尔科夫蒙特卡洛(MCMC)方法,用于在难以直接采样时从某一概率分布中抽取随机样本序列。
- 来源: 科普中国科学百科
- 上传时间:2018-11-13
科普中国公众号
科普中国微博

帮助