HMM理解以及相关算法

本文介绍了马尔可夫模型(MM)和隐马尔可夫模型(HMM)的基本概念,HMM由状态转移序列和输出符号序列组成,常用于语音识别等场景。文章阐述了HMM的三个基本问题:计算观测序列概率、找到最佳状态序列和调整模型参数。重点讲解了Viterbi算法,通过实例展示了如何根据朋友的活动推测其所在地的天气状态,从而解决最有可能的隐藏状态序列问题。
摘要由CSDN通过智能技术生成

1、MM  

    先有马尔可夫模型,再有隐马尔可夫模型,什么叫马尔可夫模型呢,也就是具有马尔可夫性质的模型,而马尔可夫性质用概念来讲,就是:一个过程的“将来”只取决于“现在”,而不取决于“过去”。这就叫马尔可夫性,具有马尔可夫性的过程叫做马尔可夫过程。

     (下面来一段数学定义:

           设在时刻t的随机变量用St 表示,其观察值用st表示,则如果当S1=s1,S2=s2,……St=st的前提下 ,S(t+1)=s(t+1)的概率为:

                 

         当n=1时就是一阶马尔可夫模型了,这个式子就是表明:系统在任一时刻所处的状态只与此时刻的前一时刻所处的状态有关 (注意,跟上面的“过去”、“现在”、“将来”要理解开来),后面还有一些时间无关性、转移概率相关的数学函数,在此先不列出,重在理解马尔可夫模型的思想先。  


2、HMM

         HMM与一阶MM形式差不多,而H则体现在HMM是由两个随机过程组成,一个是状态转移序列,它对应着一个单纯Markov过程;另一个是每次转移时输出的符号组成的符号序列。这两个随机过程,其中状态转移随机过程是不可观测的,只能通过另一个随机过程的输出观察序列观测。

        例如,容器与彩球的模型:有若干个容器,每个容器中按已知比例放入各色的彩球(这样,选择了容器后,我们可以用概率来预测取出各种彩球的可能性);我们做这样的实验,实验者从容器中取彩球——先选择一个容器,再从中抓出某一个球,只给观察者看球的颜色;这样,每次取取出的球的颜色是可以观测到的,即o1, o2,…,但是每次选择哪个容器是不暴露给观察者的,容器的序列就组成了隐藏状态序列S1, S2,…Sn。这是一个典型的可以用HMM描述的实验。


         以语音识别为例讲讲HMM模型,HMM一般可用六个参数来定义,M={S,O,A,B,PI,F};

         S:模型中状态的有限集合,记t时刻模型所处状态为St

        O:输出的观察值符号集合,t时刻模型观察到的观察值为Ot

        A:状态转移概率的集合

        B:输出观测值概率的集合,根据B将HMM分为离散型和连续型

        PI:系统初始状态概率的集合

        F:系统终了状态的集合

        为了便于表示,常用下面的形式表示一个HMM,即简写为M={A,B,pi }。HMM可以分为两部分,一个是Markov链,由pi ,A描述,产生的输出为
状态序列。另一个随机过程,由B描述,产生的输出为观察符号序列。


3、HMM的三个基本问题

        a.已知观测序列O={ o1 , o2 …… oT }和模型 U{A,B,pi },如何有效计算在给定模型的条件下产生观测序列O的条件概率P(O/U)最大。
        b.已知观测序列O=O={ o1 , o2 …… oT }和模型U {A,B,pi },如何选择相应的在某种意义上最佳的(能最好解释观测序列的)状态序列S。
        c.如何调整模型参数U {A,B,pi }以使条件概率P(O|U)最大。


4、3中abc问题的解决方案

      a问题由上一篇文章中的前向算法解决

      b问题由viterbi算法解决

      c问题后续继续说明,其使用的算法是Baum-Welch算法


5、viterbi算法的例子

      

    假设你有一个朋友在外地,每天你可以通过电话来了解他每天的活动。他每天只会做三种活动之一——Walk, Shop, Clean。你的朋友从事哪一种活动的概率与当地的气候有关,这里,我们只考虑两种天气——Rainy, Sunny。我们知道,天气与运动的关系如下:

P(o|state)

Rainy

Sunny

Walk

0.1

0.6

Shop

0.4

0.3

Clean

0.5

0.1

例如,在下雨天出去散步的可能性是0.1。

而天气之前互相转换的关系如下,(从行到列)

p(state—>next_state)

Rainy

Sunny

Rainy

0.7

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值