維特比演算法 Viterbi Algorithm

2021-07-02 13:13:11 字數 1765 閱讀 9935

尋找最可能的隱藏狀態序列 (finding most probable sequence of hidden states)

對於乙個特殊的隱馬爾科夫模型(hmm)及乙個相應的觀察序列,我們常常希望能找到生成此序列最可能的隱藏狀態序列。

之前的那個問題變轉,

假設連續觀察3天的海藻濕度為(dry,damp,soggy),求這三天最可能的天氣情況。天氣只有三類(sunny,cloudy,rainy),而且海藻濕度和天氣有一定的關係。

已知:1. 隱藏的狀態:sunny,cloudy, rainy;海藻濕度有四類

2. 觀察狀態序列:;

3. 初始狀態序列:sunny(0.63),cloudy(0.17),rainy(0.20);

4. 狀態轉移矩陣:

sunny

cloudy

rainy

sunny

0.50.375

0.125

cloudy

0.25

0.125

0.625

rainy

0.25

0.375

0.375

cloudy(昨天)->sunny(今天)的概率是0.25;

sunny(昨天)->rainy(今天)的概率是0.125.

5. 混淆矩陣(海藻濕度與天氣的相關性):

drydryish

damp

soggy

sunny

0.60.2

0.15

0.05

cloudy

0.25

0.25

0.25

0.25

rainy

0.05

0.10

0.35

0.50

由hmm可知,day2的天氣僅取決於day1;day3的天氣又只取決於day2的天氣。

day1由於是初始狀態,我們分別求

p(day1-sunny)

=0.63*0.6;

p(day1-cloudy)=0.17*0.25;

p(day1-rain)=0.20*0.05;

choose max,

得到p(day1-sunny)最大,得出第1天sunny的概率最大。

day2的天氣又取決於day1的天氣狀況,同時也受day2觀察的海藻情況影響

p(day2-sunny)= max *0.15;

p(day2-cloudy)= max *0.25;

p(day2-rainy)= max *0.35;

choosemax,得到p(day2-rainy)最大,得出第2天rainy的概率最大。

故是前兩天最大可能的天氣序列。

day3的天氣又取決於day2的天氣狀況,同時也受day3觀察的海藻情況影響

p(day3-sunny)= max *0.05;

p(day3-cloudy)= max *0.25;

p(day3-rainy)= max *0. 05;

choosemax,得到p(day3-rainy)最大,得出第3天rainy的概率最大。

故是這三天最可能的天氣序列。

維特比演算法

維特比演算法在機器學習中非常重要,在求解隱馬爾科夫和條件隨機場的 問題中均用到了維特比演算法。實際上,維特比演算法不僅是很多自然語言處理的解碼演算法,也是現代數字通訊中使用最頻繁的演算法。以乙個簡單的隱馬爾科夫模型為例,n 為觀測符號,y y1,y2,y n 為隱狀態序列,要求的 問題為 y 1,y...

維特比演算法

維特比演算法主要用來解決籬笆網路,老實講我第一次聽到這個名字是發懵的,網路我是知道的,說白了就是圖 迪傑特斯拉演算法 但是,籬笆網路是值下面這種一列一列的圖,只會前面連線到後面,而且不會跳層連線,可以說是一種非常特殊且友好的圖了 正常的圖能逼死強迫症 x max xx x x x xma x x 這...

維特比演算法 python 維特比演算法實現分詞

維特比演算法原理可以參考以下文章,講解的非常詳細,那麼接下來將講解維特比演算法如何應用到分詞演算法中,並如何用python 實現。如何通俗地講解 viterbi 演算法?www.zhihu.com 一 過程分析 句子 經常有意見分歧 詞典 經常 經 有 有意見 意見 分歧 見 意 見分歧 分 概率 ...