隐马尔科夫模型的基本概念

定义

HMM是关于时序的概率模型,描述又一个隐藏的马尔科夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程。

基本概念

  • 状态序列
    隐藏的马尔科夫链随机生成的状态的序列
  • 观测序列
    每个状态生成一个观测,而由此产生的观测的随机序列。序列的每个位置可以看作是一个时刻。

HMM由初始概率分布,状态转移概率分布以及观测概率分布确定。
<nobr> Q </nobr>是所有可能的状态的集合, <nobr> V </nobr>是所有可能的观测的集合。
<nobr> Q=[q1,q2,...,qN],V=[v1,v2,...,vM] </nobr>
<nobr> I </nobr>是长度为 <nobr> T </nobr>的状态序列, <nobr> O </nobr>是对应的观测序列。
<nobr> I=[i1,i2,...,iT],V=[o1,o2,...,oT] </nobr>
<nobr> A </nobr>是状态转移概率矩阵
<nobr> A=[aij]N×M </nobr>
其中,
<nobr> aij=P(it+1=qj|it=qi) </nobr>是在时刻 <nobr> t </nobr>处于状态 <nobr> qi </nobr>的条件下在时刻 <nobr> t+1 </nobr>转移到状态 <nobr> qj </nobr>的概率。
<nobr> B </nobr>是观测概率矩阵
<nobr> B=[bj(k)]N×M </nobr>
其中,
<nobr> bj(k)=P(ot=vk|it=qj) </nobr>是在时刻 <nobr> t </nobr>处于状态 <nobr> qj </nobr>的条件下生成观测 <nobr> vk </nobr>的概率
<nobr> π </nobr>是初始状态概率向量:
<nobr> π=(πi) </nobr>
其中 <nobr> πi=P(i1=qi) </nobr>是时刻 <nobr> t=1 </nobr>处于状态 <nobr> qi </nobr>的概率。

隐马尔科夫模型 <nobr> λ </nobr>可以用三元符号表示,即
<nobr> λ=(A,B,π) </nobr>,称为隐马尔科夫模型的三要素。

两个基本假设

隐马尔科夫模型做了两个基本假设:
(1) 齐次马尔科夫性假设,即假设隐藏的马尔科夫链在任意时刻t的状态只依赖于其前一时刻的状态,与其他时刻的状态及观测无关,也与时刻t无关。
<nobr> P(it,|it1,0t1,...,i1,o1)=P(it|it1),t=1,2,...,T </nobr>
(2)观测独立性假设,即假设任意时刻的观测只依赖于该时刻的马尔科夫链的状态,与其他观测及状态无关。
<nobr> P(ot|iT,oT,iT1,oT1,...,it+1,ot+1,it,it1,ot1,...,i1,o1)=P(ot|it) </nobr>

三个基本问题

  1. 概率计算问题
    给定模型 <nobr> λ=(A,B,π) </nobr>和观测序列 <nobr> O=(o1,o2,...,oT) </nobr>,计算在模型 <nobr> λ </nobr>下观测序列 <nobr> O </nobr>出现的概率 <nobr> P(O|λ) </nobr>
  2. 学习问题
    已知观测序列 <nobr> O=(o1,o2,...,oT) </nobr>,估计模型 <nobr> λ=(A,B,π) </nobr>参数,使得在该模型下观测序列概率 <nobr> P(O|λ) </nobr>最大。即用极大似然估计得方法估计参数。
  3. 预测问题
    也称为解码(decoding)问题。已知模型 <nobr> λ=(A,B,π) </nobr>和观测序列 <nobr> O=(o1,o2,...,oT) </nobr>,求队给定观测序列条件概率 <nobr> P(I|O) </nobr>最大的状态序列 <nobr> I=(i1i2,...,iT) </nobr>。即给定观测序列,求最有可能的对应的状态序列。

概率计算算法

前向算法



后向算法


一些概率与期望值的计算

学习算法

根据训练数据是包括观测序列和对应的状态序列还是只有观测序列,可以分别由监督学习与非监督学习实现。

监督学习方法

Baum-Welch算法(EM算法)


预测算法

分为近似算法和维特比算法。

近似算法

维特比算法