HMM 与 维特比解码

隐马尔科夫模型实例

机器学习项目(二) 人工智能辅助信息抽取(四)
观察到的数字序列
2 5 8 3 5
每一面的概率
1/6 1/4 1/8
三个骰子互相切换到其他骰子的概率都是1/3

-------- ----- -------- ----- -----
D6 D6 D8 D6 D6
D4 D8 D4 D8
D8 D8

求最可能的骰子序列

隐马尔科夫模型

马尔科夫过程为状态空间中经过从一个状态到另一状态的转化的随机过程

该过程要求具备“无记忆”的性质:下一状态的概率分布只能由当前状态决定,在时间序列中它前面的事件均与之无关。这种特定类型的“无记忆性”称作马尔科夫性质。

隐马尔科夫模型,是统计模型,它用来描述一个含有隐含未知参数的马尔科夫过程。其难点是从可观察的参数中确定改过程的隐含参数

HMM的两个假设

齐次马尔科夫假设

第t个隐状态(骰子)只跟前一时刻的t-1隐状态(骰子)有关,与除此之外的其他隐状态(如 t-2,t+3)无关

观测独立假设

在任意时刻观测ot(点数)只依赖于当前时刻的隐状态it(骰子),与其他时刻的隐状态无关。

隐马尔科夫模型数学定义

HMM模型描述的是有隐状态序列(实体标记)生成可观测状态(可读文本)的过程

机器学习项目(二) 人工智能辅助信息抽取(四)

HMM的初始隐状态概率

初始隐状态概率通常用π\pi来表示
π=P(i1=qi)qiQhidden=q0,q1,...,qN1\pi = P(i_1 = q_i) q_i \in Q_{hidden} = {q_0,q_1,...,q_N-1}

HMM的转移概率

P(itit1)P(i_t|i_{t-1})指的是隐状态i从t-1时刻转向t时刻的概率
用A 表示转移概率矩阵(transition matrix)
Aij=P(it+1=qjit=qqi)A_{ij} = P(i_{t+1} = q_j|i_t = qq_i)
qiQhiddenq_i \in Q_{hidden}
机器学习项目(二) 人工智能辅助信息抽取(四)

HMM的发射概率

发射概率P(otot)P(o_t|o_{t})描述OtO_t依赖于当前时刻的隐状态iti_t程度
用B表示发射概率矩阵(emission matrix)
Bjk=P(Ot=vkit=qj)qiQhidden vkVobs={v0,v1,,vM1}\begin{aligned} \mathrm{B}_{\mathrm{jk}}=& \mathrm{P}\left(\mathrm{Ot}=\mathrm{v} \mathrm{k} | \mathrm{it}=\mathrm{q}_{\mathrm{j}}\right) \\ & \mathrm{q}_{\mathrm{i}} \in \mathrm{Q}_{\text {hidden }} \\ & \mathrm{v} \mathrm{k} \in \mathrm{V}_{\mathrm{obs}}=\{\mathrm{v} 0, \mathrm{v} 1, \ldots, \mathrm{v} \mathrm{M}-1\} \end{aligned}
机器学习项目(二) 人工智能辅助信息抽取(四)

用HMM解决序列标注问题

初始隐状态概率 转移概率 发射概率
P(初始实体标签) P(当前可取实体标签 上一时刻实体标签)

HMM的3个基本问题

模型(π\pi,A,B)
观测序列:O = ( o1,o2,..,oTo_1,o_2,..,o_T)
状态序列:I = (i1,i2,...,iTi_1,i_2,...,i_T)
1.概率计算问题:一直模型和观测序列,计算在该模型下观测序列出现的概率
2.学习问题:已知观测序列,估计模型的参数
3.预测问题:decoding问题,已知模型参数和观测序列,求最有可能对应的状态序列。

学习问题根据训练数据是否包含对应的状态序列分为:

1.监督学习:极大似然估计
2.非监督学习:EM算法

维特比解码

维特比算法解码使用了动态规划算法来解决HMM的预测问题,找到概率最大路径,也就是最优路径。
在每一时刻,计算当前时刻在每种隐状态的最大概率,并记录这个最大概率是从前一时刻哪一个隐状态转移过阿里的,最后再从结尾回溯最大概率,也就是最有可能的最优路径。

设有N个状态,序列长度为T

1.穷举法NTN^T

2.维特比TN2TN^2

相关文章: