在介绍《Fast and Provably Good Seedings for K-means》时,作者使用MCMC采样来近似
Monte Carlo Approach
在介绍MCMC算法之前,我们先来看蒙特卡洛随机模拟算法。
假设我们需要求解下面这个积分问题:
而这个
式中的
以上便是蒙特卡洛算法的核心思想,具体操作时就是需要考虑如何从给定的概率分布
采样算法
CDF
假设我们想以
- 我们可以先求出它的累积概率函数:
F(x)=∫bap(x)d(x) s.t.a<x<b
2.然后使用均匀分布产生一个样本点u u∼u(a,b)
3.最后我们求解出反函数F−1(u) x=F−1(u)
4.x 便可以看作是按照p(x) 采样得到的样本点
我们可以看一个正态分布的例子:
左图是概率密度函数PDF-
p(x) ,右图是对应的累计概率密度函数CDF-F(x) .
我们先随机生成一个样本点u=0.8413 ,F−1(u)=1 ,所以1就是相应的样本点。
直觉上看,我们随机选择(0,1) 之间的点,大部分点都i会落在区间(0.2,0.8) 之间,而与之对应的F−1(x) 则大部分落在(−1,1) 之间,这也对应了正态分布在(−1,1) 之间概率密度较大的事实。
这种方法只适用于简单的分布。
Markov Chain
对于某一些马尔科夫链,它能够收敛到一个平稳分布
当马尔可夫链在第
所以为了构造一个以
Metropolis Sampler
M算法要求提案概率
Metropolis-Hastings Sampler
MH算法加入了
这两个算法的区别在于提案概率是否是对称的。