日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HMM及维特比算法

發(fā)布時間:2023/12/2 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HMM及维特比算法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

參考

HMM:https://blog.csdn.net/sinat_25346307/article/details/79119366

Viterbi算法:https://blog.csdn.net/shenxiaoming77/article/details/79228378

?

一、HMM定義? 以詞性標(biāo)注為例說明

圖1 詞性標(biāo)注任務(wù)

1、問題:如圖1所示,已知x,求x的詞性標(biāo)注y。

? ? 該問題轉(zhuǎn)化為數(shù)學(xué)語言即為:在已知x的條件下計(jì)算得y的最大概率,如公式(1)所示

(1)

? ? ?由條件概率公式可得公式(2)

(2)

? ?由于x是已知的,所以公式(2)中的p(x)可以省去,故公式(2)可以用公式(3)

(3)

? ? 在HMM中,我們實(shí)際使用公式(4)的形式來求解,公式(3)使用條件概率公式可得公式(4)

(4)

?

2、HMM是一種有監(jiān)督學(xué)習(xí),需要有訓(xùn)練數(shù)據(jù)訓(xùn)練參數(shù)。

? ? 圖2為一條訓(xùn)練數(shù)據(jù),已知句子x的詞性y,其中PN為名詞,V為動詞,D為冠詞,N為名詞。

圖2已知句子x的詞性y

可得P(y)公式(5)

? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

(5)

則可得公式(6)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

(6)

將其一般化,可將第一步的概率P(y)稱為轉(zhuǎn)移概率(transition probability),第二步的概率稱為輸出概率(emission probability)。其概率值都可以通過訓(xùn)練數(shù)據(jù)得到。

第1步P(y)?轉(zhuǎn)移概率可表示為公式(7)

(7)

第2步輸出概率可表示為公式(8)

(8)

將公式(7)(8)帶入公式(4)即為HMM模型,如公式(9)所示。

?

? ? ? ? ? ? ?

(9)

?

?

二、HMM具體舉例,使用Viterbi算法

1、問題

假設(shè)已知:

? ? ? ? ? ? ? ? ? ?第1天小明感覺正常。

? ? ? ? ? ? ? ? ? 第2天小明感覺有點(diǎn)冷。

? ? ? ? ? ? ? ? ? 第3天小明覺有點(diǎn)頭暈。

? ? ? 小明的身體觀察序列x為:正常、冷、頭暈

? ? ? 小明身體的隱藏狀態(tài)有2種分別為:健康、發(fā)燒

求已知x的情況下,推斷出小明每一天的身體狀態(tài)呢?

?

2、轉(zhuǎn)化為數(shù)學(xué)語言

? ? ?正常、冷、頭暈分別用0、1、2表示;健康、發(fā)燒分別用A、B表示。

? ? 則小明的觀察序列x為:0,1,2

? ?小明身體的隱藏狀態(tài)有2種分別為:A、B

?

已知概率:

1)初始概率

? ? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? ?

2)轉(zhuǎn)移概率

? ? ? ? ? ? ? ?

? ? ? ? ? ? ??

3)輸出概率

? ? ? ? ? ? ?

? ? ? ? ? ? ?

?

3、問題進(jìn)一步具體化

求:推斷出小明每一天的身體狀態(tài)呢?

已知:觀察序列x和HMM模型。HMM模型即為初始概率、轉(zhuǎn)移概率、輸出概率。

?

4、求解,使用維特比算法

1)第1天 l=1, 取值為0,??的取值為A或B

? ? ? ?由HMM模型公式(9)可得到公式(10)

(10)

? ? ? ? ? ? 注意:這里實(shí)際為

? ? ? ?當(dāng)時, 帶入公式(10)可得到公式(11)

? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ?

(11)

? ? ? ?當(dāng)時, 帶入公式(10)可得到公式(12)? ? ? ? ? ? ? ? ? ? ? ? ?

?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? ? ??

(12)

?

2)第2天 l=2,取值為1,??的取值為A或B

? ? ? ? ? ?由HMM模型公式(9)可得到公式(13)

(13)

? ? ? ?1、)當(dāng)時,公式(13)可化為公式(14)

? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ????

? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ??

(14)

? ? ? ? ? ? ? ?公式(14)中的可取A或B,此時由公式(9)可得公式(15)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ?? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

(15)

? ? ? ? ? ? ? ? 由公式(15)可看出,當(dāng)取A時,概率最大,記錄此條路徑。

這里在解釋一下:

?????? 當(dāng)前觀測值為1,假定當(dāng)前隱含狀態(tài)為健康A(chǔ),求當(dāng)前的聯(lián)合概率分布?。首先從昨天的狀態(tài)到當(dāng)前的健康A(chǔ)狀態(tài)有兩種路徑(昨天的狀態(tài)還沒確定,而只是先計(jì)算出每個狀態(tài)的概率分布): 昨天健康A(chǔ) ----> 今天健康A(chǔ),?? 昨天發(fā)燒 B-----> 今天健康A(chǔ)。 這兩個路徑分別的概率為 0.3 * 0.7 以及 0.04 * 0.4, 可以看到 當(dāng)前如果為健康A(chǔ)時,昨天為健康A(chǔ)的概率更大,因此我們選定昨天健康 A----> 今天健康A(chǔ) 這條路徑,即記錄下當(dāng)前為健康A(chǔ)時,昨天也為健康A(chǔ)狀態(tài), 然后求得當(dāng)前的聯(lián)合概率分布?= (0.3 * 0.7 ) * 0.4即如下:

??= max{0.3*0.7, 0.04*0.4} * 0.4=0.3* 0.7 * 0.4=0.084

此時我們需要記錄概率最大的路徑的前一個狀態(tài),即0.084路徑的前一個狀態(tài),我們在小本本上記下,第二天健康A(chǔ)時,第一天的狀態(tài)也為健康A(chǔ)。

? ? ? ? 2、)當(dāng)時,公式(13)可化為公式(16)

? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ?? ?

? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ??

(16)

? ? ? ? ? ? ? ? ?公式(16)中的可取A或B,此時由公式(9)可得公式(17)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??? ? ??

? ? ? ? ? ? ? ? ? ? ??? ? ? ?? ?

? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ?

(17)

? ? ? ? ? ? 由公式(17)可看出,當(dāng)取A時,概率最大,記錄此條路徑。

? ? ? ? ? ? ? ? ? ?一樣的道理,從昨天的狀態(tài)到當(dāng)前的發(fā)燒B狀態(tài)也有兩種路徑:? 昨天健康A(chǔ) ----> 今天發(fā)燒B,?? 昨天發(fā)燒B -----> 今天發(fā)燒B,這兩個路徑分別的概率為 0.3 * 0.3以及 0.04 * 0.6, 可以看到 當(dāng)前如果為發(fā)燒B時,昨天為健康A(chǔ)的概率更大,因此我們選定昨天健康A(chǔ) ----> 今天發(fā)燒B 這條路徑,即記錄下當(dāng)前為發(fā)燒B時,昨天也為健康B狀態(tài), 當(dāng)前的聯(lián)合概率分布= (0.3 * 0.3 ) * 0.3, 即如下:

= max{0.3*0.3,? 0.04*0.6} * 0.3=0.027,

同樣的在0.027這個路徑上,第二天為發(fā)燒B時,第一天也是健康A(chǔ)的。

?

3) 第3天 l=3, 取值為2,?的取值為A或B

? ? ? ? ? ?由HMM模型公式(9)可得到公式(18)

? ? ? ? ? ? ? ? ? ? ??

? ? ? ??

? ? ???

(18)

? ? ? ? ??1、)?的取值為A,公式(18)可化為公式(19)

? ? ? ? ? ? ? ? ? ?

? ? ??

? ? ??

(19)

? ? ? ? ? ? ? ? ? ?公式(19)中的可取A或B,此時由公式(9)可得公式(20)

??????????? ???????????????

? ? ? ? ? ? ? ? ? ? ?? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? ??? ??

(20)

? ? ? ? ? ? ? ?由公式(20)可看出,當(dāng)取A時,取A時;概率最大,記錄此條路徑。

?

? ? ? ? ? ? ? ? 2、)? 的取值為B,公式(18)可化為公式(21)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ??

????????????????????

(21)

? ? ? ? ? ? ? ? ? ? ?公式(21)中的可取A或B,此時由公式(9)可得公式(22)

? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

(22)

? ? ? ? ? ? ? ? ? ? ? 由公式(22)可看出,當(dāng)取B時,取A時;概率最大,記錄此條路徑。

4)到第三天是最后一天, 此時看第三天為發(fā)燒B時狀態(tài)概率最大,即為最優(yōu)狀態(tài),即P(最優(yōu))=0.01512,這樣我們可以得到最優(yōu)路徑的終點(diǎn),是發(fā)燒B狀態(tài)。

? ? ? ? ? ? ?由最優(yōu)狀態(tài)開始回溯。根據(jù)前面所記錄的, 在求得第三天發(fā)燒的時候,我們記錄的第二天最大概率的狀態(tài)為健康A(chǔ),因此確定第二天為健康A(chǔ)狀態(tài),繼續(xù)回溯,當(dāng)?shù)诙鞛榻】礎(chǔ)狀態(tài)時,我們記錄的第一天是健康A(chǔ)的。這樣,我們的狀態(tài)序列逆推出來了。即為:健康A(chǔ),健康A(chǔ),發(fā)燒B;這就是小明這3天的身體狀態(tài)。

?

5)別人也給出了一個HMM概率圖 可以參考下:

圖3?? HMM概率圖

?

?

總結(jié)

以上是生活随笔為你收集整理的HMM及维特比算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。