HMM之维特比算法

现在是解码问题。什么是解码问题呢?请看下面。

现在给定了一个妹子(指定模型HMM ),有人告诉你某个连续五天妹子表现,即观察序列为(打, 不打, 打, 打, 不打)。再不是评估问题问你 这个观察序列以后出现的概率是多少。这回是需要你结合观察序列去推测这个妹子那几天最可能的心情变化。心情变化是(高兴, 生气, 高兴, 平静, 生气),还是(生气, 生气, 高兴, 平静, 平静)呢?还是其他心情?

看到妹子连续的表现,推测心情的变化。这就是解码问题。

这个问题有个直接的办法。把所有情况列出来一一求解呗。

那么就是 分别计算 P( (打, 不打, 打, 打, 不打) | (高兴, 生气, 高兴, 平静, 生气))

P( (打, 不打, 打, 打, 不打) | (生气, 生气, 高兴, 平静, 平静))

…………

然后,看看那个概率最大。OK ,最大的那个概率就是要求得的。但计算太麻烦了。

《统计学习方法》中介绍个近似算法。就是计算每个时段 t 最可能出现的状态。比如在 t = 3, 我们由上节的前向算法可以得到这个时段状态分别是 高兴, 平静,生气时候的概率。然后看谁大就选谁。

比如分别计算

在t = 3 时看到观测序列为(打,不打,打), 并且现在 t = 3 时候妹子心情状态为高兴的概率。

在t = 3 时看到观测序列为(打,不打,打), 并且现在 t = 3 时候妹子心情状态为平静的概率。

在t = 3 时看到观测序列为(打,不打,打), 并且现在 t = 3 时候妹子心情状态为生气的概率。

最后看这个里面谁大我就选谁。

算法里面学过动态规划的,一看就知道很大的问题。动态规划应该可以告诉这个问题。

维特比(Viterbi )算法

这就是个动态规划解马尔科夫模型的解码问题。

动态规划问题参见 :

现在问题就简单多了,把过路收费多少问题,看成概率大小的问题。就可以搞定的。

定义两个变量:Q_t ( i ) 为时刻 t 状态为 i 的所有单个路径(i_1, i_2, …………i_t)中概率最大值

公式1

R_t ( i )为时刻 t 状态为 i 的所有单个路径(i_1, i_2, …………i_t)中概率最大路径的前一个段t - 1中的状态结点的编号。

说白点,就是Q_t (i)就是在 时刻 t 妹子的心情为第 i 种(高兴, 生气,平静)的最大概率。举例现在 t = 3时候, 看到的 (打, 不打, 打) 。在此时妹子心情为 i = 1 (高兴)时候最大的概率。

有很多中可能的情况:(按照公式1)

P (i_t = 高兴,高兴,平静,打, 不打, 打 | 此人模型)

P (i_t = 高兴,生气,平静,打, 不打, 打 | 此人模型)

……………………

从中选出概率最大的一个。假设是第一个,那么公式中的单个路径就是(平静,高兴,高兴)这条路径(跟动态规划问题中经过收费站选择路线的问题挂钩了)。

此时的R_t(i = 3)是什么呢?就是 上述最大概率路径中前一个段(t = 2)的状态编号,也就是上述(平静,高兴,高兴)路径中间那个高兴的编号,就是1 号嘛。这个变量在512nlp 称之为反向指针。就是指向该结点所处最好的那个路径的前一个结点的编号。

知道动态规划和上述变量后,我们可以依次计算每天妹子各种心情变化的概率。

第一天由于没有前一天,和上一节前向算法一样,P(state | t = 1) = P(state),因此,t = 1 时的概率等于当前状态的初始概率乘以相关的混淆概率。

也就是分别算出P(高兴,打|M),P( 平静,打|M),P(生气,打|M)的概率。

然后根据这个概率去递推第二天的 R_t ( i ) 变量的概率,还有分别算出他们的反向指针。

也就是 在第一天打人,第二天不打人,第二天心情分别为高兴, 生气,平静三种情况下各自的最大概率。

接着根据第二天概率去递推第三天的 R_t ( i ) 变量的概率,还有分别算出他们的反向指针。

也就是 在第一天打人,第二天不打人,第三天打人,第三天心情分别为高兴, 生气,平静三种情况下各自的最大概率。

………………

最后计算出

也就是 在第一天打人,第二天不打人,第三天打人,第四天打人,第五天不打人。第五天心情分别为高兴, 生气,平静三种情况下各自的最大概率。

上述三种情况对应着三种路径(类似 平静,高兴,高兴,……)。概率最大者,就是所说的最可能的情况。

问题到此还没有完,还需要使用反向指针,反向着往前慢慢推出该路径的各个状态。也就是使用反向指针递推着计算第四天,第三天,……,第一天的心情状态。

这样,大功告成,我们就结合观察序列推测这个妹子那几天最可能的心情变化。

现在是解码问题。什么是解码问题呢?请看下面。

现在给定了一个妹子(指定模型HMM ),有人告诉你某个连续五天妹子表现,即观察序列为(打, 不打, 打, 打, 不打)。再不是评估问题问你 这个观察序列以后出现的概率是多少。这回是需要你结合观察序列去推测这个妹子那几天最可能的心情变化。心情变化是(高兴, 生气, 高兴, 平静, 生气),还是(生气, 生气, 高兴, 平静, 平静)呢?还是其他心情?

看到妹子连续的表现,推测心情的变化。这就是解码问题。

这个问题有个直接的办法。把所有情况列出来一一求解呗。

那么就是 分别计算 P( (打, 不打, 打, 打, 不打) | (高兴, 生气, 高兴, 平静, 生气))

P( (打, 不打, 打, 打, 不打) | (生气, 生气, 高兴, 平静, 平静))

…………

然后,看看那个概率最大。OK ,最大的那个概率就是要求得的。但计算太麻烦了。

《统计学习方法》中介绍个近似算法。就是计算每个时段 t 最可能出现的状态。比如在 t = 3, 我们由上节的前向算法可以得到这个时段状态分别是 高兴, 平静,生气时候的概率。然后看谁大就选谁。

比如分别计算

在t = 3 时看到观测序列为(打,不打,打), 并且现在 t = 3 时候妹子心情状态为高兴的概率。

在t = 3 时看到观测序列为(打,不打,打), 并且现在 t = 3 时候妹子心情状态为平静的概率。

在t = 3 时看到观测序列为(打,不打,打), 并且现在 t = 3 时候妹子心情状态为生气的概率。

最后看这个里面谁大我就选谁。

算法里面学过动态规划的,一看就知道很大的问题。动态规划应该可以告诉这个问题。

维特比(Viterbi )算法

这就是个动态规划解马尔科夫模型的解码问题。

动态规划问题参见 :

现在问题就简单多了,把过路收费多少问题,看成概率大小的问题。就可以搞定的。

定义两个变量:Q_t ( i ) 为时刻 t 状态为 i 的所有单个路径(i_1, i_2, …………i_t)中概率最大值

公式1

R_t ( i )为时刻 t 状态为 i 的所有单个路径(i_1, i_2, …………i_t)中概率最大路径的前一个段t - 1中的状态结点的编号。

说白点,就是Q_t (i)就是在 时刻 t 妹子的心情为第 i 种(高兴, 生气,平静)的最大概率。举例现在 t = 3时候, 看到的 (打, 不打, 打) 。在此时妹子心情为 i = 1 (高兴)时候最大的概率。

有很多中可能的情况:(按照公式1)

P (i_t = 高兴,高兴,平静,打, 不打, 打 | 此人模型)

P (i_t = 高兴,生气,平静,打, 不打, 打 | 此人模型)

……………………

从中选出概率最大的一个。假设是第一个,那么公式中的单个路径就是(平静,高兴,高兴)这条路径(跟动态规划问题中经过收费站选择路线的问题挂钩了)。

此时的R_t(i = 3)是什么呢?就是 上述最大概率路径中前一个段(t = 2)的状态编号,也就是上述(平静,高兴,高兴)路径中间那个高兴的编号,就是1 号嘛。这个变量在512nlp 称之为反向指针。就是指向该结点所处最好的那个路径的前一个结点的编号。

知道动态规划和上述变量后,我们可以依次计算每天妹子各种心情变化的概率。

第一天由于没有前一天,和上一节前向算法一样,P(state | t = 1) = P(state),因此,t = 1 时的概率等于当前状态的初始概率乘以相关的混淆概率。

也就是分别算出P(高兴,打|M),P( 平静,打|M),P(生气,打|M)的概率。

然后根据这个概率去递推第二天的 R_t ( i ) 变量的概率,还有分别算出他们的反向指针。

也就是 在第一天打人,第二天不打人,第二天心情分别为高兴, 生气,平静三种情况下各自的最大概率。

接着根据第二天概率去递推第三天的 R_t ( i ) 变量的概率,还有分别算出他们的反向指针。

也就是 在第一天打人,第二天不打人,第三天打人,第三天心情分别为高兴, 生气,平静三种情况下各自的最大概率。

………………

最后计算出

也就是 在第一天打人,第二天不打人,第三天打人,第四天打人,第五天不打人。第五天心情分别为高兴, 生气,平静三种情况下各自的最大概率。

上述三种情况对应着三种路径(类似 平静,高兴,高兴,……)。概率最大者,就是所说的最可能的情况。

问题到此还没有完,还需要使用反向指针,反向着往前慢慢推出该路径的各个状态。也就是使用反向指针递推着计算第四天,第三天,……,第一天的心情状态。

这样,大功告成,我们就结合观察序列推测这个妹子那几天最可能的心情变化。


相关文章

  • HMM学习最佳范例
  • HMM学习最佳范例 转自:我爱自然语言处理 ( ) 一.介绍(Introduction) 我们通常都习惯寻找一个事物在一段时间里的变化模式(规律).这些模式发生在很多领域,比如计算机中的指令序列,句子中的词语顺序和口语单词中的音素序列等等, ...查看


  • 隐马尔科夫模型
  • 隐马尔科夫模型 隐马尔可夫模型 (Hidden Markov Model,HMM) 最初由 L. E. Baum 和其它一些学者发表在一系列的统计学论文中,随后在语言识别,自然语言处理以及生物信息等领域体现了很大的价值.平时,经常能接触到涉 ...查看


  • 基于DSP的声纹识别技术的研究
  • 第30卷第4期 辽宁工业大学学报(自然科学版) V ol.30, No.4 2010 2010年 8 月 Journal of Liaoning University of Technology(Natural Science Editio ...查看


  • 隐马尔可夫模型及其最新应用与发展
  • 2010 年 第19卷 第 7 期 计 算 机 系 统 应 用 隐马尔可夫模型及其最新应用与发展 ① 朱 明 郭春生 (杭州电子科技大学 通信工程学院 浙江 杭州 310018) 摘 要: 隐马尔可夫模型是序列数据处理和统计学习的一种重要概 ...查看


  • 马尔可夫及隐马尔可夫模型在数据挖掘中的应用
  • 数据库与信息管理本栏目责任编辑: 闻翔军马尔可夫及隐马尔可夫模型在数据挖掘中的应用 侯传宇1,2 (1.合肥工业大学计算机与信息学院,安徽合肥230009:2.宿州学院数学系,安徽宿州234000) 摘要:随着用户对于数据挖掘的精确度与准确 ...查看


  • 动作识别与行为理解综述
  • 第14卷第2期2009年2月 中国图象图形学报 JournalofImageandGraphics V01.14.No.2 Feb.,2009 动作识别与行为理解综述 徐光祜 曹媛媛 (清华大学计算机科学与技术系普适计算教育部重点实验室,北 ...查看


  • 隐马尔可夫模型(HMM)简介
  • 隐马尔可夫模型(HMM)简介 请各位读者深吸一口气--呼--开始-- (一) 阿黄是大家敬爱的警官,他性格开朗,身体强壮,是大家心目中健康的典范. 但是,近一个月来阿黄的身体状况出现异常:情绪失控的状况时有发生.有时候忍不住放声大笑,有时候 ...查看


  • 语音信号处理综述
  • 语音信号处理综述 摘要:随着信息技术的发展,语音信号处理技术不断地融入到各个领域.作为21世纪信息技术领域最重要的科学技术之一,它成为了人机接口的关键技术,并且越来越受到人们的重视.本文介绍了国内外语音技术的相关发展及该技术在通讯,家具,导 ...查看


  • 隐马尔科夫模型HMM自学 (2)
  • 马尔科夫模型也需要改进! 崔晓源 翻译 当一个隐士不能通过直接观察天气状态来预测天气时,但他有一些水藻.民间的传说告诉我们水藻的状态与天气有一定的概率关系.也就是说,水藻的状态与天气时紧密相关的.此时,我们就有两组状态:观察状态(水藻的状态 ...查看


热门内容