統計學習方法——第10章 隱馬爾可夫模型(HMM)

介紹: 

      隱馬爾可夫模型(Hidden Markov Model,HMM)是關於時序的概率模型,描述了由隱藏的馬爾科夫鏈隨機生成的不可觀測的狀態隨機序列,再由各個狀態生成一個觀測而產生的觀測隨機序列的過程。其中,隱藏的馬爾科夫鏈隨機生成的不可觀測的狀態隨機序列稱爲狀態序列(state sequence),每個狀態生成一個觀測,而由此產生的觀測的隨機序列稱爲觀測序列(observation sequence)。

     舉例:盒子和球模型。假設有四個盒子,每個盒子裏面裝有紅色和白色的小球,小球的數量如下:

盒子和球模型
盒子 1 2 3 4
紅球 5 3 6 8
白球 5 7 4 2

   抽樣規則如下:開始從四個盒子中等概隨機選取一個盒子,從這個盒子中隨機選取一個小球,記錄小球顏色,然後將小球放回。規則爲:如果選取的爲1號盒子,則下次只能從2號盒子中抽取;如果抽取的盒子爲2號或者3號盒子,分別以0.4和0.6的概率從左邊盒子和右邊盒子中抽取;如果選取的爲4號盒子,則以0.5的概率從4號盒子或者1號盒子中抽取,記錄小球的顏色,然後放回。如此下去,重複進行5次試驗,得到小球的觀測結果爲(紅球記爲R,白球記爲W):

                                                                         O = \{R, R, W,W,R\}

   在這個過程中,觀察者只能觀察到小球的顏色序列,觀測不到盒子序列,討論的問題是根據結果預測可能的盒子序列。

形式化描述:

  設N爲可能的狀態數(如4個盒子),M爲可能的觀測數(如紅球和白球);

  設I是長度爲T的狀態序列,O是對應的觀測序列:I=\{i_1, i_2,...,i_T \},O = \{o_1, o_2, ..., o_T \}

   設狀態轉移概率矩陣:A=[a_{ij}]_{N\times N}。其中,a_{ij} = P(i_{t+1}=q_j|i_t=q_i),即t時刻狀態q_iq_j轉移概率

   設觀測概率矩陣:B=[b_j(k)]_{N\times M}。其中,b_j(k)=P(o_t=v_k|i_t=q_j),即t時刻狀態q_j生成觀測v_k的概率

   設初始狀態概率向量:\pi=(\pi_{i})。其中,\pi_i = P(i_1=q_i),即t=1時刻狀態q_j的概率

    由此,隱馬爾可夫模型的三要素:\lambda=(A,B,\pi)

圖形化描述:

馬爾科夫模型的基本假設:

  • 齊次馬爾科夫假設:假設隱藏的馬爾科夫鏈在任意時刻t的狀態只依賴前一時刻的狀態,與其他時刻的觀測和狀態無關;
  • 觀測獨立性假設:假設任意時刻的觀測只依賴該時刻馬爾科夫鏈的狀態,與其他觀測和狀態無關;

馬爾科夫模型的基本問題:

      1)概率計算問題

            給定模型\lambda=(A,B,\pi)和觀測序列O = \{o_1, o_2, ..., o_T \},計算在模型參數\lambda下的觀測序列O出現的概率P(O|\lambda)

      2)學習問題

            已知觀測序列O = \{o_1, o_2, ..., o_T \},使用最大似然準則估計模型參數\lambda=(A,B,\pi),使得P(O|\lambda)最大。

      3)預測問題

            給定模型\lambda=(A,B,\pi)和觀測序列O = \{o_1, o_2, ..., o_T \},求使得P(I|\lambda)最大時對應的狀態序列。

1)概率計算問題 <---->前向後向算法

    

      \alpha_T(i)=P(o_1,o_2, ...,o_T,i_T=q_i|\lambda),則P(O|\lambda)=\sum_{i=1}^N\alpha_T(i) \ \ \ \ (1)

       令 \beta_t(i)=\sum_{i=1}^Na_{ij}b_j(o_{t+1})\beta_{t+1}(j),則P(O|\lambda)=\sum_{i=1}^N\pi_ib_j(o_1)\beta_1(t) \ \ \ \ (2)

       合併式:

                                             P(O|\lambda) = \sum_{i=1}^N\sum_{j=1}^N\alpha_t(i)a_{ij}b_j(o_{t+1})\beta_{t+1}(j))

          當t=1時對應(1)式前向算法,當t=T-1時對應(2)式後項算法。

2)學習問題<---->Baum-Welch算法(EM算法)

      設\hat\lambda是隱馬爾可夫模型當前的估計參數,\lambda是要極大化的隱馬爾可夫模型參數,定義Q函數:

                                              Q(\lambda, \hat\lambda)=\sum_I\log(P(O,I|\lambda)P(O,I|\hat\lambda))

     EM算法:

           E步:Q(\lambda, \hat\lambda)=\sum_I\pi P(O,I|\hat\lambda))+\sum_IAP(O,I|\hat\lambda))+\sum_IBP(O,I|\hat\lambda))

           M步:極大化Q(\lambda, \hat\lambda),求模型參數(A,B,\pi)

                      \pi_i = \dfrac{P(O,i_1|\hat\lambda)}{P(O|\hat\lambda)}=\gamma_1(i)

                      a_{ij} = \dfrac{\sum_i^{T-1}P(O,i_t=i, i_{t+1}=j|\hat\lambda)}{\sum_i^{T-1}P(O,i_t=i|\hat\lambda)}=\dfrac{\sum_{t=1}^{T-1}\xi_t(i,j)}{\sum_{t=1}^{T-1}\gamma_t(i)}

                     b_{j}(k) = \dfrac{\sum_t^{T}P(O, i_{t}=j|\hat\lambda)I(o_t=v_k)}{\sum_t^{T}P(O,i_t=j|\hat\lambda)}=\dfrac{\sum_{t=1,o_t=v_k}^{T-1}\gamma_t(j)}{\sum_{t=1}^{T-1}\gamma_t(j)}

3)預測問題<---->維特比算法

      定義在時刻t的狀態爲i的所有單個路徑(i_1,i_2,...,i_t)中概率最大的爲:\delta_t(i)=\max_{i_1,...,i_{t-1}}P(i_t=i,i_{t-1}, ..., i_1, o_t, ...,o_1|\lambda)

      變量\delta_t(i)的遞推公式:\delta_{t+1}(i)=\max_{i_1,...,i_{t}}P(i_{t+1}=i,i_{t-1}, ..., i_1, o_{t+1}, ...,o_1|\lambda)=\max_{1\leq j\leq N}[\delta_t(j)a_{ji}]b_i(o_{t+1})

      定義在時刻t的狀態爲i的所有單個路徑(i_1,i_2,...,i_t)中概率最大的路徑的第(t-1)個節點爲:\Psi _t(i) = \max_{1\leq j\leq N}[\delta_{t-1}(j)a_{ji}]

      終止條件:

                                                               P^*=\max_{1 \leq i \leq N}\delta_T(i)

                                                               i_T^*=\max_{1\leq i \leq N}[\delta_t(i)]

發佈了97 篇原創文章 · 獲贊 14 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章