马氏链(Markov Chain Model)模型知识详解(1)
未来状态只依赖于当前状态,而与过去状态无关。PXn1x∣XnxnXn−1xn−1X0x0PXn1x∣XnxnPXn1x∣XnxnXn−1xn−1...X0x0PXn1x∣Xnxn其中,XnX_nXn是在时间nnn的状态。
马尔可夫链模型(Markov Chain Model,又称马氏链)是概率论和统计学中的一种随机过程模型,它以“无记忆性(Markov性)”为核心假设,广泛应用于自然语言处理、金融建模、信号处理、机器人导航等众多领域。
一、基本概念与定义
1.1 马尔可夫性质(Markov Property)
马尔可夫链是满足以下性质的随机过程:
未来状态只依赖于当前状态,而与过去状态无关。
数学表达为:
P(Xn+1=x∣Xn=xn,Xn−1=xn−1,...,X0=x0)=P(Xn+1=x∣Xn=xn) 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)
其中,XnX_nXn 是在时间 nnn 的状态。
1.2 状态空间(State Space)
- 有限状态空间:例如天气模型:{晴天,阴天,雨天}
- 无限状态空间:如整数集合,连续空间(如位置)
1.3 转移概率(Transition Probability)
一个马氏链由转移概率矩阵定义:
P=[p11p12…p1np21p22…p2n⋮⋮⋱⋮pn1pn2…pnn] 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
其中 pij=P(Xt+1=j∣Xt=i)p_{ij} = P(X_{t+1} = j \mid X_t = i)pij=P(Xt+1=j∣Xt=i),满足:
- pij≥0p_{ij} \geq 0pij≥0
- ∑jpij=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 满足 pii=1p_{ii} = 1pii=1) |
| 稳态分布(Stationary Distribution) | 分布 π\piπ 满足 π=πP\pi = \pi Pπ=πP,表示长期平均状态分布 |
| 周期性(Periodicity) | 状态的返回间隔有周期,例如只能每两步回到自身 |
| 瞬时性/常返性(Transient/Recurrent) | 是否会无限次返回一个状态 |
三、分类与性质
3.1 齐次 vs 非齐次
- 齐次马氏链:转移概率矩阵 PPP 不随时间变化。
- 非齐次马氏链:PtP_tPt 随时间变化。
3.2 可达性与通信类
- 可达:若存在 nnn 使得 P(n)(i,j)>0P^{(n)}(i, j) > 0P(n)(i,j)>0,则称 sjs_jsj 从 sis_isi 可达。
- 通信类:若 sis_isi 与 sjs_jsj 互相可达,则它们属于同一通信类。
3.3 常返与瞬时状态
- 常返状态:从该状态出发,几乎必然能返回自身。
- 瞬时状态:存在返回失败的概率。
3.4 正则马氏链
- 存在整数 kkk,使得所有元素 Pk>0P^k > 0Pk>0,称该链为正则马氏链,平稳分布存在且唯一。
四、实际应用举例
4.1 自然语言处理(NLP)
❖ 语言模型
在 unigram / bigram 模型中,假设一个词只依赖前一个词(即一阶马尔可夫):
P(w1,w2,...,wn)≈P(w1)⋅P(w2∣w1)⋅P(w3∣w2)⋅… 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.70.20.10.30.40.30.20.30.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=π0P=[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=π1P\pi_2 = \pi_1 Pπ2=π1P
最终取 π2[雨]\pi_2[雨]π2[雨] 为所求概率。
️ 六、Python 简单实现
import numpy as np
P = 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 @ P
print(f"第二天是雨的概率: {pi2[2]:.4f}")
七、学习推荐
- 《Markov Chains: From Theory to Implementation and Experimentation》— Paul A. Gagniuc
- 《统计学习方法》李航(含 HMM 推导)
- 相关课程:CS229、斯坦福 NLP 课程、概率图模型
更多推荐
所有评论(0)