write down,forget
标签 Tag : HMM

HMM-Viterbi Algorithm

<Category: 机器学习, 算法> Comments Off on HMM-Viterbi Algorithm
简单来说,通过给定的观测状态序列,推算另一状态[隐藏状态]最可能出现的序列情况,这些状态的可能变化又称Viterbi Path
Viterbi算法基于如下3个假设:
1.无论是观测到的事件还是隐藏的事件都必须在一个序列中[一般对应时间]
2.这两个序列需要重新校正排列,观测状态需要和一个隐藏状态进行对应
3.每一个状态只依赖于它之前的那一个状态,而与其它的无关
注:以上假设同样满足隐马模型。
说了这么多,还是看个简单的例子吧。

简单来说,通过给定的观测状态序列,推算出可能性最大的隐藏序列,这些序列的可能变化又称Viterbi Path
说到viterbi算法,不得不提隐马模型(HMM),viterbi是HMM里面一个比较重要的算法。

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

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

HMM[隐马尔可夫模型]里有三个经典的问题:

已知模型参数,计算某一特定输出序列的概率.通常使用forward算法解决.

已知模型参数,寻找最可能的能产生某一特定输出序列的隐含状态的序列.通常使用Viterbi算法解决.

已知输出序列,寻找最可能的状态转移以及输出概率.通常使用Baum-Welch算法以及Reversed Viterbi算法解决.

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

Viterbi算法基于如下3个假设:

1.无论是观测到的事件还是隐藏的事件都必须在一个序列中[一般对应时间]

2.这两个序列需要重新校正排列,观测状态需要和一个隐藏状态进行对应

3.每一个状态只依赖于它之前的那一个状态,而与其它的无关

注:以上假设同样满足隐马模型。

说了这么多,还是看个简单的例子吧。

阅读这篇文章的其余部分 »

本文来自: HMM-Viterbi Algorithm