隐马尔可夫模型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了隐马尔可夫模型相关的知识,希望对你有一定的参考价值。

参考技术A

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

隐马尔可夫模型的形式定义如下:

设 是所有可能 状态的集合 , 是所有可能 观测的集合

其中 为可能状态数, 为可能观测数。

是长度为 的 状态序列 , 是对应的 观测序列

状态转移概率矩阵

其中:

观测概率矩阵

其中:

初始状态概率向量

其中:

隐马尔可夫模型由初始状态概率向量 、状态转移概率矩阵 和观测概率矩阵 决定。 因此隐马尔可夫模型 可表示为:

具体来说,长度为 的观测序列的生成过程如下:按照初始状态分布 产生状态 ,按状态 的观测概率分布 生成 ,按状态 的状态转移概率分布 产生状态 ,依次递推。

(1) 齐次马尔可夫性假设 ,即隐藏的马尔科夫链在任意时刻 的状态只依赖于其前一时刻的状态,与其他时刻状态及观测无关,也与时刻 无关。

(2) 观测独立性假设 ,即任意时刻的观测只依赖于该时刻的马尔科夫链状态,与其它观测状态无关。

(1) 概率计算问题 :给定模型 和观测序列 ,计算在模型 下序列 出现的概率 。

(2) 学习问题 :已知观测序列 ,估计模型 参数,使得在该模型下观测序列 最大。

(3) 预测问题 :已知模型 和观测序列 ,求使得 最大的状态序列 。

接下来分别阐述这三个问题的解决方法。

状态 的概率是:

对固定的 观测序列 的概率是:

同时出现的联合概率为:

从而:

可以看到,上式是对所有可能的 序列求和,而长度为 的 序列的数量是 数量级的,而 的计算量是 级别的,因此计算量为 ,非常大, 这种算法在实际中不可行

首先定义 前向概率 :给定隐马尔可夫模型 ,定义到时刻 部分观测序列为 且状态为 的概率为前向概率,记作:

观测序列概率的前向算法 如下:

(1)初值:

(2)递推,对 :

(3)终止:

前向算法高效的关键是 局部计算前向概率,然后利用路径结构将前向概率递推到全局,得到 。前向概率算法计算量是 级别的。

首先定义 后向概率 :给定隐马尔可夫模型 ,定义在时刻 状态为 的条件下,从 到 部分观测序列为 的概率为后向概率,记作:

观测序列概率的后向算法 如下:

(1)初值:

(2)递推,对 :

(3)终止:

若有 个长度相同观测序列和对应状态序列 则可利用极大似然估计得到隐马尔可夫模型参数:

设样本中时刻 处于状态 时刻 转移到状态 的频数为 ,那么状态转移概率 的估计为:

设样本中状态为 观测为 的频数为 ,那么观测概率 的估计为:

初始状态 的估计 为 个样本中初始状态为 的频率。

假设给定训练数据只包含 个长度为 的观测序列 而没有对应状态序列,我们可以把状态数据看作不可观测的隐数据 ,则隐马尔可夫模型事实上是一个含有隐变量的概率模型:

其参数可由EM算法实现。

近似算法的思想是,在每个时刻 选择在该时刻最有可能出现的状态 ,从而得到一个状态序列 。

近似算法的优点是计算简单,缺点是不能保证预测的状态序列整体是最有可能的状态序列,因为预测的状态序列可能有实际不发生的部分,比如存在转移概率为0的相邻状态。尽管如此,近似算法还是有用的。

维特比算法实际上是用动态规划解隐马尔可夫模型预测问题,即用动态规划求概率最大路径(最优路径),此路径对应一个状态序列。

定义 在时刻 状态为 的所有单个路径 中概率最大值 为:

由定义得递推式:

定义 在时刻 状态为 的所有单个路径 中概率最大路径的第 个结点 为:

维特比算法 如下:

(1)初始化:

(2)递推,对 :

(3)终止:

(4)回溯,对 :

最优路径为

隐马尔可夫模型——马尔可夫模型(转载)

简介

马尔可夫模型(Markov Model)描述了一类随机变量时间而变化的随机函数。考察一个状态序列(此时随机变量为状态值),这些状态并不是相互独立的,每个状态的值依赖于序列中此状态之前的状态。

 

数学描述

一个系统由N个状态S= {s1,s2,...sn},随着时间的推移,该系统从一个状态转换成另一个状态。Q= {q1,q2,...qn}为一个状态序列,qi∈S,在t时刻的状态为qt,对该系统的描述要给出当前时刻t所处的状态st,和之前的状态s1,s2,...st, 则t时刻位于状态qt的概率为:P(qt=st|q1=s1,q2=s2,...qt-1=st-1)。这样的模型叫马尔可夫模型。

特殊状态下,当前时刻的状态只决定于前一时刻的状态叫一阶马尔可夫模型,即P(qt=si|q1=s1,q2=s2,...qt-1=sj) =P(qt=si|qt-1=sj)。

状态之间的转化表示为aij,aij=P(qt=sj|qt-1=si),其表示由状态i转移到状态j的概率。其必须满足两个条件:   1.aij≥ 0    2.=1

对于有N个状态的一阶马尔科夫模型,每个状态可以转移到另一个状态(包括自己),则共有N2次状态转移,可以用状态转移矩阵表示。

 

例子

一段文字中名词、动词、形容词出现的情况可以用有3个状态的y一阶马尔科夫模型M表示:

                  状态s1:名词         状态s2:动词       状态s3:形容词

状态转移矩阵:     s1            s2          s3

                     A=  

则状态序列O=“名动形名”(假定第一个词为名词)的概率为:

          P(O|M) = P(s1,s2,s3,s4} = P(s1)*p(s2|s1)p(s3|s2)p(s1|s3)

                                             =p(s1)*a12*a23*a31

                                             =1*0.5*0.2*0.4

                                             =0.04

 

应用领域

马尔科夫模型可以用来语音识别、音字转化、词性标注、统计机器翻译。

以上是关于隐马尔可夫模型的主要内容,如果未能解决你的问题,请参考以下文章

隐马尔可夫模型

如何用简单易懂的例子解释隐马尔可夫模型

HMM(隐马尔可夫模型)

隐马尔科夫模型(HMM)

自然语言处理隐马尔可夫模型Ⅰ马尔可夫模型

隐马尔可夫模型——隐马尔可夫模型的构成(转载)