Viterbi演算法的筆記

2021-10-01 11:05:51 字數 703 閱讀 9509

關於viterbi的理解,網上有很多小故事和例子來解釋。

下面只是自己對viterbi的一些總結筆記。

如果要計算s到e的最短距離,最開始的想法都是先遍歷s到e的所有路徑,然後找到最短的路徑。

而viterbi演算法就是從s到e尋找路徑的過程中,逐步優化。具體是:

s到a的三個點的距離不能武斷地就指出哪條是最短的。每條路的選擇都有可能是最終的最短路徑。

接著看a到b的距離。如果按遍歷來算算,a到b的距離將會有 9 種可能。但是假設s-a1-b2的距離是最短的。此時此刻,就可以把s-a1-b1、s-a1-b3的路徑全部去掉。以此類推假設s-a2-b3、s-a3-b1是最短路徑。那麼最終a到b的路徑將會縮減到 3 種。

按照這個方法,總體來說,a到b到c,從原來的27種選擇,變成最後的 6 種選擇,這樣就會大大減少不必要的開銷。

簡單理解viterbi演算法

viterbi演算法其實就是多步驟每步多選擇模型的最優選擇問題,其在每一步的所有選擇都儲存了前續所有步驟到當前步驟當前選擇的最小總代價 或者最大價值 以及當前代價的情況下前繼步驟的選擇。依次計算完所有步驟後,通過回溯的方法找到最優選擇路徑。符合這個模型的都可以用viterbi演算法解決。隱含的身體狀...

viterbi演算法 python版

牛mm細心給我講了乙個小時,終於明白它的含義,然後花了一兩節分布式資料庫的課實現了。當時牛mm還說不可能這麼快實現,結果不可能事還是發生了。發現python果真非常好用。不明白此演算法可以看這篇blog 初始化方法 viterbi演算法函式 結果列印輸出函式 nodes format path is...

維特比演算法(Viterbi)

import numpy as np state transfer np.array 0.5,0.2,0.3 0.3,0.5,0.2 0.2,0.3,0.5 狀態轉移矩陣 observe prob np.array 0.5,0.5 0.4,0.6 0.7,0.3 觀測概率矩陣 initial np....