文章目录
隐马尔科夫模型(Hidden Markov Model,HHM)是一种有向图模型,属于生成式模型,考虑联合概率分布。
HHM有两组变量,第一组是状态变量 I = { i 1 , i 2 , . . . . . , i T } I = \{i_1, i_2,....., i_T\} I={ i1,i2,.....,iT}, i t i_t it表示第t时刻的状态,通常假定状态变量是不可被观测的、隐藏的,这应该也是名字的由来吧;
第二组变量是观测变量, O = { o 1 , o 2 , . . . . , o T } O = \{o_1, o_2,....,o_T\} O={ o1,o2,....,oT}, o t o_t ot表示第t时刻的观测值。
为了更好地理解,我们这是假设O是离散变量,并且假定O的取值范围为 V = v 1 , v 2 , . . . , v M V={v_1, v_2,...,v_M} V=v1,v2,...,vM
还有一个状态I的枚举值,即不同时刻的状态是在 Q = { q 1 , q 2 , . . . . . , q N } Q=\{q_1, q_2,.....,q_N\} Q={ q1,q2,.....,qN}之间转换的。
一、马尔科夫链
首先,在了解HHM之前,我们需要知道**马尔科夫链:**在任一时刻t,观测变量的取值 o t o_t ot仅依赖于当前的状态变量 i t i_t it,与其他时刻的状态变量及观测变量无关;同时,当前的状态值 i t i_t it仅依赖于前一个时刻的状态 i t − 1 i_{t-1} it−1,与状态无关。
如下图:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iBqvDHCb-1588164657546)(C:\Users\hong\Desktop\博客\CRF\image-20200414220141950.png)]](https://i-blog.csdnimg.cn/blog_migrate/eecf73b675536f442aba289972c53632.png)
二、隐马尔科夫模型原理
HHM就是基于这种马尔科夫链的,即基于以上的假设,所以它的联合概率分布为:
P ( o 1 , i 1 , . . . , o T , i T ) = P ( i 1 ) P ( o 1 ∣ i 1 ) ∏ i = 2 T P ( i i ∣ i i − 1 ) P ( o i ∣ i i ) P(o_1,i_1,...,o_T,i_T) = P(i_1)P(o_1|i_1)\prod_{i=2}^T P(i_i|i_{i-1})P(o_i|i_i) P(o1,i1,...,oT,iT)=P(i1)P(o1∣i1)i=2∏TP(ii∣ii−1)P(oi∣ii)
这就是HHM的模型结构了。一个模型肯定还包含参数,机器学习的本质就是找到一组最优的参数,使得模型的拟合效果最好,HHM也不例外。
那么,HHM的参数包括以下3组:
- 状态转移概率A: a i j = P ( i t + 1 = q j ∣ i t = q i ) , 1 < = i , j < = N a_{ij} = P(i_{t+1}=q_j|i_t=q_i), 1<=i,j<=N aij=P(it+1=qj∣it=qi),1<=i,j<=N,即t时刻状态为 q i q_i qi时,t+1时刻状态为 q j q_j qj的概率
- 输出观测概率B: b j ( k ) = P ( o t = q k ∣ i t = q j ) , 1 < = j < = N , 1 < = k < = M b_j(k) = P(o_t=q_k|i_t=q_j), 1<=j<=N,1<=k<=M bj(k)=P(ot=qk∣it=qj),1<=j<=N,1<=k<=M,即t时刻的状态为 q i q_i qi时,观测值为 o j o_j oj的概率
- 初设状态概率 π i \pi_i πi: π = ( π 1 , π 2 , . . . , π N ) , 1 < = i < = N \pi = (\pi_1, \pi_2,...,\pi_N), 1<=i<=N π=(π1,π2,...,πN),1<=i<=N,即初设时刻各状态出现的概率。
那么,给定一个隐马尔科夫模型,它产生观测序列的步骤如下 { o 1 , o 2 , . . . . , o T } \{o_1, o_2,....,o_T\} { o1,o2,....,oT}:
(1) 当t = 1时,根据初设状态概率 π \pi π选择初设状态 i 1 i_1 i1;
(2) 根据状态 i t i_t it和输出观测概率B选择观测值 o t o_t ot;
(3) 根据状态 i t i_t it和状态转移概率A确定 i t + 1 i_{t+1} it+1;
(4) 当t < T,令t = t + 1,并跳转至第2步,否则终止,观测序列已全部生产完毕。
三个基本问题
- 概率计算问题。给定模型 λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π)和观测序列 O = { o 1 , o 2 , . . . . , o T } O = \{o_1, o_2,....,o_T\} O={ o1,o2,....,oT},计算观测序列O出现的概率 P ( O ∣ λ ) P(O|\lambda) P(O∣λ)
- 学习问题。已知观测序列 O = { o 1 , o 2 , . . . . , o T } O = \{o_1, o_2,....,o_T\} O={ o1,o2,....,oT},估计模型参数 λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π),使得观测序列概率 P ( O ∣ λ ) P(O|\lambda) P(O∣λ)最大
- 预测问题。给定模型 λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π)和观测序列 O = { o 1 , o 2 , . . . . , o T } O = \{o_1, o_2,....,o_T\} O={ o1,o2,....,oT},求对给定观测序列条件概率P(I|O)最大的隐藏状态 I = { i 1 , i 2 , . . . . . , i T } I = \{i_1, i_2,....., i_T\} I={ i1,i2,.....,iT}
三、概率计算
1. 前向算法
给定隐马尔科夫模型 λ \lambda λ,至时刻t的观测序列为 { o 1 , o 2 , . . . . , o t } \{o_1, o_2,....,o_t\} { o1,o2,....,o

本文深入解析隐马尔科夫模型(HHM),涵盖马尔科夫链原理、模型参数、三个基本问题,以及前向算法、后向算法和维特比算法的应用。通过实例说明模型如何用于中文分词和语音识别。
最低0.47元/天 解锁文章
402

被折叠的 条评论
为什么被折叠?



