天天看點

HMM解讀

HMM的三個基本問題:

Problem 1 (Likelihood): Given an HMM λ = (A,B) and an observation sequence O, determine the likelihood P(O|λ).

Problem 2 (Decoding/Prediction): Given an observation sequence O and an HMM λ = (A,B), discover the best hidden state sequence Q.

Problem 3 (Learning): Given an observation sequence O and the set of states in the HMM, learn the HMM parameters A and B.

Markov chain: 馬爾科夫鍊: 為狀态空間中經過從一個狀态到另一個狀态的轉換的随機過程。該過程要求具備“無記憶”的性質:下一狀态的機率分布隻能由目前狀态決定,在時間序列中他前面的事件均與之無關。這種特定類型的“無記憶性”稱作馬爾科夫性質。

在 Markov chain 的每一步,系統根據機率分布,可以從一個狀态變到另一個狀态,也可以保持目前狀态。狀态的改變叫做轉移,與不同的狀态改變相關的機率叫做 轉移機率。

HMM: 是關于時序的機率模型,描述由一個隐藏的馬爾科夫鍊随機生成不可觀測的狀态随機序列,再由各個狀态生成一個觀測而産生觀測随機序列的過程。 HMM随機生成的狀态的序列,成為狀态序列(state sequence);每個狀态生成一個觀測,而由此産生的觀測的随機序列,成為觀測序列(observation sequence).序列的每一個位置又可以看作是一個時刻。

總結:首先它是一個過程。HMM  生成 state sequence(不可觀測的random sequence)  生成 observation sequence(每一個 狀态産生一個 觀測,由于state是随機的,故而 觀測序列也是随機的)

HMM:初始狀态機率分布(∏),狀态轉移機率分布(A)以及觀測機率分布(B)

由一個向量和兩個矩陣 描述的HMM對于實際系統有着巨大的價值,雖然 經常隻是一種近似,但他們卻是經得起分析的。HMM通常解決的問題包括:

  1. 對于一個觀察序列 比對最可能的系統----評估,使用 前向算法(forwward algorithm)解決
  2. 對于已生成的一個觀察序列,确定最可能的隐藏狀态序列—解碼/預測,使用Viterbi算法解決
  3. 對于已生成的觀察序列,決定最可能的模型參數—學習,有監督(利用頻率代替機率)和無監督(Baum-Welch算法)

前向算法:

利用動态規劃的思想,進行遞推,

前向機率: 時刻t時,隐藏狀态狀态為qi ,觀測狀态序列為 O1,O2,…Ot的機率為 前向機率,記為

HMM解讀

則t+1時刻,對應的隐藏狀态為i的前向機率 為:

HMM解讀

解釋說明:

at+1(i)指明是 t+1時刻,隐藏狀态為 i,觀測序列為 O1,O2,…Ot+1 的前向機率

at(j)*aji :前半部分意思是 t時刻,狀态為j的前向機率,aji 意思是由狀态j轉移至狀态i的轉移機率。

j=1N

HMM解讀

at(j)*aji 意思是 轉移至 目前 狀态i有N中方式,故而狀态i的機率為 N種方式的和。此整體可以了解為 t+1時刻狀态為i的機率

Bi(Ot+1) 意思是t+1時刻,由 狀态i得到觀測Ot+1的機率。

具體算法流程如下

HMM解讀

以下面例子說明:

HMM解讀
HMM解讀

如上圖所示,先求t=1時刻,前向機率為

 a1(i)=∏ibi(O1)  i=1,2,3

分别求得 在狀态 i=1,2,3狀态下的前向機率

T=2:

   由于t=1時刻,各個狀态的前向機率已經求得,故而直接帶入公式即可,如上圖所示。

依次類推,即可求得a3(i), i=1,2,3

HMM解讀

後向算法:

後向算法與前向算法思想都一緻,隻不過方向 相反而已,隻要 讀懂 每個變量 是什麼意思,即可明白,下面是 李航 老師 的 截圖,自己看一下 就 ok了

HMM解讀

學習算法: 直接 看 李航 老師 的 pdf即可

預測算法:

  近似算法:

HMM解讀

維特比算法(viterbi algorithm):

   用動态規劃求機率最大路徑(最優路徑),這時一條路徑對應着一個狀态序列。

   即 認為 t+1時刻的最優路徑是基于t時刻的路徑也為最優,

HMM解讀

對上述變量的解釋:

  1. 公式10.44意思是 在時刻t, 狀态為 i,且 觀測為 O1,O2,…Ot 的機率中最大的,因為 根據狀态轉移矩陣可知, t時刻,到達狀态i的路徑有很多種(從t-1時刻的j狀态,s.t. 1<=j<=N,   共N個狀态而來),故而需要擷取 最優值,也即機率最大值
  2. 公式 10.45 中 中括弧 意思是,在t時刻,狀态為j 的最大機率 路徑,轉移至 t+1時刻 i狀态的機率。整個公式的意思是 t+1時刻狀态 為i且 在t+1時刻 i狀态下 觀測是 Ot+1 的最大機率
  3. 公式 10.46 意思是,擷取 時刻t,機率最大 路徑 的 第t-1個狀态索引(狀态節點)

下面是李航 老師 對viterbi算法的概述:

HMM解讀

知乎: https://zhuanlan.zhihu.com/albertwang

微信公衆号:AI-Research-Studio

HMM解讀

​​

下面是贊賞碼

HMM解讀
HMM解讀

繼續閱讀