码迷,mamicode.com
首页 > 其他好文 > 详细

机器学习---HMM模型学习笔记

时间:2018-05-19 13:13:36      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:实例   简化   文章   递推   表示   理解   转移   arch   完全   

HMM算法想必大家已经听说了好多次了,完全看公式一头雾水。但是HMM的基本理论其实很简单。因为HMM是马尔科夫链中的一种,只是它的状态不能直接被观察到,但是可以通过观察向量间接的反映出来,即每一个观察向量由一个具有相应概率密度分布的状态序列产生,又由于每一个状态也是随机分布的,所以HMM是一个双重随机过程。

     HMM是语音识别,人体行为识别,文字识别等领域应用非常广泛。

     一个HMM模型可以用5个元素来描述,包过2个状态集合和3个概率矩阵。其分别为

     隐含状态S,可观测状态O,初始状态概率矩阵π,隐含状态概率转移矩阵A,观测状态转移概率矩阵 B。

     HMM在实际应用中主要用来解决3类问题。

     1. 评估问题。

   即给定观测序列 O=O1O2O3…Ot和模型参数λ=(A,B,π),怎样有效计算这一观测序列出现的概率。(前向后向算法)

     2. 解码问题。

   即给定观测序列 O=O1O2O3…Ot和模型参数λ=(A,B,π),怎样寻找满足这种观察序列意义上最优的隐含状态序列S。(维特比算法)

     3. 学习问题。

     即HMM的模型参数λ=(A,B,π)未知,如何求出这3个参数以使观测序列O=O1O2O3…Ot的概率尽可能的大。(鲍姆-韦尔奇算法)

     这篇文章是针对第一个问题来说的,一般采用的是前向后向算法来解决评估问题。这里将的是前向算法。

     在此之前,先引入几个符号:

     at(i) :  表示到第t个观察值Ot时处于状态i。

    技术分享图片 : 表示在状态i下产生观察值 的概率。

     现在来看一下前向算法的理论来源。

     因为我们要解决的是模型估计问题。即计算概率技术分享图片 。将其利用如下公式化简:

 

    技术分享图片

     因此首先要先计算

   技术分享图片,其中Q为一给定的状态序列 。又有

   技术分享图片

     其中

   技术分享图片

     所以

   技术分享图片

     因此最后求得

   技术分享图片

     由此可以看见其计算复杂度非常大,为技术分享图片

    为了解决这个问题,前向算法就出现了。首先定义了一个前向变量 。表示从1到t,输出符号o序列,t时刻处于状态i的累计输出概率。

     因为前向变量有如下性质:

     初值:

    技术分享图片,且

    技术分享图片,最后有递推关系:

    技术分享图片

     为什么这样就可以简化计算复杂度呢?其原因很简单,因为每一次的at(i),我们都可以用at-1(i)来计算,就不用重复计算了。如下示意图可以帮助我们形象的理解:

 

    技术分享图片

     看了这么多公式,是不是头晕了?不急,下面看一个实例就会完全明白的。

     题目:HMM模型如下,试通过前向算法计算产生观察符号序列O={ABAB}时每个时刻的 和总概率。

技术分享图片

     当然初始概率矩阵π=(1,0,0),即开始处于状态1。按照上面的公式理论,我们的递推依次解出at(i)。解法如下:

     t=1时:

   技术分享图片

     t=2时:

   技术分享图片

     t=3时:

  技术分享图片

     t=4时:

 技术分享图片

     所以有最后的结果:

 

    技术分享图片

     最后将其计算过程示意图表示如下:

 

   技术分享图片

转载自:https://www.cnblogs.com/tornadomeet/archive/2012/03/24/2415583.html

用于学习笔记

机器学习---HMM模型学习笔记

标签:实例   简化   文章   递推   表示   理解   转移   arch   完全   

原文地址:https://www.cnblogs.com/xiaoshayu520ly/p/9059798.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!