隐马尔可夫模型

  终于要对隐马尔科夫模型模型做一个总结了。HMM在自然语言处理领域应用太广泛了,例如中文分词、命名实体识别。这些在NLP中基本躲不开了,好了,下面是对HMM的个人总结。

  先说一下随机过程和马尔可夫模型。
  随机过程又称随机函数,是随时间而随机变化的过程。马尔可夫模型描述了一类重要的随机过程。这些随机变量之间并不是相互独立的,每个随机变量的值依赖于这个序列前面的状态。如果在特定条件下,系统在时间t的状态只与其在时间t-1的状态相关,则该系统构成了一个离散的一阶马尔科夫链。
  简单说来,马尔可夫模型有一个状态转移矩阵来表示状态之间的转移概率,然后,通过这个矩阵来计算最终的序列概率。
  在马尔可夫模型中,每个状态代表了一个可观察的事件,这在某种程度上限制了模型的适应性。
  而在隐马尔可夫模型中,我们不知道模型所经过的状态序列,只知道状态的概率函数,也就是说,观察到的事件是状态的随机函数,因此,该模型是一个双重的随机过程。
  隐马的状态转换过程是不可观察的,即隐蔽的,可观察事件的随机过程是隐蔽的状态转换过程的随机函数。
  一般,一个HMM有五个部分组成:

状态的集合(S)
输出符号的集合 (K)
状态转移概率矩阵 (A)
符号发射概率 (A)
初始状态概率 (π)

  当考虑潜在事件随机地生成表面事件时,HMM是非常有用的。

  有三个基本问题:
(1)、概率估计问题。给定一个观察序列和模型,在给定一个模型的前提下,求某个观察序列O的概率。
(2)、状态序列问题。给定一个观察序列O和模型μ,如何快速有效的选择一定意义上下“最优”的状态序列,使得该状态序列能更好的解释观察序列。
(3)、参数估计问题。给定一个观察序列O,如何根据最大似然估计来求模型的参数值。

  - 概率估计问题
   给定一个观察序列和模型,要快速的计算出给定模型情况下观察序列O的概率,这就是解码问题。
   如果直接用概率计算,必须穷尽所有可能的状态序列,造成的计算量会出现“指数爆炸”。
   因此提出了前向计算过程,采用动态规划的方法来解决这一问题。动态规划是将多阶段过程,转化为一系列单阶段问题,利用各阶段之间的关系逐个求解。
   在HMM中的动态规划问题一般用格架的组织形式描述。对于一个在某一个时间结束在一定状态的HMM,每一个格能够记录该HMM所有输出符号的概率,较长子路径的概率可以由较短子路径的概率计算出来。
   前向计算需要涉及到一个概念:
   前向变量:前向变量是在时间t,HMM输出了序列O1O2…Ot,并且位于状态Si的概率。前向变量之间采用归纳的方式逐步求解。
   与之对应的,还有后向变量。
   后向变量:后向变量是在给定了模型μ,并且在时间t状态为Si的条件下,HMM输出观察序列Ot+1…OT的概率。
   后向变量是面向后面的,前面变量是面向前面的。
   后向变量也是通过归纳的方法计算。
  
 - 状态序列问题
  维特比算法,是用来解决HMM这个状态序列预测问题的。
  维特比算法也是采用动态规划的搜索算法,求解这种最优状态序列。
  首先,要计算维特比变量。
  维特比变量是在时间t时,HMM沿着某一路径到达状态Si,并输出观察序列O1O2…Ot的最大概率。与前向变量类似,前后维特比变量之间也通过递归方式求解。
  动态规划,一步一步来吧。

 - 参数估计问题
  参数估计问题是HMM面临的第三个问题,即给定一个观察序列O,如何调节模型μ的参数,是的P(O|μ)最大化。
  模型的参数,主要是指构成μ的初始概率矩阵π,转移概率矩阵A,发射概率矩阵B。
  可以采用最大似然估计方法来对HMM进行参数估计。但是,HMM中的状态序列Q是观察不到的,因此这种最大似然方法不太可行。以实际来求参数。
  期望最大化算法(EM)可以用于含有隐变量的统计模型的参数最大似然估计。基本思想是,首先初始化参数,从某一状态出发的所有转移概率的和为1。给模型参数赋初值以后,得到模型μ0,根据μ0可以得到模型中隐变量的期望值。 例如,从μ0得到从某一状态转移到另一状态的期望次数,用期望次数来替代最大似然估计中的实际次数,这样可以得到模型参数的新估计值,由此得到新的模型μ1。从μ1又可以得到模型隐变量的期望值,然后,重新估计模型的参数,执行这个迭代过程,知道参数收敛于最大似然估计值。
  在具体的算法实现中,使用前面的前向和后向算法,这是对于已有的观察序列进行的计算,可以当做先验知识。通过这个先验知识,来放回迭代计算,可以达到更新三个参数的目的。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值