隐马尔可夫模型(HMM)的三个基本问题
HMM是处理时序数据的重要概率模型。请详细解释HMM的三个基本问题(评估、解码、学习)以及各自的经典解法(前向后向、Viterbi、Baum-Welch),并给出各算法的核心公式。
回答
屠龙少年
HMM的组成:
- 状态集合S,观测集合O
- 初始概率π,状态转移矩阵A,发射矩阵B
三个基本问题:
1. 评估问题(Evaluation):
- 给定λ=(A,B,π)和观测序列O,计算P(O|λ)
- 前向算法:
α₁(j) = πⱼ·bⱼ(o₁)αₜ(j) = [Σᵢ αₜ₋₁(i)·aᵢⱼ]·bⱼ(oₜ)P(O|λ) = Σᵢ α_T(i) - 后向算法:
β_T(i) = 1βₜ(i) = Σⱼ aᵢⱼ·bⱼ(oₜ₊₁)·βₜ₊₁(j)
2. 解码问题(Decoding):
- 给定观测序列,找最可能的状态序列
- Viterbi算法(动态规划):
δ₁(j) = πⱼ·bⱼ(o₁)δₜ(j) = maxᵢ [δₜ₋₁(i)·aᵢⱼ]·bⱼ(oₜ)ψₜ(j) = argmaxᵢ [δₜ₋₁(i)·aᵢⱼ]
3. 学习问题(Learning):
- 给定观测序列,估计λ使P(O|λ)最大
- Baum-Welch算法(EM特例): E步:用前向后向计算γₜ(i)=P(qₜ=Sᵢ|O,λ)、ξₜ(i,j)(状态转移后验) M步:更新πᵢ=γ₁(i),aᵢⱼ=Σξₜ(i,j)/Σγₜ(i),bⱼ(k)=Σγₜ(j)·𝟙(oₜ=k)/Σγₜ(j)