隱馬爾可夫模型


馬爾可夫過程

  • 無后效性隨機過程
  • 定義:\(t_n\)時刻的狀態\(x_n\)的條件分布,僅僅與前一個狀態\(x_{n-1}\)有關,即\(P(x_n|x_1,\cdots,x_{n-1})=p(x_n|x_{n-1})\)
  • 時間和狀態的取值都是離散的馬爾可夫過程稱為馬爾可夫鏈

隱馬爾可夫模型

隱馬爾可夫模型\(\lambda\)可以用三元符號表示

\[\lambda=(A,b,\pi) \]

其中,\(A\)是狀態轉移概率矩陣,\(B\)是觀測概率矩陣,\(\pi\)是初始狀態概率向量

  • 包括概率計算問題、預測問題、學習問題三個基本問題:
    • 概率計算問題:給定模型\(\lambda\),計算觀測序列\(O\)出現的概率,可用前向和后向算法求解
    • 預測問題:也稱為解碼問題,已知模型參數和觀測序列\(O\),計算最可能的隱狀態\(I\),可用維特比算法
    • 學習問題:給定觀測序列\(O\),估計模型\(\lambda\)的參數,可使用Baum-Welch算法進行參數學習
  • 中文分詞
    • 有監督:對語料進行標注得到語料所有的隱狀態信息,然后使用簡單計數法對模型概率分布進行極大似然估計
    • 無監督:Baum-Welch算法,同時優化隱狀態序列和模型對應概率分布
  • 對聯合概率\(P(x,y)\)進行建模

概率計算問題

前向算法

前向概率定義:
給定模型\(\lambda\),定義到時刻\(t\)部分觀測序列為\(o_1,o_2,\cdots,o_t\)且狀態為\(q_i\)的概率為前向概率,記作:

\[\alpha_t(i)=P(o_1,o_2,\cdots,o_t,i_t=q_i|\lambda) \]

觀測序列概率的前向算法:

  • 輸入:模型\(\lambda\),觀測序列\(O\)

  • 輸出:觀測序列概率\(P(O|\lambda)\)

    1. 初始化前向概率,是初始時刻的狀態\(i_1=q_i\)和觀測\(o_1\)的聯合概率

    \[\alpha_1(i)=\pi_ib_i(o_1),\qquad i=1,2,\cdots,N \]

    1. 遞推:對\(t=1,2,\cdots,T-1\),

    \[\alpha_{t+1}(i)=\left[\sum \limits_{j=1}^N \alpha_t(j)a_{ji}\right]b_i(o_{t+1}) \]

    其中,\(a_{ji}\)是轉移概率,\(b_i\)是發射概率

    1. 終止

    \[P(O|\lambda)=\sum\limits_{i=1}^N \alpha_T(i) \]

后向算法

后向概率定義:
給定模型\(\lambda\),定義在時刻\(t\)狀態為\(q_i\)的條件下,從\(t+1\)\(T\)的部分觀測序列為\(o_{t+1},o_{t+2},\cdots,o_T\)的概率為后向概率,記作:

\[\beta_t(i)=P(o_{t+1},o_{t+2},\cdots,o_T|i_t=q_i,\lambda) \]

觀測序列概率的后向算法:

  • 輸入:模型\(\lambda\),觀測序列\(O\)

  • 輸出:觀測序列概率\(P(O|\lambda)\)

    1. 初始化后向概率,對最終時刻的所有狀態\(q_i\)規定\(\beta_T(i)=1\)

    \[\beta_T(i)=1,\qquad i=1,2,\cdots,N \]

    1. 遞推:對\(t=T-1,T-2,\cdots,1\),

    \[\beta_{t}(i)=\sum \limits_{j=1}^N a_{ij}b_j(o_{t+1})\beta_{t+1}(i) \]

    其中,\(a_{ij}\)是轉移概率,\(b_j\)是發射概率

    1. 終止

    \[P(O|\lambda)=\sum\limits_{i=1}^N \pi_ib_i(o_1)\beta_1(i) \]

學習問題

監督學習算法

假設已給訓練數據集包含\(S\)個長度相同的觀測序列和對應的狀態序列\(\{(O_1,I_1),\cdots,(O_S,I_S)\}\),那么模型參數可以用極大似然估計求得

但是人工標注數據代價高,所以會利用非監督學習方法

Baum-Welch算法

此時隱馬爾可夫模型可以看做一個含有隱變量的概率模型

\[P(O|\lambda)=\sum_IP(O|I,\lambda)P(I|\lambda) \]

其中,\(I\)是狀態序列,不可觀測。它的參數學習可以用EM算法實現。

  1. 確定完全數據的對數似然函數
    所有觀測數據寫成\(O=(o_1,o_2,\cdots,o_T)\),所有隱數據寫成\(I=(i_1,i_2,\cdots,i_T)\),完全數據是\((O,I)=(o_1,\cdots,o_T,i_1,\cdots,i_T)\)。完全數據的對數似然函數是\(\log P(O,I|\lambda)\)

  2. EM算法的E步:求\(Q\)函數\(Q(\lambda,\overline{\lambda})=\sum_I[\log P(O,I|\lambda)|O,\overline{\lambda}]\)

    \[Q(\lambda,\overline{\lambda})=\sum_I\log P(O,I|\lambda)P(O,I|\overline{\lambda}) \]

    其中\(\overline{\lambda}\)是當前參數估計值,\(\lambda\)是要最大化的參數。

    \[P(O,I|\lambda)=\pi_{i_1}b_{i_1}(o_1)a_{i_1 i_2}b_{i_2}(o_2)\cdots a_{i_{T-1}i_T}b_{i_T}(o_T) \]

    於是,\(Q\)函數可以寫成:

    \[\begin{aligned} Q(\lambda,\overline{\lambda}) &=\sum_I \log \pi_{i_1}P(O,I|\overline{\lambda}) + \sum_I \left(\sum \limits_{t=1}^{T-1}\log a_{i_t i_{t+1}}\right)P(O,I|\overline{\lambda}) + \sum_I \left(\sum \limits_{t=1}^{T}\log b_{i_t}(o_t)\right)P(O,I|\overline{\lambda}) \end{aligned}\]

  3. EM算法的M步:極大化\(Q\)函數求模型參數\(A,B,\pi\)。由於要極大化的參數單獨出現在三項中,所以只需對各項分別極大化,利用拉格朗日乘子法,得到\(\pi_i,a_{ij},b_j(k)\)

預測問題

近似算法

在每個時刻\(t\)選擇在該時刻最有可能出現的狀態\(i_t^*\),從而得到一個狀態序列,將它作為預測的結果

優點是計算簡單,缺點是不能保證預測狀態序列整體是最有可能的序列,因為預測的狀態序列可能有實際不發生的部分,可能存在轉移概率為0的相鄰狀態。

維特比算法

用動態規划求概率最大路徑(最優路徑)。最優路徑具有這樣的特性:如果最優路徑在時刻\(t\)通過節點\(i^*_t\),那么這一路徑從節點\(i^*_t\)到終點\(i^*_T\)的部分路徑,對於從\(i^*_t\)\(i^*_T\)的所有可能的部分路徑來說,必須是最優的。根據這一原理,我們只需從時刻\(t=1\)開始,遞推地計算在時刻\(t\)狀態為\(i\)的各條部分路徑的最大概率,直到得到時刻\(t=T\)狀態為\(i\)的各條路徑的最大概率。時刻\(t=T\)的最大概率即為最優路徑的概率\(P^*\),最優路徑的終結點\(i^*_T\)也同時得到。之后,從后向前逐步求得節點,得到最優路徑。

最大熵馬爾可夫模型

  • 去除了隱馬爾可夫模型中觀測狀態相互獨立的假設,考慮了整個觀測序列

  • 直接對標注的后驗概率\(P(y|x)\)進行建模

  • 最大熵馬爾可夫模型建模如下

    \[p(x_{1\cdots n}|y_{1\cdots n})=\prod \limits_{i=1}^n p(x_i|x_{i-1}, y_{1 \cdots n})​ \]

    對於\(p(x_i)​\),不僅考慮了\(p(x_{i-1})​\),還考慮了\(y_{1\cdots n}​\)

    其中\(p(x_i|x_{i-1},y_{1\cdots n})\)會在局部歸一化,即枚舉\(x_i\)的所有取值,計算公式為

    \[p(x_i|x_{i-1},y_{1 \cdots, n})=\frac{exp(F(x_i, x_{i-1}, y_{1\cdots n}))}{Z(x_{i-1}, y_{1 \cdots n})} \]

    其中\(Z\)為歸一化因子\(Z(x_{i-1}, y_{1 \cdots n}) = \sum_{x_i}\exp(F(x_i, x_{i-1}, y_{1 \cdots n}))\)\(F\)\(x_i, x_{i-1}, y_{1,\cdots n}\)所有特征線性相加

  • 標注偏置問題:由於局部歸一化,隱狀態會傾向於轉移到那些后續狀態可能更少的狀態上去,以提高整體的后驗概率

  • 條件隨機場使用全局歸一化

    \[p(x_{1\cdots n}|y_{1\cdots n})=\frac{1}{Z(y_{1\cdots n})}\prod \limits_{i=1}^n \exp\{F(x_i|x_{i-1}, y_{1 \cdots n})\} \]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM