梅特罗波利斯-黑斯廷斯算法

来自testwiki
跳转到导航 跳转到搜索
提议分布Q表示随机游走下一状态的可能位置

梅特罗波利斯-黑斯廷斯算法Template:Lang-en)是统计学统计物理中的一种马尔科夫蒙特卡洛(MCMC)方法,用于在难以直接采样时从某一概率分布中抽取随机样本序列。得到的序列可用于估计该概率分布或计算积分(如期望值)等。梅特罗波利斯-黑斯廷斯或其他MCMC算法一般用于从多变量(尤其是高维)分布中采样。对于单变量分布而言,常会使用自适应判别采样(adaptive rejection sampling)等其他能抽取独立样本的方法,而不会出现MCMC中样本自相关的问题。

该算法的名称源于美国物理学家尼古拉斯·梅特罗波利斯[1]与加拿大统计学家Template:Le[2]

算法

假设P(x)为目标概率分布。梅特罗波利斯-黑斯廷斯算法的过程为:

  1. 初始化
    1. 选定初始状态x0
    2. t=0
  2. 迭代过程
    1. 生成: 从某一容易抽样的分布Q(x|xt)中随机生成候选状态xTemplate:NoteTag
    2. 计算: 计算是否采纳候选状态的概率A(x|x)=min(1,P(x)P(x)Q(x|x)Q(x|x))
    3. 接受或拒绝
      1. [0,1]的均匀分布中生成随机数u
      2. uA(x|x),则接受该状态,并令xt+1=x
      3. u>A(x|x),则拒绝该状态,并令xt+1=xt(复制原状态);
    4. 增量:t=t+1

注释

Template:NoteFoot

参考文献

Template:Reflist