马尔科夫模型和隐马尔科夫模型区别
我用一个天气预报和海藻湿度观测的比喻来解释,保证你秒懂!
1. 马尔可夫模型(Markov Model, MM)
特点:状态直接可见
- 场景:天气预报(晴天→雨天→阴天…)
- 核心假设:
下一个状态只由当前状态决定(马尔可夫性)
公式举例:
状态转移概率矩阵:
[
P = \begin{bmatrix}
P(\text{晴}→\text{晴}) & P(\text{晴}→\text{雨}) \
P(\text{雨}→\text{晴}) & P(\text{雨}→\text{雨})
\end{bmatrix}
]
例如:
今天晴天 → 明天70%继续晴,30%下雨
用途:
直接预测可见状态序列(如天气变化)。
2. 隐马尔可夫模型(Hidden Markov Model, HMM)
特点:状态不可见,只能通过观测推断
- 场景:
通过海藻湿度(观测)猜测天气(隐藏状态)
(假设雨天时海藻更湿,但你看不到天气本身) - 双重随机过程:
- 隐藏状态链:天气(晴/雨)
- 观测链:海藻湿度(干/湿)
三大要素:
- 状态转移矩阵(天气变化概率)
- 观测概率矩阵(某天气下海藻湿度的概率)
- 初始状态分布(第一天的天气概率)
公式举例:
观测概率:
[
P(\text{海藻湿} | \text{雨}) = 0.8, \quad P(\text{海藻干} | \text{晴}) = 0.7
]
三大经典问题:
- 评估问题:已知模型,计算观测序列的概率(Forward-Backward算法)
- 解码问题:通过观测序列反推最可能的状态序列(Viterbi算法)
- 学习问题:通过观测数据训练模型参数(Baum-Welch算法)
核心区别对比表
特性 | 马尔可夫模型 (MM) | 隐马尔可夫模型 (HMM) |
---|---|---|
状态是否可见 | ✔️ 直接可见(如天气) | ❌ 隐藏状态(如疾病),只能通过观测(如症状)推断 |
建模对象 | 单一状态序列 | 状态链 + 观测链(双层随机过程) |
关键矩阵 | 状态转移矩阵 | 状态转移矩阵 + 观测概率矩阵 |
典型应用 | 文本生成、简单预测 | 语音识别、基因分析、词性标注 |
复杂度 | 低 | 高(需处理隐藏-观测关系) |
举个栗子🌰
- MM任务:
已知今天是晴天 → 预测接下来3天的天气。 - HMM任务:
已知连续3天海藻湿度是[湿, 干, 湿] → 推测这3天真实的天气序列。
总结
- 马尔可夫模型:直接看状态,适合简单序列预测。
- 隐马尔可夫模型:透过现象猜本质,适合从间接观测中推理隐藏规律。
就像猜朋友心情:
- 如果他直接说“我开心”(MM),你直接知道状态;
- 如果他只是发了首歌链接(HMM),你要通过链接内容(观测)推断他的情绪(隐藏状态)!