马尔科夫链
在 马尔科夫及其有关的随机过程 中我们介绍过马尔科夫过程,其区别就是时间是否是离散的。整体分类可以见下面表格。
| 可数或有 限的状态空间 | 连续或一般的状态空间 |
---|
离散时间 | 在可数且有限状态空间下的马尔可夫链 | Harris chain (在一般状态空间下的马尔可夫链) |
连续时间 | Continuous-time Markov process | 任何具备马尔可夫性质的连续随机过程,例如维纳过程 |
马尔可夫链假设某一时刻状态转移的概率只依赖于它的前一个状态。
=P(Xt+1=j∣X0=k0,…Xt−1=kt−1,Xt=i)P(Xt+1=j∣Xt=i)=pij,t=0,1,…,k0,…,kt−1,i,j∈S
则矩阵 P=(pij)m×m 为转移概率矩阵。显然有 ∑j=1mpij=1,i=1,2,…,m。
如果我们给定状态空间为 {s0,s1,s2} 三种状态。并给定有转移概率矩阵:
P=0.60.300.20.40.30.20.30.7假设初始状态分别为 [0.1,0.2,0.7] 。我们模拟一下直到 t=100 时状态概率。
可以看到最后 的状态概率收敛到一个固定值,我们尝试进行多次,初始不同的状态概率。

可以看到同样收敛到了一个固定值。
也就是说马尔科夫链模型的状态转移矩阵收敛到的稳定概率分布与初始状态概率分布无关。也就是说,如果我们得到了这个稳定概率分布对应的马尔科夫链模型的状态转移矩阵,则我们可以用任意的概率分布样本开始,带入马尔科夫链模型的状态转移矩阵,这样经过一些序列的转换,最终就可以得到符合对应稳定概率分布的样本。
用数学语言来描述就是
如果一个非周期的马尔科夫有状态转移矩阵 P,并且他的任何两个状态是连通的,那么 limn→∞Pijn 与初始点 i 无关。我们有
n→∞limPijn=π(j)
对于马式链
P(Xt+k=j∣Xt=i)=pij(k),为
k 步转移概率
n→∞limPn=π(1)π(1)⋮π(1)⋮π(2)π(2)⋮π(2)⋮⋯⋯⋮⋯⋮π(j)π(j)⋱π(j)⋱⋯⋯⋮⋯⋮
π(j)=i=0∑mπ(i)Pij
P(Xn+1=j)=i=0∑∞P(Xn=i)P(Xn+1=j∣Xn=i)=i=0∑∞P(Xn=i)Pij然后两边取极限,实际上就是在描述极限状况下,任意状态的概率为所有概率转换到该状态的概率和
π 是 πP=π 唯一非负解,π=[π(1),π(2),⋯,π(j),⋯],并且有 ∑i=1∞π(i)=1,π 被称为马氏链的平稳分布。
马尔科夫链采样
如果我们知道转移概率矩阵,则我们可以非常方便的采样得到平稳分布的样本集。
- 输入马尔科夫链状态转移矩阵 P,
- 从任意分布中采样初始状态 x0
- 根据条件概率 P(x∣xt) 采样得到 P(xt+1)
当 t 很大时,xt 的分布就近似服从 π,抛弃开始的一段后的 xt 序列就可以做为分布 π 的相关的样本,抛弃的一段序列叫做老化期。
均匀分布,Box-Muller 变换
在说 MCMC 采样前,先引入一些前置知识。
均匀分布是很容易采样的,比如在计算机中生成 [0,1] 之间的伪随机数序列,就可以看成是一种均匀分布。而我们常见的概率分布,无论是连续的还是离散的分布,都可以基于 Uniform(0,1) 的样本生成。例如正态分布可以通过著名的 Box−Muller 变换得到:
Box-Muller 变换
如果随机变量 U1,U2,独立且 U1,U2∼U(0,1)