正反向算法和维特比算法有何区别?

20

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

当我回顾这两种算法的实现时,我发现唯一的区别在于事务概率来自不同的概率模型。

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

3个回答

20
正向-反向算法结合了前向步骤和后向步骤,以获得特定时间内处于每个状态的概率。对所有时间步骤执行此操作可以给我们一个在每个时刻单独最可能的状态序列(虽然不保证是有效序列,因为它考虑每一步的单独状态,且在转换模型中可能发生概率p(q_i -> q_j)=0的情况)。换句话说: equation 1, 其中 equation 2 另一方面,维特比算法通过使不同的最优性准则最大化,找到给定观察序列的最可能状态序列: Equation 3 我建议您参考这篇著名论文的详细解释(参见问题#2):
LAWRENCE R. RABINER,“隐马尔可夫模型及其在语音识别中的应用”教程

6

简单来说:

如果只想预测在某个特定时间最可能的标记是什么,那么可以使用前向-后向算法。它将考虑每种可能的序列并对其进行平均,以找到该时间点上最可能的标记。因此,您将得到的序列不是真正的序列,而是当考虑所有可能的序列时收集的最有可能的标记集合。

维特比算法用于找到最可能的事件序列。这将考虑每个序列,并选择最可能的序列。


0

请查看 Rabiner论文的262-264页,就会一切变得清晰明了。以下是这篇论文中对您问题的直接引用答案:

“……需要注意的是,Viterbi算法和前向后向算法的前向计算(方程19-21)类似(除了回溯步骤)。主要区别是在方程(33a)中对前一个状态进行最大化处理,其替代了方程(20)中的加总过程。”


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接