马尔可夫链是一个数学系统,它根据某些特定的概率规则从一个状态转换到另一个状态。马尔科夫的定义特征是:无论过程如何到达当前的状态,未来的状态都是固定的。也就是说,转换到任何特定状态的概率都取决于当前的状态和过去的时间。马尔可夫链是一个随机过程,而上述的特性也让它与一般的随机过程不同。马尔可夫链必须是“无记忆的”,未来行动的概率不取决于导致当前状态的步骤。,这被成为马尔可夫性质。
举一个小例子,便于快速理解马尔可夫性质。假设一个包里面有多个颜色的球,每次从包里面取出一个球,求每次得到一个特定颜色球的概率。这就构成了一个随机过程,随机变量是球的颜色。但是上述随机过程并不满足马尔科夫性质,每次取出球之后,包里球的总数会发生变化,那么 t t t时刻取出特定颜色球的概率受前 t − 1 t-1 t−1时刻所取球颜色的影响。那如何更改取球规则,才能使此随机过程满足马尔可夫性质呢?马尔可夫性质要求 t t t时刻取出特定颜色球的概率不受前 t − 1 t-1 t−1时刻的取球行为的影响,也就是说,每个时刻取球的概率是独立的。那我们更改条件,每次取球时记录球的颜色,然后将球再放入包中。这样,不论哪个时刻,包里球的总数是不变的,取出特定颜色的球的概率不受前几个时刻的取球动作的影响。这个随机过程满足马尔可夫链性质。
直白地说,一个马尔科夫链就是一系列满足条件独立规则的随机变量 X 0 , X 1 , X 2 , ⋯ X n X_{0}, X_{1}, X_{2}, \cdots X_{n} X0,X1,X2,⋯Xn。对任何正整数 n n n和随机变量的可能状态 i 0 , i 1 , ⋯ , i n i_{0}, i_{1}, \cdots, i_{n} i0,i1,⋯,in,马尔可夫性质可用公式表示为:
P ( X n = i n ∣ X n − 1 = i n − 1 ) = P ( X n = i n ∣ X 0 = i 0 , X 1 = i 1 , ⋯ , X n − 1 = i n − 1 ) P\left( X_{n} = i_{n} | X_{n-1} = i_{n-1} \right) = P\left( X_{n} = i_{n} | X_{0}=i_{0}, X_{1} = i_{1}, \cdots, X_{n-1} = i_{n-1} \right) P(Xn=in∣Xn−1=in−1)=P(Xn=in∣X0=i0,X1=i1,⋯,Xn−1=in−1)
马尔科夫链 { X } \{X\} {X}在时刻 t t t的转移矩阵 P t P_{t} Pt是一个包含状态之间转换概率信息的矩阵。矩阵 P t P_{t} Pt第 i i i行第 j j j列的元素信息,用数学公式表示为: ( P t ) i , j = P ( X t + 1 = j ∣ X t = i ) \left( P_{t} \right)_{i,j} = \mathbb{P} \left( X_{t+1}=j | X_{t} = i \right) (Pt)i,j=P(Xt+1=j∣Xt=i)。由上述公式可以看出,转换矩阵的每一行是一个概率向量,向量里面元素和为1。
假设有 n n n个随机变量,其 t t t和 t − 1 t-1 t−1时刻的转移矩阵分别为 P t P_{t} Pt和 P t + 1 P_{t+1} Pt+1,设 M = P t ⋅ P t + 1 M = P_{t} \cdot P_{t+1} M=Pt⋅Pt+1,计算 M M M第 i i i行第 j j j列的转移概率 M i , j M_{i,j} Mi,j
M i , j = ∑ k = 1 n ( P t ) i , k ( P t + 1 ) k , j = ∑ k = 1 n P ( X t + 1 = k ∣ X t = i ) P ( X t + 2 = j ∣ X t + 1 = k ) = P ( X t + 2 = j ∣ X t = i ) \begin{array}{l} M_{i,j} & =\sum_{k=1}^{n} \left( P_{t} \right)_{i,k} \left( P_{t+1} \right)_{k,j} \qquad \qquad \qquad \qquad \qquad \qquad \\ &= \sum_{k=1}^{n} \mathbb{P} \left( X_{t+1}=k | X_{t} = i \right) \mathbb{P} \left( X_{t+2}=j | X_{t+1} = k \right) \\ &= \mathbb{P} \left( X_{t+2}=j | X_{t} = i \right) \qquad \qquad \qquad \qquad \qquad \qquad \; \; \end{array} Mi,j=∑k=1n(Pt)i,k(Pt+1)k,j=∑k=1nP(Xt+1=k∣Xt=i)P(Xt+2=j∣Xt+1=k)=P(Xt+2=j∣Xt=i)
那么 P ( X t + 2 = j ∣ X t = i ) = ( P t ⋅ P t + 1 ) i , j \mathbb{P} \left( X_{t+2}=j | X_{t} = i \right) = \left( P_{t} \cdot P_{t+1} \right)_{i,j} P(Xt+2=j∣Xt=i)=(Pt⋅Pt+1)i,j,依次类推,第 k k k步的转移方程为 P t ( k ) = P t ⋅ P t + 1 ⋯ P t + k − 1 P_{t}^{\left(k\right)} = P_{t} \cdot P_{t+1} \cdots P_{t+k-1} Pt(k)=Pt⋅Pt+1⋯Pt+k−1。那么 P t ( k ) P_{t}^{\left(k\right)} Pt(k)的矩阵元素也可以表示如下:
上述公式晦涩难懂,我们举一个小例子便于理解。下图描述的与时间无关的马尔科夫链,计算它的第二步转移矩阵?
如上所示,有两个变量 A A A和 B B B, A A A到 A A A的概率为 0.3 0.3 0.3, A A A到 B B B的概率为 0.7 0.7 0.7, B B B到 A A A的概率为 0.9 0.9 0.9, B B B到 B B B的概率为 0.1 0.1 0.1,那么它的初始转移矩阵为 ( 0.3 0.7 0.9 0.1 ) \begin{pmatrix} 0.3 & 0.7 \\ 0.9 & 0.1 \end{pmatrix} (0.30.90.70.1)
第二步时的转移矩阵计算如下所示,
初始状态为 A A A走两步到 A A A的概率为 0.72 0.72 0.72
初始状态为 A A A走两步到 B B B的概率为 0.28 0.28 0.28
初始状态为 B B B走两步到 A A A的概率为 0.36 0.36 0.36
初始状态为 B B B走两步到 B B B的概率为 0.64 0.64 0.64
马尔可夫链在生活中被广泛应用,比如语音识别中的声学模型、天气的预测和股票价格的预测等等。与马尔可夫链最相关应用最广泛是隐马尔可夫模型(hidden Markov model,HMM),HMM是关于时序的概率模型,描述由一个隐藏的马尔可夫链随机生成不可预测的状态随机序列,再由各个状态生成一个观测从而产生观测随机序列的过程。HMM的具体实现见我的博文隐马尔可夫模型。