隐马尔科夫模型——简介
1. ?前言
學習了概率有向圖模型和概率無向圖模型,回頭再看了一下隱馬爾可夫模型(hidden Markov model,HMM)。
HMM屬于樹狀有向概率圖模型,主要用于對時序數據的建模,它的潛在變量是離散的;而另一種狀態空間模型,稱為線性動態系統(linear dynamical system,LDS),它的潛在變量服從高斯分布。
HMM是描述由馬爾科夫鏈隨機生成觀測序列的過程,屬于機器學習里面的生成模型
本文主要參考文獻為:PRML、《統計學習方法》、隱馬爾可夫模型、HMM英文文檔
2. 馬爾科夫模型
獨立同分布忽略了數據的順序模式。比如給定了一系列的天氣觀測,如果按照獨立同分布來看,如下圖所示,那么得到的數據信息就是雨天的相對頻率;然而實際上明天下雨在很大程度上依賴于最近幾天天氣的。
馬爾科夫鏈就是放松了獨立同分布的假設,用概率乘積的形式表示觀測序列的聯合概率分布。
如果看了前面的概率有向圖,會發現馬爾科夫鏈的概率有向圖畫起來很簡單,就是當前節點以前面所有的節點為條件,即被前面所有的節點連接。
如果假設每個條件概率分布只與最近的一次觀測有關,與其它觀測獨立,就得到了一階馬爾科夫鏈(first order Markov chain),其實這個就是我們常見的馬爾科夫鏈,其聯合概率分布為:
這樣還可以求出給定時刻n之前所有的觀測,得到第n 個觀測的條件概率
在這種馬爾科夫模型中,條件概率分布被限制相等,在靜止時間序列的預測中(比如紅綠燈),稱為同質馬爾科夫鏈(homogeneous Markov chain)。
有時候我們希望用更早的觀測來預測序列,比如二階馬爾科夫鏈就與前兩個觀測有關:
聯合概率分布可以寫出來為:
對于一階馬爾科夫模型,如果有K個狀態,每個狀態有轉移到其它的K-1個狀態的轉移概率,比如為狀態1的時候,有轉移到第2,....K共(K-1)的轉移概率;為狀態2的時候,有轉移到第1,3,....K共(K-1)的轉移概率;......;依次類推,需要K(1-K)個參數。再擴展到M階馬爾科夫模型,就需要個參數,因此參數的數量隨著M指數增加。
為了解決指數增長這個問題,專家們引入隱變量,將隱變量構成馬爾科夫鏈,而非使用觀測變量作為馬爾科夫鏈,這樣得到的圖結構稱為狀態空間模型(state space model)。
這個圖就是利用潛在變量的馬爾科夫鏈來表示順序數據,每個觀測以對應的潛在變量的狀態為條件。這個圖是HMM和LDS的基礎。
此圖的聯合概率分布為:
根據前面介紹的概率有向圖模型分析:給定了第n+1個狀態之前的所有狀態時,由于隱狀態不可觀測,使得條件概率分布不會有任何的條件獨立性,也就是第n+1的預測以來與前面所有的觀測。圖中如果所有的狀態為離散的,那么就得到了HMM。
3. 隱馬爾科夫模型
隱馬爾科夫模型是統計模型,用來描述一個含有隱含未知參數的馬爾可夫過程。
在隱馬爾可夫模型中,狀態是不可見的,但輸出依賴該狀態下,是可見的。每個狀態通過可能的輸出記號有了可能的概率分布。“隱藏”指的是該模型經其傳遞的狀態序列,而不是模型的參數,即使這些參數是精確已知的,我們仍可把該模型稱為一個“隱藏”的馬爾可夫模型。
有兩種生成模式:確定性和非確定性的。
確定性的生成模式:比如紅綠燈的變化就是固定的,根據當前狀態可以預測下一狀態。
非確定性的生成模式:比如天氣晴、多云、雨。不能確定下一刻的天氣狀態,但是我們希望能夠生成一個模式來得出天氣的變化規律。假設當前天氣只與以前的天氣狀態有關,這被稱為馬爾可夫假設。
馬爾可夫過程就是當前狀態只與前n個狀態有關。這被稱為n階馬爾可夫模型。注意與確定性生成模式的區別,這里得到的是一個概率模型。
對于有M個狀態的一階馬爾可夫模型。共有M*M個狀態轉移。每一個狀態轉移都有其一定的概率,我們叫轉移概率,所有的轉移概率可以用一個矩陣表示。每一行每一列的概率和為1.
用一個例子來解釋隱馬爾科夫模型:
在預測天氣時,當不能觀察天氣時,可以通過觀察水藻或者其他植物來預測。這里就包含兩個狀態:觀察狀態(水藻的狀態)和隱含狀態(天氣狀態)。
語音識別是最為成功的應用,語音信號是觀察狀態,識別出的文字就是隱含狀態。
注意:在任何一種應用中,觀察狀態的個數和隱含狀態的個數可能不一樣。
4. HMM三大要素
HMM是一個三元組(π,A,B)
Π=(πi)? 初始概率向量,代表的是剛開始的時候各個隱藏狀態的發生概率。
A=(aij)? 狀態轉移矩陣,代表的是第一個狀態到第二個狀態發生的概率。
B=(bij)? 混淆矩陣,代表的是處于某個隱狀態的條件下,某個觀測發生的概率。
這其中,所有的狀態轉移概率和混淆矩陣在整個系統中是一成不變的,這也是HMM中最不切實且的假設。
5. HMM兩大假設
(1)齊次馬爾科夫性假設:假設隱藏的馬爾科夫鏈在任意時刻t的狀態只依賴其前一時刻的狀態,與其它時刻的狀態及觀測無關,也與當前時刻 t 無關。
(2)觀測獨立性假設:假設任意時刻的觀測只依賴于該時刻的馬爾科夫鏈的狀態,與其它觀測狀態無關
6. HMM三大基本問題
6.1 評估
概率計算問題,給定模型參數和觀測序列,計算在該模型下觀測序列出現的概率。利用前向算法或者后向算法計算。
6.2 學習
學習問題,已知觀測序列,需要估計模型參數,使得在該模型下觀測序列 P(觀測序列 | 模型參數)最大,用的是極大似然估計方法估計參數,通常稱為前向后向算法或者Baum-Welch算法。
6.3 解碼
預測問題,給定模型參數和觀測序列,求對給定觀測序列條件概率 P(隱狀態 | 觀測序列) 最大的狀態序列。即給定觀測序列,求最有可能的對應的狀態序列。
7. HMM觀測序列生成過程
輸入:因馬爾科夫模型(π,A,B),以及觀測序列長度T 輸出:觀測序列 (1)按照出事狀態分布π產生狀態 i1 (2)令t=1 (3)按照狀態 i(t) 的觀測概率分布(混淆矩陣)生成第 t 個觀察值 (4)按照狀態 i(t) 的狀態轉移概率(轉移概率矩陣)產生第t+1個狀態 i(t+1) (5)令t=t+1;如果 t < T ,回到步驟(3),否則終止總結
以上是生活随笔為你收集整理的隐马尔科夫模型——简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 热播职场剧惊现《逆水寒》情节 端游玩家看
- 下一篇: 为什么实例没有prototype属性?什