马尔科夫模型系列文章(二)——隐马尔科夫模型
前言:前面的一片文章介紹了馬爾科夫模型,以及里面的一些核心概念,如轉(zhuǎn)移概率、狀態(tài)、轉(zhuǎn)移概率矩陣等,本次文章更進(jìn)一步,介紹隱馬爾可夫模型。它是在馬爾科夫模型的基礎(chǔ)之上進(jìn)一步得來的。隱馬爾可夫模型最重要的其實就是兩個假設(shè)、三個要素、三種基本問題。
一、什么是隱馬爾可夫模型HMM(Hidden Markov Model, HMM)
1.1 從一個簡單的例子說起
既然說它是在馬爾科夫模型的基礎(chǔ)之上發(fā)展來的,而這必然有關(guān)系了,先看一個簡單的例子來描述這個情景。
在某些情況下馬爾科夫過程不足以描述我們希望發(fā)現(xiàn)的模式?;氐街澳莻€天氣的例子,一個隱居的人可能不能直觀的觀察到天氣的情況,但是有一些海藻。民間的傳說告訴我們海藻的狀態(tài)在某種概率上是和天氣的情況相關(guān)的。在這種情況下我們有兩個狀態(tài)集合,一個可以觀察到的狀態(tài)集合(海藻的狀態(tài))和一個隱藏的狀態(tài)(天氣的狀況)。我們希望能找到一個算法可以根據(jù)海藻的狀況和馬爾科夫假設(shè)來預(yù)測天氣的狀況。
其中,隱藏狀態(tài)的數(shù)目和可以觀察到的狀態(tài)的數(shù)目可能是不一樣的。在語音識別中,一個簡單的發(fā)言也許只需要80個語素來描述,但是一個內(nèi)部的發(fā)音機(jī)制可以產(chǎn)生不到80或者超過80種不同的聲音。同理,在一個有三種狀態(tài)的天氣系統(tǒng)(sunny、cloudy、rainy)中,也許可以觀察到四種潮濕程度的海藻(dry、dryish、damp、soggy)。在此情況下,可以觀察到的狀態(tài)序列和隱藏的狀態(tài)序列是概率相關(guān)的。于是我們可以將這種類型的過程建模為一個隱藏的馬爾科夫過程和一個和這個馬爾科夫過程概率相關(guān)的并且可以觀察到的狀態(tài)集合。
看了這個例子就明白了,實際上就說如果某一個狀態(tài)我們是沒辦法直接觀察到的,但是我們可以通過觀察與這個狀態(tài)緊密相關(guān)的另一個我們可以觀察的狀態(tài)來推導(dǎo)那個觀察不到的狀態(tài),就是這樣一個過程。
2.2 HMM較為正式的定義
隱馬爾可夫模型(hidden Markov model, HMM)是另一種常用的概率模型。在該模型中,觀測值(可觀測狀態(tài))是依據(jù)一定的概率由某些不可見的內(nèi)部狀態(tài)(隱狀態(tài))決定,而這些狀態(tài)之間服從某種馬爾科夫模型。以下為一個典型的HMM示意圖:
在這幅圖中,zi 就是隱狀態(tài),是沒辦法直接觀測得到的,但是zi本身是具有馬爾科夫性的,yi 是觀測狀態(tài),是可以直接觀察的,y實際上又是由z決定的
下面給出幾個關(guān)鍵概念:
(1)隱狀態(tài),觀測狀態(tài)
(2)發(fā)射概率(emission probability)
上面的可觀測狀態(tài) yi 是觀測到的數(shù)據(jù),它的取值根據(jù)條件概率
得到,這個表示在隱狀態(tài)Zi的條件之下得到y(tǒng)i的概率.這一概率稱作發(fā)射概率(emission probability)。
同時,由于隱狀態(tài) zi 滿足馬爾科夫轉(zhuǎn)移概率,即
1.3 HMM 定義的數(shù)學(xué)表達(dá)
前面都是一些文字性的描述,那么使用數(shù)學(xué)語言怎么描述HMM呢?
對于HMM模型,首先我們假設(shè),Q是所有可能的隱藏狀態(tài)的集合,,V是所有可能的觀測狀態(tài)的集合,即:
其中,N是可能的隱藏狀態(tài)數(shù),M是所有的可能的觀察狀態(tài)數(shù)。
對于一個長度為T的序列,I 對應(yīng)的狀態(tài)序列,?O是對應(yīng)的觀察序列,即:
?
其中,任意一個隱藏狀態(tài)?it∈Q,任意一個觀察狀態(tài)ot∈V.
?
二、隱馬爾可夫模型的核心知識點
2.1 HMM的兩個假設(shè)
(1) 齊次馬爾科夫鏈假設(shè)——本質(zhì)上就是隱藏狀態(tài)是一個馬爾科夫鏈
即任意時刻的隱藏狀態(tài)只依賴于它前一個隱藏狀態(tài)。當(dāng)然這樣假設(shè)有點極端,因為很多時候我們的某一個隱藏狀態(tài)不僅僅只依賴于前一個隱藏狀態(tài),可能是前兩個或者是前三個。但是這樣假設(shè)的好處就是模型簡單,便于求解。如果在時刻?t 的隱藏狀態(tài)是,在時刻t+1的隱藏狀態(tài)是, 則從時刻?t到時刻?t+1的HMM狀態(tài)轉(zhuǎn)移概率?aij 可以表示為:
這樣?aij 可以組成馬爾科夫鏈的狀態(tài)轉(zhuǎn)移矩陣A:
注意:這里的“狀態(tài)轉(zhuǎn)移矩陣A”實際上就是馬爾科夫鏈的“概率轉(zhuǎn)移矩陣”,它的大小是NxN的方陣,N表示的是隱藏狀態(tài)的可能取值數(shù)目。
(2)觀測獨立性假設(shè)。
即任意時刻的觀察狀態(tài)只僅僅依賴于當(dāng)前時刻的隱藏狀態(tài),這也是一個為了簡化模型的假設(shè)。如果在時刻?t 的隱藏狀態(tài)是 it=qj, 而對應(yīng)的觀察狀態(tài)為?ot=vk, 則該時刻觀察狀態(tài)?vk在隱藏狀態(tài)?qj下生成的概率為?bj(k),滿足:
這樣?bj(k) 可以組成觀測狀態(tài)生成的概率矩陣B:
注意:這里的意思是,在某一個時刻,觀測狀態(tài)僅僅與這一時刻的隱藏狀態(tài)有關(guān),而與之前的觀測狀態(tài)是無關(guān)的,實際上也就是說觀測序列并沒有組成一個馬爾科夫鏈哦!
所以這里的矩陣B稱之為觀測值轉(zhuǎn)移矩陣。它是一個N行M列的矩陣,N表示隱藏狀態(tài)的取值種類數(shù),M表示觀測值的狀態(tài)取值種類數(shù)。
除此之外,我們需要一組在時刻t=1的隱藏狀態(tài)概率分布?π:
注意:這里的初始概率分布是一個N維向量,N表示隱藏狀態(tài)的取值種類數(shù)。
2.2 HMM模型的三要素
一個HMM模型,可以由隱藏狀態(tài)初始概率分布π, 狀態(tài)轉(zhuǎn)移概率矩陣A和觀測狀態(tài)概率矩陣B決定,這稱之為隱馬爾科夫模型的三要素。π,A決定隱藏狀態(tài)序列,B決定觀測序列。因此,HMM模型可以由一個三元組λ表示如下:
?
2.3 從一個簡單的例子來看HMM的三要素
再看三個基本問題之前,先看一個簡單的例子,有了例子便于理解。
下面我們用一個簡單的實例來描述上面抽象出的HMM模型。這是一個盒子與球的模型,例子來源于李航的《統(tǒng)計學(xué)習(xí)方法》。
假設(shè)我們有3個盒子,每個盒子里都有10個球,分為紅色和白色兩種球,這三個盒子里球的數(shù)量分別是:
按照下面的方法從盒子里抽球,開始的時候,從第一個盒子抽球的概率是0.2,從第二個盒子抽球的概率是0.4,從第三個盒子抽球的概率是0.4。以這個概率抽一次球后,將球放回。然后從當(dāng)前盒子轉(zhuǎn)移到下一個盒子進(jìn)行抽球。規(guī)則是:如果當(dāng)前抽球的盒子是第一個盒子,則以0.5的概率仍然留在第一個盒子繼續(xù)抽球,以0.2的概率去第二個盒子抽球,以0.3的概率去第三個盒子抽球。如果當(dāng)前抽球的盒子是第二個盒子,則以0.5的概率仍然留在第二個盒子繼續(xù)抽球,以0.3的概率去第一個盒子抽球,以0.2的概率去第三個盒子抽球。如果當(dāng)前抽球的盒子是第三個盒子,則以0.5的概率仍然留在第三個盒子繼續(xù)抽球,以0.2的概率去第一個盒子抽球,以0.3的概率去第二個盒子抽球。如此下去,直到重復(fù)三次抽球,得到一個球的顏色的觀測序列如下:
注意:在看到這個問題我們首先用弄清楚什么是觀測值,觀測值的狀態(tài)有哪幾種,什么是隱藏值,隱藏狀態(tài)有哪幾種。
因為我們能夠看到的是我們每次抽取球的顏色,所以球的顏色就是我們的觀測值,每一個球(即每一個觀測值)只有紅或者是白,所以觀測值的狀態(tài)有2種。至于這個抽出來的球到底是來自哪一個盒子,這是不知道的,所以每一次抽的球到底來自于哪一個盒子就是我們的隱藏值,因為一共有三個盒子,所以每次抽球可能來自于三個盒子中的一個,所以隱藏狀態(tài)有三種。
而我們要做的就是根據(jù)我們抽到球的顏色,判斷這個球到底來自于哪一個盒子。
按照我們上一節(jié)HMM模型的定義,我們的觀察集合是:
我們的狀態(tài)集合是:
而觀察序列和狀態(tài)序列的長度為3.
初始狀態(tài)分布為:
狀態(tài)轉(zhuǎn)移概率分布矩陣為:
觀測狀態(tài)概率矩陣為:
2.4?HMM的三個基本問題
通過上面的例子我們已經(jīng)構(gòu)造出了一個HMM模型的三要素,但是這究竟怎么去使用這幾個要素呢?還要根據(jù)實際的問題而定,一般在HMM中,會有三類問題需要解決。
(1)評估觀察序列概率——前向后向的概率計算
即給定模型λ=(A,B,π)和觀測序列O={o1,o2,...oT},計算在模型 λ下某一個觀測序列O出現(xiàn)的概率P(O|λ)。這個問題的求解需要用到前向后向算法,我們在這個系列的第二篇會詳細(xì)講解。這個問題是HMM模型三個問題中最簡單的。
(2)模型參數(shù)學(xué)習(xí)問題——Baum-Welch算法(狀態(tài)未知) ,這是一個學(xué)習(xí)問題
即給定觀測序列O={o1,o2,...oT},估計模型λ=(A,B,π)的參數(shù),使該模型下觀測序列的條件概率P(O|λ)最大。這個問題的求解需要用到基于EM算法的鮑姆-韋爾奇算法, 這個問題是HMM模型三個問題中最復(fù)雜的。
后面如果有時間再詳細(xì)說一說這個算法,可以參考下面幾篇文章:
https://yq.aliyun.com/articles/373224?spm=a2c4e.11153940.0.0.7b326c05yHaI2F
?
(3)預(yù)測問題——也稱為解碼問題,Viterbi算法
即給定模型λ=(A,B,π)和觀測序列O={o1,o2,...oT},求給定觀測序列條件下,最可能出現(xiàn)的對應(yīng)的狀態(tài)序列,這個問題的求解需要用到基于動態(tài)規(guī)劃的維特比算法,這個問題是HMM模型三個問題中復(fù)雜度居中的算法??梢詤⒖枷旅娴奈恼?#xff1a;
https://yq.aliyun.com/articles/602716?spm=a2c4e.11153940.0.0.7b326c05yHaI2F
https://www.cnblogs.com/jacklu/p/6225073.html
?
三、HMM第一類問題的求解
依然使用上面的例子,第一類問題的求解如下面步驟:參考這篇即可,公式太多,輸入起來很麻煩!
隱馬爾科夫模型HMM(二)前向后向算法評估觀察序列概率
?
參考鏈接:
https://yq.aliyun.com/articles/602152?utm_content=m_1000002340
https://www.cnblogs.com/jacklu/p/6225073.html
https://blog.csdn.net/qa38113202/article/details/81843247
https://blog.csdn.net/maverick17/article/details/79574917
https://blog.csdn.net/maryyu8873/article/details/82952650
總結(jié)
以上是生活随笔為你收集整理的马尔科夫模型系列文章(二)——隐马尔科夫模型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 查重多少合格_期刊论文查重一般多少合格?
- 下一篇: 千牛通知栏常驻是什么意思_店铺运营|内贸