【ML-13-3】隱馬爾科夫模型HMM--Baum-Welch(鮑姆-韋爾奇)


【ML-13-1】隱馬爾科夫模型HMM

【ML-13-2】隱馬爾科夫模型HMM--前向后向算法 

【ML-13-3】隱馬爾科夫模型HMM--Baum-Welch(鮑姆-韋爾奇)

【ML-13-4】隱馬爾科夫模型HMM--預測問題Viterbi(維特比)算法 

目錄

  1. 基礎--HMM常用概率的計算
  2. HMM模型參數求解概述
  3. Baum-Welch算法原理
  4. Baum-Welch算法推導
  5. Baum-Welch算法總結

一、基礎--HMM常用概率計算

利用前向概率和后向概率,我們可以計算出HMM中單個狀態和兩個狀態的概率公式。

1.1 單個狀態的概率

求給定模型λ和觀測序列Q的情況下,在時刻t處於狀態si的概率,記做:

單個狀態概率的意義主要是用於判斷在每個時刻最可能存在的狀態,從而可以得到一個狀態序列作為最終的預測結果。

利用前向概率和后向概率的定義可知:

由上面兩個表達式可知:

1.2 兩個狀態的聯合概率

求給定模型λ和觀測序列Q的情況下,在時刻t處於狀態si並時刻t+1處於狀態sj概率,記做:

1.3 上述兩種求和可以得到:

二、HMM模型參數求解概述

  在本篇我們會討論HMM模型參數求解的問題,即已知觀測序列Q={q1,q2,...,qT},估計模型λ=(A,B,π)的參數,使得在該模型下觀測序列P(Q|λ)最大。這個問題在HMM三個問題里算是最復雜的。在研究這個問題之前,建議先閱讀這個系列的前兩篇以熟悉HMM模型和HMM的前向后向算法,以及EM算法原理總結

HMM模型參數求解根據已知的條件可以分為兩種情況。第一種情況較為簡單,就是我們已知D個長度為T的觀測序列和對應的隱藏狀態序列,直接利用大數定理的結論"頻率的極限是概率",直接給出HMM的參數估計;

1.1 假設所有樣本中初始隱藏狀態為qi的頻率計數為S(i),那么初始概率分布為:

1.2 假設樣本從隱藏狀態qi轉移到qj的頻率計數是Sij,那么狀態轉移矩陣求得為:

1.3 假設樣本隱藏狀態為qj且觀測狀態為vk的頻率計數是qjk,那么觀測狀態概率矩陣為:

可見第一種情況下求解模型還是很簡單的。但是在很多時候,我們無法得到HMM樣本觀察序列對應的隱藏序列,只有D個長度為T的觀測序列,此時我們能不能求出合適的HMM模型參數呢?這就是我們的第二種情況,也是我們本文要討論的重點。它的解法最常用的是鮑姆-韋爾奇算法(Baum-Welch),其實就是基於EM算法的求解,只不過Baum-Welch算法出現的時代,EM算法還沒有被抽象出來,所以我們本文還是說鮑姆-韋爾奇算法法。這也提示我們抽象一種具體算法可能也是很重要的工程。

三、Baum-Welch算法原理

在M步,我們極大化上式,然后得到更新后的模型參數如下:

四、Baum-Welch算法推導

我們需要先計算聯合分布P(Q,I;λ)的表達式如下:

E步得到的期望表達式為:

在M步要極大化上式:

  1. 我們看看對模型參數Π的求導。由於Π只在上式中括號里的第一部分出現,因此我們對於Π的極大化式子為:

極大化上式,使用拉格朗日乘子法:

求和相加可得:

再代入可得到:

  1. 極大化L,使用拉格朗日乘子法,求解aij的值:

  1. 同理:極大化L,使用拉格朗日乘子法,求解bij的值

  1. 匯總:極大化L函數,分別可以求得π、a、b的值。

五、Baum-Welch算法總結

  這里我們概括總結下鮑姆-韋爾奇算法的流程。

輸入: D個觀測序列樣本

輸出:HMM模型參數

具體流程:

1)隨機初始化所有的πi,aij,bij

2) 對於每個樣本d=1,2,...D,用前向后向算法計算γ,ξ

3) 更新模型參數:

4) 如果πi,aij,bij的值已經收斂,則算法結束,否則回到第2)步繼續迭代。

附件一:手寫練習


免責聲明!

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



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