HMM详解

本文内容主要基于统计学习方法中的内容并加入自己的理解(红字部分为自己的理解)

                                          隐马尔可夫模型详解

  • 应用

隐马尔可夫模型(hidden Markov model,HMM)通常用于序列标注问题,根据给定的观测的序列来预测其对应的标记序列(序列的标记可以看成隐藏节点,序列是可观测节点)

具体应用可看这篇博客讲的比较好: https://www.lookfor404.com/用隐马尔可夫模型hmm做命名实体识别-ner系列二/

  • 假设

大家应该知道任何算法都有其假设,也可以理解其为偏好,例如朴素贝叶斯的独立性假设,这里隐马有以下两个假设:

  1. 齐次马尔可夫假设:即隐藏的马尔可夫链在任意时刻t的状态只依赖于其前一时刻的状态,其实也就是无后效性
  2. 观测独立性假设:假设任意时刻t的观测只依赖于当前时刻的马尔可夫链状态
  • 隐马尔可夫模型的三个基本问题

隐马有三个基本问题: 概率计算问题、学习问题、预测问题

  1. 概率计算问题

给定模型 和观测序列,计算观测序列在给定模型的情况下的概率

概率计算问题可以通过三个方式来实现:直接计算法、前向算法、后向算法

         (1)直接计算法应该是一个穷举法的感觉,遍历所有可能出现的状态序列,将每种状态序列得到观测序列的概率的累加

                     HMM详解_第1张图片

       (2)前向算法:下面的截图是书中的说法我说一下自己的理解,其实是一个向量,向量的维度上Nx1,N是状态序列可能取               值的范围,可以理解为在t时刻输出序列为,是状态序列为1-N的概率向量,往后迭代的过程也就是下一个转移后且输出为是的概率向量,即可以用公式表示为:

   可以理解为的转置乘以转移矩阵跟向量的点乘

HMM详解_第2张图片

(3)后向算法,跟前向算法原理类似,只是后向考虑是怎么返回到前一个状态

2. 学习算法

隐马的学习问题是根据观测序列来估计参数,可以分别用监督学习和非监督学习来实现

 (1)监督学习

即可以获取观测序列对应的状态序列可以用极大似然估计来估计隐马的参数

 (2)非监督学习

          非监督学习采用的是Baum-Welch算法,其实就是EM算法的一种分为E步和M步,这里先贴上统计学习方法中的内容

HMM详解_第3张图片

相当于通过E步先定一个目标函数Q函数需要优化的是极大化该Q函数,M步通过将Q函数的几个部分分别用拉格朗日函数的偏导为0求出最优参数更新整体参数

 

  1. 预测问题

预测算法采用的是维特比算法(Viterbi algorithm),运用动态规划的思路来求最优的概率最大的状态序列

每一步的状态序列保存前一次状态序列转换到各个状态的最大值,并乘上当前状态转移到观测序列的概率,相当于概率计算的前向算法其实就是的转置点乘转移矩阵中的最大值,并记录最大的位置

 

  •  

你可能感兴趣的:(AI,learning,road)