# 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 迭代同时学状态转移和发射概率 只要你碰到“背后有一条看不见的状态链,观测是它的投影”,八成就可以用隐马尔科夫模型来刻画。