机器学习算法之隐马尔可夫模型
馬爾可夫性質及馬爾可夫鏈
馬爾可夫性質
設??是一個隨機過程,E為其狀態空間,若對于任意的??任意的 ?,隨機變量X(t) 在已知變量??之下的條件分布函數只與??有關,而與? 無關,即條件分布函數滿足下列等式,此性質稱為馬爾可夫性質。如果隨機過程滿足馬爾可夫性,則該過程稱為馬爾可夫過程。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
 ?
馬爾可夫鏈
馬爾可夫鏈是指具有馬爾可夫性質的隨機過程。在過程中,在給定當前信息的情況下,過去的信息狀態對于預測將來狀態是無關的。
在馬爾可夫鏈的每一步,系統根據概率分布,可以從一個狀態變成另外一個狀態,也可以保持當前狀態不變。狀態的改變叫做轉移,狀態改變的相關概率叫做轉移概率。
馬爾可夫鏈中的三元素是:狀態空間S、轉移概率矩陣P、初始概率分布π。
隱馬爾可夫模型
隱馬爾可夫模型(Hidden Markov Model,HMM)是一種統計模型,在語音識別、行為識別、NLP、故障診斷等領域具有高效的性能。
HMM是關于時序的概率模型,描述一個含有未知參數的馬爾可夫鏈所生成的不可觀測的狀態隨機序列,再由各個狀態生成觀測隨機序列的過程。HMM是一個雙重隨機過程,具有一定狀態的隱馬爾可夫鏈和隨機的觀測序列。
HMM隨機生成的狀態隨機序列被稱為狀態序列,每個狀態生成一個觀測,由此產生的觀測隨機序列,被稱為觀測序列。
??是不可觀測的狀態??是可觀測到的序列。
 HMM由隱含狀態S、可觀測狀態O、初始狀態概率矩陣 π、隱含狀態轉移概率矩陣A、可觀測值轉移矩陣B(又稱為混淆矩陣,Confusion Matrix),π 和A決定了狀態序列,B決定觀測序列,因此HMM可以使用三元符號表示,稱為HMM的三元素:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
S是所有可能的狀態集合:??
O是所有可能的觀測集合:
I是長度為T的狀態序列:
Q是對應的觀測序列:
A是隱含狀態轉移概率矩陣:
其中?是在時刻t處于狀態?的條件下,時刻t+1轉移到狀態???的概率。
B是可觀測值轉移概率矩陣:
其中??是在時刻t處于狀態??的條件下生成觀測值? 的概率。
π 是初始狀態概率向量:
其中?? 是在時刻t=1處于狀態??的概率。
HMM的兩個基本性質:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
HMM的三個問題
-  概率計算問題:前向-后向算法 
給定模型?λ=(A,B,π) 和觀測序列 ?,計算模型 λ 下觀測到序列Q出現的概率 P(Q|λ)
-  學習問題:Baum-Welch算法(狀態未知) 
已知觀測序列??,估計模型?λ=(A,B,π) 的參數,使得在該模型下觀測序列 P(Q|λ) 最大
-  預測問題:Viterbi算法 
給定模型?λ=(A,B,π) 和觀測序列 ?,求給定觀測序列條件概率?P(I|Q, λ) 最大的狀態序列I
概率計算問題
直接計算法
按照概率公式,列舉所有可能的長度為T的狀態序列??,求各個狀態序列I與觀測序列?
 的聯合概率?P(Q,I;λ) ,然后對所有可能的狀態序列求和,從而得到最終的概率?P(Q;λ) 。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
 前向算法
 
 
給定 λ ,定義到時刻t部分觀測序列為 ?且狀態為??的概率為前向概率。記做:
? ?注釋:?代表 狀態為 i 的隱狀態對應的 觀測狀態?的概率
初值:??注釋:?代表 狀態轉移矩陣中 隱狀態為 i ,q對應y 的概率值
遞推:對于t=1,2,…,T?1,????
最終:
推導過程:
后向算法
給定λ,定義到時刻t狀態為??的前提下,從t+1到T部分觀測序列為??的概率為后向概率。記做:
初值:βT(i)=1?
遞推:對于 1t=T?1,T?2,…,1,??
最終:
推導過程:
單個狀態的概率
求給定模型 λ 和觀測序列 Q 的情況下,在時刻 t 處于狀態??的概率,記做:?
單個狀態概率的意義主要是用于判斷在每個時刻最可能存在的狀態,從而可以得到一個狀態序列作為最終的預測結果。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
 ?
兩個狀態的聯合概率
求給定模型λ λλ和觀測序列Q的情況下,在時刻t處于狀態??并在時刻t+1處于狀態???的概率,記做:
? ? ? ? ? ? ? ? ? ? ? ? ? ?
學習問題
若訓練數據包含觀測序列和狀態序列,則HMM的學習問題非常簡單,是監督學習算法。利用大數定理的結論“頻率的極限是概率”,直接給出HMM的參數估計。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
若訓練數據只包含觀測序列,則HMM的學習問題需要使用EM算法求解,是非監督學習算法。此時一般使用Baum-Welch算法。
所有的觀測數據為???,所有的隱狀態為??,則完整的數據為?(Q,I) ,完整數據的對數似然函數為ln(p(Q,I;λ)),然后直接使用EM算法的方式來進行參數估計。
Baum-Welch算法
? ? ? ? ? ? ? ? ? ? ?
極大化L函數,分別可以求得π、a、b的值。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
預測問題
近似算法
將在每個時刻t最有可能的狀態作為最終的預測狀態,使用下列公式計算
概率值:
Viterbi算法
Viterbi算法實際是用動態規劃的思路求解HMM預測問題,求出概率最大的“路徑”,每條“路徑”對應一個狀態序列。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
 HMM應用
 
HMM的常見應用主要用于進行特征提取的場景中或者數據標注的場景中。
在Scikit-learn中安裝HMM工具包:
pip install hmmlearn
總結
以上是生活随笔為你收集整理的机器学习算法之隐马尔可夫模型的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 论文篇-----基于机器学习的交通流预测
- 下一篇: 架构师一般做到多少岁_软件测试可以做到多
