背景介绍:
在概率与统计领域,往往需要根据已知的概率分布生成相应的采样集合,从而支持后续的统计分析与研究。有时候已知的概率分布比较简单,很容易生成一系列的采样集合,而有时候已获得的概率分布较为复杂,很难直接生成相应的采样集合。那么是否存在一种算法,不管给定的分布复杂与否,均可以统一的生成相应的采样集合呢?答案是肯定的。今天我们就将介绍一种普遍使用的算法:Metropolis-Hasting (MH) 算法。
MH算法名字中的Metropolis和Hasting分别代表两个人。其中,Nicholas Metropolis是1953年发表的论文Equation of State Calculations by Fast Computing Machines 中的第一作者。在这篇论文中为了讨论对称分布,首先提出了该算法。而在1970年,W. K. Hastings 将该算法扩展到一般情况,从而奠定了它的普适性。
Metropolis-Hasting 算法:
MH算法是一个基于Markov Chain Monte Carlo(MCMC) 的近似算法。它实现的原理是首先根据给定的任意一个概率分布,构造一个以该分布为静态分布的Markov Chain,然后执行该Markov Chain 到达收敛之后(每个点被访问的概率服从静态分布)开始采样,此时获得的采样集合近似认为是服从给定分布
π
的。
从上述的原理描述,我们不难看出,算法所面临的挑战在于如何通过给定的分布
π
来设计相应的Markov Chain? 因为每一条Markov Chain都对应唯一的一个转移矩阵,所以该问题等价于如何根据
π
确定转移概率矩阵。
为了解决上述挑战,我们首先需要搞清楚什么样的转移概率矩阵对应的Markov Chain才会存在静态分布,以及是否该静态分布是唯一的?
1. 静态分布存在的一个充分不必要条件: 给定一条Markov Chain
{Xt}t≥0
,设其转移矩阵为
P={p(i,j)}i,j∈S
,其中
S
为状态空间,
2. 静态分布唯一存在的充分必要条件:若一条Markov Chain 是非周期(aperiodic)和常回归的(positive recurrent)的,等价于该链是可遍历的(ergodicity),则可以证明该链存在唯一的静态分布,
上面的两个结论为我们如何根据分布
π
设计转移矩阵指明了方向。换句话说,若我们能设计出满足上面两个条件的转移概率,其对应的Markov Chain一定存在唯一的静态分布,且该分布就是
π
。通过利用第一个结论,我们可以得到1式:
为了满足第二个结论,我们可以将每一步的转移概率分成两步:选举概率 Q(i,j) 和接受概率 A(i,j) 。即每一次转移时,首先从 i 的相邻状态中随机选择一个状态
结合1式和2式,我们可以得到3式:
进而,我们可以得到4式:
记
从而我们有5式: A(i,j)=T(j,i)A(j,i)
结合 T(j,i) 和5式,不难得出, T(i,j)=1/T(j,i) 和 A(i,j)=F(T(i,j)) ,其中 F 满足
到这里,我们便根据给定的分布 π ,完成了对转移概率的设计,即对任意的 j≠i :
其中, p(i,i)=1−p(i,j) 。
图上的Metropolis-Hasting Random Walk (MHRW)
作为一个具体的例子,接下来,我们将介绍在给定图上的基于MH算法的随机游走。
给定一个无向连通图
G(V,E)
,其中
V
是结点集合,
具体的算法伪代码如下:
v ← initial node
while stopping criterion not met do
Select node w uniformly at random from neighbors of v.
Generate uniformly at random a number 0≤p≤1.
if p < d(v)/d(w) then
v ← w.
else
Stay at v
end if
end while
参考文献:
[1]:Metropolis–Hastings algorithm -Wiki
[2]:Beyond Random Walk and Metropolis-Hastings Samplers: Why You Should Not Backtrack for Unbiased Graph Sampling
[3]: Walking in Facebook:A Case Study of Unbiased Sampling of OSNs
[4]:Equation of State Calculations by Fast Computing Machines