采样之MCMC
2016-11-07 21:38
183 查看
注:本文中所有公式和思路来自于邹博先生的《机器学习升级版》,我只是为了加深记忆和理解写的本文。
马尔科夫模型
说到MCMC(Markov Chain Monte Carlo ),就必须要提一下MC(Markov Chain)模型,我们可以这么描述MC模型:
描述:考虑某随机过程Π,它有n个状态,记第t时刻处于第i状态,它在t+1时刻的状态位于状态j的概率为P(i, j) = P(j | i):即状态转移概率只依赖前一个状态,如下图所示:
马尔科夫随机过程的平稳分布
马尔科夫平稳分布:初始概率不同,但是经过若干次迭代,Π最终收敛在某个分布上
另外,如果一个非周期的马尔科夫随机过程具有转移概率矩阵P,并且它的任意两个状态之间都是连通的,则:
上图中的两种写法实际上是等价的,若概率分布πP=π,则可以说明:多项分布π是状态转移矩阵P的平稳分布。另外从数学的角度看xP=x这个方程的非负解为π,因为P唯一,所以π为方程的唯一非负解,说白了就是无论初值给成什么样,肯定会收敛于唯一的分布,只是收敛速度(迭代次数)会有不同。
细致平稳条件
从未定分布满足πP=π可知,如果非周期马尔科夫随机过程的状态转移矩阵P和分布π(x)满足:
则π(x)是马尔科夫随机过程的平稳条件,又被称为细致平稳条件,公式中的P(i,j)是矩阵中的第i行第j列,所表达的含义就是前一个状态为i时,后一个状态为j的概率:即P(j|i),仅此而已。
这里边的"细致"可以理解为对于任意两个状态i,j,从i转移到j的概率和从j转移到i的概率相等,也就是说每一状态都是平稳的。
那么细致平稳条件和平稳分布有什么关系呢?
根据马尔科夫过程的定义:
根据细致平稳条件:
从而得到:
完美!得到这么一致的结论是不是特别的爽!!!
设定接受率:
假设当前的马尔科夫过程的转移矩阵的为Q,对于给定的分布p,一般来说:
既然是这样,我们可以加入α因子,是的上式满足细致平稳条件:
满足因子的α有很多,根据对称性,可以取:
根据接受率α改造转移矩阵Q:
MCMC:Metropolis-Hastings算法:
根据需要满足的细致平稳条件:
若令α(j,i)=1,则有:
从而的到接受率:
将接受率设置为恒小于1,从而有:
公式化的介绍纠说这么多,接下里解释一下这个算法:
(1): 初始化马尔科夫随机过程初始状态为I=i0
(2): 对t=1,2,3...
(a):第t个时刻马尔科夫过程初始状态为it,采样q=q(j|it)
(b):从均匀分布中采样u∈[0,1]
(c):如果:
则接收状态j,即it+1=j,否则不接受j,it+1=i
从(2)(c)步骤中可以看得出,MCMC还是有一定的拒绝率,而且α越小,拒绝率越高,那么我们如何改进呢?且听下回分解。
马尔科夫模型
说到MCMC(Markov Chain Monte Carlo ),就必须要提一下MC(Markov Chain)模型,我们可以这么描述MC模型:
描述:考虑某随机过程Π,它有n个状态,记第t时刻处于第i状态,它在t+1时刻的状态位于状态j的概率为P(i, j) = P(j | i):即状态转移概率只依赖前一个状态,如下图所示:
马尔科夫随机过程的平稳分布
马尔科夫平稳分布:初始概率不同,但是经过若干次迭代,Π最终收敛在某个分布上
另外,如果一个非周期的马尔科夫随机过程具有转移概率矩阵P,并且它的任意两个状态之间都是连通的,则:
上图中的两种写法实际上是等价的,若概率分布πP=π,则可以说明:多项分布π是状态转移矩阵P的平稳分布。另外从数学的角度看xP=x这个方程的非负解为π,因为P唯一,所以π为方程的唯一非负解,说白了就是无论初值给成什么样,肯定会收敛于唯一的分布,只是收敛速度(迭代次数)会有不同。
细致平稳条件
从未定分布满足πP=π可知,如果非周期马尔科夫随机过程的状态转移矩阵P和分布π(x)满足:
则π(x)是马尔科夫随机过程的平稳条件,又被称为细致平稳条件,公式中的P(i,j)是矩阵中的第i行第j列,所表达的含义就是前一个状态为i时,后一个状态为j的概率:即P(j|i),仅此而已。
这里边的"细致"可以理解为对于任意两个状态i,j,从i转移到j的概率和从j转移到i的概率相等,也就是说每一状态都是平稳的。
那么细致平稳条件和平稳分布有什么关系呢?
根据马尔科夫过程的定义:
根据细致平稳条件:
从而得到:
完美!得到这么一致的结论是不是特别的爽!!!
设定接受率:
假设当前的马尔科夫过程的转移矩阵的为Q,对于给定的分布p,一般来说:
既然是这样,我们可以加入α因子,是的上式满足细致平稳条件:
满足因子的α有很多,根据对称性,可以取:
根据接受率α改造转移矩阵Q:
MCMC:Metropolis-Hastings算法:
根据需要满足的细致平稳条件:
若令α(j,i)=1,则有:
从而的到接受率:
将接受率设置为恒小于1,从而有:
公式化的介绍纠说这么多,接下里解释一下这个算法:
(1): 初始化马尔科夫随机过程初始状态为I=i0
(2): 对t=1,2,3...
(a):第t个时刻马尔科夫过程初始状态为it,采样q=q(j|it)
(b):从均匀分布中采样u∈[0,1]
(c):如果:
则接收状态j,即it+1=j,否则不接受j,it+1=i
从(2)(c)步骤中可以看得出,MCMC还是有一定的拒绝率,而且α越小,拒绝率越高,那么我们如何改进呢?且听下回分解。
相关文章推荐
- MCMC(四)Gibbs采样
- MCMC马尔可夫蒙特卡洛方法总结-Gibss吉布斯采样, Metropolis-Hastings方法
- MCMC采样理论的一点知识
- MCMC采样
- 采样方法(二)MCMC相关算法介绍及代码实现
- MC, MCMC, Gibbs采样 原理&实现(in R)
- MCMC中的Metropolis–Hastings算法与吉布斯采样
- MC, MCMC, Gibbs采样 原理&实现(in R)
- MCMC:Gibbs 采样(matlab 实现)
- MC, MCMC, Gibbs采样 原理&实现(in R)
- MC, MCMC, Gibbs采样 原理&实现(in R)
- 受限玻尔兹曼机准备知识——MCMC方法和Gibbs采样
- MC, MCMC, Gibbs采样 原理&实现(in R)
- 概率采样3——MCMC
- MCMC(三)MCMC采样和M-H采样
- MC, MCMC, Gibbs采样 原理&实现(in R)
- 马尔科夫蒙特卡洛方法 (MCMC)+ Gibbs采样 原理干货
- 色度上采样错误和4:2:0隔行扫描色度问题(二)
- Image segmentation by MCMC methods
- ALSA的采样频率不一致问题