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