前向后向算法和Viterbi算法有什么区别?

时间:2009-12-14 03:33:33

标签: algorithm machine-learning nlp hidden-markov-models viterbi

n-gram模型的前向 - 后向算法与隐马尔可夫模型(HMM)上的Viterbi算法有什么区别?

当我回顾这两种算法的实现时,我发现只有交易概率来自不同的概率模型。

这两种算法之间有区别吗?

3 个答案:

答案 0 :(得分:16)

前向后向算法结合前进步骤和后退步骤,以获得在特定时间处于每个状态的概率。因此,对所有时间步骤执行此操作可以为每个时间提供一系列单独最可能的状态(尽管不保证是有效序列,因为它考虑每个步骤的个别状态,并且可能发生概率p(q_i -> q_j)=0在过渡模型中),换句话说:

equation 1,其中equation 2

另一方面,维特比算法通过最大化不同的最优性标准,在给定观察序列的情况下找到最可能的状态序列:

Equation 3

我建议您参考这篇着名的论文以获得详细解释(参见问题#2):

  

LAWRENCE R. RABINER,一个教程   隐马尔可夫模型和选定   在语音识别中的应用

答案 1 :(得分:5)

简洁地说:

如果只想预测特定时间最可能的令牌,则使用前向后向。它将考虑每个可能的顺序并对它们取平均值以找到当时最可能的标记。因此,您将获得的序列不是真正的序列,而是在考虑所有可能的序列时收集最可能的令牌。

维特比用于查找最可能的事件序列。这将查看每个序列,并简单地选择最有可能的序列。

答案 2 :(得分:0)

看一下Rabiner's paper的第262-264页,一切都应该清楚。 以下是本文直接引用的答案 - 您的问题:

  

“......应该注意的是,维特比算法是相似的(除了   用于回溯步骤)实施前进   计算前向后向算法(方程19-21)。该   主要差异是(方程33a)中的最大化   状态,用于代替(方程式中的求和过程)   20)。“