什么是mcmc算法

2024-05-18 06:37

1. 什么是mcmc算法

1.MCMC方法主要是为了解决有些baysian推断中参数期望E(f(v)|D)不能直接计算得到的问题的。
  其中v是要估计的参数,D是数据观察值
2. Markov chain monte carlo概念包含了两部分:markov chain 和monte carlo integration。
  2.1. 首先是monte carlo integration: monte carlo integration是利用采样的方法解决参数期望不能直接计算解决的问题的:即根据v的后验概率密度函数对v进行n次随机采样,计算n个f(v),然后将这n个值求平均。根据大数定理当n足够大并且采样服从独立原则的时候,该值趋向于期望的真实值。但是当v的后验概率函数很难得到的时候该方法并不适用。
  2.2 而在此基础上产生的 Markov chain monte carlo,虽然也是通过采样的方法进行的,却将马尔科夫链的概念引进来。它的想法是这样的:如果某条马尔科夫链具有irreducible 和aperiodic的特性的时候,该马尔科夫链具有一个唯一的静态点,即Pt=Pt-1;因此当马尔科夫链足够长后(设为N),产生的值会收敛到一个恒定的值(m)。这样对f(v)产生马尔科夫链,在N次之后f(v)的值收敛于恒定的值m,一般假设n>N后,f(v)服从N(m,scale)的正态分布。
   即当n足够大的时候,用马尔科夫链产生的f(v)相当于在N(m,scale)独立抽样产生的值。
3. 如何产生具有这样特性的马尔科夫链:主要的方法是M-H算法
   M-H算法有两部分组成:1. 根据条件概率密度函数,抽样得到下一个时间点的参数值Vt+1;2计算产生的这个值的接受概率a。如果a有显著性,就接受抽样得到的值,否则下一时间点的值保持不变。
  在1中引入了proposal distribution的概念。在参数取值连续的情况下,后一个时间点的值服从一个分布,而这个分布函数只和前一个时间点的值有关q(.|Vt)
  a的计算这里不贴了,一般都一样。重要的计算完a之后,如果决定接受采样获得的值还是保持原来值不变。在这个问题上,一般的处理方法是假设a服从0~1的均匀分布,每次采样计算a后都从U(0,1)中随机抽样一个值a',如果a>=a'则接受抽样的值,否则保持原来的值不变。
   根据q(.|Vt)的不同,M-H算法又有不同的分类:
   3.1 Metroplis algorithm:在这里假设q(Vt+1|Vt)=q(|Vt+1 - Vt|)因此a被化解。该方法叫做random walk metropolis。
   3.2 independence sampler:在这个算法里,假设q(Vt+1|Vt)=q(Vt+1)
对于多参数的情况,既可以同时产生多向量的马尔科夫链,又可以对每个参数分别进行更新:即,如果有h个参数需要估计,那么,在每次迭代的时候,分h次每次更新一个参数。
4. Gibbs抽样,H-M算法的一个变体

什么是mcmc算法

最新文章
热门文章
推荐阅读