1. 程式人生 > 其它 >HMM 隱馬爾科夫模型

HMM 隱馬爾科夫模型

Hidden Markov Model (HMM) 隱馬爾可夫模型

離散馬爾可夫過程:一個系統,其在任意時刻會處於且只能處於N個狀態中的一個。記狀態集為$S=\{S_1, S_2, ..., S_N\}$,系統在時刻t時的狀態為$q_t$,意味著$q_t=S_i\in S, 1\leqslant i \leqslant N$。這裡的時刻的內涵在於其是某種序列上的一點,該方法可對任意序列都有效,如時序、空間軌跡等。

系統在離散的時刻根據以前的狀態以既定的概率轉到下一個狀態:

p(q_{t+1}| q_t, q_{t-1}, ...)

對於一階馬爾可夫模型,系統在下一個時刻的狀態僅依賴於當前時刻的狀態,而與更早的狀態無關:

p(q_{t+1} | q_t, q_{t-1}, ...) = p(q_{t+1} | q_t)

轉移概率:系統從一個狀態轉移到另一個狀態的概率。可以簡化模型,假設狀態間的轉移概率與系統發展過程無關(即與時間無關),亦即$p(q_{t+1}|q_t)\equiv p(q_{t'+1}|q_{t'}), \forall t, t'$。轉移概率矩陣$\bm A_{N\times N}$,其中元素$A_{ij}$表示從狀態i轉移到狀態j的概率,由於一個狀態i到所有可能的狀態(包括相同的狀態i)的轉移概率之和應該為1,故$A_{ij}\ge 0 \wedge \sum_j A_{ij}=1$

在一個可觀測的馬爾可夫模型(observable Markov model)中,狀態是可被觀測的,在任意時刻t,我們都可知道其對應的狀態$q_t$

,並隨著過程的發展,系統不斷地從一個狀態轉移到另一個狀態。

隱馬爾可夫模型
Hidden Markov Model, HMM。在隱馬爾可夫模型中,系統的狀態是不可被觀測的,但是系統到達一個狀態時,可以記錄一個觀測,這個觀測是此時系統狀態的一個概率函式。

HMM中假設狀態轉移概率不依賴於時間t,即在任何時候,從狀態$q_i$轉移到狀態$q_j$的概率均相同。

模型可能的狀態的集合記S,可能的觀測結果種類的集合記V。模型狀態序列記Q,觀測序列記O。時間t時,模型狀態為$q_t$,觀測(結果)為$O_t$。初始時刻的狀態記$q_1$

對於一個既定模型,一個同樣的觀測序列可以由多個不同的狀態序列產生而來,但我們一般只關心具有最大概率產生觀測序列的那個狀態序列。

形式化HMM:

  1. 模型狀態集S。狀態集記為$S=\{S_1, S_2, ..., S_N\}$,設有N種可能狀態。
  2. 觀測結果種類集V。觀測結果種類集合記$V=\{v_1, v_2, ..., v_M\}$,設有M種可能類別,觀測序列的元素即從該集合中取樣。
  3. 狀態轉移概率 (transition probability matrix):
\bm A = [a_{ij}]\in\R^{N\times N}, \text{ 其中 } a_{ij}\equiv p(q_{t+1}=S_j | q_t=S_i), \forall t

其中的“恆等且對所有t”($...\equiv ... \forall t$)即表示轉移概率與時間無關,HMM假設轉移概率與時間(系統狀態轉移歷史)無關。
4. 觀測概率 (emission probability matrix, observation likelihoods)

\bm B=[b_{jm}]\in\R^{N\times M}, \text{ 其中 } b_{jm}\equiv p(O_t=v_m | q_t=S_j), \forall t

即模型狀態為$S_j$時,觀測結果的種類為$v_m$的概率,HMM中假設其與時間無關。
5. 觀測序列O。$O=[o_1, o_2,\cdots, o_T]$,一個觀測值$o_t$從集合V中取樣,其還隱含一個不可觀測的狀態q_t(即HMM中的hidden variable)。
6. 初始時刻各狀態概率:

\bm\Pi = [\pi_i]\in\R^N, \text{ 其中 } \pi_i = p(q_1=S_i), 1\le i \le N, \sum_{i}^N \pi_i = 1

$\lambda=\left(\bm A, \bm B, \bm \Pi\right)$被稱作HMM的引數集(其中蘊含了N,M)。

HMM關心的3類問題:

  1. 估計指定觀測序列的概率(Likelihood)。已知模型$\lambda$,希望估計出指定觀測序列$O=<O_1, O_2, ..., O_T>$的概率,即$p(O|\lambda)$
  2. 找出狀態序列$Q$ (Decoding)。已知模型$\lambda$以及一個觀測序列O,希望找出狀態序列$Q=<O_1,O_2,...,O_T>$,可能的解會有若干個,但我們只關心其中具有最大概率產生觀測序列O的那個狀態序列$Q^*$,即
Q^* = \arg\max_Q p(O| Q,\lambda)
  1. 找出模型引數$\lambda$ (Learning)。已知以觀測序列組成的訓練集$\mathcal X={O^{(k)}}$(即其中一個樣本k是一個觀測序列$O^{(k)}=<O_1^{(k)},O_2^{(k)},...>$),希望學習到具有最大概率產生$\mathcal X$的模型引數$\lambda^*$,即
\lambda^* = \arg\max_\lambda p(\lambda | \mathcal X)

Markov Random Fields 馬爾科夫隨機場

A Markov random field is a set of random variables having the Markov property described by an undirected graph.

A Markov random field is known as a Markov network or undirected graph model. (無向圖概率模型)

Differences between Markov networks and Bayesian networks: Bayesian networks are directed and acylic, and Markov networks are undirected and may be cylic.

A multivariate normal distribution forms a Markov random field $G=(V,E)$ if the pair nodes of a zero entry inside the inverse covariance matrix corresponds to the unreachability between the pair nodes. i.e.:

\bm X=[\bm X_v]_{v\in V} \sim \mathcal{N}(\bm \mu, \bm \Sigma)

such that

[\bm \Sigma^{-1}]_{uv} = 0 \iff <u,v>\not\in E

.