- 可以用于比较复杂的分布的采样,并且在高维空间中也能使用
- 马尔可夫蒙特卡洛法
- 蒙特卡洛法:基于采样的数值型近似求解方法
- 马尔可夫链:用于采样
- MCMC基本思想
- 针对目标分布,构造一个马尔可夫链,使得该马尔可夫链的平稳分布就是目标分布
- 从任何一个初始状态出发,沿着马尔可夫链进行转移
- 最终的状态转移序列会收敛到目标分布,得到一系列样本
- 核心点:构造马尔可夫链、确定状态转移序列
Metropolis-Hastings采样法
对于目标分布(p(x)),选择一个易采样的参考条件分布(q(x^*|x)),并令
[A(x, x^*) = mathop{min} {1, frac{p(x^*)q(x|x^*)}{p(x)q(x^*|x)} }
]
然后根据如下过程进行采样
- 随机选一个初始样本(x^{(0)})
- For t = 1, 2, 3,,,,,,
- 根据参考条件分布(q(x^{*}|x^{(t-1)}))抽取一个样本(x^{*})
- 根据均匀分布(U(0,1))产生随机数(u)
- 若(u < A(x^{(t-1)}, x^*)),则令(x^{(t)} = x^*),否则令(x^{(t)} = x^{(t-1)})
- 样本序列({ dots, x^{(t-1)}, x^{(t)} })最终会收敛到目标分布(p(x))
- (A)就是转移概率,(x)之间构成马尔可夫链
吉布斯采样法
- Metropolis-Hastings算法的特例
- 核心思想:每次只对样本的一个维度进行采样和更新
- 对于目标分布(p(x)),其中(x=(x_1, cdots, x_d))是多维向量,按如下过程采样:
- 随机选择初始状态(x^{(0)}=(x_1^{(0)}, cdots, x_d^{(0)}))
- (For t = 1, 2, 3, cdots):
- 对于前一步产生的样本(x^{(t-1)} = (x_1^{(t-1)},cdots, x_d^{(t-1)})),依次采样和更新每个维度的值,即依次随机抽取分量(x_1^{(t)} sim p(x_1|x_2^{(t-1)}, x_3^{(t-1)},dots,x_d^{(t-1)}),dots,p(x_d|x_1^{(t)}, x_2^{(t)},dots,x_{d-1}^{(t)}))
- 形成新的样本(x^{(t)} = (x_1^{(t)}, cdots, x_d^{(t)}))
- 每个维度的采样都是从以其他维度为条件的条件概率中采样的。该条件分布包含本轮已经采样的维度或者上轮采样的维度
- 每个维度的抽样和更新,可以是随机顺序
特点
- 与拒绝采样不同,MCMC采样法每一步都会产生一个新的样本,只是有时候这个样本与之前的样本一样而已
- “burn-in"处理:截除掉序列中最开始的一部分样本
得到相互独立样本
- MCMC采样法得到的样本序列中相邻样本不独立(马尔可夫链)
- 仅仅是采样的话,不需要样本之间相互独立
- 产生独立同分布的样本:
- 同时运行多条马尔可夫链
- 同一条马尔可夫链上每隔若干个样本取一次,近似独立