HMM 隱馬爾科夫模型 的訓練

2021-09-14 05:48:07 字數 2045 閱讀 1064

隱馬爾科夫模型的訓練。上篇文章講述了,已知模型(初始矩陣,狀態轉移矩陣,發射矩陣)求某一觀察序列的機率。但沒有提及如何獲取模型引數,這篇文章就概略的講述hmm的訓練。

在很多網上文章裡,提到如果有標註資料可以通過極大似然估計對hmm的引數進行計算。

極大似然估計其實就是在已經概率分布形式的情況下,對引數進行估算的一種方法。

寫出似然函式

加入對數(方便求導,不會影響結果)

設導數為0

求解方程(如果有多個引數,會聯立求方程組)

通過隱馬爾可夫模型中最大似然估計的推導過程

[

狀態轉換概率:

$$p(t | s) = \frac$$

發射概率:

$$p(w | t) = \frac$$

裡邊的count(t,s) 就是隱藏狀態t,s在訓練集中得出現次數。count(w,t)是隱藏狀態t和觀察狀態w一起出現的次數。

其實這個也很符合常識,不用上邊複雜的推導過程,根據經驗(大數定律), 我們也能知道頻率近似於概率。

很多時候我們並沒有標註資料,只有很多組觀察資料(未標註), 在進行極大似然估計計算的時候,根本無法進行(維數等於樣本資料)。

但我們能比較兩組不同的引數,判斷誰得到樣本集的概率更高。em(expectation-maximization)演算法能幫助我們在這種情況下,得到概率分布引數的區域性最優解。從某種意義上來說,em演算法可以看做求極大似然的一種特殊演算法。

回到hmm上,baum–welch演算法就是em演算法在hmm上的具體實現。

順便說下,baum–welch演算法(1960s)比em演算法(1977)早出現, 但em總結這類演算法的一般步驟。所以現在都把baum–welch看成em的特殊實現。

baum–welch演算法的步驟。

隨機構造初始化引數。

e-step,通過前向後向計算,得到引數的資料期望

m-step,通過e(x)更新引數。

迭代2-3步。直到引數穩定,得到區域性最優解。

演算法先假定一組概率引數,然後利用向前向後計算,計算出符合目前觀察現象的概率的數學期望,

然後再拿這組數學期望去更新引數,逐漸逼近區域性最優解。

現在讓我們看看e-step到底怎麼做的,在此前我們得先弄明白向前變數和向後變數。

給定模型下,觀察序列為$o_,o_,...,o_$ 和 t時刻隱藏狀態為$s_$的聯合概率。

給定模型下,t時刻隱藏狀態為$s_$並且後續觀察序列為$o_,o_,...$的概率。

注意兩個定義都可以使用我們前一篇文章所說的前向後向演算法進行計算。就是乙個遞迴計算的過程。

這兩個變數合在一起就可以表示.在給定觀察序列下,t時刻隱藏狀態為i的概率。

$$\gamma_(i)=p(q_=s_|o,\theta)=\frac(i)*\beta_(i)}=\frac(i)*\beta_(i)}^\alpha_(i)*\beta_(i)}$$

又定義, 在給定觀察序列下,t時刻從隱藏狀態 i 轉移到 j的概率。

$$\xi_(i,j)=p(q_=s_,q_=s_|o,\theta) = \frac(i)*a_*b_}*\beta_(j)}^\sum_^\alpha_(i)*a_*b_}*\beta_(j)}$$

隱藏狀態為i的數學期望,其實就是算個平均值

$$e(i)=\frac^\gamma_(i)} $$

隱藏狀態從 i 轉移到 j 的數學期望(是t時刻為i,t+1時刻為j的聯合概率)

$$e(i,j)=\frac^\xi_(i,j)} $$

所以自然可以推出

$$估算初始概率=\gamma_(i)$$

$$估算轉移概率=\frac$$

$$估算發射概率=\frac)}$$

上邊$(o=為o_)$是指只計算隱藏狀態為i,發射後的觀察狀態為x的情況$

然後使用上邊計算的估算值,替換初始的引數。反覆進行迭代,直到得到區域性最優解。

e=> m=> e=> ...直到穩定

隱馬爾科夫模型HMM

我們通常都習慣尋找乙個事物在一段時間裡的變化規律。在很多領域我們都希望找到這個規律,比如計算機中的指令順序,句子中的詞順序和語音中的詞順序等等。乙個最適用的例子就是天氣的 首先,本文會介紹聲稱概率模式的系統,用來 天氣的變化 然後,我們會分析這樣乙個系統,我們希望 的狀態是隱藏在表象之後的,並不是我...

隱馬爾科夫 HMM 模型

隱馬爾科夫 hidden markov model 模型是一類基於概率統計的模型,是一種結構最簡單的動態貝葉斯網,是一種重要的有向圖模型。自上世紀80年代發展起來,在時序資料建模,例如 語音識別 文字識別 自然語言處理等領域廣泛應用。隱馬爾科夫模型涉及的變數 引數眾多,應用也很廣泛,以至於很多人不明...

HMM隱馬爾科夫模型

問題 講講hmm隱馬爾科夫模型 1 隱馬爾科夫模型是關於時序的概率模型,是由乙個隱藏的馬爾科夫鏈隨機生成不可觀測的隨機狀態序列,並由各個狀態生成乙個觀測而產生觀測隨機序列的過程。統計學習方法 cha10 概念解釋 馬爾可夫鏈 一階馬爾可夫過程,即未來狀態僅與當前狀態有關,與過去無關。馬爾可夫過程 狀...