隐马尔可夫模型
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
应用领域
马尔科夫模型可以用来语音识别、音字转化、词性标注、统计机器翻译。
以上是关于隐马尔可夫模型的主要内容,如果未能解决你的问题,请参考以下文章