马氏链(Markov Chain Model)模型知识详解(1)
马尔可夫链模型(Markov Chain Model,又称马氏链)是概率论和统计学中的一种随机过程模型,它以“无记忆性(Markov性)”为核心假设,广泛应用于自然语言处理、金融建模、信号处理、机器人导航等众多领域。
一、基本概念与定义
1.1 马尔可夫性质(Markov Property)
马尔可夫链是满足以下性质的随机过程:
未来状态只依赖于当前状态,而与过去状态无关。
数学表达为:
P ( X n + 1 = x ∣ X n = x n , X n − 1 = x n − 1 , . . . , X 0 = x 0 ) = P ( X n + 1 = x ∣ X n = x n ) P(X_{n+1} = x \mid X_n = x_n, X_{n-1} = x_{n-1}, ..., X_0 = x_0) = P(X_{n+1} = x \mid X_n = x_n) P(Xn+1=x∣Xn=xn,Xn−1=xn−1,...,X0=x0)=P(Xn+1=x∣Xn=xn)
其中, X n X_n Xn 是在时间 n n n 的状态。
1.2 状态空间(State Space)
- 有限状态空间:例如天气模型:{晴天,阴天,雨天}
- 无限状态空间:如整数集合,连续空间(如位置)
1.3 转移概率(Transition Probability)
一个马氏链由转移概率矩阵定义:
P = [ p 11 p 12 … p 1 n p 21 p 22 … p 2 n ⋮ ⋮ ⋱ ⋮ p n 1 p n 2 … p n n ] P = \begin{bmatrix} p_{11} & p_{12} & \dots & p_{1n} \\ p_{21} & p_{22} & \dots & p_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ p_{n1} & p_{n2} & \dots & p_{nn} \end{bmatrix} P= p11p21⋮pn1p12p22⋮pn2……⋱…p1np2n⋮pnn
其中 p i j = P ( X t + 1 = j ∣ X t = i ) p_{ij} = P(X_{t+1} = j \mid X_t = i) pij=P(Xt+1=j∣Xt=i),满足:
- p i j ≥ 0 p_{ij} \geq 0 pij≥0
- ∑ j p i j = 1 \sum_{j} p_{ij} = 1 ∑jpij=1
1.4 初始分布(Initial Distribution)
起始时刻的状态分布,记为 π 0 \pi_0 π0,如:
π 0 = [ π 1 , π 2 , . . . , π n ] , ∑ i π i = 1 \pi_0 = [\pi_1, \pi_2, ..., \pi_n], \quad \sum_i \pi_i = 1 π0=[π1,π2,...,πn],i∑πi=1
二、马氏链的基本性质
名称 | 定义与说明 |
---|---|
遍历性(Ergodicity) | 所有状态都可以在有限步内到达,且长期统计概率存在 |
吸收状态(Absorbing State) | 一旦进入该状态,便无法再离开(如状态 i 满足 p i i = 1 p_{ii} = 1 pii=1) |
稳态分布(Stationary Distribution) | 分布 π \pi π 满足 π = π P \pi = \pi P π=πP,表示长期平均状态分布 |
周期性(Periodicity) | 状态的返回间隔有周期,例如只能每两步回到自身 |
瞬时性/常返性(Transient/Recurrent) | 是否会无限次返回一个状态 |
三、分类与性质
3.1 齐次 vs 非齐次
- 齐次马氏链:转移概率矩阵 P P P 不随时间变化。
- 非齐次马氏链: P t P_t Pt 随时间变化。
3.2 可达性与通信类
- 可达:若存在 n n n 使得 P ( n ) ( i , j ) > 0 P^{(n)}(i, j) > 0 P(n)(i,j)>0,则称 s j s_j sj 从 s i s_i si 可达。
- 通信类:若 s i s_i si 与 s j s_j sj 互相可达,则它们属于同一通信类。
3.3 常返与瞬时状态
- 常返状态:从该状态出发,几乎必然能返回自身。
- 瞬时状态:存在返回失败的概率。
3.4 正则马氏链
- 存在整数 k k k,使得所有元素 P k > 0 P^k > 0 Pk>0,称该链为正则马氏链,平稳分布存在且唯一。
四、实际应用举例
4.1 自然语言处理(NLP)
❖ 语言模型
在 unigram / bigram 模型中,假设一个词只依赖前一个词(即一阶马尔可夫):
P ( w 1 , w 2 , . . . , w n ) ≈ P ( w 1 ) ⋅ P ( w 2 ∣ w 1 ) ⋅ P ( w 3 ∣ w 2 ) ⋅ … P(w_1, w_2, ..., w_n) \approx P(w_1) \cdot P(w_2|w_1) \cdot P(w_3|w_2) \cdot \dots P(w1,w2,...,wn)≈P(w1)⋅P(w2∣w1)⋅P(w3∣w2)⋅…
常用于拼写校正、自动补全等。
4.2 隐马尔可夫模型(HMM)
在 HMM 中,状态不可见,但能观察到由状态生成的观测值。常用于:
- 语音识别
- POS 词性标注
- 生物序列分析(如 DNA)
4.3 金融建模
马氏链可用于建模市场状态变换,例如:
- 股票市场:牛市、熊市、中性市场
- 利率变化、信用评级迁移(信用评分模型)
4.4 机器人路径规划
在 SLAM 或导航中,马尔可夫定位(Markov Localization)使用概率分布表示机器人在地图中的位置变化。
4.5 图像处理 & 生成
- 基于马氏链的纹理合成
- 图像分割中的图模型(如 Markov Random Field)
五、简单案例:天气马尔可夫链
设状态集合为:
- S = {晴 (sunny), 阴 (cloudy), 雨 (rain)}
转移概率矩阵为:
P = [ 0.7 0.2 0.1 0.3 0.4 0.3 0.2 0.3 0.5 ] P = \begin{bmatrix} 0.7 & 0.2 & 0.1 \\ 0.3 & 0.4 & 0.3 \\ 0.2 & 0.3 & 0.5 \end{bmatrix} P= 0.70.30.20.20.40.30.10.30.5
若初始天气为晴,求第 2 天为雨的概率。
步骤:
- 初始分布: π 0 = [ 1 , 0 , 0 ] \pi_0 = [1, 0, 0] π0=[1,0,0]
- 一天后: π 1 = π 0 P = [ 0.7 , 0.2 , 0.1 ] \pi_1 = \pi_0 P = [0.7, 0.2, 0.1] π1=π0P=[0.7,0.2,0.1]
- 第二天: π 2 = π 1 P \pi_2 = \pi_1 P π2=π1P
最终取 π 2 [ 雨 ] \pi_2[雨] π2[雨] 为所求概率。
️ 六、Python 简单实现
import numpy as npP = np.array([[0.7, 0.2, 0.1],[0.3, 0.4, 0.3],[0.2, 0.3, 0.5]
])pi0 = np.array([1.0, 0.0, 0.0]) # 初始为“晴”
pi1 = pi0 @ P
pi2 = pi1 @ Pprint(f"第二天是雨的概率: {pi2[2]:.4f}")
七、学习推荐
- 《Markov Chains: From Theory to Implementation and Experimentation》— Paul A. Gagniuc
- 《统计学习方法》李航(含 HMM 推导)
- 相关课程:CS229、斯坦福 NLP 课程、概率图模型