返回 经典机器学习 思维导图
中文·English
📊 经典机器学习ID: hmm-evaluation

HMM 前向算法 (评估)

HMM Forward Algorithm (Evaluation)
🎯核心定义
评估问题是给定 HMM 参数 λ=(A,B,π)\lambda = (A, B, \pi) 与观测序列 O=o1o2oTO = o_1 o_2 \dots o_T,求观测概率 P(Oλ)P(O \mid \lambda)。直接对状态序列求和共有 NTN^T 条路径,不可行;前向算法用动态规划定义前向变量 αt(j)=P(o1ot,qt=jλ)\alpha_t(j) = P(o_1 \dots o_t, q_t = j \mid \lambda)(到 t 时刻处于状态 j 且已输出前 t 个观测的联合概率),递推
📌核心概述
αt(j)=[iαt1(i)aij]bj(ot)\alpha_t(j) = \Bigl[\sum_{i} \alpha_{t-1}(i)\, a_{ij}\Bigr] b_j(o_t)
📌核心概述
初始 α1(j)=πjbj(o1)\alpha_1(j) = \pi_j b_j(o_1),终止 P(Oλ)=jαT(j)P(O \mid \lambda) = \sum_j \alpha_T(j)。每个时刻对 NN 个状态各做 NN 次转移求和,复杂度由枚举路径的 O(NT)O(N^T) 降为 O(N2T)O(N^2 T)
💡使用场景
语音识别、生物序列分析中的序列打分,也是 Baum-Welch E 步的组成部分;面试常考前向变量定义、与前向/维特比“求和 vs 取 max”的区别。
解决的核心痛点
状态不可观测导致直接求是指数级爆炸,前向算法通过缓存子问题将似然计算降到多项式时间;代价是每步 O(N2)O(N^2) 的转移求和与 O(NT)O(NT) 存储(可滚动优化为 O(N)O(N))。
🎯5 个高频面试考点 (Exam Points)
1
写出前向算法递推 αt(j)=[iαt1(i)aij]bj(ot)\alpha_t(j) = [\sum_i \alpha_{t-1}(i)a_{ij}]b_j(o_t),并说明初值 α1(j)\alpha_1(j) 与终止条件 P(Oλ)P(O \mid \lambda)?
2
为什么直接计算 P(Oλ)P(O \mid \lambda) 是指数级 O(NT)O(N^T)?前向算法如何把复杂度降到 O(N2T)O(N^2T)?
3
前向算法与维特比算法有什么区别(求和 vs 取 max、各自输出什么)?
4
前向变量 αt(j)\alpha_t(j) 的概率含义是什么?它如何与后向变量 βt(j)\beta_t(j) 组合得到 P(qt=jO,λ)P(q_t = j \mid O, \lambda)?
5
给定具体 HMM(如 N=2N=2T=3T=3),手算 P(Oλ)P(O \mid \lambda) 的完整数值过程?
📖 关联深度指南:📄 probabilistic-models
更新于 2026-08-12
🎯
检验攻克程度:针对「HMM 前向算法 (评估)」专属刷题排雷
做单选排雷题、推导选项机制,答错自动收录进专属错题本。
🚀 开始本考点专项刷题
上一个知识点朴素贝叶斯下一个知识点HMM 维特比解码

🔗 更多 经典机器学习 知识点卡片

AdaBoost 算法手推Bagging 与随机森林HMM 参数学习 Baum-WelchGBDT 负梯度拟合