尋找最可能的隱藏狀態序列 (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 一 過程分析 句子 經常有意見分歧 詞典 經常 經 有 有意見 意見 分歧 見 意 見分歧 分 概率 ...