TalentMe
How To
🗺️
AI Industry Map
NEW
Knowledge ▾
Intro & Usage
Machine Learning Repo
Data Science Repo
Resources ▾
Intro & Usage
AI Tech Vault (Tech Wiki)
Industry News
Tech Blogs
Research Papers
Open Source Projects
Tools Hub ▾
🛠️ Tools & Skills Overview
🌐 Interactive Web Tools
🗺️ AI Industry & Career Map
🧭 AI Career Transition Navigator & Roadmap
📚 AI Multi-Module Practice Hub
🎯 AI Skill Assessment
🧠 AI Skills Library
AI Skills & Prompts Overview
Local Agent Guide
Cloud Skills Templates
⚡ MCP Tools Suite
TalentMe MCP Guide
CLI Tools & Commands
Services ▾
🚀 Services & Plans Suite
🧭 1v1 Coaching & Services
💎 Plans & Pricing
💬 Contact & Consultation
Contact Us
💬 Discord
🌐
中
☀️
🔑
Login / Register
☰
技术知识库
›
复习路线图
›
经典机器学习 思维导图
›
HMM 维特比解码
← 返回 经典机器学习 思维导图
中文
·
English
📊 经典机器学习
ID:
viterbi
HMM 维特比解码
Viterbi Decoding
🎯
核心定义
解码问题是给定
λ
=
(
A
,
B
,
π
)
\lambda = (A, B, \pi)
λ
=
(
A
,
B
,
π
)
与观测
O
O
O
,求最可能的隐藏状态序列
q
∗
=
arg
max
q
P
(
q
∣
O
,
λ
)
q^* = \arg\max_q P(q \mid O, \lambda)
q
∗
=
ar
g
max
q
P
(
q
∣
O
,
λ
)
。维特比算法用动态规划维护
δ
t
(
j
)
\delta_t(j)
δ
t
(
j
)
— 到时刻 t 处于状态 j 且输出前 t 个观测的所有路径中的最大概率,递推
📌
核心概述
δ
t
(
j
)
=
max
i
[
δ
t
−
1
(
i
)
a
i
j
]
b
j
(
o
t
)
\delta_t(j) = \max_i[\delta_{t-1}(i)\, a_{ij}]\, b_j(o_t)
δ
t
(
j
)
=
i
max
[
δ
t
−
1
(
i
)
a
ij
]
b
j
(
o
t
)
📌
核心概述
同时用前驱表
ψ
t
(
j
)
=
arg
max
i
δ
t
−
1
(
i
)
a
i
j
\psi_t(j) = \arg\max_i \delta_{t-1}(i) a_{ij}
ψ
t
(
j
)
=
ar
g
max
i
δ
t
−
1
(
i
)
a
ij
记录最优路径中 t−1 时刻的状态;初值
δ
1
(
j
)
=
π
j
b
j
(
o
1
)
\delta_1(j) = \pi_j b_j(o_1)
δ
1
(
j
)
=
π
j
b
j
(
o
1
)
,终止取
P
∗
=
max
j
δ
T
(
j
)
P^* = \max_j \delta_T(j)
P
∗
=
max
j
δ
T
(
j
)
,再从
ψ
T
\psi_T
ψ
T
沿表回溯(backtracking)得到整条最优状态序列。复杂度
O
(
N
2
T
)
O(N^2 T)
O
(
N
2
T
)
,与前向算法同阶。
💡
使用场景
词性标注、命名实体识别、语音与手写识别中的最优路径搜索;面试常考维特比与前向算法对比、与贪心/束搜索的区别。
⚡
解决的核心痛点
穷举
N
T
N^T
N
T
条路径不可行;维特比与前向算法同样用 DP 缓存,但把“求和”换成“取 max”并保存前驱以重建轨迹,保证全局最优而非贪心逐点最优;代价是每步
O
(
N
2
)
O(N^2)
O
(
N
2
)
比较,且必须保留完整
ψ
\psi
ψ
表用于回溯(不能像评估那样滚动丢弃)。
🎯
5 个高频面试考点 (Exam Points)
1
写出维特比递推
δ
t
(
j
)
=
max
i
[
δ
t
−
1
(
i
)
a
i
j
]
b
j
(
o
t
)
\delta_t(j) = \max_i[\delta_{t-1}(i)a_{ij}]b_j(o_t)
δ
t
(
j
)
=
max
i
[
δ
t
−
1
(
i
)
a
ij
]
b
j
(
o
t
)
及回溯过程,复杂度是多少?
2
维特比与前向算法的区别?(求和 vs 取 max、各自输出什么、为什么需要前驱表
ψ
\psi
ψ
)
3
为什么维特比能保证全局最优?与贪心逐点选择、束搜索有何不同?
4
给定具体例子(如
N
=
2
N=2
N
=
2
、
T
=
3
T=3
T
=
3
),手推最优状态路径并说明回溯如何工作?
5
维特比与 CRF/MEMM 推理有何联系(推断阶段共用同一 DP,只是势函数不同)?
📖 关联深度指南:
📄 probabilistic-models →
更新于 2026-08-12
🎯
检验攻克程度:针对「HMM 维特比解码」专属刷题排雷
做单选排雷题、推导选项机制,答错自动收录进专属错题本。
🚀 开始本考点专项刷题 ➔
← 上一个知识点
HMM 前向算法 (评估)
下一个知识点 →
HMM 参数学习 Baum-Welch
🔗 更多 经典机器学习 知识点卡片
AdaBoost 算法手推
Bagging 与随机森林
GBDT 负梯度拟合
混淆矩阵