隐马尔可夫模型(HMM)总结

摘要:

  1.算法概述

  2.算法推导

  3.算法特性及优缺点

  4.注意事项(算法过程,调参等注意事项)

  5.实现和具体例子

  6.适用场合

内容:

1.算法概述

  隐马尔科夫模型(Hidden Markov Model)是关于时序的概率模型,描述由一个隐含的马尔科夫链生成不可观测的状态序列,再由状态序列生成观测序列的过程。这种通过观测序列预测隐含的标记序列的问题叫做标注。

下图来自*:

隐马尔可夫模型(HMM)总结

并且本文有如下符号表示:

  隐马尔可夫模型(HMM)总结

其中隐马尔可夫模型(HMM)总结就是我们需要求得的一个三元组;拿中文分词的例子来说,分词中的状态序列是{ Begin,Middle,End,Single },对应单个字成词的就是Single,双连词就是{Begin,End},三联词就是{Begin,Middle,End}。而我们观测到的就是一个句子;通过HMM实现的分词算法可以通过

求得初始{ Begin,Middle,End,Single }这四个状态的分布,以及各个状态间相互转移的条件概率矩阵,当前状态对应一个中文词(Unicode编码)的条件概率矩阵。另一个直观的例子来自《统计学习方法》,是给定4个盒子(4个状态),每个盒子有若干红,白小球,给定一个观测序列,求对应盒子的序列。

最后马尔科夫模型的两个基本假设:

  1.齐次马尔科夫假设:马尔科夫链的当前状态之和其前一刻的状态有关,与其它状态无关;对应的概率语言是:隐马尔可夫模型(HMM)总结

  2.观测独立性假设:当前的观测只与该时刻的马尔科夫链相关,与其它观测及状态无关;对应的概率语言是:隐马尔可夫模型(HMM)总结

2.算法推导

  以下可以看作是HMM算法的一步步拆分,并且依次加深理解:

  1.在模型给定下求观测序列的概率,即隐马尔可夫模型(HMM)总结

    前向算法(动态规划算法):求观测序列为y1,y2,...,yt,并且t时间点对应状态隐马尔可夫模型(HMM)总结的概率

    

    隐马尔可夫模型(HMM)总结隐马尔可夫模型(HMM)总结

    后向算法(动态规划算法):已知t时间点对应状态隐马尔可夫模型(HMM)总结,求观测序列y(t+1),y(t+2),...,y(T)的概率

        

    隐马尔可夫模型(HMM)总结               隐马尔可夫模型(HMM)总结

  2.求解模型参数,使用对数极大似然估计,隐马尔可夫模型(HMM)总结,得到三元组隐马尔可夫模型(HMM)总结

     1)建立目标函数:                                  2)拆分三项:

    隐马尔可夫模型(HMM)总结             隐马尔可夫模型(HMM)总结

  由概率加和为1,建立拉格朗日函数,求得三个最大化的

隐马尔可夫模型(HMM)总结    隐马尔可夫模型(HMM)总结            隐马尔可夫模型(HMM)总结

  更详细的介绍和例子请参考*:Baum–Welch_algorithm

  3.求最可能的状态序列,即隐马尔可夫模型(HMM)总结:维特比算法

    隐马尔可夫模型(HMM)总结

     

3.算法特性及优缺点

  

  1.按照HMM 的假设,HMM模型是无记忆性的,不能利用上下文的信息。因为它只与其前一个状态有
关,如果想利用更多的已知信息,必须建立高阶的HMM 模型。

  2.HMM学到的是状态和观察序列的联合分布P(Y,X),而预测问题中,我们需要的是条件概率P(Y|X)。

4.注意事项(算法过程,调参等注意事项)

  确定隐含变量个数

  

5.实现和具体例子

  实现HMM

  

6.适用场合

  

7.与CRF比较:

  1.CRF是一种判别式模型,CRF是一种无向图;HMM相反

  2.CRF是在全局范围内统计归一化的概率,是全局最优的解;HMM相反

  3.CRF没有HMM那样严格的独立性假设条件,因而可以容纳任意的上下文信息。特征设计灵活;;HMM相反

  

上一篇:简单酷炫的Canvas数字时钟


下一篇:Unity使用代码动态给按钮赋值各个状态下的图片