跳转到内容

隐马尔可夫模型

维基百科,自由的百科全书

这是本页的一个历史版本,由Shizhao留言 | 贡献2006年6月3日 (六) 15:43 (恢复到Sterrys的最后一次编辑)编辑。这可能和当前版本存在着巨大的差异。

File:MarkovModel.png
隐马尔可夫模型状态变迁图(例子)
x — 隐含状态
y — 可观察的输出
a — 变迁概率(transition probabilities)
b — 输出概率(output probabilities)

隐马尔可夫模型(缩写:HMM (hidden Markov model))是统计模型,它用来描述一个含有隐含未知参数的马尔可夫过程.其难点是从可观察的参数中确定该过程的隐含参数.然后利用这些参数来作进一步的分析,例如模式识别.

在正常的马尔可夫模型中,状态对于观察者来说是直接可见的.这样状态变迁概率便是全部的参数.而在马尔可夫模型中,状态并不是直接可见的,但受状态影响的某些变量则是可见的.每一个状态在可能输出的符号上都有一概率分布.因此输出符号的序列能够透露出状态序列的一些信息.

马尔可夫模型的演化

上边的图示强调了HMM的状态变迁.有时,明确的表示出模型的演化也是有用的,我们用x(t1) 与x(t2)来表达不同时刻t1t2的状态.

Temporal evolution of a hidden Markov model
Temporal evolution of a hidden Markov model

在这个图中,每一个时间块(x(t), y(t))都可以向前或向后延伸.通常,时间的起点被设置为t=0 或 t=1.

使用隐马尔可夫模型

HMM有三个经典(canonical)问题:

  • 已知模型参数,计算某一特定输出序列的概率.通常使用forward algorithm解决.
  • 已知模型参数,寻找最可能的能产生某一特定输出序列的隐含状态的序列.通常使用Viterbi algorithm解决.
  • 已知输出序列,寻找最可能的状态转移以及输出概率.通常使用Baum-Welch algorithm以及Reversed Viterbi algorithm解决.

另外,最近的一些方法使用Junction tree algorithm来解决这三个问题.

具体实例

Template:HMM example

这个例子在页上有更多的解释.

隐马尔可夫模型的应用

历史

隐马尔可夫模型最初是在二十世纪六十年代后半期Leonard E. Baum和其它一些作者在一系列的统计学论文中描述的。HMM最初的应用之一是开始于二十世纪七十年代中期的语音识别[1]

二十世纪八十年代后半期,HMM开始应用到生物序列尤其是DNA的分析中。从那时开始,在生物信息领域它们已经变得无处不在。[2]

参见

注解

  1. ^ Rabiner, p. 258
  2. ^ Durbin

参考书目

外部连接