Hidden Markov Models: A Probabilistic View of Time Series
引言:从静态到动态
在上一篇关于贝叶斯网络的讨论中,我们处理的数据大多是静态的 (Static)——即假设样本之间是独立同分布 (i.i.d.) 的。但现实世界里充满序列 (Sequential) 数据:语音是一连串的声波,文本是一连串的单词,股票是一连串的价格。
在这些数据中,前后的观测值往往存在依赖关系。为了给随时间演变的动态系统建模,我们需要引入“时间”维度。隐马尔可夫模型 (Hidden Markov Model, HMM) 正是这类动态贝叶斯网络 (Dynamic Bayesian Network) 的简化且典型的代表。
模型定义:双重随机过程
HMM 描述了一个含有隐含未知参数的马尔可夫过程,其思想集中在双重随机过程:
- 隐状态序列 (Hidden State Sequence) Q={q1,q2,…,qT}:
这是系统在不同时刻所处的真实状态,但我们无法直接观测到。这些状态的转移满足马尔可夫性。
- 观测序列 (Observation Sequence) O={o1,o2,…,oT}:
这是我们在每个时刻观察到的数据。它仅由当前的隐状态决定。
HMM 的五元组
一个完整的 HMM 由五个要素确定,记为 λ=(N,M,A,B,π):
- 状态集合 S={s1,…,sN}:隐状态可能取值的集合(如:天气及其 {晴,雨,阴})。
- 观测集合 V={v1,…,vM}:观测值可能取值的集合(如:活动及其 {散步,清洁,购物})。
- 状态转移矩阵 A=[aij]:aij=P(qt+1=sj∣qt=si)
表示从状态 i 转移到状态 j 的概率。
- 观测发射矩阵 (Emission Probability) B=[bj(k)]:bj(k)=P(ot=vk∣qt=sj)
表示在状态 j 下观测到符号 k 的概率。
- 初始状态分布 π=[πi]:πi=P(q1=si)
两个基本假设
- 齐次马尔可夫假设:任意时刻 t 的状态只依赖于前一时刻 t−1 的状态,与更早的状态无关。P(qt∣qt−1,ot−1,…,q1,o1)=P(qt∣qt−1)
- 观测独立性假设:任意时刻 t 的观测值只依赖于该时刻的状态 qt,与其他时刻的状态或观测无关。P(ot∣qT,oT,…,q1,o1)=P(ot∣qt)
HMM 的三个核心问题
HMM 的应用通常围绕三个经典问题展开:
概率计算问题 (Evaluation)
问题:给定模型 λ=(A,B,π) 和观测序列 O,计算该序列出现的概率 P(O∣λ)。
直接计算需要遍历所有可能的隐状态序列 Q,复杂度高达 O(NT⋅T),计算上不可行。这里采用动态规划思想的前向算法 (Forward Algorithm)。
定义前向概率 αt(i):时刻 t 观测序列为 o1,…,ot 且状态为 si 的概率。
αt(i)=P(o1,…,ot,qt=si∣λ)
递推公式:
- 初值:α1(i)=πibi(o1)
- 递推:(对于 t=1,…,T−1)αt+1(j)=[i=1∑Nαt(i)aij]bj(ot+1)
- 终值:P(O∣λ)=i=1∑NαT(i)
该算法将复杂度降低到了 O(N2⋅T)。
解码问题 (Decoding)
问题:给定模型 λ 和观测序列 O,寻找最有可能产生该观测序列的隐状态序列 Q∗。即求 argmaxQP(Q∣O,λ)。
这是典型的最优路径规划问题,可用维特比算法 (Viterbi Algorithm) 求解。
定义 δt(i):在时刻 t 状态为 si 的所有路径中,概率最大的那条路径的概率。
递推公式:
- 初值:δ1(i)=πibi(o1),ψ1(i)=0
- 递推:(寻找到达状态 j 的最大概率来源)δt(j)=1≤i≤Nmax[δt−1(i)aij]bj(ot)
ψt(j)=arg1≤i≤Nmax[δt−1(i)aij] (记录路径回溯点)
- 回溯:
最优路径终点 P∗=maxiδT(i),终点状态 qT∗=argmaxiδT(i)。
从 t=T−1 到 1 倒推:qt∗=ψt+1(qt+1∗)。
学习问题 (Learning)
问题:已知观测序列 O,估计模型参数 λ=(A,B,π) 使得 P(O∣λ) 最大化。
由于包含隐变量,无法直接使用 MLE。这是 EM 算法 (Expectation-Maximization) 的经典应用场景;在 HMM 中,该算法被称为 Baum-Welch 算法。
E 步 (Expectation):
计算两个统计量(利用前向变量 α 和后向变量 β):
- ξt(i,j):时刻 t 处于状态 i 且时刻 t+1 处于状态 j 的概率。
ξt(i,j)=P(qt=i,qt+1=j∣O,λ)=∑k=1N∑l=1Nαt(k)aklbl(ot+1)βt+1(l)αt(i)aijbj(ot+1)βt+1(j)
- γt(i):时刻 t 处于状态 i 的概率。
γt(i)=j=1∑Nξt(i,j)
M 步 (Maximization):
更新参数:
- 状态转移概率:a^ij=∑t=1T−1γt(i)∑t=1T−1ξt(i,j)
(直观理解:从 i 转移到 j 的期望次数 / 从 i 出发的期望总次数)
- 观测概率:b^j(k)=∑t=1Tγt(j)∑t=1,ot=vkTγt(j)
案例:词性标注 (Part-of-Speech Tagging)
HMM 在自然语言处理中应用广泛,词性标注即为一例。
- 观测值:单词序列(如 “I love data”)。
- 隐状态:词性标签(如 “Pronoun”, “Verb”, “Noun”)。
- 目标:给定句子,推断最可能的词性序列(解码问题)。
通过在大规模标注语料库上统计单词与词性的共现频率(估计 B)以及词性间的转移频率(估计 A),即可利用维特比算法从新的句子中恢复出词性结构。
总结
隐马尔可夫模型通过引入隐状态和两个独立性假设,处理了时间序列建模问题。前向算法负责概率计算,维特比算法负责解码,Baum-Welch 算法负责无监督学习。
尽管现代深度学习(如 RNN, LSTM, Transformer)在许多任务上已经超越 HMM,但 HMM 提供的概率图框架和动态规划思想仍是理解序列模型的基础。
在下一篇文章中,我们将把视线从有向图移开,探讨马尔可夫随机场 (MRF),看看当箭头消失、图结构变为无向时,概率图模型又展现出怎样的特性。