# Summary
**“隐马尔科夫”= Hidden Markov Model(HMM)中的“隐”**
它强调“真正的系统状态是看不见的,只有受它影响的表面现象能被观测到”。
# Cues
# Notes
---
## 为什么叫“隐”?
| 对比 | 马尔科夫链(MC)| 隐马尔科夫模型(HMM)|
| ------ | ----------------- | -------------------------- |
| 状态 | **可直接观测**,例如“晴/雨” | **不可直接观测**,例如“大气真实环流模式” |
| 你能看到什么 | 当下状态本身 | 由状态“发射”出来的观测值(气象站记录的“晴/雨”)|
| 任务重点 | 预测下一状态、求稳态分布 | **推断隐藏状态序列**或计算序列概率 |
> “隐”字就表示:**我们只看到影子,要推理出幕后的演员**。
---
## 模型结构
1. **隐藏状态转移**
* 类似普通马尔科夫链,用一张转移矩阵 $A=P(S_{t+1}\mid S_t)$ 描述状态自己如何跳。
2. **观测发射**
* 每个隐藏状态 $S_t$ 以概率 $B=P(O_t\mid S_t)$ 生成一个可见观测 $O_t$。
3. **初始分布 $\pi$**
* 给出 $S_0$ 落在哪个隐藏状态的概率。
> 整个模型可以想成“两层”:**上层**是看不见的状态串;**下层**是一次次观测。
---
## 经典算法(都围着“把隐的部分推出来”打转)
| 任务 | 算法 | 功能 |
| ---------- | ------------------- | --------------------------------- |
| 计算序列似然 | **前向-后向算法** | 求 $P(O_{1:T})$,评估模型好坏 |
| 最可能的隐藏状态路径 | **Viterbi** | 找出最大 $P(S_{1:T}\mid O_{1:T})$ 的路径 |
| 估计模型参数 | **Baum–Welch / EM** | 给一堆观测序列,反复推测状态→更新 $A,B,\pi$ |
---
## 一张小图理解
```Java
隐藏层: S1 → S2 → S3 → ⋯
↘ ↘ ↘
观测层: O1 O2 O3 ⋯
```
* 横向箭头:隐藏状态自己按马尔科夫性质演化
* 斜向箭头:每一时刻由隐藏状态“发射”一个观测
---
## 通俗例子
1. **天气 vs. 观测**
* 隐状态:真实“高压/低压/锋面”
* 观测:你记录到的“晴/阴/雨”
* 目标:根据多天的观测,推断每天的大气形态,或预测未来天气。
2. **语音识别**
* 隐状态:说话者此刻的音素
* 观测:连续的声学特征向量
* 目标:给声学信号,最可能的音素序列→拼词。
3. **POS 词性标注**
* 隐状态:词性标签(名词/动词…)
* 观测:实际单词序列
* 目标:推断每个词的词性。
---
## 关键词小结
* **Hidden**:看不到的“真相”
* **Emission/发射**:隐藏状态→观测
* **Inference/推断**:利用观测去猜隐藏串
* **Learning/学习**:用 EM 迭代同时学状态转移和发射概率
只要你碰到“背后有一条看不见的状态链,观测是它的投影”,八成就可以用隐马尔科夫模型来刻画。