Quote:
引用第16楼zc1984于04-22-2007 18:50发表的:
viterbi会根据输入的观察序列,“自左向右”的根据上下文给出最优的理解。由于viterbi会在给出最终选择前考虑所有的观察序列因素,这样就避免了由于突然的噪声使得决策原理正确答案。这种情况在真实的数据中经常出现。
我们可以从数学形式上证明这种方法的最优性~~~
.......
为了计算viterbi[i,j],这个算法假设是:“动态规划守恒”
为了计算viterbi[i,j],这个算法假设是:“动态规划守恒”
这是一个简化但并不正确的假定,这种假定认为,如果对于全部的观察序列,最终的最佳路径恰好经过了状态q,那么这条路径必是在此之前包括状态q在内的所有路径中的最佳路径。这并不意味着在任何时刻t的最佳路径就是所有序列中的最佳路径。一条路径在开始可能并不太好,但是后来可能变为最佳路径。
比如对于某些类别的语法,(包括三元语法),Viterbi的假设就回失败。所以现在很多语音识别用了栈解码算法或A*算法。
aa.jpg aaa.jpg Viterbi的假定是为了使我们能用一种简单的方法来分解路径,对t-1时刻进行扩充
Daniel的 Speechand language processing有详细的论证