簡體   English   中英

前向后向算法和Viterbi算法有什么區別?

[英]What is the difference between Forward-backward algorithm and Viterbi algorithm?

n-gram模型的前向后向算法和隱馬爾可夫模型(HMM)上的Viterbi算法有什么區別?

當我回顧這兩種算法的實現時,我發現的事情只是交易概率來自不同的概率模型。

這兩種算法之間有區別嗎?

前向后向算法結合前向步驟和后向步驟以獲得在特定時間處於每個狀態的概率。 因此,對所有時間步驟執行此操作可以在每次給出一系列單獨最可能的狀態(盡管不能保證是有效序列,因為它考慮每個步驟的個別狀態,並且可能發生概率p(q_i -> q_j)=0轉換模型中的p(q_i -> q_j)=0 ),換句話說:

等式1 ,哪里 等式2

另一方面,維特比算法通過最大化不同的最優性標准,找到給定觀察序列的最可能的狀態序列:

公式3

我建議你參考這篇着名的論文進行詳細解釋(參見問題#2):

LAWRENCE R. RABINER,隱馬爾可夫模型及語音識別中的選定應用教程

簡潔地說:

如果僅想預測在特定時間最可能的令牌,則使用前向后向。 它將考慮每個可能的順序並對它們取平均值以找到當時最可能的標記。 因此,您將獲得的序列將不是真正的序列,而是在考慮所有可能的序列時收集最可能的令牌。

維特比用於找到最可能的事件序列。 這將查看每個序列,並簡單地選擇最有可能的序列。

看一下Rabiner論文的第262-264頁,它應該都清楚了。 以下是本文直接引用的答案 - 您的問題:

“......應該注意的是,Viterbi算法在實現前向后向算法(方程19-21)的正向計算時是類似的(回溯步驟除外)。主要區別在於(公式33a) )以前的狀態,用於代替(等式20)中的求和程序。“

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM