隐马尔可夫模型简介


假设

对于一个随机事件,有一个观察值序列:O1,…,OT 该事件隐含着一个状态序列:X1,…,XT

假设1:马尔可夫假设(状态构成一阶马尔可夫链)
          p(Xi|Xi-1…X1) = p(Xi|Xi-1)

假设2:不动性假设(状态与具体时间无关)              
          p(Xi+1|Xi) = p(Xj+1|Xj),对任意i,j成立

假设3:输出独立性假设(输出仅与当前状态有关)
          p(O1,…,OT | X1,…,XT) = Π p(Ot | Xt)

定义

一个隐马尔可夫模型 (HMM) 是一个五元组:                 (ΩX , ΩO, A, B, π )

其中:  

ΩX = {q1,…qN}:状态的有限集合  

ΩO = {v1,…,vM}:观察值的有限集合  

A = {aij},aij = p(Xt+1 = qj |Xt = qi):转移概率  

B = {bik},bik = p(Ot = vk | Xt = qi):输出概率  

π = {πi}, πi = p(X1 = qi):初始状态分布

问题

令 λ = {A,B,π} 为给定HMM的参数, 令 σ = O1,…,OT 为观察值序列, 隐马尔可夫模型(HMM)的三个基本问题:

1.评估问题:对于给定模型,求某个观察值序列的概率p(σ|λ) ;

2.解码问题:对于给定模型和观察值序列,求可能性最大的状态序列;

3.学习问题:对于给定的一个观察值序列,调整参数λ,使得观察值出现的概率p(σ|λ)最大。

  算法

评估问题:向前算法

  • 定义向前变量
  • 采用动态规划算法,复杂度O(N2T)

解码问题:韦特比(Viterbi)算法

  • 采用动态规划算法,复杂度O(N2T)

学习问题:向前向后算法

  • EM算法的一个特例,带隐变量的最大似然估计

例子:病情转化

假设:某一时刻只有一种疾病,且只依赖于上一时刻疾病
一种疾病只有一种症状,且只依赖于当时的疾病

症状(观察值):发烧,咳嗽,咽喉肿痛,流涕

疾病(状态值):感冒,肺炎,扁桃体炎

转移概率:从一种疾病转变到另一种疾病的概率

输出概率:某一疾病呈现出某一症状的概率

初始分布:初始疾病的概率

解码问题:某人症状为:咳嗽→咽喉痛→流涕→发烧

请问:其疾病转化的最大可能性如何?

 应用

语音识别

音字转换

词性标注(POS Tagging)

组块分析

基因分析

一般化:任何与线性序列相关的现象

总结

HMM模型可以看作一种特定的Bayes Net

HMM模型等价于概率正规语法或概率有限状态自动机

HMM模型可以用一种特定的神经网络模型来模拟

优点:研究透彻,算法成熟,效率高,效果好,易于训练

作者:刘群

其实完全不懂。收藏而已。