理解HMM演算法

2022-10-09 01:24:16 字數 2051 閱讀 4024

(1)狀態:生成觀測值的變數(上圖中的「吃」和「睡」)。

(2)觀測值:狀態乘上輸出概率對應的輸出(上圖中的橙色節點)。

(3)輸出概率:輸出概率矩陣裡面的某個元素(狀態和觀測值兩層之間的某個權重引數)。

(4)輸出概率矩陣:由輸出概率組成的矩陣。

(5)bi: 第i個狀態(比如」睡「)輸出所有觀測值對應的概率構成的行向量(上圖中所有紅線構成的行向量)。

(6)o1:表示我要輸出第乙個觀測值。不是把o1做為自變數輸入到bi中,只是乙個記號(個人表示沒什麼用)。

(7)πi:走 第i個狀態的初始概率(p(start->吃)=0.3)。

(8)αi(t):(阿爾法)在給定馬爾可夫模型中,到t時刻為止,狀態們在t個時刻,每個時刻都由所有狀態中的乙個輸出某個觀測值,一共輸出了t個觀測值觀測序列,記為

,,並且t時刻輸出ot的狀態為qi(狀態用q表示),把出現上述場景的概率記作αi(t),稱作前向概率(應該是在做前向計算,所以形象成為」前向概率「)。

(9)aij:(字母a,注意不是阿爾法,在第一張圖中的「推導」公式裡面的)概率轉移矩陣中第i行,第j列對應的概率(今天為第i個狀態,明天為第j個狀態的概率。網路圖示中「吃->吃」、「吃->睡」和「睡->睡」之間連線的數        值)。

(10)

轉移概率矩陣:如下圖a所示。

:表示第1時刻,第i個狀態的初始概率πi乘以第i個狀態對應的輸出矩陣的第i行向量。

例如:假設第i個狀態為「睡」,那麼πi等於0.7,bi等於[0.3,0.5,0.2],那麼第1時刻的狀態為「睡」,觀測值為「哭」、「沒精神」和「找媽媽」的概率分別為0.7*[0.3,0.5,0.2],如果第一時刻的觀測值為「哭」,那麼α1(t)=0.21.

:t+1時刻,所有t時刻的前向概率裡面按時的t時刻的狀態轉化為j狀態後再乘以j對應的輸出概率總和。

以第2時刻為例:狀態j為「吃」,那麼αj(t+1)表示第二時刻,第二狀態為「吃」,觀測值序列為的o1o2概率,其等於第1時刻的前向概率αi(t) 乘以 第一時刻的前向概率裡面暗示的第一時刻的狀態i轉化為狀態j的概率(aij),i有可能是「吃」,也有可能是「睡」,我們要計算的是第2時刻狀態為「吃」的概率,根據馬爾可夫模型,第二時刻的「吃」和第一時刻的狀態有關,但是我們不知道第一時刻到底是什麼狀態,所以用概率的方式全部考慮進來。

[0.21,0.03,0.02]*0.1*bjo

2(0.1表示「吃1」->「吃2」的概率)+[0.21,0.15,0.14]*0.9*bjo

2(0.9表示「睡1」->「吃2」的概率)

乘上轉移概率之後,在乘以「吃」對應的輸出概率行向量:

[0.021,0.003,0.002]tx[0.7,0.1,0.2] + [0.189,0.135,0.126]t

x[0.7,0.1,0.2](考慮了所有情況,可能會有點費解,請看下一行)

如果第一時刻的觀測值為「哭」,第二時刻的狀態為「吃」,觀測值為「哭」,那麼αj(t+1)=0.21*0.1*0.7=0.0147 + 0.21*.0.9*0.7=0.1323.

:μ:給定的馬爾可夫模型。

o:1-t+1時刻的觀測值序列。

在馬爾可夫模型μ中,輸出序列o的概率為:輸出o並且t+1時刻的狀態為qi的概率綜合。

本文截圖部分來自:隱馬爾科夫模型(hmm)一前向與後向演算法 - 知乎 (zhihu.com)

了解 HMM 演算法

回答 2 什麼是hmm模型?隱馬爾可夫模型 hmm 可以用五個元素來描述,包括2個狀態集合和3個概率矩陣 1.隱含狀態 s 這些狀態之間滿足馬爾可夫性質,是馬爾可夫模型中實際所隱含的狀態。這些狀態通常無法通過直接觀測而得到。例如s1 s2 s3等等 2.可觀測狀態 o 在模型中與隱含狀態相關聯,可通...

HMM向前演算法

1.hmm的第乙個問題 已知乙個hmm模型 2.演算法思路 實質上是動態規劃演算法,關鍵是找到遞推公式 2.1 計算時刻1的各種狀態的向前概率 2.2 遞推2,3.t時刻的概率 2.3 計算最終結果 3.c 已知 hmm隱含狀態數量,狀態轉換概率,狀態的發射概率,以及初始狀態概率分布,根據指定可見狀...

機器學習 HMM 演算法

已知觀測序列o o1,ot 估計模型 a,b 的引數,使得在該模型下觀測序列概率 p o 極大似然估計的方法 樣本中時刻 t 處於狀態 i 時刻 t 1 轉移到狀態 j的頻數ai j,則轉移狀態概率矩陣ai j 的估計a ij a ij j 1na ij樣本中狀態為 j 並觀測為 k的頻數是bj k...